I have been attempting to send commands to the Parallax GPS module. They are stating that the specs of the module are as follows:
The GPS Receiver Module is controlled by the host via an easy-to-use, TTL-level, asynchronous serial communications interface. The command structure and communication is compatible with Parallax's AppMod serial protocol. The single SIO pin transfers commands sent TO the Module and data received FROM the Module. All communication is at 4800bps, 8 data bits, no parity, 1 stop bit, non-inverted.
Does this match up with the Arduino? I know I can do 4800bps, but is the serial port 8 bits, 0 parity, 1 stop bit and is non-inverted?
I can receive data from the GPS module when it's running in /RAW mode okay, so I'm guessing this stuff matches.
I'm also wondering if I should be using SPI to talk with this GPS module, because there's only one communication wire, labelled SIO. Personally I wouldn't have a clue.
Thanks again for the help everyone, it's great to have someone to talk to about this stuff.
More like cheap insurance. The micro I/O pins have internal clamping diodes that conduct if the signal goes below 0vdc (negative voltage) or above Vcc (usually 5vdc). As long as you are only feeding a 0-5vdc signal to a pin the series resistor is really optional. However if it's going off board and can somehow get hooked to a higher voltage (say a 9vdc battery) by accident, a series resistor limits the amount of current that can flow into the I/O pin when a clamping diode starts to conduct.
I use them if going off board with a I/O pin, but not normally when wiring to something on the same module or shield connected board.
but is the serial port 8 bits, 0 parity, 1 stop bit and is non-inverted?
Yes if you take the serial direct from pins 0 and 1. Note you can't do this while the USB connection is active.
So a development cycle is:- you will download, unplug the USB, connect up the serial device and test. CRASH Unplug serial device, connect USB correct the code and download.
@RetroLefty: I understand. Just about everything of mine is going off board. Let's say someone accidentally plugs a 12V positive to one of the pins. What do I need to do exactly?
@Grumpy_Mike: Interesting concept. Sounds like it'd make it hard to debug. I guess that's where LED's and LCD screens come in. This could be the answer to my prayers, so I'll keep that in mind. Cheers.
"@RetroLefty: I understand. Just about everything of mine is going off board. Let's say someone accidentally plugs a 12V positive to one of the pins. What do I need to do exactly?"
Well if you put a proper value resistor between the Arduino I/O pin and the external device, even if a +12 was applied it would not damage the AVR chip. So a 10 cent resistor gives you a little insurance against those brain farts we all have from time to time. The proper size resistor is, I think, that value that would limit current to a 1/2 ma, so you kind of have to know the worst case voltage that might be accidentally applied. Some here posted a link to a PIC (not AVR) application document that showed how to protect against even 120vac being applied to an I/O pin.
Bottom line, adding a series resistor to each I/O line leaving the Arduino board is cheap insurance especially if you are working on a prototype or experimental use. I would kind of like to leave it to more experienced users here to recommend the best value resistor to use, but 2k will probably a good starting point.