Skip to content

Releases: contiki-ng/contiki-ng

Version 4.9

17 Jul 09:08
c20b12c
Compare
Choose a tag to compare

Press release

We are releasing version 4.9 of Contiki-NG. This release adds a new platform (gecko / efr32), and support
for link-time-optimization that can reduce the binary size up to 50% on some examples. Several security related fixes both for software security (e.g. more tests for argument issues) and protocol/communication security (avoiding buffer overruns, etc).

Various parts of the user experience for developers have been improved in this release:

  • Docker image updated to Ubuntu 22.04.

Find out more at:

Engage with the community:

The Contiki-NG team

API changes for ports outside the main tree

Cooja API changes for plugins outside the main tree

Update from JDOM 1 to JDOM 2

JDOM was upgraded from version 1 to version 2 (#784).
This requires some source code updates, but since Cooja uses such a small subset
of the JDOM API, the update can be done automatically with the command:

find <directory> -name \*.java -exec perl -pi -e 's#import org.jdom.#import org.jdom2.#g' {} \;

Avoid starting the AWT thread in headless mode

Cooja will no longer start plugins that extend VisPlugin in headless mode
to avoid starting the AWT thread. Plugins that should run in both GUI mode
and headless mode need to be updated to keep the JInternalFrame internal.
Examples for PowerTracker and other plugins can be found in the PR
(#261).

Changelog

Contiki-NG

  • Support for link-time-optimization in the build system (#2077)
  • Consolidate configuration defines of TI platforms. Prefixes CCXXWARE_CONF and CC26XX_UART_CONF are deprecated in favor of CCFG_CONF and TI_UART_CONF. (#2311, #2387)
  • Optimize channel offsets in Orchestra to reduce collisions. Note! This changes the default channel offsets in Orchestra. Deployments with a mix of nodes with default configuration at v4.9 and earlier releases may not work, or see poor performance. Adjustments to ORCHESTRA_*_CHANNEL_OFFSET may be needed. (#1673)
  • API change TSCH: renamed get and remove tsch link functions: (timeslot -> offset in some APIs).
  • New platform: gecko or EFR32 - with two supported boards.

All commits since v4.8.

Cooja

  • Mobility plugin added to Cooja (#768)
  • Replace log4j with SLF4J+Logback
  • Use foreign function instead of JNI
  • Use Gradle for builds
  • Java 17

All commits since v4.8.

Version 4.8

14 Jul 14:52
9771e9a
Compare
Choose a tag to compare

Press release

We are releasing version 4.8 of Contiki-NG. This release adds 64-bit support and performance improvements for Cooja, several security-related fixes, upgraded scripts to python3, and many bug fixes and improvements. The documentation wiki is now moved to read-the-docs for improved readability and maintenance.

Various parts of the user experience for developers have been improved in this release:

  • The Contiki-NG build system has been updated with support for ccache (#1789) and improved error checking and reporting.
  • Docker image updated to 64-bit Ubuntu 20.04 and toolchains in the image upgraded to versions with better error detection.
  • Cooja has been updated with improved error checking and reporting

Overall, this will allow the developer to find and eliminate more errors before even starting the application.

Find out more at:

Engage with the community:

The Contiki-NG team

API changes for ports outside the main tree

  • Makefile.customrules-$(TARGET) is no longer included by default, the name of the makefile has to be added to MAKEFILES_CUSTOMRULES by some makefile used by the target. Link to example of in-tree CPU using the API.

Changelog

Contiki-NG

  • Support for ccache in the build system (#1789)
  • Improved dependency tracking in build system (#1862)
  • Use Cooja build system when using Cooja for tests (#1894)
  • Removed Cygwin support
  • Build all platforms with at least C99 (#1766)
  • GCC 12 support.
  • Fix bugs in source route management (#1621)
  • Fix TSCH operation on Simplelink: avoids calling a timer function from interrupt context (#1815)
  • TSCH: speed up joining when a custom join channel hop sequence is defined (#1671)
  • TSCH: reduce CPU usage during the scanning phase (#1905)
  • TSCH: revert back scanning polling frequency change on CC13xx/CC26xx platforms (#1814)
  • Added const for function parameters (#1705)
  • Heapmem improvements (#1729, #1881)
  • ARM/X86/Cooja: add -Wl,-zdefs to linker flags (#1833,#1884, #83)
  • MSP430: Removed IAR build system support; add a missing nop in splhigh_(); add missing volatile for ADC12MCTL (#1818, #1873, #1830)
  • Lots of other minor fixes and additions

All commits since v4.7.

Cooja

  • Performance improvements (#25, #1827)
  • Command line parser, supporting --help and --version.
  • -logdir and -logname command line parameters (#131)
  • Generate temporary java/class files in a temporary directory instead of the working directory (#129)
  • Use UTF-8 as charset when reading/writing (#76)
  • $(CPUS) expansion (#101)
  • Remove requirement of setting $JAVA_HOME (#82)
  • Removal of applet version (#75)
  • Use Contiki-NG build system for building Contiki-NG (#1915)
  • Log4j 2.17.2 (#67)
  • Java 11 and Ant 1.10 support.
  • Xcode 13+ support (#63)

All commits since v4.7.

Version 4.7

08 Jul 14:55
a531388
Compare
Choose a tag to compare

Press release

We are releasing version 4.7 of Contiki-NG. This release adds several vulnerability fixes and stability improvements. It also adds: support for the nRF5340 platform and CPU (Cortex M33), with TSCH support; Cleaner IP packet RSSI/LQI API; improved neighbor table management and many other improvements.

Find out more at:

Engage with the community:

The Contiki-NG team

Changelog

  • Several security-related bugfixes (#1482,#1506,#1517, #1541,#1589)
  • Added support for nRF5340 (M33, dual core)
  • Added DHT-11 sensor driver
  • Introduced the MAC protocol return value MAC_TX_QUEUE_FULL
  • Added RSSI and LQI as uipbuf attributes (and deprecated the RSSI API in 6LoWPAN layer)
  • Several TSCH improvements, including an optimized Orchestra rule for the root node
  • Improved neighbor table replacement policy
  • Migrated most of the Python code to Python 3
  • Added MSPMote clock deviation in Cooja simulations (and several other Cooja improvements)
  • Lots of other minor fixes and additions

Version 4.6

08 Dec 18:49
release/v4.6
3b0bc6a
Compare
Choose a tag to compare

Press Release

We are releasing version 4.6 of Contiki-NG. This release adds significant vulnerability fixes and stability improvements. It also adds: support for MQTT5; the nRF52840 platform and CPU, with TSCH support; partial TSCH support for the SimpleLink platform. The release also moves our CI/testing environment to GitHub Actions.

Find out more at:

Engage with the community:

The Contiki-NG team

Changelog

  • Networking stack vulnerability fixes (#1313, #1355, #1366, #1409, #1410, #1431)
  • Moved our testing/CI environment to GitHub Actions
  • Added support for the Nordic nRF52840
  • Added support for MQTT5
  • Added partial TSCH support for the SimpleLink platform (for the CC2652R1, CC2650, CC1312R1, and CC1310 SoCs)
  • Various Orchestra bug fixes and features
  • TSCH: disable the burst bit by default, as per the IEEE 802.15.4-2020 standard
  • TSCH: fix backoff for Tx links that are overlapped by Rx links
  • TSCH: fix backup link selection in the schedule
  • TSCH: fix resynchronization on alternative time sources
  • TSCH: various other minor fixes
  • Various submodule fixes and improvements (including for motelist and cc2538-bsl).
  • Various stability improvements and bug fixes

Version 4.5

14 May 11:52
release/v4.5
31753fe
Compare
Choose a tag to compare

Press Release

We are releasing version 4.5 of Contiki-NG. This release adds significant vulnerability fixes and stability improvements. It also adds: support for per-branch docker containers; TSCH improvements in scheduling for sub-GHz operation and for the Z1 platform; various improvements to our Docker container, Vagrant image and CI test suite.

Find out more at:

Engage with the community with:

The Contiki-NG team

Changelog

  • Networking stack vulnerability fixes (#1173, #1183, #1194, #1197)
  • State consistency improvement for co-existing TSCH and RPL
  • TSCH scheduling: prioritize TSCH links by the number of packets in the queue
  • Various other minor TSCH improvements in TSCH logs, CC13xx platform, and Z1 platform
  • Fix AES-CCM* to work with large payloads
  • Improve low-power mode configurability for the CC26x0/CC13x0 CPU
  • Upgrade and improve our docker and vagrant images
  • Add support for multiple, per-branch docker containers
  • Travis CI test suite improvements
  • Add Energest support to Cooja motes
  • Add dbg-io module for JN516x platform
  • Various stability improvements and bug fixes

Version 4.4

31 Oct 10:20
release/v4.4
20c6bb8
Compare
Choose a tag to compare

Press Release

We are releasing version 4.4 of Contiki-NG. This release adds: new tests for the full 6LoWPAN stack against a set of binary packets that caused crashes; support for MQTT v3.1.1; improved channel offset allocation for the Orchestra TSCH scheduler; new hardware platform support: OpenMote B (experimental) and Simplelink CC13x2/CC26x2 Revision E. The release also includes vulnerability fixes, stability and energy consumption improvements, and further clean-up of the build system.

Find out more at:

Engage with the community with:

The Contiki-NG team.

Changelog

  • Packet processing tests
  • Support for MQTT v3.1.1
  • Orchestra with multiple channel offset per scheduler
  • Support for the Simplelink CC13x2/CC26x2 Revision E
  • Experimental support for the OpenMote B
  • Various improvements to the configuration system
  • Various improvements to RPL+6TiSCH networks
  • More CI tests
  • Improved Doxygen documentation across the board
  • Improved Wiki documentation and tutorials
  • Various code structure improvements
  • Various stability improvements and bug fixes

Version 4.3

16 May 20:56
release/v4.3
a51f3d8
Compare
Choose a tag to compare

Press Release

We are releasing version 4.3 of Contiki-NG. Among many stability and security improvements, in this release we have added support for MPL (RFC7731) and we have extended the GPIO HAL to support devices with a large number of pins. The release also features a Contiki-NG logotype that gives us a graphical profile.

Logo

Find out more at:

Engage with the community with:

The Contiki-NG team.

Changelog

  • Support for MPL, the Multicast Protocol for Low-Power and Lossy Networks (RFC7731)
  • Platform-independent atomic Compare-and-Swap for 8-bit variables
  • Improvements to the GPIO HAL to support devices with more than 64 pins.
  • Multiple TSCH stability improvements
  • Multiple build and test systems improvements
  • Several vulnerability fixes (issues found with Fuzzying methods)
  • Application-level, network-wide time synchronization via TSCH
  • Various improvements to the configuration system
  • More CI tests
  • Improved Doxygen documentation across the board
  • Improved Wiki documentation and tutorials
  • Various code structure improvements
  • Various stability improvements and bug fixes

Version 4.2

12 Nov 16:36
release/v4.2
7b076e4
Compare
Choose a tag to compare

Press Release

We are releasing version 4.2 of Contiki-NG. The release brings many new features and improvements, including TSCH support for sub-GHz radios (CC13x0 and CC1200); new hardware platforms (e.g the TI simplelink platform, featuring early support for the CC13x2 and CC26x2 family of devices); up-to-date documentation hosting on readthedocs.io; support nightly testbed runs; improvements to the development environment (Docker, Vagrant, more Continuous Integration); the build and configuration systems. The release also features extensively improved tutorials and API (Doxygen) documentation.

Find out more at:

Engage with the community with:

The Contiki-NG team.

Changelog

  • Added TSCH support for sub-GHz radios: CC13x0 and CC1200
  • Added support for the TI simplelink platform, featuring early support for the CC13x2 and CC26x2 family of devices
  • Added support for nightly testbed runs. Results available at: http://contiki-ng.github.io/testbed
  • Added support for documentation on readthedocs.io
  • Added support for LWM2M Q-mode for low-power devices (with several minor improvements on LWM2M implementation)
  • Extended network statistics, added adaptive channel selection, and frame-pending bit to TSCH
  • Improved various aspects of our tools/ directory, including the addition of new, portable versions of the motelist and serialdump tools
  • Added the ability to make dynamic shell command registrations
  • Added tools for deployments and benchmarking, handling unique node ID assignment and logging
  • Various improvements to the build system, including increased code re-usability for all (current and future) Cortex-M-based platforms
  • Various improvements to the configuration system
  • More CI tests
  • Improved Doxygen documentation across the board
  • Improved Wiki documentation and tutorials
  • Various code structure improvements to reduce code duplication
  • Various stability improvements and bug fixes

Version 4.1

11 May 15:51
release/v4.1
7da2787
Compare
Choose a tag to compare

Press Release

We are releasing version 4.1 of Contiki-NG. The release brings many new features that cover the networking stack (re-worked CoAP, LWM2M, RPL border router, added DTLS, 6top Protocol, IPv6 over BLE); hardware platforms (homogenized abstraction layer for SPI, GPIOs, LEDs, buttons etc.); main libraries (synchronisation primitives, data structures, stack checking); the development environment (Docker, Vagrant, more Continuous Integration); the build and configuration systems. The release also features extensively improved tutorials and API (Doxygen) documentation.

Find out more at:

Engage with the community with:

The Contiki-NG team.

Changelog

  • Ground-up re-engineered CoAP implementation
  • Added support for DTLS
  • Refactored implementation of OWA LWM2M and IPSO objects
  • Added experimental support for BLEach, an IPv6-over-BLE stack for cc26xx (slave mode)
  • Added API for routing protocol implementations
  • Added Docker image for development and CI
  • Added Vagrant image
  • Added libraries for common data structures: Stacks; Queues; Circular, singly-linked lists; Doubly-linked lists; Circular, doubly-linked lists
  • Added a runtime stack usage checking library
  • Added a platform-independent interrupt manipulation API, with accompanying support for all currently-supported embedded platforms
  • Added support for memory barriers, critical sections and mutexes
  • Added platform-independent HALs for common peripherals, with accompanying support for all CC2538-, CC13x0/CC26x0-based platforms. All new platforms are expected to use the new HALs, which are:
    • SPI
    • GPIO
    • LEDs
    • Buttons and other types of switch (e.g. reed relays)
  • Various improvements to the build system, including increased code re-usability for all (current and future) Cortex-M-based platforms
  • Various improvements to the configuration system
  • Added CI execution tests for border router and native ping/CoAP
  • Improved Doxygen documentation across the board
  • Improved Wiki documentation and tutorials
  • Various code structure improvements to reduce code duplication
  • Various stability improvements and bug fixes
  • Border router moved from examples to os/services, i.e. now it is easy to build a BR for any project
  • Various RPL fixes and enhancements
  • Added packet attributes at the IP level, for e.g. security level, network and interface ID, and the maximum number of retransmissions
  • Updated 6top Protocol (6P) implementation to draft-ietf-6tisch-6top-protocol-10

Version 4.0

06 Nov 12:47
release/v4.0
8602fb5
Compare
Choose a tag to compare

Press Release

We are thrilled to announce Contiki-NG, an open-source OS for Next-Generation IoT systems. Contiki-NG is focused on dependable (secure and reliable) low-power communication and standard protocols such as IPv6/6LoWPAN, 6TiSCH, RPL, and CoAP. Contiki-NG comes with extensive documentation, tutorials, a roadmap, release cycle, and well-defined development flow for smooth integration of community contributions. The first release, 4.0, is a fork of the Contiki OS and adds a new configuration and logging system, a new lightweight and reliable RPL implementation, a network administration shell, clean and simple examples and platforms, and many more features. It also brings a massive cleanup of the codebase, with legacy platforms, protocols and services removed, so as to eliminate unnecessary constraints on future developments.

Find out more at:

Engage with the community with:

Happy hacking! The Contiki-NG team.
/ Atis, George, Joakim, Niclas, Nicolas, Simon, Yatch

Changelog

  • Documentation and tutorials: Rich API documentation with Doxygen, accompanied by a wealth of new content and tutorials on the wiki.
  • RPL-lite: a lightweight implementation of RPL tailored for reliable end-to-end delivery. RPL-lite was validated experimentally in testbeds of all scales and densities, achieving up to 99.999%
    delivery in downward routing (see paper:five-nines-reliability).
  • Configuration: we made configuration simpler and consistent across platforms; e.g., fixed the order of inclusion of configuration files. We made it easier to enable modules such as TSCH or the shell: a single line will include the module and set up the platform and rest of the system accordingly.
  • Build system: A build system that provides a uniform way for examples to determine what platform they are being built for. New make targets, such as viewconf that eases debugging of configuration flags and boards that displays a list of boards available for the current target.
  • Logging: a new logging system, with per-module log levels, configurable both at compile-time and run-time.
  • Network stack: the former RDC and MAC layers are now merged as a single layer, MAC, to better match how standard protocols are defined. The LLSEC layer no longer exists -- link-layer security is implemented by the MAC instead. The NET layer has a more extensive API, with output function and callback. The legacy Rime and IPv4 stacks are gone. NullNet was added, for non-IPv6 networking.
  • Main: the platform-specific main files were replaced by a single, common Contiki-NG main with a number of platform-specific hooks.
  • 6top: the sublayer defined by IETF 6TiSCH to interface IEEE 802.15.4 TSCH with 6LoWPAN. 6top was successfully tested for interoperability with other implementations including OpenWSN at the ETSI Plugtest in Prague, July 2017.
  • Native platform networking interface: Contiki-NG features the ability to run the protocol stack as a native process. Ping a Contiki-NG native process from your command line terminal, interact with CoAP etc. Most useful for development.
  • Shell: a new shell, tailored for IPv6 node administration, debugging and interop-testing.
  • Examples: Well-structured and clean examples directory, with samples on how to implement platform-specific extensions to a project without code duplication.
  • New structure: all apps are moved as module inside Contiki-NG's main system directory: os. All hardware-specific code, i.e., dev, cpu and platform is moved under a top-level directory arch. More restructuring was done, mostly with os/net and os/services. Cooja is now moved as a separate repository, to cleanly segregate development of both projects.
  • General cleanup: We removed legacy platforms, modules, protocols, and examples. This includes the 8-bit platforms, most 16-bit platforms, the Contiki GUI, non-standard MAC and NET layers, obsolete code etc. The total number of lines of code in the repository was reduced by about 50%. The cleanup made global changes a lot easier to operate, and enabled many simplifications and optimizations.