I've got a small bluetooth gps receiver based on the ngr-531 chip, that I'd like to connect to my arduino mega to receive nmea data. I'm a total newbie on electronics in general so forgive the silliness of my questions. First, I've found the ngr-531 chip specs here:
and thought that pin 7 and 8 (TXA and RXA), on page 8/15 of the manual, had to be interesting: I've carefully hot glued two wires on these pins and put them into my arduino mega pin 0 and 1 (RX and TX), then I've opened the NewSoftSerialTest sketch, modified the second line
NewSoftSerial mySerial(2,3);
into
NewSoftSerial mySerial(0,1);
and modified all baud rates to 9600, and finally I've loaded the code into the arduino. The gps receiver gets power out of its own battery (3,7v Nokia battery) while the arduino is powered by my laptop usb port, so the tx and rx wires are the only connection between them.
Once the code gets loaded, the serial monitor shows the code greeting message "Goodnight moon!", and nothing else. I've made a couple of tests, swapping the wires and playing with the baud rates, but still nothing comes out of the gps receiver (which is supposedly good for it's the one I use from time to time with my nokia n70 tomtom). Here are my questions:
am I making things too simple by thinking that just hooking the gps chip TXA and RXA to arduino's RX and TX would do the trick ?
do I need to connect the arduino and gps receiver grounds together ? (actually it was one of my tests, but when I did that I got a sync error from the arduino software when loading the code)
do a gps receiver usually send out serial messages while trying (and not succeding) to get a satellite link ? I'm asking this because all the tests have been done in a office room, with no clear path to the sky, and the receiver had probably not been able to get a satellite link.
I'm a total newbie on electronics in general so forgive the silliness of my questions.
I've carefully hot glued two wires on these pins
You're kidding, right?
and put them into my arduino mega pin 0 and 1 (RX and TX), then I've opened the NewSoftSerialTest sketch, modified the second line
NewSoftSerial mySerial(2,3);
into
NewSoftSerial mySerial(0,1);
You've got An Arduino with 4 hardware serial ports, yet you are trying to misuse NewSoftSerial to perform software serial IO on a hardware serial port. Why?
NewSoftSerial doesn't work on the Mega. Unless you have the modified version, which then only works in certain pins (not including any pins connected to hardware serial ports).
The gps receiver gets power out of its own battery (3,7v Nokia battery) while the arduino is powered by my laptop usb port, so the tx and rx wires are the only connection between them.
Well, you need to glue a ground wire onto the GPS and connect it to the Arduino ground pin.
am I making things too simple by thinking that just hooking the gps chip TXA and RXA to arduino's RX and TX would do the trick ?
Yes.
do I need to connect the arduino and gps receiver grounds together ? (actually it was one of my tests, but when I did that I got a sync error from the arduino software when loading the code)
Yes. You'll need to disconnect anything else from pins 0 and 1 in order to upload code to the board.
do a gps receiver usually send out serial messages while trying (and not succeding) to get a satellite link ? I'm asking this because all the tests have been done in a office room, with no clear path to the sky, and the receiver had probably not been able to get a satellite link.
I've changed the code to use one of the hardware serial port (number 3) and a common ground between arduino and the gps: the code now loads with no problem (thanks), still no sign from the gps on the serial monitor (but I'm still in the office), I'll take it outside in a couple of hours and try again.
no kidding on the glue, the other option available at the moment was solder, that would have meant destroy the little chip right away.
For a preliminary test to see if I could get nmea data out of it, on these small pins you can see in this blurry picture, glue was safer
safer, but not effective, in that the wires were not touching the pins anyway, as I've just found out. In fact now I'll have to go shopping for the smallest iron tip I can find, because the good news is I wasn't that wrong in my thinking: connecting tx to rxa and rx to txb as described in my earlier post, and the common ground you've suggested, got me the data:
this is with the gps receiver still looking for satellites, in the upper right is the VisualGPSXP (gps receiver windows utility) window displaying live data from the gps receiver via bluetooth, and in the lower right the same live data displayed on the arduino serial monitor, with me connecting the tx and rx wires from the arduino to the ngr-531 chip by hand.