Texas Instruments graphing calculators have a communication port that allow them to communicate with external devices. If connected to a computer they can be remote controlled from a special TI PC application. This is usually just used to transfer files like applications between the PC and the calculator, but there is a feature which allows the computer to send keystrokes to remote control the calculator.
I thought it would be fun to use this protocol to draw images on the calculator screen by remote controlling the pen tool in the graph viewer. I implemented the calculator command protocol on an Arduino and plugged it into the calculator using a cut link cable. On the Arduino I also implemented a simple serial protocol so I could send messages to the Arduino from my laptop and they would cause keypresses to be sent to the calculator. Then I wrote a small Ruby program to take a black and white image and generate the appropriate keypresses to draw it on the calculator. It used a flood fill algorithm to plan the path for the pen so that it could be moved efficiently (the calculator was slow).
Find the code here: github.com/jmptable/calc_control
Done in undergrad