hacking the sony/etak gps1 pcmcia module/antenna
normally i wouldn't devote time and space to hacks like this, but for
various reasons, this pcmcia gps card proved mechanically important to
our stumbling efforts in the WiGLE project
(i.e. fit nicely in a small laptop sans dongle inside a WiLDing pack).
Also, it proved to have a number of characteristics which weren't widely
documented and the listing of them may save some people a LOT of time in
the future (god knows i'm sick of this little bastard). as always, use at
your own risk, don't blame me if it destorys you/anything you love.
hardware: - lobster and magnet included. also has an IR
transciever
under the little "lump" on the outside of the pc card. between
this lump and the card is a toggle to switch between NMEA and
ETAK data modes (see below) and with them 4800baud/9600baud
(respectively). The "hump" is secured by the body sticker for
the top of the card, and two bolts located to either side of
the hump (look underneath the card for the corresponding
nuts). information to follow.
protocols:
- NMEA emulation: doesn't work the way you think it would. It
reports coordinates in the $GPGGA, $GPGLL, and $GPRMC lines, but has
a number of key deviations. First of all, it uses neither
degree.decimal NOR sexigesimal notation: instead it reports
degreesminutes.deciminutes: this means that you need to do
some tricks to convert this data regardless of which format you
want to use the data in. NMEA appears to expect degree.decimal
format (shifted by 100s power), so this means that this WON'T be
compatible with most NMEA software. Also, note that while the "lock"
field is consistently empty (at least on mine), the number of satellites
works correctly; inconveniently, even when it has NO satellites, this
little pain keeps sending the last known coordinates with 00
satellites, unlike garmins that don't appear to say anything
if they don't know where they are.
- etak mode:
works like the sony pyxis protocol, as documented
here. (thanks!). But the gps coordinates are still different.
Note that while this protocol's
nonstandard, it is EASIER to parse than NMEA, and that it provides
elevation information NOT included in the NMEA emulation mode.
*BSD
- Basically, the pcmcia card asks to be a serial port. It
was detected like a charm with the pccom driver under openbsd 2.9 and 3.0.
This mounts it as a read-only character device; likely
/dev/cua03 under
Open, unless you have other devices fighting for serial ids. You can run
minicom against these ports with a command-line argument. remember to set
your tty speed correctly, or it'll just look like garbage under
minicom/through any serial FD open.(in ETAK mode, this is
9600 baud, in NMEA, use 4800 baud.)
- using in h1kari's dstumbler: it's possible. with certain
modifications to gps.c (see the protocol differences
in NMEA mode above. this should also be possible using the ETAK protocol
if you're brave). perhaps the pseudo-NMEA or etak will be rolled into future
dstumblers.
windows
-
It comes with a windows driver for Windows 9x only. Don't use it.
if you coerce the device to install as a serial port, it'll work (with
the skymap software, even) under any windows 9x/NT variant (including
2k), as well as allow you to view the device's output with your favorite
terminal program. This means that with app-side driver modifications for
the GPS, this could work with Marius Milner's netstumbler software, but
isn't supported at the time of this writing (translation: i haven't
asked him yet). The reasons for current incompatibilities are detailed in
the protocol section above.
other resources
last updated: Nov. 26, 2001