Welcome to the imote2-linux wiki. Over the next few weeks these pages will be extended to provide a summary of much of the functionality of linux on the imote2 and anything else of relevance.
- Imote2 Linux FAQ
- Principles of applying Embedded Linux on Imote2
- Implementation of an integrated system for object recognition based on wireless visual sensor networks
Tools and Environment
Building Imote2 Linux
- How to configure and build the linux kernel from source
JTAG Flashing an Imote2
Flashing via the Using the Bootloader
Connecting to an Imote2
- Connecting via Terminal over debug board USB
- Connecting via SSH over main board USB
- Connecting via WiFi
The move to open embedded
Specifications, Drivers, and Sample Code
- ITS400 basic sensorboard
- IMB400 multimedia sensorboard
- CC2420 radio and TosMac
- CC2420 radio and Linux 802.15.4 stack
- Cambridge Sensor Kit (CSK)
Other good resources for Imote2 Linux development are:
- Changelog (currently running around the front of linus' tree - sometimes a day or so behind)
Pretty much everything found on either the imote 2 or the stargate 2 is now supported by either mainline kernel drivers or the patches sets found on this website. This information is correct as of 2.6.28-rc1.
Stargate 2 only devices
Additional 32 MBytes of SRAM. Supported by plat-ram and mtd-ram modules. This appears as an mtd device on which you can create a filesystem using code mkfs.mkfs.minix /dev/mtd3 code and then mount it at /mnt/sram using code mount /mnt/sram code
PCA9500 ROM and gpio expansion
The two functions of this are supported by different drivers. The rom uses the at24 module and can be read and written at /sys/bus/i2c/devices/0-0057/eeprom The gpio's can be manipulated using the interfaces at /sys/class/gpio. (BE VERY CAREFUL IN HERE!)
This monitors certain internal voltages. (not entirely sure why!). Uses the same driver as the max1363 found on the basic sensor board (and the max1239 found on the UCAM wireless board).
CSR BlueCore 3 (on ours at least)
I've never established exactly what this chip is. But anyhow it is fully supported via hci_uart and the instructions at http://embedded.seattle.intel-research.net/wiki/index.php?title=Setting_up_Bluetooth work fine for me.
This worked until the last kernel version changed. Unfortunately it is not immediately apparent why it current does not. To be looked into.
DA9030 power controller
Supported by various da903x drivers (led, reg, mfd). This is a big and complex device and not all functionality is fully implemented. As of 2.6.28 there is some support in the mainline kernel. Current supported features are leds and ldo regulators (not the bucks). Unfortunately xbow have been unable to supply information on what the various regulators are used for. Clearly this can be (very carefully) reverse engineered, but in the meantime, those that were supported by the old da9030 driver are implemented as read only regulators. It is reasonably easy to allow these to be adjusted appropriately by the drivers of devices connected to them. The regulator framework is very powerful and full use of it's features should considerably reduce the power requirements of the board. For some reason only the green led is working right now (will look into this). The da9030 is only used for leds on the stargate2, the imote2 uses gpios. For leds you need either leds-da903x (sg2) or leds-gpio (im2). Both will create interfaces under /sys/class/leds/ for the 3 colours of led.
The tosmac driver has been ported forward from the original platformx release with the various bug fixes that have been posted to the imote2 mailing list. This is a clunky driver using the ssp framework (which is deprecated but thankfully still present). A complete rewrite of this driver is definitely on the todo list and any offers of help with this would be much appreciated!
On the stargate 2 and the imote 2 (with a suitable cable etc)
mmc / sd /sdio - requires pxamci mmc / sd memory cards - require mmc_block code mount /dev/mmcblk0p1 /mnt/sd code will mount the first partition on an inserted sd card (note this is very different from how it was handled in the days of the original platformx)
Data Sheet Links
Some of the PXA27X documents are getting increasingly hard to find, or have vague legal terms regarding hosting the most recent versions. Marvell have gotten a bit more helpful recently, so some of these docs are now their updated versions.