- Wed Sep 23, 2015 2:44 pm
#7693
Hi,
I have been trying to fix the position reported by the dfrobot gsm, gps unit. Everything else is working but it keeps reporting the wrong position. I have the unit connected to a 12V 1A power supply, I am outside in a field and I am using the source code directly from the wiki:
http://www.dfrobot.com/wiki/index.php/G ... KU:TEL0051)
I found a post on a similar sounding problem, but it seems to be a parsing bug with the seconds part of the coordinate where as mine seems to be a problem with the minutes and seconds:
http://forum.arduino.cc/index.php?topic=269950.0
Here are two examples of the errors: I have attached images showing the distance on a map:
Actual:
53.368396, -6.260327
predicted:
53.2210502 -6.156313
difference:
.147346, .1040136
http://imgur.com/g3YsinB
53.573537, -6.448472
Recorded:
53.3443641, -6.2690668
difference:
.229173, .1794052
http://imgur.com/J5sBYIg
I have linked two images showing the error. The error seems to be in the same direction but of a different magnitude.
I looked at the raw serial data and it looks like this:
5322.09864, 0615.61676
and the previous post says that the format is:
DDmm.ddddd
so the datatransfer function is converting it like this:
5322.09864, 0615.61676 -> 53.2210502 -6.156313
if we just look at the minutes first, 22 minutes are being passed in and it is saying the decimal value is 22.
If I divide 22 by 60 I get .36 which is much closer to the actual decimal coordinate of 53.368396,
the same is correct if I divide the minutes on the longitude:
raw: 0615.61676
minutes = 15
decimalised = .25
actual longitude minutes = .26
So it looks like the data-transfer function is parsing it incorrectly. I am still trying to work out how to fix the seconds so any help would be appreciated.
I have been trying to fix the position reported by the dfrobot gsm, gps unit. Everything else is working but it keeps reporting the wrong position. I have the unit connected to a 12V 1A power supply, I am outside in a field and I am using the source code directly from the wiki:
http://www.dfrobot.com/wiki/index.php/G ... KU:TEL0051)
I found a post on a similar sounding problem, but it seems to be a parsing bug with the seconds part of the coordinate where as mine seems to be a problem with the minutes and seconds:
http://forum.arduino.cc/index.php?topic=269950.0
Here are two examples of the errors: I have attached images showing the distance on a map:
Actual:
53.368396, -6.260327
predicted:
53.2210502 -6.156313
difference:
.147346, .1040136
http://imgur.com/g3YsinB
53.573537, -6.448472
Recorded:
53.3443641, -6.2690668
difference:
.229173, .1794052
http://imgur.com/J5sBYIg
I have linked two images showing the error. The error seems to be in the same direction but of a different magnitude.
I looked at the raw serial data and it looks like this:
5322.09864, 0615.61676
and the previous post says that the format is:
DDmm.ddddd
so the datatransfer function is converting it like this:
5322.09864, 0615.61676 -> 53.2210502 -6.156313
if we just look at the minutes first, 22 minutes are being passed in and it is saying the decimal value is 22.
If I divide 22 by 60 I get .36 which is much closer to the actual decimal coordinate of 53.368396,
the same is correct if I divide the minutes on the longitude:
raw: 0615.61676
minutes = 15
decimalised = .25
actual longitude minutes = .26
So it looks like the data-transfer function is parsing it incorrectly. I am still trying to work out how to fix the seconds so any help would be appreciated.