Retronics

Restoring, remodeling and creating electronic devices


DIY: Digital EM84 “magic eye” replacement

Tuning indicator tubes, so called magic eyes, have hardly been manufactured the last 50 years, and some types are scarce. Some people try to make LED replacements, with varying degrees of success, and few (if any) of the solutions I’ve seen online actually look like the original tubes. While repairing a Tandberg Sølvsuper 9 broadcast receiver, I came up with the idea of making an OLED replacement for the defective EM84 indicator tube.

NOS EM84 tubes can still be bought at a price that is not totally insane, or you can use the Soviet clone 6Е3П. However, with it’s rectangular bar, the EM84 is easier to mimic than many other types, making it a good candidate for a first attempt at making a digital magic eye.

To start, one will need some basic information about the original tube, and its surrounding circuitry. On Sølvsuper 9, and many other radios, the EM84 is providing a visual representation of the radio’s AGC voltage, and this voltage is proportional to the signal strength. Here, the AGC voltage is delivered from the detector circuit via a 3.3MΩ resistor. Therefore, the indicator tube (and its digital replacement) must have a very high input impedance for not interfering with the radio’s operation.

We also see that the cathode (pin 3) and one end of the filament (pin 5) of EM84 are directly connected to ground, while the other end of the filament (pin 4) connects to a nominal 6.3VAC from the mains transformer (labeled x). We are thereby measuring the input voltage of the EM84’s control grid with respect to ground. A grounded cathode and one grounded end of the filament is an important prerequisite for the following circuit to work. The heater voltage will be used as supply for the EM84 replacement, and needs to be rectified an smoothed.

EM84 hooked up outside the chassis of an operative Sølvsuper 9, using a Noval Test Adapter for ease for connectivity. At a high signal strength, where the two green segments of the tube meet on the middle, the AGC voltage is around -10V. This is important information for selecting the input gain of the digital indicator tube.

Schematic claims that pin 5 is connected to GND and pin 4 to heater supply, but on this actual radio, these two pins are swapped. The circuit must be designed to allow both alternatives.


I decided to split the solution on to two PCBs. The first one is a small, circular board, which contains rectifier, smoothing cap, fuse, ferrite bead, and pins that fit into the noval socket.

On the second board, there is an ATMEGA328P-AU microcontroller, which uses one of its ADC inputs to measure the AGC voltage, and presents the values as bar graphs on a 0.91″ OLED display. The MCU needs some surrounding circuitry, which we will go through step by step.

An LDO regulator stabilizes the rectified heater voltage at 5VDC. It is important that this voltage is stable, since it also acts as reference voltage for the A/D-converter.

The AGC voltage from the radio varies between 0 and about -10V. This must be flipped to a positive voltage and reduced to max 5V to be measured by the MCU. This is done by a single OP AMP, configured as an inverting amplifier with a gain of -(R2/R3) -0.45. The input impedance of this circuit must be very high to avoid affecting the radio’s operation.

One way to look at an OP AMP circuit like this, is that the OP AMP will continuously adjust its output voltage in a way that makes the two input voltages equal. The positive input (pin 3) is tied to GND (0V), so the OP AMP will set its output (pin 1) to a voltage where also its negative input (pin 4) is 0V. This point is sometimes referred to as virtual ground. The AGC voltage is connected to the OP AMP via a 15MΩ resistor, hence the input resistance of this stage is 15MΩ. The chosen CMOS-based OP AMP has a very high differential input impedance of 10TΩ||3pF. For the slowly changing AGC voltage, the input impedance is practically infinite, and lets us use high value resistors to set the gain.

On the stage’s output, there is an RC low pass filter (R1 and C5), with cut-off frequency of 1.6 Hz, to reduce/eliminate display flickering due to noise on the AGC line. Further filtering will be performed in firmware.

In addition to the MCU’s standard bypass caps and 16MHz crystal with load caps, I’ve added an MCP130T-460 voltage supervisor. This ensures that the MCU doesn’t try to start before the regulated supply voltage has stabilized at minimum 4.6V. Without this, the MCU could try to start at a lower voltage, and behave unpredictably or freeze. A 6-pin FFC connector is used for firmware upload and debugging via a custom USB-to-UART adapter.


Breadboard prototyping the digital EM84. A homemade microcontroller board is used.


A 3D modeling tool like Fusion 360 is useful for planning how the pieces shall fit together, and to design the plastic parts to 3D print. It will be a tight fit, but all the parts can be squeezed into an acrylic tube with 18mm inner diameter (20mm outer).


The white OLED display needs to be coated with a green color to look authentic. With this solder mask, I came really close to the original indicator tube.

The solder mask needs to be cured with UV light. I used a homemade lightbox that I’ve previously used for exposure when manufacturing PCBs at home.


Design-/production files (KiCad, Gerber) and 3D modes (.stl) are shared on Github. I used JLCPCB.com to manufacture the boards. Other PCB manufacturers should also be able to read the Gerber files.

Before soldering the ATMEGA microcontroller, you need to burn bootloader.

The assembled boards. It’s a good idea to upload firmware and test the solution before soldering the EMI shield, since it covers many of the components.

I’ve written the firmware in C code, using PlatformIO, and shared it on github. What the firmware does is basically reading the value of the inverted AGC voltage, and mapping it to a value which is presented as two symmetrical bar graphs on the display.

Calculation of a weighted/moving average of the ADC value contributes to limit display flickering due to noise/rapid changes of the AGC voltage.

For now, I’ve only implemented a linear mapping between digitized AGC voltage and bar graph height. The original EM84 has a nonlinear relationship between control grid voltage and bar height, which can be imitated in code, but I found that with Sølvsuper 9, the linear approach works well.


Firmware upload via a custom designed FTDI adapter.

The black plastic parts are printed with ASA filament, but other filaments like PLA, ABS or PETG will do. In this picture, the acrylic tube was scratched after several stages of prototyping/assembly/disassembly, but don’t worry; I replaced it with a freshly cut one before installation in the radio.


Test run at different AGC voltages (signal strengths). The display may appear a little blurred on the photos, because I struggled to get good photos with a cell phone camera. In reality it looks crisp.


Demonstration video of the digital tuning indicator, mounted inside a Sølvsuper 9. First is a few seconds of FM from a commercial broadcast station, then I’m switching over to MW to play music from a homemade AM transmitter (the video was recorded on Christmas eve, hence the choice of music).

I posted this video on the Facebook group of the Norwegian Historical Radio Society, asking the members to identify what’s unusual with this radio. There were a lot of replies, but none of them pointed out that there was something special about the tuning indicator. I take that as a sign that I succeeded in what I was aiming to do: making a convincing digital “magic eye” 🙂

Will I be using this device? Probably not, since NOS EM84s are still available. This was, however, an interesting project, and I learned a lot along the way. The concept can probably be used as basis when designing replacements for more scarce indicator tubes later.



Leave a comment