Back to my homepage

GNU/Linux and the TomTom ONE

"Please turn around!"

TomTom is constructing a series of all-in-one car navigation systems: Those devices are running Linux, so they have become a target for experimentation and hacking, including an open operating software version called OpenTom. But even without replacing the operating system, there are things you can achieve with them.

Handling TomTom Voice packages

Extracting audio data from voice profiles

When you connect your TomTom to your computer via the USB interface, it advertises itself as an USB storage device. You can mount the volume, and explore the filesystem using your normal filemanager. Inside the directory /voices/, the voice files are stored: And although file *.chk can only identify them as plain data, they incorporate a well known file format.

In fact, TomTom voice files consist of several OGG Vorbis streams packaged together with some additional header data; You can even "play" such files using the program ogg123, since it will just skip over the junk header data.

I've written a Perl script called JoeJoe that can extract the OGG Vorbis streams from the file, as well as recombine new audio files into a TomTom voice package. This way, you can even use your own voice as your guide.

There are 59 samples included in each package, each one containing a specific message part for the driver. TomTom joins those parts together as needed to create the correct advice. So when you create a new voice package, make sure that the combinations of your samples work. The following table contains the samples with their id number, their meaning and their file names when extracted with joejoe:

# message filename
0 After 00-After.ogg
1 50 01-50.ogg
2 80 02-80.ogg
3 100 03-100.ogg
4 200 04-200.ogg
5 300 05-300.ogg
6 400 06-400.ogg
7 500 07-500.ogg
8 600 08-600.ogg
9 700 09-700.ogg
10 800 10-800.ogg
11 Metres 11-Metres.ogg
12 Arrival 12-Arrival.ogg
13 RightTurn 13-RightTurn.ogg
14 SecondLeft 14-SecondLeft.ogg
15 SecondRight 15-SecondRight.ogg
16 ThirdLeft 16-ThirdLeft.ogg
17 ThirdRight 17-ThirdRight.ogg
18 ExitAhead 18-ExitAhead.ogg
19 ExitLeftAhead 19-ExitLeftAhead.ogg
20 ExitRightAhead 20-ExitRightAhead.ogg
21 FerryAhead 21-FerryAhead.ogg
22 KeepLeft 22-KeepLeft.ogg
23 KeepRight 23-KeepRight.ogg
24 LeftTurnAhead 24-LeftTurnAhead.ogg
25 RightTurnAhead 25-RightTurnAhead.ogg
26 UTurnAhead 26-UTurnAhead.ogg
27 BearLeft 27-BearLeft.ogg
28 BearRight 28-BearRight.ogg
29 Charge 29-Charge.ogg
30 Depart 30-Depart.ogg
31 KeepLeft 31-KeepLeft.ogg
32 KeepRight 32-KeepRight.ogg
33 LeftLane 33-LeftLane.ogg
34 RightLane 34-RightLane.ogg
35 TakeMotorway 35-TakeMotorway.ogg
36 ExitMotorway 36-ExitMotorway.ogg
37 ExitMotorwayLeft 37-ExitMotorwayLeft.ogg
38 ExitMotorwayRight 38-ExitMotorwayRight.ogg
39 GoAroundRoundabout 39-GoAroundRoundabout.ogg
40 CrossRoundabout 40-CrossRoundabout.ogg
41 FirstExitRoundabout 41-FirstExitRoundabout.ogg
42 SecondExitRoundabout 42-SecondExitRoundabout.ogg
43 ThirdExitRoundabout 43-ThirdExitRoundabout.ogg
44 FourthExitRoundabout 44-FourthExitRoundabout.ogg
45 FifthExitRoundabout 45-FifthExitRoundabout.ogg
46 SixthExitRoundabout 46-SixthExitRoundabout.ogg
47 LeftRoundabout 47-LeftRoundabout.ogg
48 RightRoundabout 48-RightRoundabout.ogg
49 EndOfRoad 49-EndOfRoad.ogg
50 SharpLeft 50-SharpLeft.ogg
51 SharpRight 51-SharpRight.ogg
52 GoStraight 52-GoStraight.ogg
53 TakeFerry 53-TakeFerry.ogg
54 Then 54-Then.ogg
55 TryUTurn 55-TryUTurn.ogg
56 TurnLeft 56-TurnLeft.ogg
57 UTurn 57-UTurn.ogg
58 Yards 58-Yards.ogg

The use of JoeJoe is simple: To extract the ogg streams from a voice package, e.g. data53.chk, simply call the program with the parameter -x:

joejoe.pl -x data53.chk

JoeJoe will then extract all 59 ogg files to to your current directory, so you might want to copy the voice package to your hard drive before extracting it.

Creating your own voice profile

To create a new voice profile for your TomTom, simply gather all the needed samples in a single directory, and name them according to the table on this page. To make things easier, you can also just use the number associated with it: So 56-TurnLeft.ogg is equal to 56.ogg. To start the merging process, simply call joejoe with the parameter -m:

joejoe.pl -m outfile.chk

If a specific sample cannot be found or opened, the merging process will abort, otherwise the file outfile.chk will be created and can be copied to your TomTom device.

Tomtom map installer

Without the official tomtom home software, it is quite difficult to install maps from your DVD. The script ttmapinstall.sh can help: Just mount the tomtom DVD and the memory card of your tomtom device, and point the script to the inf-file belonging to the map:

./ttmapinstall.sh /mnt/dvd/nveur/Deutschland/Deutschland-Map.inf /mnt/tomtom/