A Modern Calculator and Clock From a Broken 50-Year-Old Calculator

by shiura in Circuits > Clocks

501 Views, 1 Favorites, 0 Comments

A Modern Calculator and Clock From a Broken 50-Year-Old Calculator

DSC_4051ts.JPG
thumb2.jpg
Calculator Restomod : Always-Accurate RPN with Undo Function
WiFi Sync Clock with VFD extracted from old calculator

In this project, I show how to turn parts from a single old, broken calculator into two modern desktop accessories—an RPN calculator and a Wi-Fi–synchronized clock. You don’t have to choose just one: both can be built from the same calculator.

The RPN calculator features a two-level stack display (16 levels internally) and performs calculations using fraction-based arithmetic, so results are always exact, no matter how many operations you perform. While the original calculator was limited to just 6 digits, the modified version has been upgraded to a 16-digit display. A multi-level undo function further makes it practical for real use.

The Wi-Fi clock automatically retrieves the current time over the network, providing highly accurate timekeeping. Its exposed vacuum fluorescent display (VFD) gives it a distinctive retrofuturistic, steampunk-inspired look, making it both a functional clock and an eye-catching desk object.

Although this project is based on a CASIO MINI CM-602, the same approach can be applied to many other vintage calculators equipped with VFDs.

Supplies

mini.JPG
comparison.jpg

Old Broken Calculator with a VFD (Vacuum Fluorescent Display)

  1. VFDs, commonly found in old calculators from the 1970s, are generally easier to control compared to the LCDs used in calculators from later eras.
  2. They also provide enough internal space for circuit modification.
  3. The PCB (printed circuit board) is usually not densely populated and is often single-sided, which makes it easy to analyze and modify.
  4. VFDs consume more power than LCDs, so these calculators typically have large power supplies (usually two to four AA batteries). This makes them well suited for driving relatively powerful microcontrollers.

Microcontrollers

  1. Small microcontrollers such as the Arduino Nano, Raspberry Pi Pico, and ESP32 can be used.
  2. As described below, the physical width of the microcontroller board affects how easy it is to integrate into the original enclosure.
  3. For Wi-Fi connectivity and automatic time acquisition via NTP, the ESP32 is particularly useful.

For Modern Calculator

  1. Display device : An I²C-connected display is recommended to minimize wiring. Choose a display that fits inside the original enclosure. Since VFD calculators usually have semi-transparent (smoked) windows, a display with a built-in backlight is preferable.

For VFD Wi-Fi Clock

  1. DC–DC boost converter : VFDs require a relatively high voltage (around 25 V), so a boost converter is needed to step up from 5 V to 25 V. Low-cost modules based on the MT3608 IC are widely available.
  2. High-voltage driver ICs : To switch the 25 V lines, about two driver ICs are required. In this project, Mitsubishi Electric M54564P transistor array ICs (source-type drivers) are used.

Disassembly of Old Calculator

スクリーンショット 2026-01-02 22.16.19.jpg
スクリーンショット 2026-01-02 22.16.47.jpg
スクリーンショット 2026-01-02 22.17.24.jpg
スクリーンショット 2026-01-02 22.18.28.jpg
スクリーンショット 2026-01-02 22.18.49.jpg
スクリーンショット 2026-01-02 22.24.24.jpg
  1. Before disassembly, make sure the calculator is truly broken. Destroying a working calculator is not recommended.
  2. Disassemble the calculator and disconnect the battery power lines by desoldering them from the PCB.
  3. Use a soldering iron to remove the VFD. If possible, check the wiring beforehand and identify which pins/lines correspond to the cathode (heater filament)—this will make later steps much easier.
  4. Remove the CPU and other unnecessary components. Parts such as the power switch are often worth keeping, as they can be reused.
  5. The keypad contacts are often oxidized, which can cause poor electrical contact.Gently clean the contacts using fine-grit sandpaper or a similar abrasive, then use a multimeter to confirm good continuity.

Reverse Engineering and Planning the Modification

wiring1.jpg
wiring2.jpg
rp2040.JPG

Before modifying the calculator, trace the PCB patterns and examine the following points carefully:

  1. Identify the relationship between each key on the keypad and its wiring. Keypads are usually wired as a matrix, where each key is located at the intersection of row and column lines arranged in a grid. Keys are read by scanning combinations of these rows and columns, so it is important to understand this grouping in advance.
  2. Check the pin pitch of the original CPU. In many calculators from the 1970s, the CPU uses the same 0.1-inch (2.54 mm) pin pitch as modern microcontrollers. If the width and spacing of the two pin rows also match those of a modern microcontroller, the replacement microcontroller can be plugged directly into the original CPU footprint. This greatly simplifies the modification and significantly reduces the amount of rewiring required.
  3. Examine the relationship between the original CPU pins and the keypad terminals. If the keypad terminals are already connected to pins that correspond to the microcontroller’s GPIO (general-purpose input/output) pins, the keys can be read without rewiring. Pins that do not match can be handled by cutting PCB traces on the back side and adding jumper wires, so a perfect match is not required. However, choosing a microcontroller that covers as many keypad connections as possible with GPIO pins will make the modification much easier.

In the case of this calculator (CASIO MINI CM-602), it was found that an RP2040-Zero can be plugged in directly, and most of the keypad terminals can be read directly via GPIO pins.

The display is wired directly to the microcontroller, so it does not need to be considered at this stage. When using I²C communication, the display can be driven with only about four wires.

Tips

  1. In many calculators, key scanning (applying a voltage to each row or column of the key matrix one at a time) and dynamic display scanning (rapidly switching each digit on and off to drive all segments with a small number of wires) are shared on the same signal lines.
  2. In this calculator as well, the terminals highlighted by the green frame in the photo above are shared between key scanning and display scanning.
  3. Based on this knowledge, it is useful to identify which VFD pins correspond to digit scanning (grids) and which correspond to segment lines. This will make the later clock-building step much easier.
  4. As mentioned earlier, it is also a good idea to identify the cathode (heater filament) pins in advance. In the photo above, the heater terminals are indicated by yellow circles.


Converting It Into a Modern Calculator

finish1.jpg
finish2.jpg

Now it’s time to convert the calculator into a modern one.

  1. Prepare an I²C-controlled display of an appropriate size, and confirm that it can be driven from the microcontroller using available pins (pins not used for key scanning).
  2. Cut away part of the PCB to create space for the display, then mount the display in place.
  3. Mount the microcontroller by soldering it directly or using a socket. Whether a socket can be used depends on the available internal space. In the case of the CM-602, the power supply is on a separate, stacked PCB, leaving enough space to mount the microcontroller on the back side using a socket.
  4. Rewire keypad lines that are not connected to GPIO pins, as well as the power lines, by cutting PCB traces and adding jumper wires where necessary.
  5. Wire the power supply lines. Reusing the original power switch left on the PCB is a clean and convenient solution.

Programming

DSC_3756.JPG

Flash the calculator firmware onto the microcontroller.

  1. An example of the RPN calculator code used in this project is available on GitHub: https://github.com/sh1ura/RPN-calc-with-fractional-BCD. This repository is written in Japanese, but it should be readable using machine translation.
  2. Additional calculator projects can be found here: https://github.com/sh1ura/hobby-rpn. This repository includes not only fraction-based (error-free) RPN calculators, but also scientific calculator implementations.
  3. Depending on the display device you use and the number and types of keys on the keypad, some code modifications will be required. Deciding which functions to assign to each key is one of the most enjoyable parts of the project.
  4. In my implementation, keys support both short presses and long presses to trigger different functions. Frequently used RPN operations—such as stack swap (SWAP) and sign inversion—are assigned to long presses.

VFD Inspection

スクリーンショット 2026-01-02 23.03.55.jpg
vfd.jpg

Principle

  1. Driving a VFD requires two different power supplies. One is a low-voltage supply (from around 1 V up to a few volts) for heating the cathode, and the other is a high-voltage supply (around 25 V) applied to the anodes and grids.
  2. The cathode is heated to approximately 600 °C, which makes it easy for electrons to be emitted. This is why a low voltage of about 1 V is typically applied to the heater.
  3. To control the emitted electrons, a positive voltage of around +25 V is applied to the grids and anodes. Electrons emitted from the cathode are attracted to this positive potential, accelerated, and collide with the phosphor-coated anodes, causing them to emit light.
  4. Only the segments for which both the corresponding grid and anode are at +25 V will light up.

Investigation

  1. First, identify the heater (cathode) terminals. If this information is already available from the original circuit, this step can be skipped. Otherwise, it can be determined using the VFD alone.
  2. Most pins are electrically isolated from each other, but only one pair of pins should show continuity with a resistance of around 10 Ω. These two pins correspond to the cathode (heater).
  3. The grid and anode pins can be identified after performing a lighting test, as described below.

Lighting Test

  1. Apply voltage to the heater filament. Although the nominal heater voltage is often around 1 V, some VFDs require higher voltages. For safety, it is best to start with a low heater current. Instead of preparing a dedicated low-voltage power supply, use a series resistor connected to the heater. Begin with a resistor value approximately five times the measured heater resistance, connect the resistor in series on the 5 V (high-voltage) side, and apply 5 V. After confirming illumination, gradually reduce the resistance to achieve appropriate brightness.
  2. Apply +25 V to all remaining pins (all grids and anodes). Because the DC–DC boost converter shares a common ground between 5 V and 25 V, the 25 V ground must be connected to the low-potential side of the heater. At this point, all segments should light up.
  3. Then, remove the 25 V supply from the pins one by one. If removing a pin causes an entire digit to turn off, that pin is a grid. If removing a pin causes a specific segment to turn off across all digits, that pin is an anode (segment).
  4. After all wiring is complete, the pin assignments can be adjusted later in microcontroller software, so at this stage it is sufficient to classify the pins into heater (cathode), grids, and anodes.

Circuit of VFD WiFi Clock

circuit.jpg
IMG_20251231_133848795.jpg
IMG_20251231_144126807.jpg
circuit2.jpg
circuit1.jpg
  1. Arrange the ESP32 microcontroller, DC–DC boost converter, and M54564P transistor array ICs on a piece of universal prototyping board. No additional components are required—only wiring.
  2. Connect GND and 5 V between the ESP32 and the DC–DC converter. Both boards have USB connectors; powering either one will supply power to both.
  3. Verify that the ESP32 can be programmed using the Arduino IDE before proceeding.
  4. Connect a series resistor to the VFD heater terminals, and connect the two ends to GND and 5 V.
  5. Connect the 25 V output from the DC–DC converter to the Vs pin of each M54564P. Be sure to connect GND as well.
  6. Connect the GPIO pins of the ESP32 to the input pins of the M54564P. Note that some ESP32 pins are unavailable or input-only, so choose the GPIO pins carefully.
  7. Connect the output pins of the M54564P to the VFD grids and anodes.

Programming

スクリーンショット 2026-01-02 23.45.36.jpg
wifimanager.jpg
seg.jpg

Clock codes are at https://github.com/sh1ura/WiFi-Sync-NTP-Clock-with-ESP32-and-VFD

  1. The project uses https://github.com/tzapu/WiFiManager to configure and store the SSID and password on the ESP32.
  2. The NTP server FQDN and local time zone are also configured via the WiFiManager web interface.

Modification of the code

  1. List the GPIO pin numbers in the arrays named segment[] and grid[].
  2. In the segment[] array, order the pin numbers from segment a to g of the 7-segment display, followed by the pin for the decimal point.
  3. In the grid[] array, order the pin numbers from left to right.

Enclosure and Design

DSC_4042t.JPG

In my case, the enclosure was fabricated using a 3D printer.

  1. The 3D models are available here: https://github.com/sh1ura/WiFi-Sync-NTP-Clock-with-ESP32-and-VFD
  2. You can create clocks with very different styles using woodworking, metal fabrication, or acrylic.
  3. Unlike the original calculator, leaving the VFD exposed can give the clock a distinctive and characterful appearance.