Skip to content
Peter Kietzmann edited this page Apr 25, 2017 · 15 revisions

The aim of the roadmap is to identify priority areas of RIOT development & enhancements. For each area, some near-future plans and concrete next steps are indicated. The text and items below are tentative, up for discussion, to be updated on the fly.

Network Stack High layers

(contact/steering: Martine)

  1. fix lingering NDP issues
  2. finalize and merge sock API (still missing: emb6), remove conn API
  3. ICN stack support clean-up
  4. discuss mid- and long-term plans for network stack maintenance & development (GNRC vs other supported stacks)
  5. support for CoAP blockwise transfer, observe
  6. revisit network time synchronization

Network Stack Low layers

(contact/steering: Peter)

  1. BLE link-layer support (below HCI, port from MyNewt?) towards fully open source support of 6LoWPAN over BLE
  2. LoRa & LoRaWAN driver and MAC layer integration
  3. Duty Cycling Radio: finalize and merge lwMAC
  4. Traffic adaptive MAC protocol: finalize and merge iQueue
  5. Retransmissions by MAC: finalize and merge netdev_retrans
  6. Point-to-Point Protocol (PPP): finalize and merge gnrc_ppp
  7. Re-integrate and clean-up 802.15.4 TSCH integration

Power Modes

(contact/steering: Hauke)

  1. RFC from @gebart for arbitrary freq for xtimer done
  2. prototype LPM concept from Kaspar, demoed on PLACE-HOLDER hardware. Basic idea is to define unified/simplified layered LP modes that apply to 99% of IoT hardware. More optimized board-specific LPM would prototype done
  3. implement PM interface for existing platforms (-> https://github.com/RIOT-OS/RIOT/issues/6802)
  4. xtimer use of RTT low-power timer
  5. concept to fix shell usage issue while LPM activated
  6. integrate generic power management functions in device driver APIs (netdev, SAUL, ...)
  7. more advanced LPM concepts:
  • potentially get rid of idle thread
  • sleeping for short periods (in cases where it is not feasible to switch to the idle thread and back) -> mitigate active waiting

Peripheral drivers

(contact/steering: Hauke)

  1. remodeling of the periph/i2c.h interface and subsequent adaption/rewrite of all existing implementations (-> https://github.com/RIOT-OS/RIOT/issues/6577)
  2. cleanup and unification of low-level timer interfaces (timer, rtt, rtc)
  3. introduction of spi_slave interface
  4. introduction of i2c_slave interface

Software Updates

(contact/steering: Paco)

  1. Prototype of firmware swapping, assuming the internal flash can contain 2 images and the bootloader, demoed on IoT-Lab_M3
  2. Firmware loading through serial using ethos, when no image is flashed on the node.
    • A firmware server can be started with the address and the firmware to flash.
  3. Firmware update through UDP.
    • A module is included on any updatable firmware, able to deal with firmware requests.
    • The node asks for a new firmware and the server answers with the correct image.
  4. Interpreted language support (js and python) with dynamically updatable scripts
  5. Prototype for secure bootloading enhancements (authentification, integrity, confidentiality, bootstrap of keys)
  6. Firmware distribution enhancements (firmware metadata refinements, automatic discovery/push/pull from server or nearby node caching newer firmware)
  7. Partial firmware update (Dynamic linking and loading of ELF files).

Documentation

(contact/steering: Emmanuel)

  1. publish roadmap done
  2. merge RDMs in doxygen
  3. develop a way to differentiate more clearly support levels in the documentation "initial support" from "basic support" and "full support"
  4. revamp RIOT website

Low-level Hardware Support

(contact/steering: Alex)

  1. Improved MIPS support
  2. radio support for TI SensorTag
  3. radio support for Silab Thunderboard
  4. improve x86/Quark support (e.g. Arduino 101) via QMSI
  5. Radio support for Arduino MKR1000
  6. ST Nucleo support
  7. LoRa drivers

Testing

(contact/steering: Kaspar)

  1. automated unit tests with hardware in the loop (SAMR21 plugged on CI server?)
  2. automated network functionality tests (e.g. RPL + UDP/PING tests through border router, multi-hop) in IoTLAB dev sites?
  3. leverage PiFleet more?
  4. On-board CI testing in IoT-LAB (as it will provide soon the possibility to add custom nodes)

Security

(contact/steering: Kaspar)

  1. RNG unified (secure, or basic), seeding
  2. easy TinyDTLS integration in sock, with CoAP etc.
  3. RIOT default configuration = secure configuration (that's our goal/motto)
  4. 802.15.4 link layer security (gaps in RFCs? How to update keys?)
Clone this wiki locally