Tinyclr MOD-GPS modified code

Hello all,

A while ago some guys were working on the mod-gps source code to get more accurate gps signals (like in meters)

My (and Colin’s) question therefor is: is there any news regarding this? Is there any progress? Maybe even source code?

I would love to connect the gps on my robot and get a gps signal to work with, instead of one with (I believe) kilometers as coördinates.

Thank you! ;D

Are you intent on using MOD-GPS? I ask because I am a developer on the DotSpatial project at [url]http://dotspatial.codeplex.com/[/url]. These guys have an existing compact framework GPS implementation that I have considered porting parts of to NETMF. The big benefit would be using an object model that a lot of other (non-NETMF) developers are already using. Check out the DotSpatial.Positioning namespace for details. This part of the project was from a depreciated commercial project that transitioned to this open source effort.

I do remember the thread from ‘awhile ago’, maybe late fall, where folks here were trying to get something together regarding a ‘standard’ NETMF GPS solution, which is what motivated me to ponder a NETMF port of the DotSpatial project.

Well… I have the mod-gps lying around here, so why not use it?
If this thing is not working correctly or what ever, please let me know.

I dug into the code yesterday and I found out that the complete gps location is being found by the gps, but not returned. It seems like it is getting split or something?

Eric, what exactly is this project you are referring too? Will it work with every gps or only certain ones?

The DotSpatial project is a whole bunch of libraries that make it easy for GIS geeks to easily manipulate their data with geo-friendly object models. Most of the project is centered around GIS, but it also has a bunch of classes for gathering GPS data. The geopositioning industry is (thankfully) very standards based, and this work incorporates those where necessary.

Forgive the following diatribe if this is not new information…

All GPS units use a data output structure defined by the NMEA standard, which is essentially a comma delimited string. Some companies add their own additional feature codes. All handheld units (I’ve worked with) make a continuous data stream available serially. This standard makes it very easy to write an interface (the c# kind), which is what DotSpatial has done. On top of that they’ve written extensive libraries that autodetect serial ports and look for this data. For instance, they’ve got a Bluetooth class that, once paired, will start collecting data with 2 lines of code.

At a low level, there may be GPS units, in cell phones for instance, that do all this processing right on the chip, and output data in some other manner. In these cases, whatever OS the phone is running exposes a COM port to get at the data (or at least it should if your carrier let’s you, that is, some lock it down and make you pay to get at it).

In my code, I tend to stick with the basics, which means NMEA standard serial data only. I have an older Delorme Earthmate BT-20. Very small, low power bluetooth board. I got it originally to GPS enable a laptop, but then discovered the board has ready made serial pinouts to hook directly to my FEZ controllers at 3.3v. That was a bonus ‘feature’ for sure :slight_smile:

So, the (not so) short answer… yes, the DotSpatial code will work with any (common) GPS. The big manufacturers, like Garmin, have evolved their own ‘standard’ on top of the NMEA specs, which a lot of others have adopted. You will see other lesser known brands say something like ‘Garmin compatible’ and software that says will read any ‘Garmin compatible’ GPS.

Disclaimer - I’m generally talking about ‘ready made’ GPS boards that are commonly available all over the place. You can certainly go the DIY route and make your own board from scratch. I leave that kind of low level coding up to the hard core embedded geeks.

As far as I could see the mod-gps also outputs NMEA inside the code, but it is somehow not being transferred back. It seems that the string gets cut off somehow, so I might want to check it out.

The netmf project you are referring to (your .net to netmf conversion) where can I find it?

Sounds promising!
Thank you :slight_smile:

If there is a need in this forum, I can revisit [italic]starting[/italic] a NETMF port :think: To date I’ve mostly just fed the serial data to a Windows app for processing…

Alright, did not know you were a official developer of this project.
I believe I have found the topic I was looking for. But due to the recent forum changes I cannot access it anymore.

This is the link as far as I can tell:
http://www.tinyclr.com/forum/7/871

Made by andrejk (if I spelled wrong, please forgive me)

I would be pleased to view that code also.

Eric, I believe that there might be/is a urge for a solid multi-device gps driver.
I would love to see some code from you.

Thank you. :slight_smile:

‘Official’ is a stretch… maybe once I actually check some code in I’ll get some ‘official’ credibility. Gus was looking for help with the recently reformated tutorial/help section of this site, and I volunteered for the GPS section. Once we get the site in order, I can post a general thread an coordinate an effort on this end to get something going.

At one point, there was a plan for a large community driven standard NETMF GPS driver, however eventually People stopped contributing to it and so I just took the codebase, completed what I needed and put a mental note to get back to it at some point.

MarkH and I were the official devs… This might be what Foekie was thinking of…

Hey Chris, thanks for stopping by :slight_smile:

Actually I remember your plans of building the netmf gps driver. But there was someone (andrejk if I’m right) who modified the tinyclr mod-gps driver a little to let it output the complete NMEA (or at least some sort of meters)

I drove around with my car after he released the code and I loaded it onto my domino. It had some bugs but was pretty accurate when I entered the stored gps coordinates in a gps location website.

I would love to see/get that code again. It would be very helpful.

Robert, what about this wiki-page: http://wiki.tinyclr.com/index.php?title=FEZ_pathfinder (the GPS part and download)
Isn’t this what we are looking for? Didn’t got a change to look at the code, but, could be interesting.

Hello Colin,

Sounds interesting indeed. However, I did not contact you yesterday (because I forgot it :-[ ) but I have been able to create a GPS driver too.

It’s pretty accurate at this point, however another drive-test today 8)

Here is my “bomb project”, lol.
http://robertjacobs.eu/2011/04/25/gps-experiments-with-the-mod-gps/

EDIT: this code does in fact do what my driver does too.
Except the fact that I do not have speed and direction, yet.
Looks good, gonna have a look at it later on today.

Robert, i am curious and exciting about the results.
Please let me know, based on your testresults, I want to order MOD-GPS.

Thanks!

just a comment…

I just took a look at the mod-gps unit and I noticed one thing I wanted to point out - might not be a concern depending on what your end-use will be, but the one I saw had a 1hz refresh rate, meaning you only get new position information every second. This can be a good thing and a bad… if you are processing limited, you only need do calculations once a second; if you don’t need more frequent data for positioning or speed then again, that might be a good fit. But there are other GPS units out there that have equal accuracy and a much higher data output rate. Of course price can also be a factor but the one that I saw certainly wasn’t cheaper than… well anything :slight_smile:

Brett, in the documentation i read that the Reacquisition time is 0.1 sec and the Update Rate is 1 Hz.
So, what is the Reacquisition time?

When the update rate is 1 per sec, this GPS is no good for my autonomous car :frowning:

Is there another kind of GPS i can use? (for FEZ Mini). Anyone suggestions?

Hmm only 1 hz?
That is indeed some sort of problem. Because his car will mostly drive on smaller areas.

It would not be much of a problem for my robot, since it’s designed for larger areas and streets, however 1hz is a little low as I discovered while driving around with my car today.

I am now evaluating the output of the gps to see how accurate it is at this point. However I do not have much time for this since I have a appointment later on.

I will however take my GPS “bomb” with me to check out if it’s not possible to use it at 2hz.

I will let you know tomorrow.

Robert, how is it posible to change the frequency rate to 2Hz as the documentation says it is 1Hz?

Let me know your outcomes.

The 1hz stands for reading values per second.
I will try to read the values faster. Like 500ms = 2hz.

Oh yeah, just checked out my gps coordinates and this place is EXCACTLY where I parked my car this morning. So yeah, it’s kind of accurate :smiley:

Nice job!

Sparkfun have a range of GPS modules. If you search here for RWAR, I think you’ll see what Chris finally decided on (although it’s a mega-thread). There are many options, go forth :slight_smile:

Reaquisition time is the time it takes to reaquire the satellites under certain circumstances; I don’t know what the specific scenario is (I bet it’s a documented “standard”) but it probably isn’t a real world scenario that you would come across :slight_smile: