Texas Instruments is a world-class semiconductors company, but unfortunately what they are best known for among the general public is dated consumer-grade calculators thanks to entrenched standardized testing. These testing standards are so entrenched, in fact, that TI has not had to update the hardware in these calculators since the early 90s. They still run their code on a Z80 microcontroller, but [Ben Heck] found himself in possession of one which has a modern ARM coprocessor in it and thus can run Python.
While he’s not sure exactly what implementation of Python the calculator is running, he did tear it apart to try and figure out as much as he could about what this machine is doing. The immediately noticeable difference is the ARM coprocessor that is not present in other graphing calculators. After some investigation of test points, [Ben] found that the Z80 and ARM chips are communicating with each other over twin serial lines using a very “janky” interface. Jankiness aside, eventually [Ben] was able to wire up a port to the side of the calculator which lets him use his computer to send Python commands to the device when it is in its Python programming mode.
While there are probably limited use cases for 1980s calculators to run Python programs, we can at least commend TI for attempting to modernize within its self-built standardized testing prison. Perhaps this is the starting point for someone else to figure out something more useful to put these machines to work with beyond the classroom too. We’ve already seen some TI-84s that have been modified to connect to the Internet, for example.
Thanks to [Nikša] for the tip!
19 thoughts on “Talking To A Texas Instruments Calculator”
In the previous version of this calculator, the ARM Python coprocessor could be bought in an external enclosure and was used the same way as now. Eventually, it was found out that you could use a Feather M0 connected via USB to replace the hardware but also that you could change the firmware (I think it’s a modified MicroPython) to add new modules. That’s what happens when your code is so old that it’s easier to add a coprocessor to add a feature than to change the existing one, even if it makes the TI-84Plus Python one of the slowest Python for calculators
CircuitPython and Adafruit Trinket M0 *
The nice thing about the old never-upgrading calculator platform is that once you are done taking standardized tests you can get the very same calculator you are familiar with from all those school years as a free to run emulator that lives on your phone. My old HP broke and I threw it away over 20 years ago and yet I am never without it.
The nice thing is you can sell it for what you paid for it and get yourself a good calculator.
Back in the 90s we put custom roms on these to play Tetris….
The new ones can work with sensors via a hub, and even program microbits. I want one, even though I really don’t need one, story of my life.
“These testing standards are so entrenched, in fact, that TI has not had to update the hardware in these calculators since the early 90s. ”
What needs upgrading? Math is still math. Perpetual change for changes sake.
The main issue to me is the cost of the calculators. When I was in high school you could only use a TI-83 or -84 for AP tests, and I don’t think I ever heard of anyone getting one for less than $80, which is a chunk of change now and even more 15 years ago. I knew multiple people for whose families that expenditure was a real burden. There was always a small used market from graduating seniors not planning to use it for college, but the window was a narrow one between the end of AP tests and the last day of school, and they would still go for at least $50.
All this for a product that has loooong amortized its development cost and can’t cost more than $20 to produce. It always seemed like cronyism to me.
I was teaching AP physics and math at that time. I had a “classroom set” of the calculators but the batteries were stolen to use in MP3 players at a fantastic rate. I can’t imagine a worse calculator for students with the stupidly low res display and trying to do graphical solutions with huge pixels. Instead of a better device we got entire books on how to use them as is. It was like teaching COBAL as a first computer language.
Oh, they’ve changed over the years. Made cheaper. Both of my kids’ TI graphers died early because the LCD ribbon cable got sheared by its own PCB. Everything inside is the purest jank, death by a million cost reductions.
We can “commend” TI for making profits? They’re a corporation. Did you imagine they had any other goals? Nope. Just profit.
only, ever profit.
not much profit in the Education Division.
That’s actually the complete opposite of reality. The Education Technologies division really doesn’t make much sense alongside the rest of their portfolio. They keep it around specifically because it’s a fantastic source of profits.
Riiight. EE’s hate their work. They hate having good labs and equipment and doing new things.
just add tcpser and you’d have a pretty cool little telnet terminal
You can buy heat shrink with heat activated glue on the inside for waterproof connections or to prevent the heat shrink coming of the cable when used for strain relief like in the article picture.
The reason they’re using an ARM coprocessor is even jankier still: Zilog’s C compiler only supports C89, and it likes to crash if you give it something it doesn’t expect. So they added a second ARM-based chip just to work around Zilog’s ancient compiler. Meanwhile at Cemetech, jacobly (Jacob Young) single-handedly developed an eZ80 clang port, so we have full modern C++ (no STL port though).
But it gets worse! The main chip is NOT an eZ80Acclaim. It’s a custom ASIC that combines 406 K of RAM (256 K + 320 × 240 × 2 bytes for a framebuffer) with several off-the-shelf ARM IP cores, substituting an eZ80 CPU core for an ARM.
This is disastrously janky: the internal ARM bus is a high-latency, high-bandwidth bus, while the eZ80 (being a more-or-less drop-in replacement for the Z80) is optimized for a zero-latency, low-bandwidth bus, which results in the CPU getting none of the bandwidth benefits and the full brunt of the latency. Overall, the CPU spends about two-thirds of all cycles stalled.
This is TI’s second version of the ASIC. In the first version, it was much, much worse: each and every byte read from flash incurred NINE wait states; reads from RAM still incur a three-cycle penalty. Yes, the OS executes directly from flash. On their next try, they added a 16 K cache (still with one to two wait states for each cache hit) and switched to a QSPI flash rated for 133 MHz. I don’t have a ‘scope of my own, but someone who does have a ‘scope told me it’s only running at 12 MHz—but they at least enabled QSPI mode.
I remind you that TI claims to be the company that invented the integrated circuit and their primary business is the design and fabrication of ICs.
This where I meant to put this, but back in the 90s we put hacked roms on the TIs to play Tetris….
See, so old now I can’t use a website…
Please be kind and respectful to help make the comments section excellent. (Comment Policy)