Repositories: tinyos, deputy-tinyos, nesc, APT Repository.


TMI maintains a TinyOS branch containing certain features not available in the official tree. We use this this code for our internal and customer development efforts. TMI enhancements include:

  • Support for newer MSP430 chipsets, such as the MSP430F2618.

  • An implementation of the USCI peripheral, supporting UART, SPI and I2C communications. Both SPI slave and master modes are supported, with the driver knowing what to do in slave mode if the master unasserts the slave chip select line.

  • Enhanced clock framework supporting parts with the basic_clock+ peripheral and simplifying changing msp430 clock speeds on a per platform or per application basis.

  • Support for a number of other chips, including the Silicon Labs CP210X USB to UART adapters, the Texas Instruments BQ2403x Li Ion/Polymer charge controllers, and the VTI SCP1000-D01 barometric pressure sensor.

  • A modularized tos-bsl program that simplifies adding other msp430 boards using different mechanisms to access BSL programming features. Included is support for boards using the cp2103 and its GPIO pins to effect BSL via USB.

  • Support for TMI reference platform design, tmicore.

About the TMI repository

The TMI TinyOS repository is based upon code from the official repo. The TMI repository contains various branches and tags representing current and past work. Most notably, the tags beginning with patchset/ are clean patches against a given official upstream release.

  • Current patchset tag: patchset/2.1.1-4.5
  • TMI enhancements are based upon the upstream release tag: tinyos/2.1.1
  • The commits between the two above tags represent the series of patches in the latest patchset.

The TMI TinyOS code requires a GCC 4.4+ based MSP430 toolchain. Debian and Ubuntu repositories include an appropriate msp430 toolchain (4.6.3 as of 2014-08-18).

Using TMI TinyOS

A complete TinyOS development environment including toolchain is available for installation from our APT repository. Since we only use Ubuntu workstations for our internal development, we cannot cost justify maintaining packages for Windows or other Linux distributions at this time.