Casio Graphing Calculator Serial Interface: Priority Disclosure of Timing Discoveries, Encoding Invention, and Operational Modes (FX-9750 and FX-9860 Series)
Year: 2026
Type: article
Abstract: This document establishes a public, timestamped priority record for a set of original technical discoveries and inventions relating to the Casio FX-9750 and FX-9860 series graphing calculator serial interface. These discoveries and inventions were made independently by the author beginning in 2007/2008 with the most recent invention completed in 2025. Throughout this document, the term discovery is used where the contribution identifies a previously undocumented property of an existing system; the term invention is used where the contribution creates a new method, scheme, or application that did not previously exist. There are five families of microcontrollers proven to work with these discoveries, invention, and SB-62 cable interface circuit; Picaxe, ESP8266, ESP32, BBC Micro:bit (V1 and V2), and Arduino Uno R3. Three discoveries are documented. First, the unbounded host wait (former retired term was "READY-gated timing tolerance"): the discovery that the Casio RECEIVE() protocol has two useful locations at which the calculator waits for extended periods without issuing a COM error. Four locations were found, two are useful. These windows of opportunity in the handshaking protocol were originally designated W1 and W2, now named Gap 2 and Gap 3. At these locations, no upper bound to the wait time was observed. Previous reporting of wait times failing after 1 hour did not account for battery voltage depletion generating a COM error. Testing in 2026 indicated battery voltage is the limiting factor. Second, use of host-window interval logging (former retired term was "READY-window interval logging"): a technique exploiting this tolerance to achieve consistent autonomous time-interval data logging at any interval from 1 second to 300 seconds, depending on sensor type. This is validated across five microcontroller families — PICAXE, ESP8266, ESP32, BBC micro:bit and Arduino Uno R3 — and across six published builds, every one of which was compiled and run to a full interval logging session against an FX-9750GIII in 2026. The FX-9750G Plus of 2007–2008 and the current GIII are both covered by the underlying protocol result. Third, electrical characterisation of the SB-62 port. Both lines are open-drain with internal pull-ups. Measured on the calculator's transmit line while held static inside a host-wait window, where nothing is switching: 2.75 V on an FX-9750GIII and 4.75 V on an FX-9750G Plus, and 0 V at high impedance — about 120 kΩ — when the port is not in use. The receive side was demonstrated by replacing the cable's series resistor with a diode that can only sink current: the link continued to transmit, so the calculator raises its own receive line. The measurements are 2026. The receive-side conclusion is from 2007/2008. The transmit-side characterisation appears in no prior source. The receive-side behaviour, however, was already recorded in this author's own first-edition manual of July 2008, which notes that the Casio “has an active serial in line that sources current” and fits the diode “to pull the normally high Casio Rx line low”. The 2008 document asserts it and builds a working circuit on it; the 2026 work measures it. The first-edition manuals are deposited unaltered, with their original 2008 file properties, at https://doi.org/10.5281/zenodo.22004530 Two consequences follow. A pull-up on the receive side is not optional: asynchronous serial idles high, the calculator's port defines no idle state when it is not in use, and without a pull-up a listening device sees a continuous break condition. And because the port is open-drain, an attached device need only sink current, which makes the interface voltage-agnostic and is why a single cable serves two calculator generations thirteen years apart. A figure published by this project is withdrawn. Earlier material stated that the calculator “drives its transmit line weakly, about 1.4 V at idle”. That figure was a multimeter averaging a line switching between 0 V and 2.75 V. The line is weakly driven — high source impedance — but its voltage is correct. The pull-up remains necessary, for the reason given above rather than the reason previously given. Terminology note, added 14 August 2026. The term "READY-gated timing tolerance" used throughout this disclosure has since been retired. The current vocabulary is "unbounded host wait" for the protocol property and "host-wait window" for each position where it is exposed; the two windows designated W1 and W2 here are now the description window and the value window. The change was made in August 2026, before peer-reviewed publication. The justification is that READY is a signal name in valid/ready hardware handshaking, a physical line asserted by the receiving end, and this link has no such line, the waiting running in the opposite direction. The deposited PDF is unchanged and remains the priority record. Current terminology, code and documentation: https://mikefentonnz.github.io/projects/casio-calculator-data-logger-hack.html There are seven inventions documented. One invention is documented in external behaviour only, with full technical details withheld pending peer-reviewed publication: Mantissa Frame Encoding (MFE), a novel encoding scheme that transmits synchronous readings from multiple sensors to the calculator in a single RECEIVE() call, recovered by a universal Casio BASIC decoder requiring only arithmetic operations available on all supported models. Two standard configurations have been validated: up to three sensors at 12-bit resolution and up to four sensors at 8-bit resolution, each with a structured application field supporting status reporting and alarm management. Zero transmission errors have been observed across all four validated microcontroller platforms. Together these discoveries and inventions support four validated operational modes; all of these are inventions. Mode 1 (remote control) uses the calculator keypad to transmit user-generated values to a connected microcontroller for execution, demonstrated in the Casi robot project. Mode 2 (multi-sensor display terminal) uses MFE-encoded unbounded host wait synchronous sampling to display real-time sensor readings with live graphing and statistical analysis. Mode 3 (human-machine interface with alarm management) extends Mode 2 using the MFE structured application field for fault monitoring and system status reporting. Mode 4 (secure input device) uses the calculator's tamper-evident physical keypad to transmit user-entered discrete values to a microcontroller; an application with no prior equivalent via the Casio serial interface. Combined Mode 1 and Mode 2 operation is claimed as a further original invention: a closed-loop measurement and control system in which the calculator simultaneously serves as display terminal and control input device. This is identified as the intended basis for the first New Zealand secondary school Industrial Measurement and Control course. No prior secondary school IMC course using a calculator-based or equivalent low-cost system has been identified in New Zealand or internationally. A user-triggered field survey logger combining MFE-encoded automatic sensor acquisition with microcontroller-maintained elapsed-time recording and user-entered categorical observation is described as a further original invention. A prior art statement documents a comprehensive search of community forums, GitHub repositories, and academic databases. The most technically sophisticated prior work identified, MiniExperimenter (shabaz123, 2020), operates via the EA-200 hardware protocol at a different baud rate, does not solve the interval timing problem, and does not achieve synchronous multi-sensor encoding within a single transmission. It does not anticipate any claim made in this disclosure. A separate note is added here about the SB-62 cable interface circuit used to connect the Casio calculator to the microcontroller. Using a diode (in this case, a 1N4148) as an open-drain level translator is textbook practice and is not claimed as novel. What is recorded here is its application to the Casio SB-62 port, arrived at independently in 2007 and documented in the author's first-edition manual of July 2008 (https://doi.org/10.5281/zenodo.22004530), and revalidated on all six published builds in 2026. Open-source code for unbounded host wait interval logging is published at https://github.com/MikeFentonNZ/Casio-calculator-datalogger-picaxe-esp-microbit-arduino under CC BY-NC-SA 4.0. A summary of what is claimed, what the evidence is, and what is withheld is maintained in FINDINGS.md in that repository. The technical manual for this interface — the wiring, the RECEIVE() sequence, and every byte of every packet in a transaction — is published as RIGEL Casio Serial Protocol Technical Manual, https://doi.org/10.5281/zenodo.22003135. Its 2008 first edition, deposited unaltered, is at https://doi.org/10.5281/zenodo.22004530. The encoding invention details are withheld from all licences pending peer-reviewed publication.
Author: Fenton, Michael
Institution: Royal Society Te Apārangi
Language: English
Subfield: Electrical and Electronic Engineering
Field: Engineering
Domain: Physical Sciences
Open Access status: green
OpenAlex ID: W7142871442
FWCI:
Cites:
Cited by:
Related to:
