Casio CFX-9950G communications protocol
Erik Grindheim, August ~ October 2001
This document describes the communication process for transferring individual values to
or from the graphic Casio calculators. Everything in this document is based on
experiments carried out with the CFX-9950G. Still the information should be valid for all
the compatible units that go into the so-called CFX-9850G series of Power Graphic
calculators from Casio.
The communication is initiated by the Casio when the Send( or Receive( command is
run. This transfers an individual value to or from one of the “Alpha Memory” variables.
These commands can also transfer Matrix data, List data and Picture data, but none of
these subjects are covered in this document.
Electrical:
TTL-level (High=5V and Low=0V), asynchronous serial half-duplex communication,
connects to a PC´s RS-232 COM-port with a MAX232 or equivalent level-converter circuit.
The Casio-plug is a standard 2.5mm stereo jack with the following pin-designations:
Sleeve Ground
Ring Data to Casio
Tip Data from Casio
Baud-rate: 9600 bps
Parity: none
Byte-size: 8 bits
Stop-bits: from Casio: 2 bits
to Casio: 1 bit
Communication process to SEND variables:
This section describes the data blocks transferred when using the Send( function to send a
variable from the Casio to the outer world.
When the command is issued the Casio sends an “attention request”, one byte: 0x15. Then
the external device must reply with a “device present”, one byte: 0x13. If the Casio doesn’t
receive this byte (0x13) within 0.5 ~ 1 second there will be a timeout and the Casio displays
the Com ERROR message.
When the first handshaking-procedure (0x15 and 0x13) is over the Casio starts to send the
Variable-description packet, which consists of 50 bytes.
The external device receives this and confirms with one byte: 0x06.
Then the Casio sends its Value packet, consisting of either 16 or 26 bytes. Packet length
depends on whether the variable also contains an imaginary part or not. If the variable has
never been assigned a value since the last reset of “Alpha Memory” this packet will not be
sent at all.
The external device also receives this packet and confirms with 0x06.
(If an empty variable is sent, then there is no Value packet, and this byte is not sent either.)
To close the communication cycle the Casio sends an End packet of 50 bytes. The end packet
is always the same; none of the bytes change their value.
The diagram at the next page clarifies how the process is carried out:
Casio CFX-9950G communications Erik Grindheim 2 / 9 .
Instruction: Send(
Casio: External device:
Variable-
packet
Value
packet
End
packet
Casio CFX-9950G communications Erik Grindheim 3 / 9 .