Notices


Reply
Thread Tools
Posts: 2,102 | Thanked: 1,309 times | Joined on Sep 2006
#11
I'm afraid Motorola doesn't supply any GPS utility. I don't really care about the satellites health, but it would be useful to see the speed and altitude on my 770...
Well RMC should provide the recommended minimum nav data (http://www.gpsinformation.org/dale/nmea.htm#RMC). This contains lat, lon, speed and track. GGA (http://www.gpsinformation.org/dale/nmea.htm#GGA) also provides you with altitude data, etc..

It may be that Maemo-mapper uses a different NMEA sentances to extract the speed/track data and therefore ignores your outputs?
 
Posts: 7 | Thanked: 0 times | Joined on Sep 2007
#12
Originally Posted by gnuite View Post
Some GPS devices support both NMEA and a proprietary "binary" format that can be accessed only via their software. And for some of those kinds of devices, the amount of data available via NMEA is less than the amount of data available via their binary format. It sucks, but unfortunately it's a fact of life. :/
Yeah, but my device seems to show standard NMEA, and both altitude and speed are given.

That's what my GPS gives at the moment:
Code:
$GPGGA,102551.000,5029.1071,N,01718.6271,E,1,07,1.3,218.1,M,42.9,M,,0000*5A
$GPRMC,102551.000,A,5029.1071,N,01718.6271,E,0.00,,050908,0,A*6E
That looks pretty standard to me, according to this site, it should look like this:
[CODE]$GPGGA,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x ,M,x.x,M,x.x,xxxx*hh
$GPRMC,hhmmss.ss,A,llll.ll,a,yyyyy.yy,a,x.x,x.x,dd mmyy,x.x,a*hh[/
CODE]
According to this, my altitude is 218 m, and my speed is 0 knots.
 
Posts: 2,102 | Thanked: 1,309 times | Joined on Sep 2006
#13
I've just had a look at the maemo-mapper source code, and it uses the RMC and GGA data for nav info and the GSA and GSV for satellite info. The RMC data is the only one which looks to be strictly necessary (as this is parsed to check as to whether the GPS has a fix), the others are parsed if available.

Therefore, it ought to work. Assuming the RMC & GGA data are parsed correctly (and your GPS formats them correctly), you might want to look at the display routi nes of maemo-mapper to see if there's some dependence on the satellite info which is stopping the location, etc., from being displayed.
 
Posts: 2,102 | Thanked: 1,309 times | Joined on Sep 2006
#14
In "gboolean gps_display_details(void)", the line "if(_gps.fix < 2)" is where I'd start.

This probably takes its data from GSV/GSA rather than using the GGA fix quality flag. But you'll need to check that supposition on my part.
 
Posts: 348 | Thanked: 61 times | Joined on Dec 2007
#15
On my N800 with OS2008, the GPS info shows everything - speed, altitude, satellite information, etc. It's not Maemo Mapper, it's either your GPS receiver or your OS.
 
Posts: 2,102 | Thanked: 1,309 times | Joined on Sep 2006
#16
On my N800 with OS2008, the GPS info shows everything - speed, altitude, satellite information, etc. It's not Maemo Mapper, it's either your GPS receiver or your OS.
I think we've narrowed it down to the GPS receiver, however looking at the maemo-mapper source code, it should provide enough info, therefore there may be some interaction in maemo-mapper (as I pointed out above) which prevents the salient info from being displayed for some reason.
 
Posts: 7 | Thanked: 0 times | Joined on Sep 2007
#17
Ok, now I am also pretty sure that it has nearly nothing to do with my GPS device. I checked the GPX file and it lists altitude and speed for all the waypoints. It means that Maemo Mapper reads the altitude and velocity, it just doesn't display it in the GPS info box. As lardman suggested before, it seems that Maemo Mapper assumes that there is no fix if it doesn't get any info on satellites. I'm not good enough in programming to fix it myself, but can anyone be kind enough to repair this bug in the next release?
 
Posts: 2,102 | Thanked: 1,309 times | Joined on Sep 2006
#18
Make sure you submit a bug to the Garage project and link to this thread
 
Posts: 4 | Thanked: 4 times | Joined on Sep 2009
#19
After tests with SiRFdemo.exe and check the setting of the moto T805, I found the root cause of the problem. Well, it really sucks, but anyway it does work with lots of other GPS software.
Well, the root cause of the problem is that the moto T805 does not output GSA, GSV, GLL and VTG by default but only the GGA and RMC data. Some other GPS software will configure the T805 to send those information on every initial connection of the GPS module but Maemo Mapper does not.
So the most proper "fix" to this problem should be to send the initial configuration instructions from the Maemo Mapper software to the GPS module to request for those "missing parameters" once it gets connected with the GPS module.
To verify this, you would need the SiRFdemo.exe software on your PC.

see this link for details about the SiRFdemo.exe software:
http://www.sirf.com/SiRFDemo_User_Guide.pdf


I found a document about how to configure the moto T805 via software:
http://www.sparkfun.com/datasheets/G...%20Manual1.pdf
In this document it said:
--------
Note – NMEA input messages 100 to 106 are SiRF proprietary NMEA messages. The MSK NMEA string is as defined by the NMEA 0183 standard.
--------
NMEA input messages 100 through 106 are used to configure the output of NMEA parameters, but they are 'proprietary'.
So ... this might be the reason why maemo did not implement those inital configuration commands.

I have implemented a simple fix (not a good one, though) for this problem. see below posts for details.

Last edited by yurihua; 2009-09-16 at 19:22. Reason: Found a document for this ...
 

The Following User Says Thank You to yurihua For This Useful Post:
Posts: 4 | Thanked: 4 times | Joined on Sep 2009
#20
A simple fix to this problem is to set this manualy with a small program, since I don't have the maemo sdk installed (that's a big guy).

Below is a piece of C source code to set the GPS parameters, maybe somebody could refine and integrate it into the maemo mapper?

Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>

void set_gps(int fd, int msg_type, int mode, int rate, char *buf, int buf_len);

int
main()
{
   char buf[64];
   int fd=open("/dev/rfcomm0", O_RDWR);
   set_gps(fd, 1, 0, 1, buf, 64); /* GLL @ 1 Hz */
   set_gps(fd, 2, 0, 5, buf, 64); /* GSA @ 0.2 Hz */
   set_gps(fd, 3, 0, 1, buf, 64); /* GSV @ 1 Hz*/
   set_gps(fd, 5, 0, 1, buf, 64); /* VTG @ 1 Hz */
}

/*
 * fd: the file to write
 * msg_type: NMEA Query/Rate control msg type: 1-9
 * See above post for details in 'NMEA Reference Manual', Chapter 
 * 2, '103-Query/Rate Control'.
 * mode: query or setRate: 0=setRate, 1=Query
 * rate: off=0, max=255, unit: second
 * buf: output buffer
 * buf_len: output buffer len
 */
void set_gps(int fd, int msg_type, int mode, int rate, char *buf, int buf_len)
{
   char *sptr=0;
   char *ptail=0;
   int csum=0;
   int buf_tmp_size=0;

   memset(buf, 0, buf_len);
   snprintf(buf, buf_len, "%s,0%d,0%d,0%d,01*", "$PSRF103", msg_type, mode, rate);

   /* calculate the check sum ... */
   sptr=buf+1; /*skip the $*/
   buf_tmp_size=strlen(buf);
   ptail=buf+buf_tmp_size;

   while(*sptr && *sptr != '*')
     csum ^= *sptr++;

   snprintf(ptail, buf_len-buf_tmp_size, "%x\r\n", csum);
   printf("%s", buf);
   write(fd, buf, strlen(buf));
}
Try this binary (for Nokia N800 running OS2008 Version5.2008-43.7) here....
gpsset.zip

or you can compile it your self with gcc ...

Last edited by yurihua; 2009-09-16 at 16:31.
 

The Following User Says Thank You to yurihua For This Useful Post:
Reply


 
Forum Jump


All times are GMT. The time now is 11:03.