Discussion:
gpsd with pps
Sandor Nagy
2008-11-24 20:56:19 UTC
Permalink
Dear all,

My goal is to build an NTP server by using a GPS receiver with PPS signal.
If the GPS is unavailable I can provide an accurate PPS signal derived from
a rubidium oscillator.

I don't know which driver would be the best for me.
My first idea was to use the NMEA driver, but it is working only with NMEA
not with PPS, because I am using a gumstix and it doesn't have DCD pin. The
problem is the same with the ATOM driver, I cannot use DCD.
In case of SHM, I could compile the gpsd with --enable-pps-on-cts option,
but I can't see pps in the debug mode. even the pps is there. (I checked it
with an oscilloscope). I don't want to spend too much time to debug this, if
this one is not the right driver for the rubidium holdover solution.
Any advice would be appreciated to choose the right method.
Best regards,
Sandor Nagy
--
View this message in context: http://www.nabble.com/gpsd-with-pps-tp20669666p20669666.html
Sent from the GPSd - Users mailing list archive at Nabble.com.
Gary E. Miller
2008-11-24 21:34:59 UTC
Permalink
Yo Sandor!
Post by Sandor Nagy
My goal is to build an NTP server by using a GPS receiver with PPS signal.
Very doable.
Post by Sandor Nagy
If the GPS is unavailable I can provide an accurate PPS signal derived from
a rubidium oscillator.
That would be the job of ntpd. Gpsd just feed the NMEA and PPS times to
ntpd. Ntpd will also be programmed to accept time from other sources, like
over the net and your rubidium source.
Post by Sandor Nagy
In case of SHM, I could compile the gpsd with --enable-pps-on-cts option,
but I can't see pps in the debug mode. even the pps is there. (I checked it
with an oscilloscope).
Are you getting a good NMEA time? Until that works the PPS is locked out
to prevent locking onto random signale.

Send your gps debug output and ntp.conf files so we can look at them.
Post by Sandor Nagy
I don't want to spend too much time to debug this, if
this one is not the right driver for the rubidium holdover solution.
Apples and oranges. Gpsd is only to get the NMEA and PPS times to ntpd.
For rubidium questions you will have to find an ntpd list.

RGDS
GARY
- ---------------------------------------------------------------------------
Gary E. Miller Rellim 109 NW Wilmington Ave., Suite E, Bend, OR 97701
***@rellim.com Tel:+1(541)382-8588
Sandor Nagy
2008-11-25 18:40:30 UTC
Permalink
Dear Gery,
First of all thank you for your help.

Here is my debug output:

***@gumstix-custom-connex:~$ gpsd -nND 5 /dev/ttyS1
gpsd: launching (Version 2.34)
gpsd: listening on port gpsd
gpsd: shmat(-43552,0,0) succeeded
gpsd: shmat(-43552,0,0) succeeded
gpsd: shmat(-43552,0,0) succeeded
gpsd: shmat(-43552,0,0) succeeded
gpsd: successfully connected to the DBUS system bus
gpsd: running with effective group ID 0
gpsd: running with effective user ID 0
gpsd: opening GPS data source at '/dev/ttyS1'
gpsd: speed 9600, 8N1
gpsd: garmin_gps not active.
gpsd: no probe matched...
gpsd: gpsd_activate(1): opened GPS (5)
gpsd: packet sniff finds type -1
gpsd: packet sniff finds type -1
gpsd: packet sniff finds type -1
gpsd: packet sniff finds type -1
gpsd: packet sniff finds type -1
gpsd: packet sniff finds type -1
gpsd: packet sniff finds type -1
gpsd: packet sniff finds type -1
gpsd: packet sniff finds type -1
gpsd: packet sniff finds type 1
gpsd: switch_driver(Generic NMEA) called...
gpsd: selecting Generic NMEA driver...
gpsd: => GPS: $PSRF100,0,9600,8,1,0*0C\x0d
gpsd: <= GPS:
$GPRMC,171226.012,A,4736.124278,N,01902.917038,E,0.004,188.49,221108,,,A*5E
gpsd: <= GPS:
$GPRMC,171227.020,A,4736.124282,N,01902.917049,E,0.004,188.26,221108,,,A*54
gpsd: <= GPS:
$GPRMC,171228.012,A,4736.124284,N,01902.917057,E,0.004,188.02,221108,,,A*55
gpsd: <= GPS:
$GPRMC,171229.020,A,4736.124285,N,01902.917067,E,0.004,187.53,221108,,,A*5C


and here is my ntp.conf:
driftfile /etc/ntp.drift

server 127.127.28.0 minpoll 4 maxpoll 4
fudge 127.127.28.0 time1 -0.3 refid GPS0
server 127.127.28.1 minpoll 4 maxpoll 4 prefer
fudge 127.127.28.1 refid GPS1

server time.kfki.hu

server 127.127.1.0
fudge 127.127.1.0 stratum 10

The result is this:

remote refid st t when poll reach delay offset
jitter
==============================================================================
*SHM(0) .GPS0. 0 l 14 16 377 0.000 -4.274
3.508
SHM(1) .GPS1. 0 l - 16 0 0.000 0.000
0.004
+ubul.kfki.hu 217.31.205.226 2 u - 64 377 12.966 1.120
2.108
LOCAL(0) .LOCL. 10 l 20 64 377 0.000 0.000
0.004

The GPIO config:
***@gumstix-custom-connex:~$ cat /proc/gpio/GPIO4[2345]
42 AF1 in set
43 AF2 out set
44 AF1 in clear
45 AF2 out set

and the comple putput:
==========================================
gpsd 2.34
------------------------------------------
NMEA : yes
FV-18 : yes
SiRF : yes
Trimble TSIP : yes
Tripmate : yes
Earthmate : yes
iTrax : no
iTalk : no
Garmin : yes
True North : no
EverMore : yes
RTCM104 support : yes
NTRIP support : yes
NTP SHM : yes
NTP PPS : yes
PPS input on : CTS
Fixed port speed : no
Enable shared libraries : yes
Enable DBUS support : yes
Enable X11 support : yes
Enable Python support : yes
Limited max clients : no
Limited max devices : no
Allow device reconfig : no
Squelch logging/hexdump : no
------------------------------------------

I hope you can find something wrong with these, because I cannot.

Best regards,
Sandor
--
View this message in context: http://www.nabble.com/gpsd-with-pps-tp20669666p20687199.html
Sent from the GPSd - Users mailing list archive at Nabble.com.
Gary E. Miller
2008-11-25 19:24:07 UTC
Permalink
Yo Sandor!
Post by Sandor Nagy
gpsd: speed 9600, 8N1
Try to get the speed up. The faster the port speed the less jitter on
the NMEA derived time, althought it will always be sloppy (maybe a
few 100mS jitter).
Post by Sandor Nagy
$GPRMC,171226.012,A,4736.124278,N,01902.917038,E,0.004,188.49,221108,,,A*5E
$GPRMC,171227.020,A,4736.124282,N,01902.917049,E,0.004,188.26,221108,,,A*54
$GPRMC,171228.012,A,4736.124284,N,01902.917057,E,0.004,188.02,221108,,,A*55
$GPRMC,171229.020,A,4736.124285,N,01902.917067,E,0.004,187.53,221108,,,A*5C
You should be getting PPS debug info here. That leads me to believe you
have a connection problem with your PPS pin. Could be the level is wrong,
could be the wrong pins are connected, could be the GPS is not send PPS.

Since you said you saw the PPS on a scope I assume one of the first two.
Looks good, until you have a fudge on the PPS.
Not bad.
I dunno anything about Gumstix.
Post by Sandor Nagy
NTP SHM : yes
NTP PPS : yes
The two important ones are there.
Post by Sandor Nagy
PPS input on : CTS
You sure your signal is on CTS? And the level is good RS-232 (+/- 12V)?



RGDS
GARY
- ---------------------------------------------------------------------------
Gary E. Miller Rellim 109 NW Wilmington Ave., Suite E, Bend, OR 97701
***@rellim.com Tel:+1(541)382-8588
Sandor Nagy
2008-12-02 18:09:08 UTC
Permalink
Dear all,

I am sorry to say, but I need to give up the project with the
gumstix-connex, because they will phase out this product. Since my project
is a new one, I am looking for another platform to build an NTP server.
I am thinking about the VSX-6115 board with vortex86sx processor
http://www.icop.com.tw/products_detail.asp?ProductID=276
http://www.icop.com.tw/products_detail.asp?ProductID=276 , which is an X86
based platform.
If you have any comments or recommendation please inform me.
Thank you for your help.
Best regards,
Sandor
--
View this message in context: http://www.nabble.com/gpsd-with-pps-tp20669666p20797774.html
Sent from the GPSd - Users mailing list archive at Nabble.com.
Chris Kuethe
2008-12-02 18:22:29 UTC
Permalink
Post by Sandor Nagy
I am thinking about the VSX-6115 board with vortex86sx processor
yuck. that processor doesn't have an FPU. of course, there's a good
chance that the average little ARM board doesn't have an FPU either...
overall, i'd rather have a slightly more complete X86-compatible
processor like the geode. two systems i can think of are soekris
net4501 and pcengines alix1d
--
GDB has a 'break' feature; why doesn't it have 'fix' too?
Adam Dosch
2008-12-02 20:35:33 UTC
Permalink
Sandor,

FWIW, and off of Chris' note, not that I break the piggy bank doing OSS stuff
that I do, but my embedded ntp server is holding up quite well using an
Advantech PCM-5825 (http://www.advantech.com/applied/products/PCM-5825_ds.pdf
which is End Of Life, there's definitely comparable non-EOL models out there to
choose from) and an Motorola Oncore UT+ GPS module.

Gumstix might be perhaps too big a piece for you to chew off if you're new to
the embedded world of Linux (esp. in regards to ARM, cross-compiling,
toolchains, etc.) Not to say Gumstix isn't well developed and widely supported,
but I've rolled my fair share of these by hand and it takes a bit of know-how
and fandangling... best to stay with x86 arch and save some balding for now.

Again, I don't know the in's and out's of your project (e.g. profit, contract or
fun) but that's my $0.02.
Post by Chris Kuethe
Post by Sandor Nagy
I am thinking about the VSX-6115 board with vortex86sx processor
yuck. that processor doesn't have an FPU. of course, there's a good
chance that the average little ARM board doesn't have an FPU either...
overall, i'd rather have a slightly more complete X86-compatible
processor like the geode. two systems i can think of are soekris
net4501 and pcengines alix1d
--
GDB has a 'break' feature; why doesn't it have 'fix' too?
_______________________________________________
Gpsd-users mailing list
https://lists.berlios.de/mailman/listinfo/gpsd-users
Sandor Nagy
2008-12-03 16:11:22 UTC
Permalink
Dear Adam,
Post by Adam Dosch
FWIW, and off of Chris' note, not that I break the piggy bank doing OSS stuff
that I do, but my embedded ntp server is holding up quite well using an
Advantech PCM-5825
(http://www.advantech.com/applied/products/PCM-5825_ds.pdf
Post by Adam Dosch
which is End Of Life, there's definitely comparable non-EOL models out there to
choose from) and an Motorola Oncore UT+ GPS module.
I chose the PCM-3353 modul (
http://www.advantech.com/products/AMD-LX800-PC-104-Plus-CPU-Module/mod_1-2JKGV9.aspx
http://www.advantech.com/products/AMD-LX800-PC-104-Plus-CPU-Module/mod_1-2JKGV9.aspx
), because the sise of the board must be less than 100x160mm.
The only problem for me is: the manufacturer supports only the windows OSs.
I will need linux drivers and sample codes (e.g. how to controll other
devices via GPIO, I2C etc.).
I am also looking for other devices on the net to find better choice.

Regards,
Sandor
--
View this message in context: http://www.nabble.com/gpsd-with-pps-tp20669666p20815971.html
Sent from the GPSd - Users mailing list archive at Nabble.com.
Jason Hecker
2008-12-03 23:19:52 UTC
Permalink
Post by Adam Dosch
Post by Adam Dosch
Advantech PCM-5825
(http://www.advantech.com/applied/products/PCM-5825_ds.pdf
Hmmm, I tried to run GPSD and NTPD with the Geode GX1 and it was hopeless
as the GX1 shuts off the hires internal CPU counter when idle/halted(!) so
the PPS was very sloppy and ultimately useless.

How are the LX based CPUs for high res timers in Linux and PPS accuracy.
Chris Kuethe
2008-12-03 23:54:48 UTC
Permalink
Post by Jason Hecker
Post by Adam Dosch
Post by Adam Dosch
Advantech PCM-5825
(http://www.advantech.com/applied/products/PCM-5825_ds.pdf
Hmmm, I tried to run GPSD and NTPD with the Geode GX1 and it was hopeless
as the GX1 shuts off the hires internal CPU counter when idle/halted(!) so
the PPS was very sloppy and ultimately useless.
How are the LX based CPUs for high res timers in Linux and PPS accuracy.
Geode TSC has been busted for as long as I can remember... my first
soekris net4501 (233MHz) had this problem and it doesn't seem to be
fixed.

1) maybe if your board has a sufficiently non-sucky ACPI
implementation you might have a good ACPI HPET?
2) i'm somewhat skeptical about the quality of the PCI bus on Geodes,
and the network interfaces system designers tend to use with them... I
wonder if the system isn't so mediocre that the lack of TSC isn't
really a problem.
3) is your GPS really more precise & accurate than 1usec?

I've got a garmin gps18 hanging off a net4801... the gps is only
accurate to 1usec, the NIC is some NS DP83815-compatible chip. it's
all very much "good enough", not "high quality". I have other machines
for that. Also, once you start transmitting time over ethernet, you
lose microseconds very quickly - network delay becomes non-constant
and asymmetric.

CK
--
GDB has a 'break' feature; why doesn't it have 'fix' too?
Jason Hecker
2008-12-04 00:14:54 UTC
Permalink
Post by Chris Kuethe
1) maybe if your board has a sufficiently non-sucky ACPI
implementation you might have a good ACPI HPET?
I moved to a PentiumMMX based board that worked much better. Alas, it's
RTC was borked and Linux couldn't read nor write it.
Post by Chris Kuethe
3) is your GPS really more precise & accurate than 1usec?
I was the GPS15H and with the Pentium was fine. The Geode would slop by
10's or 100's of milliseconds.
Post by Chris Kuethe
for that. Also, once you start transmitting time over ethernet, you
lose microseconds very quickly - network delay becomes non-constant
and asymmetric.
For the purposes I had the PentiumMMX box worked fine in the end and still
does I am told. Much cheaper than a black box GPS/NTP server costing
$1000's and no worse.
Dean Maluski
2008-12-07 18:17:31 UTC
Permalink
I have a Rockwell Jupiter GPS receiver that outputs 1 pps. I have
configured ntpd to look at the 1 pps signal on dcd line. When I restart
ntpd it begins to lock on the signal but usually gives up within an
hour. I have not rebuilt the kernel for pps support. I'm a bit confused
if I need to do this?
Running Centos 5.x and the latest version of gpsd I think.
This is only the beginning asa ultimately I want to actually replace the
1 pps with a stepped down 1 pps from a Brooks Shera designed 10 MHz
reference. This should be extremely accurate as Brooks design does long
term averaging to keep the 10 Mhz signal at about 0.5 ppm.

To get 1 pps from this I purchased a clock block, 1 pps DA, and FatPPS
from TAPR.
I am using the clock block to step down the 10 MHz sine wave to a 10 KHz
square wave, I then use 4 7490 decade dividers to divide down to 1 PPS,
I then inject that signal into 1 PPS da and grap the serial compatible 1
PPS that has been conditioned by a max232, I then put that into FATPPS
board to get the right duty cycle.
So far with this setup I have not gotten a single lock. I expect the
signal is delayed drastically with all this circuitry but I thought if I
get close enough in delay setting in ntp.conf I'd get a good lock as
despite the long delay the repetition should be quite stable with
minimal drift.

If anyone can help I'd appreciate it and can provide great more detail
ongoing.

Sandor Nagy
2008-12-03 16:14:54 UTC
Permalink
Dear Chris,
Post by Chris Kuethe
yuck. that processor doesn't have an FPU. of course, there's a good
chance that the average little ARM board doesn't have an FPU either...
overall, i'd rather have a slightly more complete X86-compatible
processor like the geode. two systems i can think of are soekris
net4501 and pcengines alix1d
Thanks, I will forget it. I am looking for a geode LX800 board.
Regards,
Sandor.
--
View this message in context: http://www.nabble.com/gpsd-with-pps-tp20669666p20816035.html
Sent from the GPSd - Users mailing list archive at Nabble.com.
Dave C
2008-11-24 22:38:32 UTC
Permalink
Hiya,

This exact scenario works extremely well for me (Gumstix, gpsd, ntp).

1. Does your GPS actually output a PPS signal? Not all GPS do. I'm using a
Garmin 18LVC which does - but the other Garmin 18's don't.

2. If your GPS does output a PPS signal, how is the PPS signal formatted?
The Garmin 18LVC outputs a short (user programmable) pulse at the beginning
of the 'second'. Other GPS units output a 1 Hz square wave, others output a
2Hz square wave (i.e. changes state each second). GPSD requires a short
pulse at the beginning of the 'second'. If the pulse is too long, I seem to
recall that GPSD will ignore the pulse.

3. Are you getting a good GPS fix? The Garmin 18LVC won't start to output
the PPS pulse until it's got a good fix - both time and position - from a
number of satellites.

4. Have you got the appropriate level translation between your GPS and your
Gumstix? Don't forget that a RS232 level translator such as a MAX232 also
does a signal inversion - so your short PPS pulse may have become an
extremely long pulse....

5. On your Gumstix, have you enabled the serial ports correctly? Not all
the serial ports have 4 wire connectivity, and as I recall you have to
configure some internal registers correctly to enable flow control signals.

Hope this helps. Please let the list know how you get on.


ciao, Dave
Post by Sandor Nagy
Dear all,
My goal is to build an NTP server by using a GPS receiver with PPS signal.
If the GPS is unavailable I can provide an accurate PPS signal derived from
a rubidium oscillator.
I don't know which driver would be the best for me.
My first idea was to use the NMEA driver, but it is working only with NMEA
not with PPS, because I am using a gumstix and it doesn't have DCD pin. The
problem is the same with the ATOM driver, I cannot use DCD.
In case of SHM, I could compile the gpsd with --enable-pps-on-cts option,
but I can't see pps in the debug mode. even the pps is there. (I checked it
with an oscilloscope). I don't want to spend too much time to debug this, if
this one is not the right driver for the rubidium holdover solution.
Any advice would be appreciated to choose the right method.
Best regards,
Sandor Nagy
--
http://www.nabble.com/gpsd-with-pps-tp20669666p20669666.html
Sent from the GPSd - Users mailing list archive at Nabble.com.
_______________________________________________
Gpsd-users mailing list
https://lists.berlios.de/mailman/listinfo/gpsd-users
__________ NOD32 3636 (20081124) Information __________
This message was checked by NOD32 antivirus system.
http://www.eset.com
Gary E. Miller
2008-11-25 00:32:26 UTC
Permalink
Yo Dave!
Post by Dave C
This exact scenario works extremely well for me (Gumstix, gpsd, ntp).
Nice list.
Post by Dave C
2. If your GPS does output a PPS signal, how is the PPS signal formatted?
The Garmin 18LVC outputs a short (user programmable) pulse at the beginning
of the 'second'. Other GPS units output a 1 Hz square wave, others output a
2Hz square wave (i.e. changes state each second). GPSD requires a short
pulse at the beginning of the 'second'. If the pulse is too long, I seem to
recall that GPSD will ignore the pulse.
Not exactly. Newer versions of gpsd can handle the 1Hz and 2Hz square
waves. There are still waveforms that confuse gpsd so good tho check.

RGDS
GARY
- ---------------------------------------------------------------------------
Gary E. Miller Rellim 109 NW Wilmington Ave., Suite E, Bend, OR 97701
***@rellim.com Tel:+1(541)382-8588
Sandor Nagy
2008-11-25 19:12:51 UTC
Permalink
Dear Dave,

I am using a gumstix-connex board with a netCF and a GPSstix.
Post by Dave C
1. Does your GPS actually output a PPS signal? Not all GPS do. I'm using a
Garmin 18LVC which does - but the other Garmin 18's don't.
Yes, My GPS receiver is a NAVSYNC CW25-TIM and it has PPS output.
Post by Dave C
2. If your GPS does output a PPS signal, how is the PPS signal formatted?
The Garmin 18LVC outputs a short (user programmable) pulse at the beginning
of the 'second'. Other GPS units output a 1 Hz square wave, others output a
2Hz square wave (i.e. changes state each second). GPSD requires a short
pulse at the beginning of the 'second'. If the pulse is too long, I seem to
recall that GPSD will ignore the pulse.
Originally it is a 100us pulse, and unfortunately it is not programmable. I
though that, it is not enough wide, so I used a monostable multivibrator to
increase it to 230ms.
Post by Dave C
3. Are you getting a good GPS fix? The Garmin 18LVC won't start to output
the PPS pulse until it's got a good fix - both time and position - from a
number of satellites.
I have checked it with an oscilloscope and it was there.
Post by Dave C
4. Have you got the appropriate level translation between your GPS and your
Gumstix? Don't forget that a RS232 level translator such as a MAX232 also
does a signal inversion - so your short PPS pulse may have become an
extremely long pulse....
According to the scope it is a 230ms pulse width , where Uop=3V.
Post by Dave C
5. On your Gumstix, have you enabled the serial ports correctly? Not all
the serial ports have 4 wire connectivity, and as I recall you have to
configure some internal registers correctly to enable flow control signals.
I am using the BTUART port.
The GPIO config:
***@gumstix-custom-connex:~$ cat /proc/gpio/GPIO4[2345]
42 AF1 in set
43 AF2 out set
44 AF1 in clear
45 AF2 out set

And I connected the pps signal to the CTS pin of the BTUART port.

I have no idea how to continue.
Thanks for your effort to help me.
Best regards,
Sandor
--
View this message in context: http://www.nabble.com/gpsd-with-pps-tp20669666p20687755.html
Sent from the GPSd - Users mailing list archive at Nabble.com.
Gary E. Miller
2008-11-25 19:41:36 UTC
Permalink
Yo Sandor!
Post by Sandor Nagy
Originally it is a 100us pulse, and unfortunately it is not programmable. I
though that, it is not enough wide, so I used a monostable multivibrator to
increase it to 230ms.
I would think 100uS is wide enough. At log level 5 the PPS engine will
output diagnostics if the pulse is not as expected. Since your log
output showed no PPS debugging output I suspect gpsd is seeing zero
pulses.
Post by Sandor Nagy
Post by Dave C
4. Have you got the appropriate level translation between your GPS and your
Gumstix? Don't forget that a RS232 level translator such as a MAX232 also
does a signal inversion - so your short PPS pulse may have become an
extremely long pulse....
According to the scope it is a 230ms pulse width , where Uop=3V.
3V is bad. RS-232 is +/-12V. Some, but not all, RS-232 will accept
a TTL level pulse. Do not count on it. Are you sure your input can accept
TTL levels?


RGDS
GARY
- ---------------------------------------------------------------------------
Gary E. Miller Rellim 109 NW Wilmington Ave., Suite E, Bend, OR 97701
***@rellim.com Tel:+1(541)382-8588
Sandor Nagy
2008-11-25 20:09:40 UTC
Permalink
Dear Gary,
Post by Gary E. Miller
Post by Sandor Nagy
Originally it is a 100us pulse, and unfortunately it is not programmable. I
though that, it is not enough wide, so I used a monostable multivibrator to
increase it to 230ms.
I would think 100uS is wide enough. At log level 5 the PPS engine will
output diagnostics if the pulse is not as expected. Since your log
output showed no PPS debugging output I suspect gpsd is seeing zero
pulses.
I can vary it if the gpsd will see it.
Post by Gary E. Miller
Post by Sandor Nagy
Post by Dave C
4. Have you got the appropriate level translation between your GPS and
your
Post by Dave C
Gumstix? Don't forget that a RS232 level translator such as a MAX232
also
Post by Dave C
does a signal inversion - so your short PPS pulse may have become an
extremely long pulse....
According to the scope it is a 230ms pulse width , where Uop=3V.
3V is bad. RS-232 is +/-12V. Some, but not all, RS-232 will accept
a TTL level pulse. Do not count on it. Are you sure your input can accept
TTL levels?
I am using a GPSstix card with the gumstix. As far as I know the BTUART pins
are connected directly to the breakout port, without MAX232. My gps receiver
has also TTL level, so I think no need to use any converters. When I
configured the gps receiver I also checked the level of the TX signal of the
GPSstix and it had 3,3V amplitude. The TX signal of the gps receiver has
also 3,3V amplitude and the NMEA is working fine.

I will doublecheck the cabeling.
Thanks for your help.
Sandor.
--
View this message in context: http://www.nabble.com/gpsd-with-pps-tp20669666p20688707.html
Sent from the GPSd - Users mailing list archive at Nabble.com.
Gary E. Miller
2008-11-25 20:22:50 UTC
Permalink
Yo Sandor!

Another commmon error no one has mentioned yet. Are you sure you are using
the gpsd binary that you compiled? Sometimes folks have an old version,
without PPS, in their path.
Post by Sandor Nagy
Post by Gary E. Miller
3V is bad. RS-232 is +/-12V. Some, but not all, RS-232 will accept
a TTL level pulse. Do not count on it. Are you sure your input can accept
TTL levels?
I am using a GPSstix card with the gumstix. As far as I know the BTUART pins
are connected directly to the breakout port, without MAX232. My gps receiver
has also TTL level, so I think no need to use any converters. When I
configured the gps receiver I also checked the level of the TX signal of the
GPSstix and it had 3,3V amplitude. The TX signal of the gps receiver has
also 3,3V amplitude and the NMEA is working fine.
Try something gross. like shorting the CTS to ground and then +5V and
see if you can see the change with stty.

RGDS
GARY
- ---------------------------------------------------------------------------
Gary E. Miller Rellim 109 NW Wilmington Ave., Suite E, Bend, OR 97701
***@rellim.com Tel:+1(541)382-8588
Dave C
2008-11-25 22:56:03 UTC
Permalink
Hiya Sandor,

I have been using a Gumstix Connex as the basis of a data logger, using the
GPS as position and time sync. I didn't use the Gumstix GPS board as it
wasn't available when I started - I used the Garmin 18LVC instead.

I recall having a number of issues at the beginning of the project - not
all UARTS can do all things. In particular, I seem to recall that the
FF(Full Featured) UART was not - only the TX & RX lines had been brought
out for console use. Anyway, below are some of my configurations that work
for me. Hope that they are of some help to you.

My Gumstix UART configuration:

FFUART /dev/ttyS0 CONSOLE
BTUART /dev/ttyS1 BLUETOOTH (I have the bluetooth module on my connex)
STUART /dev/ttyS2 GPS
HWUART /dev/ttyS4 GSM MODEM

My GPIO setup is as follows (in /etc/init.d/S10gpio)

<snip>
#! /bin/sh
#
# Configure the GPIOs for our system
# It is called from the boot, halt and reboot scripts.
#

#. /etc/default/rcS



case "$1" in
start|"")
if [ "$VERBOSE" != no ]
then
echo -n "Initializing GPIO... "
fi

# set up ttyS1 (Bluetooth)
echo "AF1 in" > /proc/gpio/GPIO42
echo "AF2 out" > /proc/gpio/GPIO43

# set up ttyS2 (STUART) for connect to GPS
echo "AF2 in" > /proc/gpio/GPIO46
echo "AF1 out" > /proc/gpio/GPIO47

# set up ttyS3 (HWUART) as hardware port, rather than bluetooth
# also use CTS/RTS flow control
echo "AF1 in" > /proc/gpio/GPIO49
echo "AF1 out" > /proc/gpio/GPIO48
# echo "AF1 in" > /proc/gpio/GPIO50
# echo "AF1 out" > /proc/gpio/GPIO51

[ "$VERBOSE" != no ] && echo "done."
;;
stop)
[ "$VERBOSE" != no ] && echo -n "Stopping GPIO... "

# do nothing here

[ "$VERBOSE" != no ] && echo "done."
;;
*)
echo "Usage: GPIO {start|stop}" >&2
exit 1
;;
esac

</snip>
My GPSD setup (S45gpsd) is as follows:

<snip>
#! /bin/sh
#
# Start gpsd This script starts the GPS daemon
# It is called from the boot, halt and reboot scripts.
#

#. /etc/default/rcS

GPSD=`which gpsd 2> /dev/null`

# check for presence of ntpd before trying anything

if [ "${GPSD}x" = "x" ] ; then

if [ "$VERBOSE" != no ] ; then
echo "$0: **FATAL** gpsd is not installed. Aborting..."
fi

exit 1

fi

GPSOPTS=" -n"
GPSPORT="/dev/ttyS2"

case "$1" in
start|"")
if [ "$VERBOSE" != no ]
then
echo -n "Starting GPSD ... "
fi
$GPSD $GPSOPTS $GPSPORT
[ "$VERBOSE" != no ] && echo "done."
;;
stop)
[ "$VERBOSE" != no ] && echo -n "Stopping GPSD ... "
killall -9 gpsd
[ "$VERBOSE" != no ] && echo "done."
;;
*)
echo "Usage: $0 {start|stop}" >&2
exit 1
;;
esac

</snip>

ciao, Dave
Sandor Nagy
2008-11-27 14:15:33 UTC
Permalink
Dear Dave,

Which PORT did you connect the PPS?

Regards,
Sandor
--
View this message in context: http://www.nabble.com/gpsd-with-pps-tp20669666p20719992.html
Sent from the GPSd - Users mailing list archive at Nabble.com.
Dave C
2008-11-27 22:38:06 UTC
Permalink
Hi Sandor,
Post by Sandor Nagy
Which PORT did you connect the PPS?
Same port as I connected the GPS - STUART (/dev/ttyS2). PPS signal was
connected to CTS on that UART. Can't remember which pin - it depends on the
I/O board being used - and I built my own motherboard to take the Gumstix
Connex anyway.

All my dev was done using the breakout-gs board with MAX3222 level shifters
where required.

The GPIO config file I posted before indicates the way I configured all the
GPIO's.

ciao, Dave
Sandor Nagy
2008-11-28 14:39:11 UTC
Permalink
Hi Dave,
Post by Dave C
Post by Sandor Nagy
Which PORT did you connect the PPS?
Same port as I connected the GPS - STUART (/dev/ttyS2). PPS signal was
connected to CTS on that UART. Can't remember which pin - it depends on the
I/O board being used - and I built my own motherboard to take the Gumstix
Connex anyway.
I am a newbie in the the gumstix product, but I try to do my best to
understand it.
Unfortunatelly I am a bit confused. According to the processor development
guide: "the STUART does not support modem control capability." I have
checked the 60 pin hirose connector description also, and there is no CTS
for the STUART.
Post by Dave C
The GPIO config file I posted before indicates the way I configured all the
GPIO's.
According to this, you configured the HWUART as a separate UART. I have
tried this and my NetCF card was unavailable, since they are using the same
pins.
So my only chance is to use the CTS of the BTUART, but it is also shared
with the pins of the HWUART.
In my opinion is that, I should configure somehow these UARTs, but I don't
know the way.

Regards,
Sandor
--
View this message in context: http://www.nabble.com/gpsd-with-pps-tp20669666p20735690.html
Sent from the GPSd - Users mailing list archive at Nabble.com.
Loading...