A Mathematics
Engine For
Microcontrollers
By Thomas Henry
studs.kreitzer@gmail.com
Go to www.nutsvolts.com/index.php?/magazine /article/
august2013_Henry for any additional files and/or downloads
associated with this article. You can also discuss this topic at
http://forum.nutsvolts.com.
Even though microcontrollers seem pretty magical, when it comes to computations they’re really just simpletons (if
fast). Most can only handle basic integer arithmetic, and only over a fairly limited range of numbers. What’s needed is a
“coprocessor” onto which we can offload any serious mathematical work. Would you believe such a contrivance is
often available at garage sales?
In this article, we’ll explore how to connect a typical microcontroller to the TI- 83 Plus graphing calculator. It’s not
really a coprocessor in the usual sense, but rather an auxiliary outboard device the microcontroller can call upon for
help when the numbers get nasty.
The TI- 83 Plus — by some accounts — is the biggest seller in the Texas Instruments lineup. For better or for worse, just about every middle school or high school student owns one. As a
consequence, it frequently shows up at flea markets,
rummage sales, and second-hand resellers on the Internet.
Even if the unit has a damaged keyboard or LCD screen, it
is still usable in this super-cool project.
If you’re not familiar with the TI- 83 Plus graphing
calculator, let me mention that it easily handles 14-digit
floating point calculations, roots, exponentials, logarithms,
trigonometric functions — even matrix algebra, complex
numbers, and numerical calculus. All of these features
become instantly available to your microcontroller
projects. But there’s more ...
Data logging is a piece of cake — thanks to the large
memory of the calculator — and the data can be stored in
vector or matrix form for further manipulations. If statistical
analysis is up your alley, then look for the seven different
probability distributions within the calculator. Maybe the
most intriguing application of all is direct manipulation of
the calculator’s LCD screen by pixel or by character for
meaningful visual displays.
If this all sounds inviting, then let’s tuck in and see
how to make a microcontroller and the TI- 83 Plus talk
nicely to each other.
44 August 2013
The Connections
Here’s some welcome news. It’s not necessary to
hack into the calculator or modify it in any way to take
advantage of what it has to offer. The TI- 83 Plus already
sports a jack allowing us communication access. (The
manufacturer intended this for downloading software, but
we’ll use it for much more.)
This port is a two-wire affair governed by a somewhat
unusual hardware protocol to be explained in just a
moment. But first, let jump in with both feet and see
what’s going on electrically.
Figure 1 is the schematic for a test circuit which will
hold you in good stead for many explorations. I went with
the common and inexpensive PIC16F88, but I see no
reason why what follows here wouldn’t work with just
about any microcontroller sporting configurable
bidirectional port lines.
The plug which connects to the TI- 83 Plus is a small
2. 5 mm stereo mini-phone type. Actually, the calculator
comes with a patch cord terminated by a pair of these.
Since it’s not really needed for much of anything else with
only one calculator, I cut the cable in two and used one
piece to make the PIC connection. If you do likewise,
you’ll note that the red wire in the cable connects to the
tip, while the white wire connects to the ring. Ground, of