BobNz
- 2
- 0
- TL;DR Summary
- The main limitation of using a Casio calculator with Picaxe or ESP / Arduino devices has been overcome. This enables low budget data logging for Biology, Chemistry, Physics and Mathematics using learners own calculators. Time interval logging is now possible without triggering a COM error. This eliminates having to purchase costly EA-200 or CLAB data acquisition units. Ultra low-cost home-made sensors for colorimetry, water hardness, conductivity, salinity, and thermodynamics investigations.
My original code from 2006 has been used by others, and after 20 years I revisited using a Casio FX-9750 as a datalogger. Experiments proved it is possible to pause the calculator in the middle of a RECEIVE() request WITHOUT generating a COM error. This likely works with FX-9860 and FX-CG50 3-pin ports.
Quick history: I did the original Picaxe Forum post nearly 20 years ago of classroom use of a Casio FX-9750G connected to a Picaxe for data logging in Physics classes. Forum member Anobium then did a version later in 2011/2012. Clearing out my home lab recently I found my old class set I had made for an education research project (published) when I recalled an idea I had at the time but never tested until now.
For the last 20 years the wider community documentation interpreted the Casio FX-9750 and FX-9860 link mode as synchronous and blocking: once a transfer begins, both connected devices must complete it.
This prohibited real-time interval sampling because Casio BASIC lacks timing functions like PAUSE, WAIT, or a real-time clock. The calculator alone cannot manage precise time-based data collection. Instead, data acquisition units like the EA-100, EA-200 and CLAB handled timed interval sampling independently of the FX-9750 and FX-9860. However they cost $400 - $900.
The innovation: This post shares that I have invented and tested a new Picaxe BASIC algorithm that uses a previously undocumented and unknown exploit that permits pausing the RECEIVE() transmission without generating a COM timeout error.
I have completed a single universal Picaxe Basic program for 08M2 and 14M2 chips. For simple sensor units for younger learners the 08M2 chip connected to a single analog sensor (e.g. Temperature, light, sound, heartbeat) and/or a single digital input. For rates of change or more complex experiments in chemistry, physics or biology, a 14M2 which permits logging up to 3 sensors simultaneously.
The innovation is that both loggers now ALSO RECORD ELAPSED TIME STAMPS with the sensor readings!
The simple 3-pin serial protocol likely works with FX-9860 and FX-CG50 calculators.
This saveshaving to purchase EA-200 or CLAB data acquisition units to enable data logging on the calculators.
The Casio BASIC program is also universal: It works with any connected microcontroller or board; Picaxe, ESP8266, ESP32 and others.
As a proof of concept, I have a working Wemos D1 mini running my new RECEIVE() algorithm.
More details including teaching strategies here:
https://mikefentonnz.github.io/projects/casio-calculator-sensor-upgrade.html
Quick history: I did the original Picaxe Forum post nearly 20 years ago of classroom use of a Casio FX-9750G connected to a Picaxe for data logging in Physics classes. Forum member Anobium then did a version later in 2011/2012. Clearing out my home lab recently I found my old class set I had made for an education research project (published) when I recalled an idea I had at the time but never tested until now.
For the last 20 years the wider community documentation interpreted the Casio FX-9750 and FX-9860 link mode as synchronous and blocking: once a transfer begins, both connected devices must complete it.
This prohibited real-time interval sampling because Casio BASIC lacks timing functions like PAUSE, WAIT, or a real-time clock. The calculator alone cannot manage precise time-based data collection. Instead, data acquisition units like the EA-100, EA-200 and CLAB handled timed interval sampling independently of the FX-9750 and FX-9860. However they cost $400 - $900.
The innovation: This post shares that I have invented and tested a new Picaxe BASIC algorithm that uses a previously undocumented and unknown exploit that permits pausing the RECEIVE() transmission without generating a COM timeout error.
I have completed a single universal Picaxe Basic program for 08M2 and 14M2 chips. For simple sensor units for younger learners the 08M2 chip connected to a single analog sensor (e.g. Temperature, light, sound, heartbeat) and/or a single digital input. For rates of change or more complex experiments in chemistry, physics or biology, a 14M2 which permits logging up to 3 sensors simultaneously.
The innovation is that both loggers now ALSO RECORD ELAPSED TIME STAMPS with the sensor readings!
The simple 3-pin serial protocol likely works with FX-9860 and FX-CG50 calculators.
This saveshaving to purchase EA-200 or CLAB data acquisition units to enable data logging on the calculators.
The Casio BASIC program is also universal: It works with any connected microcontroller or board; Picaxe, ESP8266, ESP32 and others.
As a proof of concept, I have a working Wemos D1 mini running my new RECEIVE() algorithm.
More details including teaching strategies here:
https://mikefentonnz.github.io/projects/casio-calculator-sensor-upgrade.html