Connecting AT91xx based GPS-Loggers to USB on Linux

The XAiOX iTrackU and Gisteq PhotoTrackr GPS loggers have an Atmel AT91xx ARM achitecture microcontroler with USB support. It is supported by the Linux usbserial driver.

If you own an Asus Eee-PC, please read this:

To get it running on older systems you have to do two steps (you have to be root to do all this):

1. Activate the AT91xx support

As already said above the USB interface is supported by the Linux kernel module usbserial. But this part of the driver it is not activated by default. To activate it you have to add options to the kernel module. The vendor ID for Atmel seems to be always 0x3EB. The product ID depends on your device type. Plug the device in and find out the device ID:

lsusb | fgrep Atmel

The device ID for known devices is:

6125 for XAiOX iTrackU
6125 for Gisteq PhotoTrackr
6126 for Gisteq PhotoTrackr Lite

Please report new device IDs. See also Chapter "Troubleshooting" below.

So you have to tell the usbserial driver these device IDs. There are two different ways depending the usbserial driver is a module or is staticly linked into your kernel. As far as I know, most Linux distributions have usbserial.ko as a module.

Note for Ubuntu 9.04 (Jaunty Jackalope):
Only the early releases used a staticly linked driver (see here and here), but this was changed back to a module using the usual updates (sudo apt-get upgrade;sudo apt-get upgrade).

1.1 If you have usbserial as module, add the following line

options usbserial vendor=0x03EB product=0x6125 # for XAiOX iTrackU and Gisteq PhotoTrackr


options usbserial vendor=0x03EB product=0x6126
# for Gisteq PhotoTrackr Lite

using a text editor to the end of the file /etc/modprobe.d/options for Debian or Ubuntu pre 9.04 systems. For Ubuntu 9.04 Jaunty Jackalope (and later Ubuntu versions ?) simply as root copy atmel-usb.conf to /etc/modprobe.d/.

On other distributions this file could not exist. Then try /etc/modules.conf instead or find it out from the manual man modprobe.

Then type

depmod -a

to tell the system, that someting changed with the kernel module configuration.

1.2 If you have usbserial linked to your kernel, add the following line

usbserial.vendor=0x03EB usbserial.product=0x6125 # for XAiOX iTrackU and Gisteq PhotoTrackr


usbserial.vendor=0x03EB usbserial.product=0x6126 # for Gisteq PhotoTrackr Lite

and reboot.

2. Load the driver (only if you have usbserial as a module)

The driver can loaded in two ways
  1. always on system start by adding a line


    to the file /etc/modules using a text editor. The module will be loaded then always on system start using the options you added as described above. This should work on all current Linux distributions.

    *** or ***

  2. triggered by the plug USB cable in event using the udev framework (at least for current Debian and Ubuntu distributions). To do this you simply have to copy this 66-atmel-usb.rules to your /etc/udev/rules.d folder.

If the usbserial module is already loaded (because of a connected RS232-USB adapter cable or a USB connected mobile phone) the module has to reloaded to use the changes made.

rmmod usbserial
modprobe usbserial

This could fail because of other loaded modules which depend on usbserial. You have then to rmmod this modules too or simply start your system new.


If you come into trouble check all step by step (you have to be root to do all this): That is all. Now try to access the device using your application, here, which does the rest.

11.07.2009, itu4l⟨ΑΤ⟩