About a month ago I had the idea to make a GPS "client" of sorts on a graphing calculator. Many modern GPS modules speak 5V (TTL) serial at a low datarate, namely 4800 8N1. These electrical and signalling characteristics mean that a 15MHz graphing calculator with a USB OTG port and an I/O serial port can theoretically interface with a serial GPS module with zero extra hardware other than an I/O and USB jack. I decided to give the project a try last night during Have Calc, Will Program, and by the time I went to bed, I had a hardware prototype and a rudimentary software prototype. Unfortunately, the software was not able to decode the incoming serial (UART) frames properly.

Today, with a little extra proofreading from DrDnar and calc84, I figured out that the iFastCopy I was using was disabling interrupts. I added a way to manually adjust the interrupt timing slightly to get as close to 4800 baud as possible, and I am now successfully able to read NMEA 0183 sentences. The next step is to actually understand the sentences, by first dividing on sentence boundaries, computing and checking checksums, and processing complete lines of data.

Below: dumping NMEA0183 frames to the LCD
That is pretty cool, but that pink calculator is rather disturbing... Shock
Any man confident enough in his masculinity doesn't need to rely on color or gender stereotypes to defend his masculinity Wink


Keep it up Kerm! I saw your tweets earlier today!
comicIDIOT wrote:
Any man confident enough in his masculinity doesn't need to rely on color or gender stereotypes to defend his masculinity Wink


Keep it up Kerm! I saw your tweets earlier today!

Nobody cares about your dumb opinions.
allynfolksjr wrote:
Nobody cares about your dumb opinions.

Nobody cares about you. We only want your (less) evil clone.

That looks fantastic Kerm. Do you have any big plans for it? (Like a world map to plot your location on, perhaps big city locations, etc)
Perhaps you could make a TI-84+ package that's cheaper than an off-the-shelf Garmin device. A road map just for the US would take up a little over way too much RAM though. It wouldn't even talk to you, either Sad
That's pretty awesome. I'm interested to see how this will progress into possibly it showing your location.. However I'm not sure how it would work once it can actually reads the GPS data. It's not like the 84p is going to store a bunch of maps.. Could tie it into calcnet somehow possibly to fetch map data on the fly with a 3g dongle or something?
Kaslai wrote:
allynfolksjr wrote:
Nobody cares about your dumb opinions.

Nobody cares about you. We only want your (less) evil clone.

At least I'm not from the hellish landscape known as Poulsbo.
allynfolksjr wrote:
Kaslai wrote:
allynfolksjr wrote:
Nobody cares about your dumb opinions.

Nobody cares about you. We only want your (less) evil clone.

At least I'm not from the hellish landscape known as Poulsbo.


It's not nearly as hellish as 95% of the earth.

rcfreak0 wrote:
That's pretty awesome. I'm interested to see how this will progress into possibly it showing your location.. However I'm not sure how it would work once it can actually reads the GPS data. It's not like the 84p is going to store a bunch of maps.. Could tie it into calcnet somehow possibly to fetch map data on the fly with a 3g dongle or something?


At that point though, you might as well use a RPi instead of the calculator. It'd be tons cheaper and more capable.

You'd need some intermediary hardware to interface the calculator with both the GPS and the radio anyways. Plus, interfacing with two devices and maintaining a UI at the same time might (actually, for sure will) cause some timing issues.

Perhaps you could load the map for a single state or general area prior to leaving? I'm sure you could squeeze a vector map of the roads in a 250x250 mile area into under 2MB.
DJ_O wrote:
That is pretty cool, but that pink calculator is rather disturbing... Shock
I hope by disturbing you mean awesome, because I love my pink calculator as much as I love my purple, green, and blue translucent TI-83 Pluses.

comicIDIOT wrote:
Keep it up Kerm! I saw your tweets earlier today!
Thanks! I am indeed keeping it up, to the detriment of my work and of SourceCoder 3. Also my sleep schedule.

Kaslai wrote:
That looks fantastic Kerm. Do you have any big plans for it? (Like a world map to plot your location on, perhaps big city locations, etc)
Perhaps you could make a TI-84+ package that's cheaper than an off-the-shelf Garmin device. A road map just for the US would take up a little over way too much RAM though. It wouldn't even talk to you, either Sad
It's just supposed to be a proof of concept, I'm afraid, displaying interesting information parsed out of the GPS data as well as the raw sentences being received. It would be quite cool to make it also able to display your location on a vector map, and I hope someone does that.

rcfreak0 wrote:
That's pretty awesome. I'm interested to see how this will progress into possibly it showing your location.. However I'm not sure how it would work once it can actually reads the GPS data. It's not like the 84p is going to store a bunch of maps.. Could tie it into calcnet somehow possibly to fetch map data on the fly with a 3g dongle or something?
As Kaslai says, that would somewhat defeat the purpose, I think. Smile You could theoretically store a limited set of maps, like of your immediate area if you were walking around, but the programming for a multi-scale, rotatable vector map would be quite nontrivial indeed, and certainly beyond my available time for a toy project.

Kaslai wrote:
Perhaps you could load the map for a single state or general area prior to leaving? I'm sure you could squeeze a vector map of the roads in a 250x250 mile area into under 2MB.
Indeed, that's a definite possibility. But again, something better left for my colleagues here, I think.

Anyway, I made a lot of progress on the software, starting parsing out sentences, and perhaps most importantly, transferred the GPS module and I/O and USB plugs onto a board. As you can see in this post, I am still struggling to get the 5V from the USB OTG port that I need to power the GPS module.

That is quite an attractive package. I hope you get it working on just calculator power. In the worst case you'll have to include 3-4 button cells, but who wants that?
Kaslai wrote:
That is quite an attractive package. I hope you get it working on just calculator power. In the worst case you'll have to include 3-4 button cells, but who wants that?
Yeah, I'm seriously hoping to avoid that.

- Tried a short section of code based on how the OS initializes the USB port. No luck.
- Tried to pull in something equivalent to what USB8x does, with very few modifications. Still only get ~330mV.
- With the same code, hooked an LED onto my board. No activity.
- Kept the LED, but unhooked the GPS. During my code to set the VUSB line to be powered, it flashes once. Presumably the current is relatively low, and that's why it only works with the LED by itself. The GPS pulls about 48mA, for comparison.

Edit: Well, we eventually got it working. BrandonW++ and DrDnar++ for their patience. One of the big problems turned out to be a very rookie mistake: I was using a mini USB B, not A, plug. Based on the OS's USB initialization code, I thought that the OS cared and the controller did not, but it turns out that the controller cares very much. The hardware is now working, and once I bolt a top cover (ie, sheet of plastic) onto those two standoffs at the top of the module, it will look even better. I am having trouble getting a GPS in my city full of tall buildings, as I always do, so I haven't been able to see if that part works yet.


*bump* Lest people think this project has been forgotten, I've gotten stuck trying to actually get a GPS fix in my city, no easy task when walking through canyons of buildings that block out GPS satellites' signals. I did make a cover for the GPS module so it looks a little more professional, and I made the software actually check checksums on the NMEA0183 sentences, but that's about it. I'll post some more pictures and probably the final program and plans once I succeed in getting a fix.
*bump* Two weeks later, I still haven't resolved this. I'll take a walk to the park today and try to get this straightened out so I can finally post this project as finished. If worse comes to worse, I can always just inject the requisite NMEA sentences into jsTIfied and take a screenshot.
*bump* Fix gotten, pictures and (brief) video taken, tweet tweeted. I'll try to finish the writeup about this tomorrow.
*bumpity bump* Now that this project is complete, please continue any discussion in the Cemetech Labs topic for the project.
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement