8051 Based Platforms

George Oikonomou edited this page Jan 24, 2016 · 1 revision

Table of Contents

Intel 8051-Based Platforms

Contiki offers limited support for two Texas Instruments System-on-Chip (SoC) solutions, the cc253x and cc243x.

All those SoCs are equipped with an enhanced Intel 8051 microcontroller core, which means that we build contiki using the Small Device C Compiler (SDCC).

Contiki platforms using this CPU code are:

Due to strong similarities between the two SoCs, many of the things discussed it these pages here apply to both, even though one is no longer officially supported.

Limitations for IPv6 Code

Due to stack size limitations, it is very unlikely that you will be able to run IPv6 code from master on those devices. If you want to run IPv6 code on the CC2530DK platform, you best use the cc-ports branch (externally). This is documented extensively in the "8051 Install and Use" page.

Texas Instruments cc2530 Development Kit

The following hardware is supported:

  • SmartRF Evaluation Board (SmartRF05EB rev. 1.7 & 1.8) with cc2530 Evaluation Module (EM)
  • cc2531 USB Sticks


There is no support for the cc1110. However, similar to cc243x and cc253x, this SoC is based on the 8051 MCU. This means that the existing contiki cpu code (cpu/cc253x) can serve as a basis for cc1110 porting efforts. Due to its RAM and Flash size, it is unlikely that a cc1110 port will support the same feature set (begging to be proven wrong here!). This thread on contiki-developers contains an exchange of ideas on how to go about porting for this SoC.

Hardware Feature Matrix

This table lists the various hardware features for the devices supported by Contiki. Unless explicitly mentioned otherwise, the features listed here have been implemented.

List of Hardware Features
Texas Instruments cc2530 DK
cc2530EMs on SmartRF05EB cc2531 USB Dongle
SoC cc2530F256 cc2531F256
SoC Features
MCU Enhanced Intel 8051 core, using the standard 8051 instruction set.
RAM 8 KB with data retention in all power modes
Flash 256 KB
RF 2.4 GHz IEEE 802.15.4 compliant RF transceiver
Sensors VDD, On-Chip Temperature
Hardware AES Encryption/Decryption (AES Co-Processor)4
Hardware Random Number Generator
LEDs 42 2
Buttons 12, 3 2
I/O Connectors RS232 (UART0) USB
USB (to program) Debug Connector
Serial Flash 256 KB OnBoard SPI Flash4
Other LCD4 Hardware USB Support
  1. Only on devices with the RC2301 (cc2431F128)
  2. LED 4 is mapped to the same port/pin as B1. The current implementation configures the pin as input and supports the button.
  3. The board has two buttons but only B1 is connected to the SoC
  4. Driver not implemented


  1. Prepare your System - Requirements
  2. How to Install and Use Contiki for 8051 Platforms
  3. Understanding 8051 Memory Spaces (and how I learnt to avoid stack overflows)
  4. Understanding Code Banking (and how I learnt to spot banking errors before programming my node with firmware that crashes left right and centre)
  5. How to increase maximum available stack

How you can Help

  • Testing and bug reporting is always welcome
  • Experimentation with TCP and embedded webservers. Reports of success/failure and patches are very welcome
  • RPL collect support needs work
  • Missing SmartRF drivers:
    • SmartRF LCD
    • SmartRF Joystick
    • SmartRF Serial flash

Best Way to Contribute Code

If you are willing to contribute driver code, have a good read at this page. Also, due to licensing, I can't consider code directly derived from TI software examples.

More Reading

  1. GitHub wiki on Contiki's 8051-based ports
  2. Loughborough University's page on Contiki for Sensinode/cc243x devices. This page only serves as an archive, since the port has now been merged upstream.