Hello all, I suppose it's time to post about a crazy project that I've been working on these past couple weeks. While in college, I've been using online computer algebra systems (CAS), or programs like MATLAB to aid in a lot of math problems, but it's pretty inconvenient pulling out my computer to solve something when I already have my calculator out, so I looked for solutions. I know the TI-Nspire CX II CAS exists, but I've seen it and I personally think the interface isn't the greatest, and I already have a perfectly good TI-84 Plus CE!
So logically, the next solution was to attach an ESP32-S3 microcontroller and use it as a co-processor for the CE and perform the computations off-calc
I began by finding a couple test points within the calculator that I could control from assembly, then soldered a wire to each and attached them to the ESP32-S3. Next, I wrote some code to send the bytes, bit by bit, for HELLO WORLD over one of the test points using the UART protocol.
Everything was working perfectly fine until I wanted to attach a pin header to use my newly purchased oscilloscope for this project and precisely determine the baud rate so I could sync it up with the ESP32 instead of just guessing.
That's when I accidentally ripped the solder pads off of both test points...
Luckily, I was able to probe around some more and found a resistor I could remove to access the GPIO used to enable/disable the charging port and used that instead. This limited me to only being able to use one wire for communication instead of having dedicated RX and TX lines, which was okay since the calculator couldn't really take advantage of both lines at the same time anyways.
After the hardware was all situated and I had a fully assembled calculator again, I used commandblockguy's Cap'n Hook library to install a parser hook to send the entered equation to the ESP32, which uses the mathomatic library to perform the calculations and sends it back to the calculator for display. Fun fact: I also wired up the ESP32 to charge the calculator when it's USB-C connector is plugged in to a power source.
I still need to implement a lot of features and I'm not read to release source code at this time, but here are the results!
So logically, the next solution was to attach an ESP32-S3 microcontroller and use it as a co-processor for the CE and perform the computations off-calc
I began by finding a couple test points within the calculator that I could control from assembly, then soldered a wire to each and attached them to the ESP32-S3. Next, I wrote some code to send the bytes, bit by bit, for HELLO WORLD over one of the test points using the UART protocol.
Everything was working perfectly fine until I wanted to attach a pin header to use my newly purchased oscilloscope for this project and precisely determine the baud rate so I could sync it up with the ESP32 instead of just guessing.
That's when I accidentally ripped the solder pads off of both test points...
Luckily, I was able to probe around some more and found a resistor I could remove to access the GPIO used to enable/disable the charging port and used that instead. This limited me to only being able to use one wire for communication instead of having dedicated RX and TX lines, which was okay since the calculator couldn't really take advantage of both lines at the same time anyways.
After the hardware was all situated and I had a fully assembled calculator again, I used commandblockguy's Cap'n Hook library to install a parser hook to send the entered equation to the ESP32, which uses the mathomatic library to perform the calculations and sends it back to the calculator for display. Fun fact: I also wired up the ESP32 to charge the calculator when it's USB-C connector is plugged in to a power source.
I still need to implement a lot of features and I'm not read to release source code at this time, but here are the results!