TomTom One and GNU Linux
November 6th, 2006 by Stephen
I bought a TomTom One this week. We finally relented and decided to purchase a SatNav after years of resistence, because we got lost last week on a trip to the Cutty Sark. Actually, we got to the Cutty Sark fairly well. It is not too hard to find Greenwich, because you just drive to the river Thames and turn right or left depending on which side of Greenwich you arrived at
But it was going home that caused the problem. I followed signs as best I could, but suddenly the only signpost (in the middle of London) was for Sevenoaks (which is in Kent). Weird!
I forget which road I took, but we ended up in Bromley – which is perhaps slightly preferable to Croydon, but not where we intended to be.
So SatNav it is. From now on, some computer can guide us (the wrong way up one way streets probably).
Maybe SatNav will be a good thing, although I have always felt that I am fairly good at following my nose. (Just as well, really, as I recently borrowed a SatNav to get me out of Birmingham – only the stupid thing could not lock onto its position, and I was on the M6 heading home before it finally started to play).
However, the other gadget I have wanted for a very long time is a GPS that will integrate with applications on my computer. So a bit of research showed me that TomTom produce systems that: (a) store the GPS data in a standard NMEA data format and (b) run on a version of GNU linux, with all the hackable possibilities that entails – including a neat little gpsdata device node. (Okay, at this point I am getting too technical. Linux and Unix systems treat everything like files that you can read and write to like any other file. The GPS data can be read like any other file in the filesystem by opening the “/dev/gpsdata” file. Only the file is constantly updated by the GPS).
The choice was a no brainer. Linux and a well respected SatNav. I bought myself the reasonably priced TomTom One, and so far I am very impressed. It does everything a SatNav does, and I have already found out how to run a few extra startup scripts that get it creating RFCOMM ports to dump the GPS data feed over bluetooth.
(Getting technical again… trust me though, it’s great fun!)
My only problem comes in accessing this feed. It works fine on my Ubuntu Linux desktop box, but my Mac laptop is trickier. I cannot find how to create RFCOMM outgoing ports on OS X Tiger, unless I am paired with the device. But the device does not need to be paired (and refuses to do so).
So I compiled some Python extensions, and that all works. But what I really want is the gpsdata as an RFCOMM serial port, so that my applications think of it as a directly attached gps unit. Maybe If I initiate the connection from the unit, and use incoming ports that would work… but I would prefer outgoing ports.
Anyone know how to do that?
(If / when I get it all working, I’ll write a howto followup article).


Sounds like the ONE is a great way to go– I’m thinking of getting myself one for Christmas this year– price is very attractive and thanks to product reviews such as yours, I’m ready to buy!
Thanks for your comment, Jimbo. Since writing that article, I have now got the TomTom one connecting to my Mac and acting as a GPS. I am now working on writing a post that explains what I did.
Hi,
I would like buy a new SatNav and I’m not very expert.
Can you confirm that I can use the tomtom one with my
ubuntu laptop? (via I would like use it whit kismet etc..
Thank you very much
It depends what you want to use it *for* with your Ubuntu laptop. The bundled software does not have an Ubuntu version (nore even a Linux version, despite the OS of the device being Linux). Thus you will not be able to use all the planning and update software with this laptop.
What I describe above is the ability to basically hack the SatNav system and use its GPS in your laptop’s applications. You *can* do this, but you’ll need a Mac (or if you can’t find anything better, a Windows) laptop/PC to use it as an ordinary SatNav.
Regards,
Stephen
But how can I read /dev/gpsdata?
# rfcomm bind /dev/rfcomm0 00:13:6C:83:D1:8C
# rfcomm
rfcomm0: 00:13:6C:83:D1:8C channel 1 clean
#cat /dev/gpsdata
cat: /dev/gpsdata: No such file or directory
# cat /dev/rfcomm0
cat: /dev/rfcomm0: Connection refused
Thank you very much again
I presume you have the bluetooth listener running on the TomTom already (as described above). If so, all that you seem to be missing is the correct rfcomm command. Rfcomm’s bind command creates a binding but does not open a connection. What you need is the rfcomm connect command:
% rfcomm connect 0 00:13:6C:83:D1:8C
Regards,
Stephen
If you can get a touchscreen-aware java browser running you could have UltraVNC’s java app to control a car PC.
Great idea Fred – although I’m not sure I really have a need to do this.
Regards,
Stephen
Can I get instructions on how to instal a “bluetooth listener” on my tomtom one?
Tak a look at this post:
http://safle.org/wordpress/2006/11/13/tomtom-one-and-mac-gps.html
Regards,
Stephen
Interesting information. Anyone manage to find a satnav unit that has UK coverage, and can be updated from a Linux box? It seems that TT do not support Linux updates.
Cheers,
Chris.
Great! You have done exactly what I am attempting to do, but have found myself stuck. I am running ubuntu and have a compatible tomtom device. I have managed to find it using hcitool scan and then connected to the device using :
rfcomm connect /dev/rfcomm1 1
Then on my gps I am told that I have connected, cat /dev/rfcomm1 also seems to agree with my theory that its properly connected. I can even telnet into the device.
However when I try to use it in conjunction with a pgoram, like gpsd or gpsdrive I can not get the GPS to function. Can you possibly assist me to overcome this problem. Have I missed a step somewhere?
Thanks in advance.