Documentation

  • : Function ereg() is deprecated in /home/project-web/tinyos8051wg/htdocs/includes/file.inc on line 647.
  • : Function ereg() is deprecated in /home/project-web/tinyos8051wg/htdocs/includes/file.inc on line 647.
  • : Function ereg() is deprecated in /home/project-web/tinyos8051wg/htdocs/includes/file.inc on line 647.
  • : Function ereg() is deprecated in /home/project-web/tinyos8051wg/htdocs/includes/file.inc on line 647.
  • : Function ereg() is deprecated in /home/project-web/tinyos8051wg/htdocs/includes/file.inc on line 647.
  • : Function ereg() is deprecated in /home/project-web/tinyos8051wg/htdocs/includes/file.inc on line 647.

The following sections describes how to get started the 8051wg platforms. Before you begin make sure that you have installed TinyOS and the 8051wg platforms. See download and install for more.

The current releases signal a functional port, yet it is far from complete and
requires more testing. In particular the following features are not
available at this time:

  • The AM stack of TinyOS is unsupported at this time. Radio support is provided via SimpleMac
  • Serial stack unsupported (uart support is provided as well as the simple StdOut print interface).
  • The Keil compiler is recommended. The port has been written and tested using this compiler. Other compilers may or may not cause problems.
  • Only the CC2430 is support, we expect Nordic Semiconductor nRF24E1 to be added later.

1. Resources

The following sources provides more detailed information on the background and implementation of TinyOS 2 on 8051 platforms.

TEP121 Towards TinyOS for 8051

Poster from TinyOS Exchange 4

Prentation from TinyOS Exchange 4

2. Detailed Features

The current version supports the following features:

  • Texas Instruments CC2430 support for a wide range of TinyOS 2 drivers, including radio, adc, timers, and more. Two platforms supported:
  • Compilation using one of 3 compilers:
  • Windows and Linux development environments
    • Native Linux support, Windows support through Cygwin
  • Stand alone inline support developed by Will Archer and Nathan Cooprider from John Regehr's research group at University of Utah

2.1 TinyOS interfaces:

Radio
We export the radio using a straightforward SimpleMac interface. This interface is well suited for the 802.15.4 packet-based radios of the CC2430. It allows to send and receive packets, and set various 802.15.4 parameters as well as duty cycling the radio. Note that we depart from the Active Message abstraction promoted by the TinyOS 2.0 core working group. Our SimpleMac implementation supports simple packet transmission, but does not provide routing, or retransmission. Implementing Active Messages is future work.
Flash
We export the flash using the SimpleFlash interface that allows to read and write an array of bytes, as well as delete a page from flash. Note that this interface is much simpler than the abstractions promoted by the TinyOS 2.0 core working group (volumes, logging, large and small objects). We adopted this simple interface because it fits the needs of our data acquisition application. Implementing the core abstractions as defined in TEP103 is future work.
Timer
The timers are exported using the generic TinyOS Timer interfaces Alarm and Counter. These two interfaces give applications access to hardware counters and allows the use of the TinyOS components to extend the timer width from 16~bit to 32~bit. Note that on the pre-release CC2430 chips we used for our experiments, timers do not work properly (The timers miss events once in a while. This error is documented on a ChipCon errata, which is not publically available).
ADC
The Analog-to-Digital Converter is accessed through the core Read interface that allows to read a single value. In order to read multiple values, an application must issue multiple read calls or use DMA transfers.
Pins
The General IO pins are exported through the core GeneralIO interface, that allows to set or clear a pin, make it an input or an output.
UART
The UART is exported using the core SerialByteComm: interface (that sends and receives single bytes from the UART) and StdOut interfaces (that provides a printf-like abstraction on top of SerialByteComm.

2.2 TODO

  • Support for sleep modes
  • Precise timers (pending final silicon revision)
  • Serial Stack (support the components PlatformSerialC, and UartC and the interfaces UartStream. UartByte)
  • Active Message (AM) networking stack