The mechanicals of the modification are also really simple. A pair of 5v DIP relays are directly triggered from the Request To Send (RTS) and Data Terminal Ready (DTR) pins. These two pins are directly controllable through the python
pyserial
library, using the setDTR() and setRTS() methods. The calculator was originally powered off a 9v battery, but the internal ic's work perfectly well off the 5v from the usb port.
The relay's are switched on for 0.1 seconds, and the delay between sequential "on's" is also 0.1 seconds - this was the fastest reliable speed. This means that the calculator can increment by 5 every second. This time is important because when a new email is received, it has to "press" the '+' key 100 times, which takes 20 seconds. That is why the emails are on the left of the "decimal point", and the unread google reader count is on the right, as I receive google reader items more often than I receive new emails.
Well, that's it. Of course I should attach the code to this post but, to be honest, it is a bit of a shambles. A reliable, working shambles, but not something that should be inflicted on other people. I will re-factor it properly, give the calculator a clean up, add some more technical detail, take some better photos and make a nice video for my next post.
If you are reading this and want more information
before
my next post, please don't hesitate to leave a comment.