Hacking a CASIO fx-5800p Programmable Calculator

 Some information about the internals of fx-5800p, a cute programmable calculator that was very popular in the surveying market in China in the past.

1. SoC


  • SoC Markings: OKI ML610901B (CPU, RAM, Mask ROM, LCD Driver)
  • Flash: 29LV800CBT (Only half of the Flash ROM is being used)
  • RAM: 62256
  • Oscillator: Unknown, probably embedded.
  • The oscillation frequency can deviate by quite a lot during serial communication. It's probably an RC or on-chip RC oscillator.

2. OS Update & Data Encoding

“OS” refers to the binary data residing in the external Flash ROM. In fact, most of the core math, hardware access, communication, and maintenance functions are hard-wired inside the SOC (Mask-ROM). The font set and the power-off screen are also in the Mask-ROM.
From what I know so far, the UI, statistics, and programming functions are probably in the external flash, which can be reprogrammed.
To enter the OS Update menu:

  1. Shutdown the device using [SHIFT]+[AC/ON]
  1. Hold [MODE]+[7], Press [AC/ON]
  1. Press [⬅️], then [9]
You’re now in the maintenance menu, press [2] for OS Update functions. (Warning: you may accidentally delete your OS, be careful. Self-test or OS Update will cause a memory clear)

OS Update Process

Notice the data transmission is scrambled. It's probably some early form of bitstuffing.

3. et cetera

Some photos