Shop Learn
Does the OBEX spin GPS driver work with the SIM33EAU? — Parallax Forums

Does the OBEX spin GPS driver work with the SIM33EAU?

JonathanJonathan Posts: 1,009
edited 2021-07-14 02:32 in Propeller 1

Does the Spin GPS driver work with the GPS module:

https://www.parallax.com/product/sim33eau-gps-module/

I am surprised that there isn't a Spin example on the download page for the module. Is Parallax not making example code for new products?

Comments

  • As long as the module outputs NMEA sentences at 4800 baud, the code written for another module should work with this one.

    -Phil

  • JonathanJonathan Posts: 1,009

    Hi Phil! It has been quite a while since I have posted here, I have been working on non-microcontroller projects. Good to see you are still here! And many thanks for answering your umpteenth question here on the forums.

    It looks like the module does support 4800 baud NEMA so I will order it and give it a go. I have a nixie clock that I built in the late 90's using a Motorola Oncore GPS module that has given up the ghost. The clock broadcasts time to all my projects and so I need to get it fixed as it is messing with the garden timers and all sorts of stuff. Thanks for the help!>

    @"Phil Pilgrim (PhiPi)" said:

    As long as the module outputs NMEA sentences at 4800 baud, the code written for another module should work with this one.

    -Phil

  • VonSzarvasVonSzarvas Posts: 2,415
    edited 2021-07-14 20:07

    Hi @Jonathan

    One thing (and likely the only thing) you might need to change is the NMEA message parser routine.

    It might be hard coded to expect messages with a "GP" prefix. Such as "GPRMC". The newer GPS modules can use "GP", but might also use "GN", depending on which satellite they are talking to (as they can talk to a wider range of satellites).

    Often it can be enough to adjust the code to ignore the 2nd letter. Or to match only on the last 3 letters. Something like that.

    If you'd like to see an example in C language, you could try a simple GPS demo at solo.parallax.com and then download the C code. I think we also have some Basic Stamp demo code somewhere that was updated to the new NMEA message prefixes , if that's of any use.
    I've not personally seen a spin demo, although as Phil rightly points out, any GPS NMEA code would work once you've set the correct baud rate and possibly tweaked the message parser.

    Feel free to post a spin code snippet if you need help getting it working.

    Edit: Just found the stamp code; posted it here: https://forums.parallax.com/discussion/173581/gps-demo-code-for-basic-stamp

  • JonathanJonathan Posts: 1,009

    Hi @VonSzarvas ,

    As it turns out the Parallax module does not support an external antenna and my project requires one. A pity as I am sure with your and the forums help we could have gotten it working. Thanks though! Does anyone have a suggestion for a module that does support an external antenna? There are so many options out there.

  • The uBlox M9 series GPS’s are really excellent. Multiple vendors on Ama*on. The M9N seems the most common model. Get an amplified puck antenna to go with it. I have no problem getting a solid 3D lock indoors even under a metal roof. Also, download uBlox’s free u-Center config software while you are at it.

    I struggled for weeks with the cheap Chinese GPS’s. They all sorta suck. Genuine UBlox modules fixed all of the strange intermittent message errors and skewed PPS issues. I’m never going back. YMMV.

  • JonathanJonathan Posts: 1,009

    @JRoark said:
    The uBlox M9 series GPS’s are really excellent. Multiple vendors on Ama*on. The M9N seems the most common model. Get an amplified puck antenna to go with it. I have no problem getting a solid 3D lock indoors even under a metal roof. Also, download uBlox’s free u-Center config software while you are at it.

    I struggled for weeks with the cheap Chinese GPS’s. They all sorta suck. Genuine UBlox modules fixed all of the strange intermittent message errors and skewed PPS issues. I’m never going back. YMMV.

    Thanks! I took a look and there seem to be many companies manufacturing using that chip set. Sorry to bother you but is there any brand that you have used and liked? There is so much crap on @m@zon.

    Thanks!

  • PublisonPublison Posts: 11,960

    Sparkfun carries a variety of uBlox devices

    https://www.sparkfun.com/categories/tags/u-blox

  • How about this one http://qrp-labs.com/qlg2se.html ? Also includes an external antenna.

  • JRoarkJRoark Posts: 790
    edited 2021-07-18 13:50

    @Jonathan Here is a link to a Neo M8N vendor that uses genuine UBlox chips. I’ve purchased several of these and they were all good. These are one generation older but are about a third the cost at $11:
    https://www.amazon.com/Acxico-Satellite-Positioning-Development-Arduino/dp/B083X5Y5NM
    There is currently a big problem with fake chipsets, so be careful in your purchasing. What the label says and what is actually under the RF shield can be very different. The easy way to tell a real UBlox from a fake is the $GPTXT text messages that get emitted on power-up. A genuine UBlox chip announces its family/fw version.

  • JonathanJonathan Posts: 1,009

    @Publison I did look at Sparkfun but the smaller modules are all out of stock.
    @Maciek I have bought stuff from QRP labs since I am a ham, had no idea they would have a GPS module.
    @JRoark I order the module you linked an an antenna. Funny that the antenna cost more than the GPS.

  • JRoarkJRoark Posts: 790
    edited 2021-07-18 16:48

    @jonathan FWIW, that module runs fine anywhere from 4800 to 230_400 baud. Everything I use it for gets the 230k rate so I dont spend forever in the comm loop. The PPS output is programmable. These things run forever. The only glitches I get are the occasional (every few weeks) invalid checksum, which I suspect is my connecting hardware and not the UBlox module.

    You can grab the doc here (includes all supported protocols and NMEA-183 messages): https://www.u-blox.com/sites/default/files/products/documents/u-blox8-M8_ReceiverDescrProtSpec_UBX-13003221.pdf

    Definitely install UBlox's UCenter software. It is quirky and bizarre at first glance, but it really works nice once you play with it. Everything in that module is configurable. You can also have the module connected via USB to your devsys while the other UART is attached to your Prop project. You can see the messages the module is outputting and even change config on-the-fly. Wonderful for debugging. You can get it here: https://www.u-blox.com/en/product/u-center

  • JonathanJonathan Posts: 1,009

    Well, I got the unit. I hooked it up to 3.3V using the VCC and GND pins on the header. I took a look for output and saw nothing. When I unplugged it I noticed that U3 was hot. I am guessing this is a voltage regulator. I have verified the voltages and the pins. I thought I might be able to see what was going on with the Ublox software but when I plug it into a USB cable U3 gets hot. Did I get a dead unit or am I doing something wrong here?

  • JRoarkJRoark Posts: 790
    edited 2021-07-21 22:42

    If it gets hot with just the USB cable attached, there is definitely something wrong with that board. It usually only pulls about 50 ma tops and runs quite cool to the touch. Send it back.

    Addit: the PPS output should go active within about 30 seconds of power-up.
    Addit: does disconnecting the external antenna result in any improvement?

  • JonathanJonathan Posts: 1,009

    Hmm. I was fooling around with it and with the USB cable attached I briefly got the red PPS LED to light. I had to hold it in a certain way. Then it stopped altogether. Just to be sure: If connected to the USB cable only, a good unit will light the LED. Then after 30 seconds or so the LED should start blinking, indicating it is putting out 1PPS or whatever it is default programmed for? Also. if VCC and ground are connected, the same should happen?

    Started the return. They are sending another. Hopefully it is good. However, since operator error has always been my most common form of problems I am still looking to see what I could have done wrong.

  • JonathanJonathan Posts: 1,009

    Hmm. Fooled with it a little more and the red LED stayed lit when plugged into the USB cable. It took about 15 minutes but it did get a lock. I have not yet tried to unplug the USB and power it via the VCC and ground pins. U3 is no longer hot. very strange...

  • A bad usb cable maybe? But that wouldnt explain why it got hot when powered by the header pins. No rogue solder/flash anywhere?

    The delay in getting the PPS light says the last time that module was powered up it was either WAY far from your current position (>600 miles), or it was more than ~30 days ago, or both. In that case the almanac data stored was wrong/obsolete and it had to do a full reacquire to reorient itself in space and time. If you leave it on for 24 hours, it will have all of the data for all of the satellites in nvram and can very quickly reacquire after the next power cycle. My module takes less than 2 seconds to get a hard lock after power-up once it has that data.

  • JonathanJonathan Posts: 1,009

    Got the new module and it fired right up. Wow, for once it wasn't cockpit error!

    Now I am trying to figure out how to configure it for simple NEMA sentences. It spews out all sorts of data and all I want from it is the time and that it had a valid fix. The docs are endless! Makes me realize I am getting old. With my old setup it was simple, wait for a $, read the fields I needed and go.

    Thanks for the help!

  • MaciekMaciek Posts: 355
    edited 2021-07-29 20:26

    @JRoark said:
    A bad usb cable maybe? But that wouldn't explain why it got hot when powered by the header pins. No rogue solder/flash anywhere?

    Forget the rest .... completely off topic but I have one question. Since when have you been using this signature ? I have just noticed it now. We must have been reading at least one same book. Probably more.
    These signatures tell a lot and I find them amusing :wink:

  • @Jonathan said:
    Got the new module and it fired right up. Wow, for once it wasn't cockpit error!

    Now I am trying to figure out how to configure it for simple NEMA sentences. It spews out all sorts of data and all I want from it is the time and that it had a valid fix. The docs are endless! Makes me realize I am getting old. With my old setup it was simple, wait for a $, read the fields I needed and go.

    Take a look at the $GPRMC message. That is the Swiss Army Knife of NEMA183 messages and has everything you need. You can enable this message (and disable everything else) using UConfig and a usb cable.

    @Maciek said:
    Forget the rest .... completely off topic but I have one question. Since when have you been using this signature ? I have just noticed it now. We must have been reading at least one same book. Probably more.
    These signatures tell a lot and I find them amusing :wink:

    I occasionally rotate thru a short list of sigs, but this one is a fairly recent addition (2 years?). That quote really amused me. And yep, I’d wager a fiver our bookshelves have at least a few points in common! Lol.

  • JonathanJonathan Posts: 1,009

    I have been digging through the Uconfig and can't seem to find where to turn things off. Or perhaps I am not sending the new config to the module correctly. I'm away from the project until tomorrow but will keep digging until I find it. I do see the time field and could just trap for that but would like to cut down the torrent of (to me) useless data.

  • @Jonathan In uCenter you can:

    1). Turn-on the GPRMC NMEA-183 message:

    View -> Configuration View -> MSG (messages)
    Click on "F0-04 GP?RMC"
    Select (check) the checkbox next to "UART1"
    In the window's bottom toolbar, click "SEND"
    

    Now you will see the GPRMC messages appear in the data stream, but you are not done yet. You still need to save this config so it survives power cycling. To do that:

    2). Save the configuration

    View -> Configuration View -> CFG (configuration)
    Select: "00-BBR" and "01-FLASH" and "02-I2C EEPROM" 
    Click on "F0-04 GP?RMC"
    Select (dot) the option button labeled "Save Current Configuration" 
    In the window's bottom toolbar, click "SEND"
    

    If you want to disable a particular message, repeat Step 1 using the message name you want to kill, and deselect the "UART1" option. These modules seem to come with GPGGA, GPGSA, GPGSV etc enabled by default.

    For a "real world" application it would be best not to count on the configuration surviving long-term power loss. So consider learning the uBlox proprietary protocol (not exactly trivial!) so you can force-configure the module with the correct settings every time you cycle power. Note that this module will talk/listen BOTH NMEA serial AND I2C at the same time if you tell it this is allowed. This can be very useful where your application isn't sitting in a loop constantly waiting for serial characters. You can poll the module using I2C and talk to it when the program wants without any waiting.

    If you feel a bit lost initially, you are in good company. The uCenter interface is really non-intuitive, but once you get used to it, you can configure absolutely everything in that module and it really is the best tool for the job.

Sign In or Register to comment.