[Chris], graphing calculator hacker extrordinaire, has seen a few of his projects show up on the front page of Hackaday, mostly involving builds that turn graphing calculators like the TI-84 Plus shown above into something that copies a few features from a smartphone. His latest build, a hardware GPS module attached to the TI-84 Plus, is yet another feather in his cap of awesome and impractical addition to a classic piece of hardware.
There were two major technical challenges behind adding GPS to a graphing calculator. The first of these was powering a GPS sensor. Many a calculator modder has put a lot of work into documenting the USB port on the 84 Plus, revealing it is a USB OTG port, capable of serving as a host or device. It also supplies 5V of power to just about anything, burning through batteries as a result.
The next challenge was reading the data coming off the GPS sensor at 4800bps.The TI-84 Plus series of calculators have a series of interrupts that can fire at fractions of the 15MHz clock. By setting the timer up to fire every 197 clock ticks and dividing again by 16, [Chris] can read data at 4758.9bps. It’s close enough to get most of the data, and the checksum included in the NMEA protocol allows the software to discard bad messages.
Well, that’s interesting… now I have to make it
Some of the GPS modules e.g. uBlox Neo-6 has built-in USB interface. If you can get CDC driver for the the TI, you don’t even need to bother with serial port.
The difficulty is that writing USB peripheral drivers for the calculator is at least as challenging as just bitbanging serial. I could have not removed the USB-to-serial adapter originally attached to this module. The only documentation we have on the USB IP is stuff we’ve painstakingly reverse engineered, as neither TI nor the company that originally designed the IP has been willing to share the datasheets and other documentation.
Yeah cool…now we can track Block Dude lol. Great work, this is so cool. It would be nice to get power consumption down so it could be used longer. I know people have hooked up power supplies, you could power it from your car, and have a mobile GPS w/ more reliable power.
Impressive.
I wonder why he didn’t divide by 8 instead and make use of the extra sampling to avoid bad messages like that? Maybe just dropping messages ended up simpler? in the long run?
How would you tell which two (or one, at certain rare boundaries) sample(s) belonged to which logical bit? Without a reliable timebase for reference, it’s a challenge.
Now to figure out how to get wolfram alpha on to the TI84….
Pshhh….I have iTunes running on my Linux distro TI83. /s
yeah? I am dualbooting with Windows 8 and OSX mavericks on my 84
One of Cemetech’s members is (slowly) working on that, using my globalCALCnet system that Hackaday mentioned a year or three ago. Amusingly, the hardest part is character encoding transformation; the API and communication is pretty rote. The project’s topic is http://www.cemetech.net/forum/viewtopic.php?t=9304 .
[Chris] TI must either hate you or love you! You make me jealous!
Actually I’m curious which it is. Chris?
Well done, Kerm!
I’m quite amazed the calc has USB running on a 15MHz Z80. Wonder how much help the hardware gives? I’d think, a lot.