Programming the Ublox NEO-6M GPS configuration - is this possible? #1021
Replies: 3 comments
-
Posted at 2019-04-01 by @gfwilliams I don't see why you couldn't - I haven't personally done it. It all seems to be very well documented in https://cdn.sparkfun.com/datasheets/Sensors/GPS/760.pdf including pseudo-code |
Beta Was this translation helpful? Give feedback.
-
Posted at 2019-04-07 by Robin Sat 2019.04.06 After two weekends of reading, trial and error, screaming, swearing and hair pulling, [I'm now bald ;-)] finally made progress.
Simple answer, yes it is possible to modify the configuration settings. Things to watch out for, when block copying code, remember to double check pin references, especially when trying new physical pin connection locations. When connecting the USART, make sure physical connections Tx -> Rx and Rx -> Tx are in fact swapped. The default Baud rate is 9600 and the suggestion is to leave it at that. NEO-6M commands need valid check sums. Make sure you have an authentic Ublox manufactured board and not a knock-off. Read, re-read and read again the spec. Hex values are not ASCII chars. (e.g. 0xA9 !== 'A9') When everything falls into place, the code to access is rather simple. I found a known command sequence that the NEO-6M will respond to, when using the UCenter application send message dialog, with accepted known check sum values. No calculation needed. From UCenter
This command string will return the firmware version, the NEO-6M ships with: 0x0A are UBX class MON
The expected result will be in the form: p.192 doc
I used an 8ch logic analyzer to view the output. But in order to locate the sent data from the NEO-6M, I found it useful to create a visible output indicator, and place a monitor on that pin. In this way, we have a reference in which to compare the output pulse train. The default output burst is ~400msec and occurs every second. So creating a simple square wave reference of 500msec is a good viewable choice. We need an external GPIO pin in order to hang a probe on.
NEO-6M data packets at Espruino MDBT42Q USART pins D6 and D8
400msec burst of NMEA response data > From Red D2 at 250msec interval WebIDE output - Note as I archived this image, the NEO-6M temporarily stopped translating received data. I didn't notice that until I posted the image above. See the $GPRMC packet that matches the image decoder values.
Outbound firmware version request to NEO-6M
NEO-6M response to firmware version request > From Red D2 at 775msec interval
U-Center application ASCII NMEA - National Marine Electronics Association - GPS packet output Identify fake NEO-6M
Edit default output blocks
|
Beta Was this translation helpful? Give feedback.
-
Posted at 2019-04-08 by @gfwilliams Brilliant - glad you got it working! Did you manage to send any commands other than the one asking for the firmware version? |
Beta Was this translation helpful? Give feedback.
-
Posted at 2019-03-30 by Robin
Sat 2019.03.30
Finally found some time to play with the NEO-6M GPS module connected to a MDBT42Q breakout. An hour of wire prep and soldering, along with coding the examples, surprisingly was up and running with no fuss.
Now, Is it possible to modify the NEO-6M configuration data?
Goal is to play with standby mode to improve battery life, along with learning what else might be accomplished in data selection, packet reduction, update interval etc.
While I wade through the 200+ page specification doc, and search for related web site content, just wondering if anyone has done this and could provide a snippet or page links to get me over the hump?
Some great links to visualizing software
EDIT: Looks like U-Center software (Windows only) might work, but would like to emulate that interface with Javascript code lines via the WebIDE
and this looks promising, but in C
Beta Was this translation helpful? Give feedback.
All reactions