Go Down

Topic: XBee Not Transmitting Data Properly (Read 551 times) previous topic - next topic

Jul 25, 2013, 12:39 am Last Edit: Jul 25, 2013, 12:41 am by caseyzahorik Reason: 1
I have a gps unit that uses serial to communicate. I know it works as i have tested that separately from the XBees. However, when i put that data through the XBee for some reason the data does not come through as it should.

Code for sending GPS data:
Code: [Select]
#include <SoftwareSerial.h>

SoftwareSerial gps(11, 10); // 11 is RX, 10 is TX, greg soldered them backwards...

void setup()
{
 Serial.begin(9600); // to XBee
 gps.begin(9600);
}

void loop()
{
 if(gps.available())
   Serial.write(gps.read());

 if(Serial.available())
   gps.write(Serial.read());
}


Code for receiving data:
Code: [Select]
#include <SoftwareSerial.h>

SoftwareSerial xbee(2,3); // 2 is RX, 3 is TX

void setup()
{
 Serial.begin(9600);  // To Computer
 xbee.begin(9600);
}

void loop()
{
 if(xbee.available())
   Serial.write(xbee.read());  
   
 if(Serial.available())
   xbee.write(Serial.read());
}


This is the same basic code i used to communicate with the GPS previously when i tested it so i'm not sure what is going wrong with it.

This is a sample of what is being received:
Quote
$GPGSA,A,3,24,02,20,17,28,04,10,,,,,,2.2,1.2,1.8*7
GGS,,,80,7143,24,0,2,74,5,02,326,77
$PS,,,8,23,1,02,8152,0,7122,01,4,6*9
GRC235.1,,40.66N15529,,0.0385201,,*F
$PT,3.,,M000,,0.,,*0
$GPGGA,223951.716,4000.4626,N,10515.2299,W,1,07,1.2,1614.2,M,-14.0,M,,0000*5E
$GPGSA,A,3,24,02,20,17,28,04,10,,,,,,2.2,1.2,1.8*7
GGV,,,80,7143,2482,2,74,5,02,326,77
$PS,,,8,23,1,92,815,81,7122,01,4,670
GRC235.1,,40.66N15529,W000385201,,*E
GPT,3.,,M000N,0.,,*0
$GPGGA,223952.716,4000.4626,N,10515.2299,W,1,07,1.2,1614.2,M,-14.0,M,,0000*5D
$GPGSA,A,3,24,02,20,17,28,04,10,,,,,,2.2,1.2,1.8*7
GGV2,,80,7143,24,0,0,74,5,02,326,67
$PS,,,8,23,1,92,8152,017122,01,4,771
GRC235.1,,40.66N15529,,0.0385201,,*D
$PT,3.,,M000,,0.,,*0
$GPGGA,223953.716,4000.4626,N,10515.2299,W,1,07,1.2,1614.2,M,-14.0,M,,0000*5C
$GPGSA,A,3,24,02,20,17,28,04,10,,,,,,2.2,1.2,1.8*7
GGV21,80,7143,24,262,74,5,92,4,6,57
$PS,,,8123,1,92,815281,7122,01,482*1
GRC235.1,,00.66N15529,,000385201,,*7
$PT,3.,,M000N00.,,*0
$GPGGA,223954.716,4000.4626,N,10515.2299,W,1,07,1.2,1614.2,M,-14.0,M,,0000*5B
$GPGSA,A,3,24,02,20,17,28,04,10,,,,,,2.2,1.2,1.8*7
GGV21080,7143,24,0,2174,5,82,328267
$PS,,,81,3,1,72,8152,01,122,01,4,87
$GRC235.1,,00.66N15529,,0.,3.5201,,*B
GVG,3.,,M000N000,,*0
$GPGGA,223955.716,4000.4626,N,10515.2299,W,1,07,1.2,1614.2,M,-14.0,M,,0000*5A
$GPGSA,A,3,24,02,20,17,28,04,10,,,,,,2.2,1.2,1.8*7
GGV210,47,433,24,0,31,405,72,3282*0
$PS,,,81,6332,8,8152,01,4,7,01,4,87
$PM,235.1,,0042,,01529,,0.,3.,471,,*A
GVG385,,M000N000KA0
$GPGGA,223956.716,4000.4626,N,10515.2299,W,1,07,1.2,1614.2,M,-14.0,M,,0000*59
$GPGSA,A,3,24,02,20,17,28,04,10,,,,,,2.2,1.2,1.8*7
GGV210,0,7133,24,0,2,74,5,62,3282*4
$PS,,,81,631,62,8152,017122,01,4,87
$PMC235.1,,00426N15529,,0.,385201,,*9
GVG33.,,M000N000,,*0
$GPGGA,223957.716,4000.4626,N,10515.2299,W,1,07,1.2,1614.2,M,-14.0,M,,0000*58
$GPGSA,A,3,24,02,20,17,28,04,10,,,,,,2.2,1.2,1.837
GGV210,47,133,24,0,41,409282,3282*7
GGS,,,81,6332,2,8152,01,4,62,3,4,07
$PM,295.1,,0042,,05529,,0.,3.,473,,*8
GVG385T,M000N000KA00
$GPGGA,223958.716,4000.4626,N,10515.2299,W,1,07,1.2,1614.2,M,-14.0,M,,0000*57
$GPGSA,A,3,24,02,20,17,28,04,10,,,,,,2.2,1.2,1.83
$GGV210,47,4,3,24,0,41,405,22,3282*E
GGV2,,81,6332,818152,01,4,6201,4,87
$PM,298.1,,0042,,01529,,0.,3.,401,,*7
GVG38.T,M000N000KA0
$GPGGA,223959.716,4000.4626,N,10515.2299,W,1,07,1.2,1614.2,M,-14.0,M,,0000*56
$GPGSA,A,3,24,02,20,17,28,04,10,,,,,,2.2,1.2,1.8*7
GGV210,477132,24,0,5174,5,12,3282*9
GPS,,,81,633252,8152,01,422,01,4,07
$PM,235.1,,0042,,15529,,0.,3.5201,,*6
GVG385,,M000N000KA*0


And what should be received:
Quote
$GPGGA,221351.000,0000.0000,N,00000.0000,E,0,00,0.0,0.0,M,0.0,M,,0000*6B
$GPGSA,A,1,,,,,,,,,,,,,0.0,0.0,0.0*30
$GPGSV,2,1,06,24,00,000,37,12,00,000,30,06,00,000,00,17,00,000,40*7A
$GPGSV,2,2,06,08,00,000,00,28,00,000,00*7D
$GPRMC,221351.000,V,0000.0000,N,00000.0000,E,000.0,000.0,240713,,,N*73
$GPVTG,000.0,T,,M,000.0,N,000.0,K,N*02
$GPGGA,221352.000,0000.0000,N,00000.0000,E,0,00,0.0,0.0,M,0.0,M,,0000*68
$GPGSA,A,1,,,,,,,,,,,,,0.0,0.0,0.0*30
$GPGSV,2,1,06,24,00,000,36,12,00,000,29,06,00,000,00,17,00,000,39*7D
$GPGSV,2,2,06,08,00,000,00,28,00,000,00*7D
$GPRMC,221352.000,V,0000.0000,N,00000.0000,E,000.0,000.0,240713,,,N*70
$GPVTG,000.0,T,,M,000.0,N,000.0,K,N*02
$GPGGA,221353.000,0000.0000,N,00000.0000,E,0,00,0.0,0.0,M,0.0,M,,0000*69
$GPGSA,A,1,,,,,,,,,,,,,0.0,0.0,0.0*30
$GPGSV,2,1,06,24,00,000,36,12,00,000,29,06,00,000,00,17,00,000,40*73
$GPGSV,2,2,06,08,00,000,00,28,00,000,00*7D
$GPRMC,221353.000,V,0000.0000,N,00000.0000,E,000.0,000.0,240713,,,N*71
$GPVTG,000.0,T,,M,000.0,N,000.0,K,N*02
$GPGGA,221354.000,0000.0000,N,00000.0000,E,0,00,0.0,0.0,M,0.0,M,,0000*6E
$GPGSA,A,1,,,,,,,,,,,,,0.0,0.0,0.0*30
$GPGSV,2,1,06,24,00,000,36,12,00,000,30,06,00,000,00,17,00,000,40*7B
$GPGSV,2,2,06,08,00,000,00,28,00,000,00*7D
$GPRMC,221354.000,V,0000.0000,N,00000.0000,E,000.0,000.0,240713,,,N*76
$GPVTG,000.0,T,,M,000.0,N,000.0,K,N*02
$GPGGA,221355.000,0000.0000,N,00000.0000,E,0,00,0.0,0.0,M,0.0,M,,0000*6F
$GPGSA,A,1,,,,,,,,,,,,,0.0,0.0,0.0*30
$GPGSV,2,1,05,24,00,000,37,12,00,000,30,17,00,000,40,08,00,000,00*77
$GPGSV,2,2,05,28,00,000,34*41
$GPRMC,221355.000,V,0000.0000,N,00000.0000,E,000.0,000.0,240713,,,N*77
$GPVTG,000.0,T,,M,000.0,N,000.0,K,N*02
$GPGGA,221356.000,0000.0000,N,00000.0000,E,0,00,0.0,0.0,M,0.0,M,,0000*6C
$GPGSA,A,1,,,,,,,,,,,,,0.0,0.0,0.0*30
$GPGSV,2,1,05,24,00,000,36,12,00,000,29,17,00,000,39,08,00,000,00*70
$GPGSV,2,2,05,28,00,000,33*46
$GPRMC,221356.000,V,0000.0000,N,00000.0000,E,000.0,000.0,240713,,,N*74
$GPVTG,000.0,T,,M,000.0,N,000.0,K,N*02
$GPGGA,221357.000,0000.0000,N,00000.0000,E,0,00,0.0,0.0,M,0.0,M,,0000*6D
$GPGSA,A,1,,,,,,,,,,,,,0.0,0.0,0.0*30
$GPGSV,2,1,05,24,00,000,36,12,00,000,29,17,00,000,39,08,00,000,00*70
$GPGSV,2,2,05,28,00,000,34*41
$GPRMC,221357.000,V,0000.0000,N,00000.0000,E,000.0,000.0,240713,,,N*75
$GPVTG,000.0,T,,M,000.0,N,000.0,K,N*02


Thanks a ton for your assistance!

1runner

hey friend :), based on your data it looks like you are from the Czech Republic 8). If that is true your data is actually working perfectly. I assume the zeroes in the example you posted are actually just placeholders for real values.
this is how to read the data you are receiving:

ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
$GPGGA,222511.000,3409.6557,N,11817.1318,W,0,00,50.0,117.14,M,,,,*16
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,222511.000,V,3409.6557,N,11817.1318,W,,,120613,,,N*6E
$GPGSV,3,1,10,09,80,037,29,17,67,197,,28,58,017,,08,55,102,*76
$GPGSV,3,2,10,26,51,261,,07,26,122,,01,23,073,,15,22,307,*7A
$GPGSV,3,3,10,11,17,053,,04,00,180,*75

steps:
1.find the W, E, N, or S
2. read as demonstrated below

$GPRMC,--222512.000,V, 3409.6557,     N,      11817.1318,     W         ,,,120613,,,N*6D
                                   (value)   (N or S)     (value)   (E or W)

I know that is not the correct location. I took that before it got a lock. However, the issue is not that it gets the wrong location. I have tested the GPS out separately and it works fine once it gets a lock. The issue that i'm having is in how the XBee is transmitting the data. Please see the logs above and notice the difference in formatting to see what I'm referring to.

Thanks!

The issue was that the baud of the XBee was the same as the GPS so when I was trying to pass the GPS serial through the XBee there were some issues with buffering. When i increased the baud rate of the XBee it fixed all the problems i was having!

1runner

great, now you get to deal with parsing the data, have fun! :P

Go Up