Interface GPS receiver with Arduino duemilnova

I have a GPS USB Receiver from a Defunct company named AyeAyeSir. it works with windows GPS mapping programs, Like Streets and trips.
It has a PL-2303 chip that handles the USB>PC comms. i want to interface it to the Arduino, parse it's data, and display it on a LCD. when i hook it to a PC, load the PL2303 drivers, open the approriate com port, I can see the txt it is outputting.
I have cut a usb cable in 2, and plugged the power lines into the Arduino 5v & gnd, and the receiver powers up, and acheives lock acording to it's staus LED.

Question is, Can I plug the data + or - into the RX/TX pins on the Arduino and get the same txt as I did on the PC com port term?

Don't wanna fry me arduino!

Thanks, JR

You can't connect a USB device directly to the Arduino serial pins.

I think your best bet would be to tap in to the serial input of the PL-2303 chip. It's probably using LVTTL (3.3v) serial so you should be able to connect the RX pin directly to the Arduino RX pin. You'll have to guess the baud rate if you don't have an oscilloscope to measure the bit rate.

http://www.prolific.com.tw/support/files//IO%20Cable/PL-2303HX/Documents/Datasheet/ds_pl2303HXD_v1.3.pdf

Also, if you see signal but receive garbage, check if the serial signal is inverted. Some USB chips invert and people doing what you are considering have had that problem..

the bit rate when viewed with a com term program was 4800, probably a good start point?

That pin is super tiny! , not sure how to attach to it!

JR

jreckart:
That pin is super tiny! , not sure how to attach to it!

For testing you can wrap a wire around a straight-pin or opened safety-pin and use that as a probe.

Just in case the polarity is wrong, you can use NewSoftSerial library by Mike Hart. You can specify what polarity to use on the TTL signal.

liudr:
Just in case the polarity is wrong, you can use NewSoftSerial library by Mike Hart. You can specify what polarity to use on the TTL signal.

Is there a write-up about doing that? I have looked through the library and it wasn't clear to me.

Made probe from sewing needle and wire, connected it to the tx pin header on my Arduino. when I open a term program, and randomly tap it to ground, and it the term window, i get random junk. so I know my probe is working.

since the reciever is powered fromt the arduino's 5v and gnd header pins, their grounds are tied together. this is confirmed by measuring continutity with a DMM between the two devices USB recepticles connectors.

However, when probing the pls2303 chip tx or rx pins i get nothing. Help?

With the GPS connected your probes probably do not generate enough electrical noise to make garbage come through the serial connection.

cyclegadget:
With the GPS connected your probes probably do not generate enough electrical noise to make garbage come through the serial connection.

Actually I had my arduino outputing "hello world" then a delay of 1 sec, via its serial port (com 5), and the gps outputting it's data on it's seril port (COM4).
i had two terminal windows open at the same time, one watching each com port. when i probed the gps PL2303 recieve pad , i noticed i started geting hello world, on both terminals, and no data from the gps at all. I then figured out the GPS chipset feeding the PL2303 was only 3.3v, and since the arduino is 5v, at the same bit rate, it was overideing the gps output. make the arduino run the blink sketch, with no serial output, reprobed and wha la! works.

if i can read it, then arduino can read it right? Now gotta build a parsing script, to decrypt lat and long, so i can show it on my LCD.

gotta go google how to do that.
thanks to all who helped

JR

cyclegadget:

liudr:
Just in case the polarity is wrong, you can use NewSoftSerial library by Mike Hart. You can specify what polarity to use on the TTL signal.

Is there a write-up about doing that? I have looked through the library and it wasn't clear to me.

Signal Inversion

“Normal” TTL serial signaling defines a start bit as a transition from “high” to “low” logic. Logical 1 is “high”, 0 is “low”. But some serial devices turn this logic upside down, using what we call “inverted signaling”. As of version 10, NewSoftSerial supports these devices natively with a third parameter in the constructor.

NewSoftSerial myInvertedConn(7, 5, true); // this device uses inverted signaling
NewSoftSerial myGPS(3, 2); // this one doesn't