Changelog

Changelog for Contiki 2.5 (9 September 2011)

ContikiRPL
ContikiRPL is a new implementation of the proposed IETF standard RPL protocol for low-power IPv6 routing. ContikiRPL now is the default IPv6 routing mechanism in Contiki.

ContikiMAC
The new ContikiMAC state-of-the-art low-power listening asynchronous radio duty cycling mechanism is now the default duty cycling mechanism in Contiki.

Contiki Collect
Contiki Collect is an address-free data collection protocol that runs on top of the Contiki Rime stack. For Contiki 2.5, Contiki Collect has been completely reworked to provide a significantly improved performance as well as configurability.

CollectView
CollectView is a Java GUI that is used to set up a Contiki data collection network, either over Contiki collect or over UDP/IPv6/RPL.

Powertrace
Powertrace is an interface to the Contiki power profiling system that allows either real-time inspection or off-line analysis of the power consumption of a sensor network.

The Contiki simulation environment
The MSPSim/Cooja simulation environment has received a significant speed-up.

CoAP/REST
Contiki 2.5 includes an experimental implementation of the IETF CoRE group’s CoAP application layer protocol for RESTful interaction with a low-power IP sensor network.

New platforms
Zolertia Z1, RedWire Econotag mc13224v, ST Microelectronics STM32w, Sentilla JCreate.

Changelog for Contiki 2.4 (16 February 2010)

Main changes

  • Significant improvements to power-saving low-power radio MAC protocols.
  • Several bugfixes to uIP and the SICSlowpan code.
  • New sensor API.
  • Significant COOJA/MSPsim speedup.
  • Two new experimental platforms: MicaZ and Sensinode 8051/CC2430.

Low-Power Radio MAC Protocols

  • New CSMA MAC protocol, running on top of the low-power MAC layer protocols such as X-MAC, that performs retransmissions when it detects collisions or interference. Enabled by default on Tmote Sky.
  • Significant improvements to X-MAC: the low-power operation now registers the phase of the neighbors and reduces the strobing period according to the phase of the receiver; broadcasts are transmitted more power-efficiently; frame format now compatible with 802.15.4.
  • Streaming support for both LPP and X-MAC.
  • New non-rtimer-based implementation of X-MAC, called CX-MAC, for platforms without rtimer support.
  • New configuration option for easier tuning of low-power MAC channel check rate.
  • Tmote Sky boot-up code now prints channel check rate by default.

uIP and Rime Networking

  • SICSlowpan now with low-power MAC for Tmote Sky.
  • Bugfix that allow 6lowpan fragmentation and reassembly with low-power MAC on the Tmote Sky.
  • Bugfixes in uIP code: start timer if lost SYN; loss of SYNACK bugfix; avoid using floating point operations in IPv6 code.
  • Bugfix in IPv4-over-mesh: work better over low-power MAC.
  • Support for receiving IPv4 multicast.
  • Runicast retransmission time configurable in contiki-conf.h.
  • Improved Tmote Sky IPv6/6lowpan bridge setup.

API Changes

  • Sensors API changed; Tmote Sky platform updated to match the new API.

COOJA

  • 10x speed improvement through improved MSPSim integration.
  • Introduced low-overhead debugging interface for MSPSim-based simulation.
  • Simplified application-level simulation, with examples.
  • Coffee filesystem integration.
  • Improvements to Timeline and Visualizer plugins.
  • Better support for MicaZ emulation.

Nightly Builds and Contiki Regression Test Suite

  • Test configuration structure updated: test files are now self-contained.
  • New uIPv6 routing test.
  • Improved shell collect test.
  • New shell netperf test.

Contiki Shell

  • New shell modules: netperf for testing the communication performance between two neighbors, memdebug, with commands 'peek' and 'poke', for reading and setting memory locations from the shell - useful for debugging device drivers.
  • Alignment bugfixes.

Drivers

  • CC2420 now allows transmission power to be set on a per-packet basis.
  • CC2420 timesynch bugfix.
  • CC2420: Enabled SFD interrupts.
  • Serial line improvements.
  • Faster SPI driver.

Platforms

  • New platforms: MicaZ (experimental), Sensinode 8051/CC2430. (experimental)
  • Minimal-net now has IPv6 support.
  • Significant improvements to Tmote Sky IPv6 support.
  • 6502: Compatibility with cc65 version 2.13; 80 column screen on Apple2 and C128
  • msb430: New SD driver written from scratch.

Other Changes

  • Modules mmem and dhcpc are now compiled by default.
  • New examples for email, irc, webserver, wget.
  • Improved IPv4 and IPv6 examples for the Tmote Sky.
  • Bugfixes in AVR ELF loader.
  • Power profiling bugfix: energy was sometimes misattributed when peripheral was switched off when it was already off.
  • New simplified rtimer code that only handles one rtimer.
  • Rime examples now run on disjoint channels to avoid semantic interference.
  • New Java-based maintenance tool for Coffee file system images.
  • Improved makefsdata script.

Changelog for Contiki 2.3 (27 June 2009)

New features

  • IPv6 routing layer
  • Cooja TimeLine
  • IPv6/6lowpan for Tmote Sky
  • MSB430 port
  • Many new shell commands
  • Improved LPP power-saving MAC protocol
  • Twitter client

uIP

  • Support for UDP-based IPv6 routing protocols implemented with Rime
  • New IPv6 multi-hop routing module using Rime's route discovery algorithm
  • Made IPv6 routing modules easily replaceable
  • Alignment problems in SICSlowpan fixes to make it work on MSP430
  • IPv4 routing bugfixes
  • Protosocket send bugfix significantly increase tcp throughput

Rime

  • New packet queue module that keeps track of a packet queue
  • collect: now maintains a queue of packets to be forwarded
  • Multihop bugfix: avoid overwriting packet attributes

Duty-cyling power-saving MAC protocols

  • Mac layer structure has init function to make configuration easier
  • Many improvements and optimizations to LPP
  • X-MAC now does not run rtimer when off, to avoid problems with serial communication on MSP430

Coffee

  • Improved the garbage collection efficiency and correctness.
  • Fixed a bug in file merges.

Power profiler

  • Support for flash read and write

Shell

  • New commands: netstat (show TCP connections), sendcmd (send command to a node), download (download file from a node), neighbors (show neighbors), unicast (send a unicast packet to a node), tweet (send Twitter message), sensortweet (send Twitter message with sensor data)
  • New block size option to "read" command

Cooja

  • Cooja TimeLine, new visualizer that shows radio communication and interaction
    Image

  • New watchpoints on MSPSim-based nodes, visible in the TimeLine
  • Simulation resolution changed from milliseconds to microseconds
  • Simulation scripts are now integrated with the simulation configurations for easier scripted simulations
  • Scheduling now fully event-based, resulting in faster simulations
  • Various user interface updates: Cooja menu system, log and radio listeners, and source-code debugger

MSP430

  • Default MSP430 CPU speed increased from 2.4 MHz to 3.9 MHz
  • mspgcc memcpy bug workaround added

Tmote Sky / TelosB / Sentilla JCreate port

  • Support for IPv6/6lowpan
  • New bridge tool for seamless integration of IPv6 sensor networks and general-purpose IPv6 networks
  • CC2420: optional timestamping with incoming packets
  • New RSSI scanner example application
  • Webserver now displays an Ajax-style spinner icon when loading sensor data

Atmel Raven port

  • Bugfixes for the USB stick module
  • HTML code moved to flash ROM and made W3C compliant
  • Wildcard to display all files in file-stats cgi script

Instant Contiki

  • Updated to latest Ubuntu packages
  • Sentilla JCreate compatibility
  • jpcap installed

Changelog for Contiki 2.2.3 (24 March 2009)

New features

  • Checkpointing: stores the current execution state of a node in a CFS file from which it later can be rolled back (currently only on the Tmote Sky/TelosB/JCreate platform)
  • Per-packet power profiling: allows fine-grained breakdown of a node's power consumption on a per-packet basis
  • Announcements: announcements, such as route announcements and neighbor discoveries, are made independent of the applications and protocols, to allow rapid neighbor discovery and improved routing in face of mobility
  • Deluge: a network protocol that disseminates a file to all nodes in the network

New platforms

Shell commands

  • udpsend: sends a UDP packet to a specified receiver
  • tcpsend: sets up a TCP connection to a specified receiver
  • irc: participates in on-line IRC discussions
  • The 'ping' command from 2.2.2 was renamed to 'rime-ping'
  • The 'sniff' command has a new option, '-a', that displays packet attributes for sniffed packets

Internal changes

  • rimebuf module renamed to packetbuf
  • serial module renamed to serial-line
  • CC2420 additional link-level CRC made optional; CC2420 time stamps made optional
  • RSSI, link quality, and timestamp are now provided as packet attributes; Packet attributes now specify radio transmission power.
  • Raven apps moved from apps/ to platform/avr-raven/apps/

Bugfixes

  • httpd-cfs bugfix: TCP connections were prematurely timed out
  • The previous random_rand() function was not random enough - switched to libc rand() instead
  • Bugfixes to the collect protocol

Coffee changes

  • Compiled code size decreased by 1kb.
  • File metadata structures redesigned to improve file I/O semantics and to enable faster opening of files

CFS changes

  • cfs_seek can now move file offsets backwards and to the end of the file.

Cooja changes

  • Contiki motes more tightly integrated into the Contiki build system
  • Added test editor for creating non-GUI tests

MSP430 changes

  • Periodic resync of DCO to ensure stable CPU timing
  • Set CPU to low power mode only when the UART is not transmitting
  • Added ability for interrupt-driven UART transmission
  • Unified the tick timer and real-time timers and both now uses timer A

x86 changes

  • Multi-threading library now 64-bit compliant

Changelog for Contiki 2.2.2 (17 November 2008)

Image

New features

  • uIPv6 - the world's smallest fully compliant IPv6 stack
  • SICSlowpan - IPv6 over 802.15.4
  • Atmel AVR Raven port
  • 802.15.4 MAC layer for the Atmel AVR Raven
  • Two new shell commands for HTTP interaction: wget and httpd
  • COOJA simulator significant speedup
  • Improved integration between COOJA and MSPsim
  • Automated testing mechanism in COOJA
  • Binary packages for Tmote Sky/TelosB and Atmel AVR Raven

Bugfixes

  • Major bugfix in the protosocket code that could cause packet corruption during retransmissions, and affected all TCP/protosockets-based apps
  • Bugfix in Coffee EOF handling

Changelog for Contiki 2.2.1 (6 September 2008)

New features

  • Better data presentation in the Contiki collect program
  • Reduced power consumption for broadcast traffic with X-MAC
  • Improved network performance for data collection

Bugfixes

  • Fixed a severe bug in the data collection protocol that could make the network stop responding
  • Added workaround for a problem with the CC2420 radio under high traffic load
  • Bugfix in the Coffee flash file system

Changelog for Contiki 2.2 (12 July 2008)

New features

  • Significantly improved command line shell with Unix-style pipelines, concurrent command execution, network-wide command execution, collect sensor data, see the power profile, network communication using the Rime stack, and file system interaction. The shell can be used over a serial line or over Telnet/TCP/IP.
  • Coffee: a flash ROM file system.
  • New program for displaying sensor data and network statistics from a network of wireless Contiki sensors.
  • A simple network time synchronization mechanism.
  • Instant Contiki: a full Contiki development environment in a single-file download. A VMWare Ubuntu Linux image with all necessary Contiki development tools installed.
  • The Chameleon architecture for the Rime low-power radio stack. The Chameleon architecture that separates protocol headers and protocol logic. Packets are now tagged with packet attributes that follow them through the stack. [Dunkels et al, SenSys 2007]
  • New experimental low-power MAC prototol: LPP, Low-Power Probing. [Musaloiu-Elefteri et al, IPSN 2008]

Example applications

  • New AJAX-style web server example for the Tmote Sky / TelosB boards showing the current sensor readings and power profile on a web page that is continuously updated.

Kernel

  • Improved process initialization handling that reduces event queue size.
  • Moved power profiling module (energest) from lib/ to sys/

Libraries

  • Added function for computing CRC16 over a data array

Rime

  • Bugfixes and improvements to many protocols in the stack: neighbor discovery, trickle, data collection.
  • Changed several module names into more descriptive ones: ibc -> broadcast, uc -> unicast, etc.
  • Added a sniffer module functionality that allows callback functions to be called on all incoming and outgoing packets.

CFS

  • Bugfixes in handling of CFS_APPEND flag.

uIP

  • New configuration option that turns IP forwarding on or off: UIP_CONF_IP_FORWARD

MAC

  • Bugfixes and improvements to X-MAC code: radio is turned off when sending broadcasts, broadcasts do not send probe packets.
  • Added a string name to the struct mac interface to allow printing the name of the current MAC protocol for debugging.

MSP430

  • Bugfixes in watchdog driver.

Tmote Sky / TelosB

  • Updated CC2420 driver, changed name from simple-cc2420 to cc2420.
  • Added experimental CC2420 AES encryption support.

ESB

  • TR1001 driver now uses Rime statistics

Win32

  • wpcap driver now handles IPv6 interfaces too.

6502

  • Leveraged new cc65-2.12.0 apple2enh C-Library feature (using
    Language Card bank 1).

Changelog for Contiki 2.1 (3 December 2007)

New features

  • Energy profiling that provides measurements of how much energy is spent, and where
  • Power-saving MAC layer for low-power radios based on the X-MAC protocol
  • New platforms: MSB430, C64, enhanced Apple //e, PC-6001 (w/ 32kB RAM) and PC-6001 mkII

Build system

  • All compiler warnings removed from the core code
  • New parallel reprogramming mechanism for Tmote Sky that allows simultaneous reprogramming of all Tmote Sky boards connected to the PC

Example applications

  • New energy profiling demo application for the Tmote Sky platform
  • New Tmote Sky sensor and energy profiling data collection example
  • New ESB demo applications
  • Several new Rime examples
  • Multi-threading library demo application
  • CFS-based webserver

Kernel

  • The service paradigm was removed because it was not as useful as was originally intended
  • Machine-neutral multi-threading library implementation
  • The rtimer module was updated; but we have found bugs when using multiple concurrent rtimers that will be fixed for the 2.2 release.

Rime

  • Rime now maintains (optional) statistics
  • Rime modules uabc and uibc changed name to polite and ipolite. The tree module changed name to collect.
  • New hop-by-hop reliable multi-hop unicast forwarding module: rmh.
  • Unicast multi-hop forwarding modules mh and rmh now invoke the upper layer protocol when doing forwarding, to allow user-defined routing protocols.
  • The data collection module, collect, now uses the number of expected transmissions to the sink as the routing metric instead of hop count.
  • New API for MAC protocols and radio drivers.
  • Rime address size is now configurable.
  • Routing table entries now refreshed upon every lookup.
  • Bugfixes to the reliable single-hop unicast module, ruc.
  • New reliable single-hop block transfer module, rucb.
  • The reliable network flooding module, trickle, has been rewritten with the nf module.

CFS

  • CFS service paradigm removed - all CFS drivers are now regular C functions.
  • Prototypes updated to better match POSIX

CTK

  • CTK service paradigm removed - all CTK drivers are now regular C functions.

uIP

  • Packet driver service paradigm removed - all packet drivers now register themselves actively with the TCP/IP stack (the single packet driver service client)

MSP430

  • Watchdog timer support
  • A/D converter interrupts turned off because of too many interrupts; work is underway to fix.

Z80

  • Z80 architecture-dependent multithreading library and native uIP checksum calculation

Tmote Sky

  • New parallel reprogramming system
  • SHT11 driver

Win32

  • As an alternative to Microsoft Visual Studio 2005 there is now a build fully integrated with the Contiki build system using Cygwin & GCC

C64, enhanced Apple //e

  • Generic Ethernet packet driver with dynamically loading, self-modifying Ethernet card device drivers for the CS8900A and the LAN91C96

PC-6001

  • Multithread, serial communication, and SLIP networking are supported.
  • Various build configurations enable running on very memory restricted environment.