Hi, I'm using my Arduino UNO to read serial data from a Skylab GM25 GPS module. My goal with this is to find out wich is the Output in the TX pin (The datasheet says is the pin #5) when the GPS software tells me that the location of the tracker is invalid (this means that the gps is not acquiring the position).
I've setted the circuit the following way:
Arduino USB to Computer
Arduino Digital Pin 10 to Pin 5 in the GPS module (Its not really conected, I just touch the GPS module pin with the wire connected to the Arduino pin when i want to read). This module is mounted in a GPS tracker AL900C, the test reading for the configuration was done while the GPS was ON and working correctly (Reporting the the server via its GSM module and having a valid location (it acquired its location)).
Heres is my code
#include <SoftwareSerial.h>
SoftwareSerial GPS = SoftwareSerial(10,2);
void setup(){
GPS.begin(9600);
Serial.begin(9600);
}
void loop(){
Serial.print(GPS.read(),DEC);
}
I got 2 datasheets for the GPS module the one that I uploaded and another one that is in the internet.
The uploaded one says: UART Ports: The module supports two full duplex serial channels UART. All serial connections are at 2.85V LVTTL logic levels, if need different voltage levels, use appropriate level shifters. the data format is however fixed: X, N, 8, 1, i.e. X baud rate, no parity, eight data bits and one stop bit, no other data formats are supported, LSB is sent first. The modules default baud rate is set up 9600bps. The RXD0(1) & TXD0(1)
recommended to pull up (10K?). It can increase the stability of serial data.
I've read that the arduino even its TTL its threshold allow it to read LVTTL so im considering that this is not the problem.
THe other datasheet I found is in the URL: http://www.componex-electronics.com/files/SkyNav_GM25_DS.pdf
And the pin Im trying to read is described as following:
UART Ports: The module supports two full duplex serial channels UART0 and UART1. All serial connections are at 3V CMOS logic levels, if need different voltage levels, use appropriate level shifters. The baud rate of both serial ports are fully programmable, the data format is however fixed: X, N, 8, 1, i.e. X baud rate, no parity, eight data bits and one stop bit, no other data formats are supported, LSB is sent first. The modules default baud rate is set up 4800bps, however, the user can change the default baud rate to any value from 4800 bps to 115kbps. UART0 is used e.g. for
booting and NMEA interface. UART1 can be utilized for UBP protocol.
Notice the difference between the baud rates and the logic they use.
The output I'm getting in the Serial Monitor while I'm not touching the pin in the module:
-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 and continues indefinitely
This is the return of the GPS.read() while it has not data available
When i touch the GPS module pin i get in the Serial Monitor:
-1-1-1-1-1-1-1255-1-1-1255-1-1-1255-1-1-1-1-1
I tried using Serial.write(GPS.read()); since the GPS.read() return bytes and the serial monitors displays something like this:
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
Aprecciate all your help
SkyNav_GM25_DS.pdf (415 KB)