GPS compatible modems.

Michael Larson mlarson at westernintech.com
Thu Dec 18 08:22:07 PST 2014


My experience with the MU609 was that 30 seconds was long enough for it to lose lock and start fresh almost every time, giving poor gps performance when only a few satellites are visible.  I ended up recompiling modemmanager with new settings, 1s updates in my case, which gives continuous lock when possible.  There is another quirk with that modem: you ask it for N GPS updates, and once it has provided them, it stops.  So a 24/7 solution would require disabling and re-enabling location gathering after some number of hours.

-----Original Message-----
From: ModemManager-devel [mailto:modemmanager-devel-bounces at lists.freedesktop.org] On Behalf Of Dan Williams
Sent: Thursday, December 18, 2014 7:35 AM
To: Marc Murphy
Cc: 'David McCullough'; 'Yegor Yefremov'; 'Aleksander Morgado'; 'modemmanager-devel at lists.freedesktop.org'
Subject: Re: GPS compatible modems.

On Thu, 2014-12-18 at 11:09 +0000, Marc Murphy wrote:
> > -----Original Message-----
> > From: David McCullough [mailto:david.mccullough at accelecon.com]
> > 
> > 
> > Marc Murphy wrote the following:
> > > This is all working well with the MC7710 and the MU609.  I have an 
> > > app to
> > use the dbus i/f and enable/disable the modem and get NMEA traces.
> > >
> > > I do see a difference in operation though between the Sierra and 
> > > the
> > Huawei.
> > >
> > > In the app I have written I have a context that gets the modem 
> > > info over dbus and configures it to give GPS;
> > >
> > > 		ctx->modem = mm_object_peek_modem (MM_OBJECT
> > (modems->data));
> > >
> > > 		ctx->object = MM_OBJECT (modems->data);
> > >
> > > 		    ctx->modem_location = mm_object_get_modem_location 
> > > (ctx->object);
> > >
> > >
> > > 		    if (mm_modem_get_state (mm_object_peek_modem
> > (ctx->object)) < MM_MODEM_STATE_ENABLED) {
> > > 		        gboolean result;
> > > 		        g_printerr ("error: modem not enabled yet... lets try 
> > > and enable it\n");
> > >
> > > 		        g_debug ("enabling modem...");
> > > 		        if(mm_modem_enable_sync (ctx->modem, NULL,
> > &error))
> > > 			        g_debug ("enabled modem...");
> > > 		    }
> > > 		mm_modem_location_setup_sync (ctx->modem_location,
> > > 							 sources,
> > >
> > mm_modem_location_signals_location (ctx->modem_location),
> > > 							 NULL,
> > > 							 &error);
> > >
> > > Once it is all  set up then I request the location
> > >
> > >     mm_modem_location_get_full_sync (ctx->modem_location,
> > >                                      &location_3gpp,
> > >                                      &location_gps_nmea,
> > >                                      &location_gps_raw,
> > >                                      &location_cdma_bs,
> > >                                      NULL,
> > >                                      &error);
> > >
> > > And extract the NMEA trace I am interested in.
> > >
> > > With the Sierra each 5 second poll of the location info I see the 
> > > NMEA trace
> > is updating as I can see the time increasing:
> > > Took 9.000000 seconds to find modem Took 1 seconds to enable modem 
> > > Got location $GPRMC,091806.0,A,XXXXXXXXXXXXXXXXXXXXXXX,,,A*44
> > >
> > > Took 160 seconds to get lock
> > > Got location $GPRMC,091811.0,A, XXXXXXXXXXXXXXXXXXXXXXX,,,A*40
> > >
> > > Got location $GPRMC,091816.0,A, XXXXXXXXXXXXXXXXXXXXXXX,,,A*40
> > >
> > > Got location $GPRMC,091821.0,A, XXXXXXXXXXXXXXXXXXXXXXX,,,A*47
> > >
> > > With the Huawei each 5 second poll of the location info I see the 
> > > NMEA
> > trace is static:
> > 
> > 
> > I think when I setup the Huawei code I hardcoded the command to the 
> > modem to only send updates every 30 seconds.  There is no update-now 
> > option IIRC and 30 seconds seemed like a fair enough compromise.
> > 
> > Look for "^WPDFR=65535,30" in plugins/huawei/mm-broadband-modem-
> > huawei.c.`
> > 
> That would explain a lot...  I have been using the mmcli as well to 
> test the location and the the updates are ~30secs sometimes more.
> 
> I will have a play with the WPDFR settings.  Thank you.

It seems we should have made the Location.Setup() call take some arguments, like update interval :)  I think it would be useful to configure this via the D-Bus interface when enabling location, since different clients might have different requirements on update speed.

Dan

> Marc
> 
> > > error: modem not enabled yet... lets try and enable it Took 
> > > 21.500000 seconds to find modem Took 1 seconds to enable modem Got 
> > > location $GPRMC,092239.0,A, XXXXXXXXXXXXXXXXXXXXXXX,,,A*7C
> > >
> > > Took 55 seconds to get lock
> > > Got location $GPRMC,092240.0,A, XXXXXXXXXXXXXXXXXXXXXXX,,,A*7C
> > >
> > > Got location $GPRMC,092240.0,A, XXXXXXXXXXXXXXXXXXXXXXX,,,A*7C
> > >
> > > Got location $GPRMC,092240.0,A, XXXXXXXXXXXXXXXXXXXXXXX,,,A*7C
> > >
> > > If I keep killing and running the app it will update the location 
> > > each time.  It
> > is almost as if I have to kill the dbus context and start again for 
> > each fetch of location.... is this the way it is intended to be used or is there an issue here ?
> > 
> > I have no idea about this,  this is all at a higher level than the 
> > Huawei code, unless you are just hitting the 30 second thing ?
> > 
> > Cheers,
> > Davidm
> > 
> > 
> > > -----Original Message-----
> > > From: Aleksander Morgado [mailto:aleksander at aleksander.es]
> > > Sent: 03 December 2014 07:42
> > > To: Marc Murphy
> > > Cc: Dan Williams; Yegor Yefremov; David McCullough; 
> > > modemmanager-devel at lists.freedesktop.org
> > > Subject: Re: GPS compatible modems.
> > >
> > > On Tue, Dec 2, 2014 at 10:10 PM, Marc Murphy 
> > > <marcmltd at marcm.co.uk>
> > wrote:
> > > > Thanks for the feedback, now to write the app to get the NMEA 
> > > > from the
> > MM dbus instead of the ttyUSB.
> > >
> > > For the Huawei MU609 you'll see that the modem also reports
> > "unmanaged GPS" capabilities in ModemManager. That means that you 
> > can use ModemManager to just start/stop GPS, and still read NMEA 
> > traces yourself with another application through the TTY (i.e. 
> > ModemManager won't parse and expose NMEA traces).
> > >
> > > The Sierra MC7710 could do this, but right now it defaults to use 
> > > QMI for
> > everything (i.e. no TTY with NMEA traces involved at all).
> > >
> > > --
> > > Aleksander
> > > https://aleksander.es
> > 
> > --
> > David McCullough,  david.mccullough at accelecon.com,   Ph: 0410 560 763
> _______________________________________________
> ModemManager-devel mailing list
> ModemManager-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/modemmanager-devel


_______________________________________________
ModemManager-devel mailing list
ModemManager-devel at lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/modemmanager-devel


More information about the ModemManager-devel mailing list