It is a while now I bought a Nokia LD-3W, my dream was a connection between my notebook and this little GPS receiver.
Connecting the LD-3W is quite simple, if you know how to do it. The only prerequisite is that you have already bluetooth kernel support.
Install following package:
apt-get install bluez-utils gpsd gpsd-clients
At first you need to find your LD-3W. To do so execute:
hcitool inqOutput:
Inquiring ...
11:22:33:44:55:66 clock offset: 0x0e82 class: 0x011f00
Then check if the device provides a fitting service. In our case we need a serial port
sdptool search --bdaddr 11:22:33:44:55:66 SP
Output:
Searching for SP on 11:22:33:44:55:66 ...
Service Name: Dev B
Service RecHandle: 0x10000
Service Class ID List:
"Serial Port" (0x1101)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 1
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
Please note the line with the property Channel: this is the channel where your GPS device listens for incomming connections (Bluetooth supports only one connection at a time)
Edit your rfcomm.conf it should look something like this:
#
# RFCOMM configuration file.
#
rfcomm0 {
bind yes;
device 11:22:33:44:55:66;
channel 1;
comment "NOKIA LD-3W";
}
The channel 1; you received from the output while probing for the SP (Serial Port). Now you can start your bluetooth services.
/etc/init.d|/bluetooth start
The next problem we will face is the authentication. Many tutorials concerning the bluez tools, talking about a pin_helper, but actually my version of hcid does not know any option called pin_helper. Running hcid manually tells you something about a missing passkey-agent. The passkey-agent is a simple application connecting hcid through the dbus message bus and provides a key for all requests. There are solutions for gnome (bluez-gnome) and KDE, but you can also use a simple c application provided by bluez-utils.
cd /tmp zcat /usr/share/doc/bluez-utils/examples/passkey-agent.c.gz >passkey-agent cp /usr/share/doc/bluez-utils/examples/Makefile . make cp passkey-agent /usr/local/binTo start the passkey-agent, just type:
passkey-agent --default 0000 &The default code of the Nokia LD-3W is '0000', afaik it cannot be changed.
After your setup is complete you can try out, if it works. To connect your LD-3W and bind it to /dev/rfcomm* you need to run:
rfcomm connect rfcomm0 11:22:33:44:55:66 1This command will create your tty device node located at /dev/rfcomm0
In order to run gpsd you need to configure it.
dpkg-reconfigure gpsdThis command will ask you to enter some options, like the path to the rfcomm device. Just look at your /etc/bluetooth/rfcomm.conf which device is used. (The name before the opening bracket '{', e.g. rfcomm0 will be /dev/rfcomm0 if you use udev)
/etc/init.d/gpsd startBy default gpsd does not open the rfcomm device on start, it waits for at least one client to connect to gpsd. To test gpsd telnet it by using following command:
telnet localhost 2947You also can run xgps, which is included in the gpsd-clients package.