h1

TomTom Hardware

In this article I’m going to give you a brief description of what a TomTom device is. It’s always good to know what monster you are going to deal with.

I’m going to write about linux-based TomTom devices only, the ones that are really produced by TomTom. There are Windows Mobile navigators available from TomTom, along with the Windows Mobile, Palm OS and Symbian versions of TomTom Navigator application. It’s obvious that programming for WM, Palm or Symbian is a separate topic.

Here is what you have inside your TomTom:

  • SoC Microcontroller
  • RAM chips
  • GPS unit
  • Accelerometer
  • RDS-TMC traffic information receiver
  • TFT LCD display with touch screen
  • SD/MMC card reader, optionally built-in hard disk or Flash memory
  • Bluetooth
  • Sound chip
  • Microphone (not all models)
  • Battery, power management available
  • USB port
  • FM transmitter (not all models)

Ok, keep reading for details.

Microcontroller & CPU

I don’t really know if I should say “&”, because the ARM920T CPU is actually embedded in the Samsung Electronics S3C2410 microcontroller chip. This chip is a real workhorse. When someone speaks of mobile System-on-a-Chip you can easily imagine what it is by looking on what this chip has inside:

  • The main part – ARM CPU core.
  • CPU data cache, 16KB
  • CPU instruction cache, 16KB
  • MMU (memory management unit) – memory controller that allows virtually addressed memory and can address up to 1GB of it.
  • Display controller for TFT/STN screens
  • USB interface, capable of host and device modes
  • SD/MMC card interface
  • Real time clock
  • GPIO ports
  • 3-channel UARTs
  • 3-channel DMA controller
  • ADC
  • Watchdog timer
  • NAND flash controller
  • 24-channel interrupt controller

The S3C2410 chip is not new and IIRC it is being produced since 2003. My opinion is that it is even better for us. The chip is popular, I have come across it in some PocketPC devices, and there’re lots of other boards featuring it. What’s great is that Arm-Linux has driver support for this chip.

Depending on the TomTom model the CPU operating frequency ranges from 200MHz (TomTom 300) – 266MHz (RIDER and One V4) to 400MHz for the top models. This is more than enough for the most multimedia purposes, given the relatively small screen resolutions.

I’m not quite sure that this information is correct, but I believe that the real time clock operates at 32768Hz which gives about 0.03 ms resolution in hardware. This may be cut somewhere in software, still the resolution is better then I expected. Got to look for the actual values though.

The ADC is a multi-channel analogue to digital converter. It is used to read values from touch screen and light sensor. I can’t think of a way to use it from the software, still I thought you’d be interested to know that it exists there.

The watchdog timer is a kind of suicide facility. It is used to automatically reset the device in case it hangs. The principle is simple. There is a timer that can be reset. The navigator application resets it continuously. If the timer is not reset (that means the navigator is hung) and reaches a predefined value, which is about 30 seconds I think, the device is rebooted.

Memory

The TomToms are equipped with 32 or 64MB of RAM. The navigator application occupies just a little, so you probably can expect the free memory to reach at least 20MB.

The S3C2410 contains MMU, which means that it implements very nice memory management features. For example, it does not suffer from memory fragmentation problems, and can have dynamically sized stacks.

Display & Touch Screen

There are two screen resolutions that are currently used by TomTom – lower-end models use 320×240 screens, higher-end models use wide 480×272 screens. TomTom LCD panels are capable of displaying 18-bit color, 6 bits per color component.

The tricky thing here is that old models – e.g. 500, 700 – that use 320×240 screens are cheating us. The screens in hardware are actually 240×320 LCD panels that are mounted rotated by 90 degrees. I can not tell for sure, but I assume that at the time that TomToms were developed, no 320×240 panels existed. This solution resulted in a landscape screen which is far more comfortable for navigation, in 3D mode especially. Yet, this also resulted in worse viewing angles from one side, and the wicked frame buffer from the other.

The good news is that the newer models, like ONEv4, use the real 320×240 LCD panels that are far better than those rotated ones. The viewing angles and overall LCD quality was enhanced and the frame buffer is plain.

The screen access is direct and simple using the frame buffer. The frame buffer is mapped to the memory as a whole, the scanlines are not pitched. Pixel format is 16 bit RGB 5-6-5, and yes, the LCD is not used at full power – the lower bits of red and blue components are discarded in hardware.

All the displays contain touch screens. Don’t be confused with the rotated 240×320 LCDs, the touch screens are always wired correctly. So that, even if your frame buffer is rotated and require additional coordinate processing in software, the touch screen readings will give the physically correct results with no processing, meaning that a tap in the top left corner of the display will read as 0,0.

The touch screens seem to be either calibrated in the factory or by the original Navigator software. OpenTom guys came across this problem as they needed to have their own calibration data. In any case, reading coordinates from the touch screen is simple and straight forward.

Storage

Most TomTom models contain a slot for SD/MMC cards. The card is not something add-on like you may be used to think of it in PDAs and smartphones.

The PDAs usually contain a built-in ROM and a bit of built-in storage memory. The device in this case boots using the firmware in ROM. Then, it uses built-in storage for the software and settings, and the flash card as an auxiliary storage.

TomTom simplified this scheme and did not use the built-in ROM and storage. Instead, the TomTom device contains a small boot block that only does one thing – it loads the boot loader from the root of the MMC card. The boot loader loads the linux kernel, again from the card, and the navigator application is loaded after the linux is started. This way the only real storage resides on the card.

This scheme is simpler in means that it does not need the built-in storage memory on the device, but it restricts card usage: the card cannot be extracted whenever you like. If you extract the card the device reboots. On the other hand it’s a GPS navigator first of all, not a PDA, so you probably won’t need to extract the card at all.

The 700 and 910 models contain a built-in HDD. The hard drive is a MicroDrive sized device. There is no difference from the software point of view in accessing the card or the hard drive.

The TomTom 720, 520 and regional ONEs contain internal Flash memory in addition to card slot.

Power

The TomTom models starting from 300 and up to 910 feature the Samsung ICR18650-24 Li-Ion batteries of 2400mAh capacity.

The newer models, like ONE and RIDER contain 1200mAh (1450mAh in other sources) Li-Ion battery. I don’t know the vendor, but the part number is F650010252 so you can try to find it out. Some users are complaining that the battery runs down too fast and they always have to have TomTom attached to the car charger.

The TomTom 520 and 720 are equipped with Li-Polymer batteries. The capacity is unknown, and the TomTom promises up to 5 hours of operation, which is close enough to the truth according to the reviews. I could not find the battery replacement variants yet for these new models.

The power management is basically all about screen backlight adjustment. The backlight power can be adjusted from the software. The power management derivers also have built-in support for light sensor, which allows automatic backlight adjustment according to lighting conditions. The software also has access to reading battery voltage and current in order to determine remaining charge percentage.

USB

All TomToms have a mini-USB connector. The S3C2410 chip supports both host and device USB modes, which means that it can either be attached to another host (like PC), or have a device connected to it (like USB modem e.g.). But huh, no luck in our case, the TomToms are hard-wired to only use the “device” part of the chip. It means that you can only attach your TomTom to PC not a modem to your TomTom.

An interesting thing is that TomTom linux does not have any USB support built-in at all. The navigator application just controls some bits that report whether the bus is connected. If it is, you are asked if you would like to attach to PC and then the device is rebooted in USB mode. Actually the USB mode is a special operating mode of the boot loader this mode is entered prior to loading the kernel. The boot loader provides access to the contents of the MMC card or hard drive from your PC via the USB Mass Storage device driver.

Another interesting thing is that if you have a soldering iron among your “friends” you can have a look at Hardware USB page on OpenTom site for reference on how to rework your TomTom into a USB host.

Sound

The sound chip comes from Wolfson Microelectronics. The kernel has support for WM8711 and WM8971 chips, so this may be model dependent. In any case the chip is capable of playing stereo 16-bit sound at 96 KHz maximum. The sound is then amplified using a Philips/NXP TDA-series on-chip amplifier (like TDA8543T), which gives us about 2 W output.

The chip is also capable of capturing sound through the microphone. It is used when TomTom acts as a Bluetooth hands-free. Newer models (x20) also use speech recognition to record the route. Note that the lower-end TomTom devices like ONE and RIDER are not equipped with a microphone at all.

Sound can also be output via Bluetooth using the a2dp protocol. This has nothing to do with the hardware and the sound chip, but it’s good to remember that it is practical for RIDER models, that utilize Bluetooth-enabled helmets for two-wheelers to hear anything, and for model 910 that can be used as an mp3 player for your in-car stereo system.

The TomTom 720 and 520 also feature an FM transmitter. This thing allows you to transmit all the sound on a specific frequency that you can tune your in-car stereo to. A pretty useful thing it is.

Positioning

TomToms are equipped with GPS receivers if anyone doubts. The GPS receiver is accompanied with an accelerometer and a RDS-TMC connector.

The GPS receiver is actually the GPS controller with the RF circuits and an antenna. The GPS controllers are produced by SiRF Technology, Inc, and it looks like all the devices use several variations of SiRFStarIII chips.

The GPS chip is connected to one of the UARTs of the S3C2410 microcontroller. Some control channels are also connected to GPIO pins of the microcontroller. The GPS controller is wired the way that allows also updating firmware in it. The GPS controller is NMEA compatible and the readings are accessible from the software, so this is of great interest.

The accelerometer allows for “dead reckoning” which means that it allows calculating your position after you lose GPS signal. The chip is produced by MEMSIC. The accelerometer data is available to read from software. The data itself represents accelerations over two axes with resolution over milli-g.

Some TomTom models have support for TMC. The TMC is a Traffic Message Channel that is used to deliver traffic information to the drivers. The information is delivered over RDS which is a data channel on top of the plain FM radio transmissions. TomToms have a special port to plug in the RDS-TMC receiver and will use the TMC data to correct your routes. Unfortunately the receiver is sold separately. I don’t know yet if the TMC data is available from the software.

So that’s it on positioning, not too much I would say, given that it is the most important part of the navigator, sic.

References

Have a look at the OpenTom’s page that describes what hardware is in which TomTom model. The hardware reference is also there.

One comment

  1. […] here is the first one, some details on what your TomTom gadget has inside. From the hardware point of […]



Leave a comment