Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Vos tutoriels et astuces


Index du Forum » Vos tutoriels et astuces » Casio 3-pin serial comms limitation removed - Picaxe and ESP / Arduino datalogging
Bob2025 Hors ligne Membre Points: 3 Défis: 0 Message

Casio 3-pin serial comms limitation removed - Picaxe and ESP / Arduino datalogging

Posté le 26/10/2025 03:55

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 saves $$$$ having 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 here:

https://mikefentonnz.github.io/projects/casio-calculator-sensor-upgrade.html

Fichier joint


Lephenixnoir Hors ligne Administrateur Points: 25435 Défis: 174 Message

Citer : Posté le 26/10/2025 11:51 | #


This is quite fascinating. I never looked into the data acquisition side of the protocol, only ever using 3-pin for calc-to-calc communication. Can you elaborate on how you keep the calculator busy without raising an error? The diagram on your page says "Pause loop" which I assume does some regular housekeeping to keep the protocol out of timeout range without actually transmitting anything?
Mon graphe (27 Juin): (MQ || Rogue Life) ; serial gint ; passe gint 3 ; Azur ; ...) || (shoutbox v5 ; v5)
Bob2025 Hors ligne Membre Points: 3 Défis: 0 Message

Citer : Posté le 27/10/2025 10:50 | #


I systematically inserted a single pause at one step, testing each step at a time. That was what I had intended to do 2007-2010 but never had the time to revisit until now. The Picaxe or ESP microcontroller was coded with ever increasing time delays to see how long each step could be delayed before triggering a COM error. No housekeeping. just sit and make the Casio wait until it timeout out.

Hence the very simple flow diagram showing the best place to insert a pause to allow timer interval logging.

A very thorough search indicates I am the first to find this and document it. I am soon uploading a technical document to my website link that includes detaield packat descriptions, checksum examples, and classroom teaching ideas.

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2025 | Il y a 139 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd