You’ll see the results on the calculator’s LCD screen. So, it’s
really nothing more than a send-and-echo business, but will
give you confidence that the one-byte character
communication is working well in both directions. (See the
sidebar for information on free terminal software for the
TI- 83 Plus which is great for this experiment.)
If everything has worked out for you, then we’re finally
ready to start sending complete commands and make that
calculator obey our every wish.
High Level Communication
So, we now know how to send and receive single
bytes. Strings of these are assembled to create entire
message packets which convey values, variables,
commands, and results. This is done by means of a rather
complex language called the TI Link Protocol.
Consider that your calculator has dozens of menus and
hundreds of commands within it, and you’ll appreciate why
the TI Link Protocol is so extensive. In a nutshell, every
single feature of the TI- 83 Plus is accessible via remote
control now, so the associated language must necessarily
be quite large. Fortunately, you really only need to know a
handful of commands to get started having fun.
I gather that the TI Link Protocol was originally intended
to be a proprietary, in-house affair. However, several
enterprising sleuths put in a huge amount of work
experimenting, observing consequences, collecting results,
and writing them up in a final document available now to
the general public. Entitled the Link Protocol Guide v1.4, the
primary authors are Tim Singer and Romain Liévin. You’ll
find it available for free download at www.ticalc.org/
archives/files/fileinfo/247/ 24750.html. This really is a
massive treatment explaining the ins and outs of the
language very well. I’ll focus on a few of the commands
needed to employ the TI- 83 Plus as a mathematics engine
with the PIC, but be sure to pour over the complete
document to get even more ideas for some real
Let’s begin with what’s known as “silent mode remote
control.” All of the actions your calculator normally carries
out by means of keystrokes or menu selections can also be
initiated with the cable connection detailed previously.
A desired command is formatted as a packet made up
of several bytes. Let’s say we wanted to cause floating point
division to occur. The packet would consist of 0x23, 0x87,
0x00, and 0x83 — four bytes total. (Transmit the individual
bytes using the SENDBYTE routine described above). The
first (0x23) tells the TI- 83 Plus that an external
microprocessor is originating the packet, while the second
byte indicates that a command is coming in; not a number,
variable name, or some other entity. The last two bytes —
which really form a 16-bit word — signify that the PIC is
requesting a division. This is followed up with a bit of
software handshaking from the calculator, confirming the
command was received properly.
To make this painless, the library I’ve written contains a
A Preliminary Test
Getting a calculator to communicate with a PIC is
a moderately complex business with plenty of
opportunities for things to act up. When they do, it can
be difficult to determine whether it’s the hardware or
software that’s at fault. For that reason, I began this
project with several simple experiments just to convince
myself I understood what was going on. Here’s a great
first test to give you confidence you’re nailing the basics
In this experiment, we’ll simply tie the TI- 83 Plus
calculator and a PC together, and confirm that they can
send data back and forth. Both devices will be running
terminal software and so will be talking ASCII to each
other. Press a key on the calculator and it’ll be reflected
on the PC. Then, press a key on the PC and look for it
to be echoed to the TI- 83 Plus.
The connection is by means of the commercial
TI-Graph Link serial gray cable. This is manufactured by
Texas Instruments and available for about $15 from
Amazon and other dealers. Attach the mini-phone plug
to the calculator. On the other end, connect the DB- 9
plug to an RS-232 COM port on your PC. If you don’t
have such a fitting, there are lots of inexpensive USB-to-COM adapters kicking around. Again, Amazon is a good
Now, you need to load up some terminal software
on both the TI- 83 Plus and the PC. Let’s focus on the
calculator first. Rather unbelievably, there exists a very
nice and free terminal program for the TI- 83 Plus. In
order to run it, though, you need to first load in a
software shell (also free), so let’s begin there. Go to
joewing.net/projects/ti83/ion and download the shell
entitled ION 1.6. Just follow the easy installation
instructions and you’ll be set for the next step.
Incidentally, ION 1.6 was written by Joe Wingbermuehle.
Next, return to the Web and download Telnet 83
Plus SE 1.9 from www.ticalc.org/archives/files/fileinfo/
178/ 17878.html. This is a full-featured terminal program.
It really is amazing to see a handheld calculator doing
things that a mere 30 years ago were only being carried
out on mainframes. Again, follow the included
instructions to install and use Telnet 83 Plus. The authors
in this case are Justin Karneges (who did the original
implementation) and Hideaki Omuro (who ported it to
run under the ION 1.6 shell).
Now, let’s turn to the PC. I like using the terminal
software written by Br@y++ (that’s not a misprint) and
available for free download at https://sites.google.
com/site/terminalbpp. There’s nothing to install here.
Just run it and away you go.
Here’s an easy-to-miss necessity. The TI-Graph Link
cable is powered by the RTS line on your computer.
(That’s part of the RS-232 protocol). So, in the PC
terminal program, be sure you’ve enabled that line. In the
terminal of Br@y++ I’m using, there’s a button to let you
do exactly that. Conclude by making the communication
settings 9600 baud, eight data bits, one start bit, one stop
bit, and no handshaking.
If you made it past all that (and it took me several
days to sort it out myself), then the calculator and the PC
should be talking nicely to each other. Confirm that you
can send ASCII text back and forth reliably. Just this
experiment alone ought to give you some ideas for future
August 2013 47