Releases: RIOT-OS/RIOT
Release-2020.01
RIOT-2020.01 - Release Notes
RIOT is a multi-threading operating system which enables soft real-time
capabilities and comes with support for a range of devices that are typically
found in the Internet of Things: 8-bit and 16-bit microcontrollers as well as
light-weight 32-bit processors.
RIOT is based on the following design principles: energy-efficiency, soft
real-time capabilities, small memory footprint, modularity, and uniform API
access, independent of the underlying hardware (with partial POSIX compliance).
RIOT is developed by an international open-source community which is
independent of specific vendors (e.g. similarly to the Linux community) and is
licensed with a non-viral copyleft license (LGPLv2.1), which allows indirect
business models around the free open-source software platform provided by RIOT.
About this release:
The 2020.01 release includes:
- Initial support for MicroPython
- Initial support for GNRC based LoRaWAN stack
- Initial (experimental) asynchronous sock support
- Extend support for lpc2387 and fe310 cpus
- Xtimer concurrency/robustness improvement, fixing #8388, #5338 & #5103
- Complete re-implementation of esp8266 based on ESP8266 RTOS SDK
- Improvements in automatic tests
- Introduce and start using Kconfig as a configuration tool
- +12 new boards, +7 new drivers, +4 new packages
About 527 pull requests, composed of 1367 commits, have been merged since the
last release, and about 29 issues have been solved. 61 people contributed with
code in 111 days. Approximately 3053 files have been touched with 134416 (+)
insertions and 31870 deletions (-).
Notations used below:
+ means new feature/item
* means modified feature/item
- means removed feature/item
New features and changes
System libraries
+ core/kernel_defines: Introduce 'IS_ACTIVE' macro
* core/assert: allow multiple static_asserts within a function
* core/ringbuffer: compensate 'ringbuffer_remove' underflow error
+ core/thread: add zombie thread state
+ sys: basic C++ compatibility with C11 atomics
+ sys/arduino:
+ added Wire (I2C) interface
+ added SPI interface
* allow use of arduino libraries without need for arduino sketch
* add implementation for analogWrite
* fixed frequency selection in SPI
* sys/bitfield: unify byte order and bit order to both be most significant
bX first
* sys/checksum: move crc8 implementation from sht3x to common code
* sys/color: add color_rgb_set_brightness() and color_rgb_shift()
* sys/crypto/modes/ccm: support length of AAD > 24
* sys/crypto/modes/ccm: support plain text length < 2^32
+ sys/frac: add frac library for integer scaling by semi-constant fractions
+ sys/luid: add luid_get_eui48() / luid_get_eui64()
+ sys/progress_bar: add module for managing a progress bar in stdout
* sys/posix/pthread/pthread.c: fix pthread reaper
* sys/shell: make shell_run run shell forever
* sys/shell_commands: make 6Lo compression contexts configurable on non-6LBR
+ sys/stdio_null: add null driver
* sys/suit: use c25519 instead of hacl
- sys/suit: remove dependency on tinycbor
* sys/usbus:
* add descriptor prefix support
* unify terminology to use 'descriptor' everywhere
* cdc_acm: add interface association descriptor, enable Windows
enumeration and usage of RIOT CDC ACM
* cdc_acm: fix to avoid lost characters on USBUS CDC ACM STDIO
* sys/xtimer:
* concurrency/robustness improvements
* fix xtimer_mutex_lock_timeout by having _mutex_timeout() check waiting
list
- remove dependency to core_msg
Networking
+ sys/gnrc_lorawan: add initial support for GNRC based LoRaWAN stack
* sys/gnrc_netif: make 6LoENC dynamically configurable
+ sys/gnrc_sock: provide asynchronous event implementation
* sys/gnrc_ipv6: fix source check for loopback address
* sys/gnrc_ipv6_ext_frag: remove fragment header when n-th fragment is first
* sys/gnrc_ipv6_nib: allow for configuration of static link-local addresses
* sys/gnrc_netif: highest source address scope wins selection
* sys/gnrc_netif: only use prefix matching as tie-breaker in source
selection
* sys/gnrc_sixlowpan_frag_rb: split out classic frag specific code
* sys/gnrc_sixlowpan_frag_rb: fix memory-leak in _rm_by_datagram() and in
interval marker inherited from base
* sys/gnrc_sixlowpan_frag: various optimizations on sending
* sys/gnrc_sixlowpan_iphc: add fragment forwarding stubs
* sys/gnrc_sixlowpan_iphc_nhc: determine UDP hdr length from reassembly
buffer, fix fragmented data size allocation
* sys/gnrc_tcp: return immediately on gnrc_tcp_recv if connection is closing
+ sys/net/gcoap: add macro to delay initialization of gcoap
* sys/net/gcoap: do not allocate RX buf on stack
* sys/pthread: check malloc() return value, prevent NULL pointer deference
* sys/shell/gnrc_netif: use netif API for ifconfig
* sys/shell/sc_nimble`_netif: allow connecting by name
+ sys/sock: initial definitions for asynchronous event handling
+ sys/sock_async: initial import of event-based implementation
Packages
* pkg: cleanup management of dependencies
* pkg/pkg.mk: use intermediate state files
* pkg/ccn-lite: bump version
+ pkg/flatbuffers: add support for FlatBuffers serialization library
* pkg/gecko_sdk: update to version 2.7
* pkg/libfixmath: several improvements and fixes to support 8bit
* pkg/littlefs: bump littlefs version to 1.7.2
* pkg/lora-serialization: bump to latest version and update test for AVR
* pkg/lwip:
* add support for esp32 Ethernet device
* add IPv4 support for LWIP-stm32
* start DHCP for a netif with lwip_dhcp
* add stm32 ethernet support
* enable lwIP for ESP8266
+ pkg/nanopb: add Nanopb protocol buffers library package
* pkg/nimble:
* bump version
+ add simple BLE connection manager: autoconn
+ add user event callback to autconn
+ nimble_netif: catch L2CAP connection failures
+ nimble_netif: add additional events
* pkg/tinydtls: add DTLS sock API implementation
* pkg/tinydtls: bump version
+ pkg/tensorflow-lite: add support to RIOT
+ pkg/utensor: add support to RIOT
* pkg/u8g2: refactor the U8g2 package
* pkg/wakaama: add basic LWM2M client implementation
Boards
- boards: remove RTT_NUMOF/RTC_NUMOF
- boards: unexport PROGRAMMER
+ boards/adafruit-nrf52840: initial support
* boards/arduino-zero: configure ADC channels
+ boards/atmega328p: initial support for standalone version
* boards/atmega328p: support variable xtimer frequencies
+ boards/atmega1284P: initial support for standalone version
+ boards/atmega256rfr2: initial support
+ boards/avr-rss2: initial support
+ boards/cc1252: initial support
* boards/common: clean up msba2 common files
+ boards/derfmega*: initial support
+ boards/esp32-ttgo-t-beam: initial support
- boards/frdm: remove support for OpenOCD < v0.10.0
+ boards/mcb2288: initial support
+ boards/microduino-corerf: initial support
* boards/nucleo-f207zg: add ethernet configuration
* boards/native: allow for native to be reset via SIGUSR1
* boards/particle-*: configure PCB antenna for 2.4GHz radio
* boards/pic32-clicker: cleanup uart configuration and initialization
* boards/pic32-clicker: use pic32prog as default programmer
+ boards/pinetime: initial support for the PINE64 PineTime smartwatch
+ boards/sodaq-*: add arduino support
* boards/sodaq-*: refactor common code
+ boards/stm32f030f4-demo: initial support
* boards/stm32-common:
* allow SPI signals routed on multiple alternate functions
* add 54MHz and 108MHz SPI divtable entries
* common programmer/debugger/serial config
* boards/thingy: add dependency for on-board hts221/lps22hb sensors
CPU
+ cpu/arm7_common: hook up puf_sram
+ cpu/atmega128rfa1: add initial support
+ cpu/atmega256rfr2: symbol counter based RTT support
+ cpu/atmega_common:
* clean ups and fix code run at end of ISR to behave like
`thread_yield_higher`
* fixed atmega_exit_isr
* uart: use TX_ISR to check uart transmission end
+ cpuid: provide for every device
+ rtt: initial peripheral driver support
+ wdt: initial peripheral driver support
* cpu/cortexm: fix -mfpu flag value for CortexM7
* cpu/fe310:
* several cleanup in implementation and clock setup
* change default optimization to "-Os"
* uart: rework driver and fixes
+ i2c: initial peripheral driver support
+ spi: initial peripheral driver support
+ cpp: add feature
* cpu/esp*: esp_wifi used as default netdev for lwip
* cpu/esp32:
* improvements and cleanup of log_module
* fix lwip + esp_wfi, esp_wifi send buffer should not be on stack
* use esptool.py from riot tools
* rtc: fixes, improvements and cleanups
* spi: fix CS handling in spi_transfer_bytes
* uart: workaround uart sporadically set to wrong value when the CPU
clock is changed
* spi: enable use of SPI flash drive with pkg_littlefs
* cpu/esp8266:
* complete re-implementation based on ESP8266 RTOS SDK
* fix of esp_wifi_send function
* fix bootloaders and log outputs in vendor code
* cpu/efm32: fix uart handling of RX when no RX callback is configured
* cpu/efm32: normalize time in rtc_series1
* cpu/lpc2387:
* allow for more flexible clock selection
+ add support for backup RAM
* uart: update t...
Release-2019.10
RIOT-2019.10 - Release Notes
RIOT is a multi-threading operating system which enables soft real-time
capabilities and comes with support for a range of devices that are typically
found in the Internet of Things: 8-bit and 16-bit microcontrollers as well as
light-weight 32-bit processors.
RIOT is based on the following design principles: energy-efficiency, soft
real-time capabilities, small memory footprint, modularity, and uniform API
access, independent of the underlying hardware (with partial POSIX compliance).
RIOT is developed by an international open-source community which is
independent of specific vendors (e.g. similarly to the Linux community) and is
licensed with a non-viral copyleft license (LGPLv2.1), which allows indirect
business models around the free open-source software platform provided by RIOT.
About this release:
The 2019.10 release includes:
- initial support for SUIT firmware updates
- USB CDC-ACM serial communication
- complete rewrite of TI CC110x radio driver
- initial support for IPv6 fragmentation
- DTLS support in the sock networking stack
- complete blockwise messaging for gcoap and nanocoap
- as always, bug fixes and documentation updates
About 460 pull requests, composed of 950 commits, have been merged since the
last release, and about 60 issues have been solved. 57 people contributed with
code in 105 days. Approximately 2000 files have been touched with 129000
insertions and 25000 deletions.
Notations used below:
+ means new feature/item
* means modified feature/item
- means removed feature/item
New features and changes
System libraries
+ sys/arduino: Added millis()
* sys/arduino: make ADC feature optional
+ sys/fmt: Added submodule fmt_table for printing tables
+ sys/log: add module for colorized logging
+ sys/riotboot: add initial image digest verification
* riotboot: define if building the bootloader
+ sys/shell: add heap command
+ sys/shell: cancel current line on CTRL-C.
* shell/sc_gnrc_ipv6_nib: list and edit authoritative border router (ABR) list
+ sys/suit: initial support for SUIT firmware updates
* sys: add schedstatistics module to remove dependency on xtimer
* can: use memarray for pkt and router allocation
+ sys: single interrupt handler thread for interrupts in modules with blocking
functions (but likely to be removed -- see Deprecations section below)
Networking
+ sys: Add (CoAP) Link Format module
+ sys: add credman (D)TLS credential management module
+ sys: new sock submodule for DTLS
+ gnrc_ipv6_ext_frag: Initial import of IPv6 fragmentation and reassembly
+ gnrc_netif: allow for wait of minimum time between sends
* gnrc_netif: add netif setter (part of refactoring to a pointer-based
approach)
* gnrc_sixlowpan_frag_vrb: add gnrc_sixlowpan_frag_vrb_from_route()
+ gnrc_sixlowpan_frag_rb: move reassembly buffer functions to their own module
+ gcoap: add Blockwise support
* nanocoap: complete Blockwise support
+ nanocoap: add coap_opt_get_next() to iterate over options
+ nanocoap: add coap_opt_get_opaque() to retrieve option bytes
* gnrc_tcp: several small improvements
Packages
* ccn-lite: version bump
* pkg/libcose: bump version and update crypto support
* nimble: adapt to nrf51 family
+ nimble: add IP-over-BLE support via netif/GNRC
* nimble: bump version to 1.2.0
* nimble/netif: set max conn explicitly
* semtech-loramac: add uplink_counter get/set functions
+ Cifra: add AES crypto library
* cayenne-lpp: bump version to 0.1.1
+ wolfSSL pkg addition with examples
Boards
+ board: add support for SAMR34-XPRO
+ boards/arduino-mkrwan1300: add initial support (without LoRa)
* boards: Split off 128KiB version of bl*pill
+ boards/doc: Add a guide to find physical board pins
+ boards: Initial support for board HiFive1B
- boards/mips-malta: remove board.
+ boards/nrf52: introduce shared dependencies in common/nrf52 and update
boards
* boards/nrf52832-mdk: enable I2C and use default configuration
* board/nucleo-l031k6: Add i2c to periph_conf
* board/nucleo-l432kc: Implementing I2C for board
* boards: move CPU/CPU_MODEL definition to Makefile.features
+ boards/p-l496g-cell02: add support
- boards: Remove support for the Jiminy-Mega256RFR2
* boards/sam0: refactor ADC_0 into plain ADC
* boards/slwstk6000b-*: split one board for each module
* boards/slwstk6000b: move CPU definition to Makefile.features
+ boards/stm32f723e-disco: add initial support
* boards/stm32: introduce common timer configurations and use them where
possible
+ boards/stm32l0538-disco: add initial support
* pic32-wifire: add support for flashing with pic32prog
CPU
+ cpu/esp32: lwIP netdev
* cpu/esp*: various improvements
* cpu/kinetis: enable HWRNG for k64f
- cpu/mips32r2_generic: remove cpu.
* cpu: Moved stdio_init() prior to periph_init() for ARM targets
* cpu/nrf5x: declare radio_nrfble feat for all nrfs
+ cpu/nrf5x: implement wdt peripheral driver
+ cpu/sam0_common: add hwrng driver
* cpu/sam0_common/gpio: don't hard-code number of ports
* cpu/sam0: update doc.txt with new MCU families
* cpu/saml21: Make Low-Power SRAM available to programs
+ cpu/stm32_common: add watchdog for stm32
* stm32-common/spi: allow custom pin modes on spi to minimize power
consumption
* cpu/stm32f(2|4|7): add riotboot requirements
* cpu/stm32l1: optimize power consumption
* stm32l1/vendor: update vendor files to v2.3.0
* sam0: allow flashing with JLinkExe
+ sam0: Implement watchdog driver
* cpu/samr30: update vendor files using ASF 3.35.1
+ cpu/efm32: provide periph_uart_mode
Device Drivers
+ drivers: add mtd wrapper for periph_flashpage
+ drivers/cc110x: Complete rewrite from scratch, and detailed documentation
* drivers/include/periph/eeprom: Changed uint8_t* to void* in API
* drivers/periph/i2c: Updated i2c_release() to return void
+ drivers/ph_oem: support for Atlas Scientific pH OEM sensor
+ drivers: support for NXP PCA9685 I2C 16-channel, 12-bit PWM controller
+ usbus: Add CDC-ACM (Serial console) function
* periph/timer: Fix return codes of timer API
+ can: add ncv7356 SW transceiver driver
+ drivers/lis2dh12: add I2C mode
+ drivers/periph: add doc on power management aspects
* drivers/mrf24j40: add pseudomodules for MRF24J40MA/B/C/D/E
Build System / Tooling
* dist/tools/pyterm: drop loglevel from output
* make: docker: delegate bind mounts to the containers
* Makefile.base: implement relative path linking without 'realpath'
* Makefile.base: use thin static archives.
* Makefile.include: add flash-only as dependency of term
* Makefile.include: do not build HEXFILE by default anymore
* Makefile.include: require make version 4.
* makefiles: add support for sysfs gpio debug adapter
* Makefiles: add support to generate both `.hex` and `.bin` file and add
FLASHFILE variable
* makefiles/docker.inc.mk: various improvements
* makefiles/murdock.inc.mk: change policy to run tests by default
* make: introduce $(CLEAN)
+ murdock: introduce 'TEST_ON_CI_BLACKLIST'
* toolchain/cflags: enable dwarf compression (save 50% HDD)
* edbg: verify before flash
+ ci: add codespell check script for tracking typos
+ Makefile.include: add cleanterm target and use it for tests
* arduino/sketches: build sketches as a module
+ github: use stale-bot to mark and close PRs without activity
Testing
+ tests: add distinct test app for nrfmin driver
+ tests: add Nordic SoftDevice test app
* tests/gnrc_ndp: enhance coverage
* tests/lua_loader: run the test in CI
* tests/mcuboot: handle building in docker
* tests/pkg_u8g2: run the test in CI
* tests: provide test case for malformed IEEE 802.15.4 packets
* tests/pthread_rwlock: run the test in CI
* tests: re-enable utf-8 tests on native
+ tests/riotboot: add automatic test
+ tests/sys_crypto: add RFC3610 and NIST SP 800-38C tests
* tests/test_tools: add a test for the testing tools environment
* tools/compile_and_test_for_board: allow setting the flash targets
* tests/gnrc_tcp: provide regression tests for fixed issues
API Changes
/* no error handling possible, so no need to return a value */
- int i2c_release(i2c_t dev)
+ void i2c_release(i2c_t dev)
/* return 0 on success, rather than 1; so like timer_init() */
int timer_set(tim_t dev, int channel, unsigned int timeout)
int timer_set_absolute(tim_t dev, int channel, unsigned int value)
int timer_clear(tim_t dev, int channel)
/* implementations already cast the argument to uint8_t* internally, so not
a significant semantic change */
- size_t eeprom_read(uint32_t pos, uint8_t *data, size_t len)
+ size_t eeprom_read(uint32_t pos, void *data, size_t len)
- size_t eeprom_write(uint32_t pos, const uint8_t *data, size_t len)
+ size_t eeprom_write(uint32_t pos, const void *data, size_t len)
/* now returns CIPHER_ERR_INVALID_KEY_SIZE on invalid keySize */
int aes_init(cipher_context_t *context, const uint8_t *key, uint8_t keySize)
/* add setter for netif of interface header */
+ void gnrc_netif_hdr_set_netif(gnrc_netif_hdr_t *hdr, const gnrc_netif_t *netif)
Deprecations
Warnings
net/emb6
net/nhdp
pkg/oonf_api
As the release was finalized, rough consensus was reached on a system event
thread handler (#12474) that likely will remove the interrupt handler thread
(#10555) just introduced with this release.
Removals
net/coap: remove deprecated COAP...
Release-2019.07
RIOT-2019.07 - Release Notes
RIOT is a multi-threading operating system which enables soft real-time
capabilities and comes with support for a range of devices that are typically
found in the Internet of Things: 8-bit and 16-bit microcontrollers as well as
light-weight 32-bit processors.
RIOT is based on the following design principles: energy-efficiency, soft
real-time capabilities, small memory footprint, modularity, and uniform API
access, independent of the underlying hardware (with partial POSIX compliance).
RIOT is developed by an international open-source community which is
independent of specific vendors (e.g. similarly to the Linux community) and is
licensed with a non-viral copyleft license (LGPLv2.1), which allows indirect
business models around the free open-source software platform provided by RIOT.
About this release:
The 2019.07 release includes a number of new features including many new
boards and cpu, riotboot added to many new and old boards, USB is now available,
BLE improvements, Ethernet on stm32 platforms, as well as many bug fixes and
documentation updates. Testing has also improved with both On-Target Testing
increasing and now Hardware Assisted Automated Tests being run.
About 300 pull requests with about 659 commits have been merged since the last
release and about 50 issues have been solved. 26 people contributed with code
in 106 days. Approximately 1377 files have been touched with 181993 insertions
and 19668 deletions.
Notations used below:
+ means new feature/item
* means modified feature/item
- means removed feature/item
New features and changes
System libraries
+ Add OCB encryption mode
+ sys/shell: add loramac shell command
* Fletcher16: extend with multi-part functions
+ USBUS: Initial work towards an USB stack
+ usbus: Initial simple auto init structure
* sys: make uart_stdio RX optional
+ sys/event: add event_wait_until()
+ sys/bluetil: add bluetil_addr_from_str()
+ usbus: Add CDC-ECM (Ethernet Control Model) function
* usbus: simplify adding entry to list
* sys/stdio_ethos: replace USE_ETHOS_FOR_STDIO by stdio_ethos pseudomodule
Networking
* gnrc_ipv6_nib: add address from netif to address validation timer
+ netdev_ieee802154: add txpower and page
+ net/lorawan/hdr: add lorawan header helpers
+ ble/nimble: add support for build-in IPSS service
* pkg/semtech-loramac: rework interaction with the MAC
* pkg/semtech-loramac: provide basic persistence for MAC state
* RPL: API update suggestions
+ ipv6_ext: add fragmentation extension definitions
* net/sock_util: Accept NULL pointers in urlsplit
+ sys/net: add netopt options for lorawan
* gnrc_tftp: Fix out-of-bounds memory access when comparing modes
- gnrc_pktbuf: remove gnrc_pktbuf_duplicate_upto
- gnrc_ipv6: remove obsolete and harmful reception code
* gnrc_tftp: set port on server init
+ ble/softdevice: add ble_nordic_softdevice feature
* net/mqttsn: fix client ID length to comply to the standard
+ gnrc_tftp: Add minimum packet length check
Packages
* pkg/monocypher: bump version to 2.0.5
* ble/nimble: bump version to 9d4bda2
* openthread: update to release 20180926
* minmea: bump version to current master
+ nanocbor: Initial support for the nanocbor package
* pkg/lua: Make the module searchers conform to the API
Boards
+ boards/stm32l0538-disco: add initial support
+ boards/nucleo-l4r5zi: initial basic support
+ boards/particle-{xenon,argon,boron}: add initial support
* boards/kw41z: add common configuration and use it with existing
kw41z boards
+ added SPI support for Nucleo-F767ZI
+ boards: Add support for the Arduino-Leonardo
* boards/nucleof7*: SPI and refactoring
+ boards/stm32: introduce and use new common rtt configuration header
+ boards/stm32l0/l4: add rtt feature
+ boards: add support for i-nucleo-lrwan1 (Arduino-like shield)
+ boards/nrf52840-mdk: added I2C config
+ boards/lsn50: add support for Dragino LSN50 LoRa Sensor Node
* boards/stm32l0: introduce common clock configuration and apply it to
related boards
* boards/b-l072z-lrwan1: use STM32 common i2C configuration
+ Add usbdev feature to Sodaq boards
+ boards/pba-d-01-kw2x: add riotboot support
+ sensebox: add usbdev feature
+ boards/stm32f429i-disc1: add i2c configuration
+ boards/nucleo-l476rg: add riotboot
+ boards/same54-xpro: add riotboot support
+ boards: Add FLASHFILE support
+ boards/nucleo-l476rg: Add DMA support
+ nrf52: Add suspend/resume detection to usbdev
+ nrf5x: Add UART modecfg feature implementation
+ boards/stm32f3: add support for riotboot feature
+ boards/lobaro-lorabox: add sx1272 radio driver dependency
to netdev_default
+ boards/stm32l4: add riotboot support
+ boards/microbit: add QEMU emulation
+ boards/frdm-kw41z-k64f: add riotboot
* boards/sltb001a: reset before flashing
CPU
* cpu/esp8266: added/changed helper functions
+ cpu/cc2538: Add periph_uart_mode implementation
* saml1x: enable pm_layered by default
+ cpu/cc26x0: implement uart_mode()
+ cpu/sam0: add support for SAMD5x/SAME5x
+ sam0_common: add uart modecfg support
+ cpu/stm32f3: add support for flashpage and flashpage_raw
* cpu/stm32l{1,4}: refactor flashpage numof macros
* cpu/stm32: optimize stop mode for stm32f*
* cpu/nrf5x_common: map hwrng to SoC library if SoftDevice is present
Device Drivers
+ devfs: add /dev/urandom and /dev/hwrng
* drivers/mrf24j40 : support of NETOPT_LAST_ED_LEVEL
+ drivers/mrf24j40: add external PA/LNA control on MC/MD/ME devices
* drivers/at86rf2xx: enable NETOPT_RX_END_IRQ and fix RSSI values
* drivers/adt7310: Replace binary literal with hex literal
+ drivers/ds75lx: add basic driver for temperature sensor
+ drivers/include: add header definition for wdt
+ drivers/at: Add 'at_recv_bytes_until_string' function
+ sx127x: add several NETOPT for GNRC LoRaWAN
* drivers/sx127x: fix device reset
+ drivers: stm32 eth peripheral driver
+ drivers/periph/gpio_util: add gpio_util_shiftin()
Build System / Tooling
* makefiles/docker: export BOARDS
+ makefiles: add bootloaders to the list of applications
* Makefile.include: allow overwriting flash-recipe
* dist/tools/buildsystem_sanity_check: add an export variable check
* sys/Makefile.include: include riotboot headers when
FEATURES_REQUIRED=riotboot
+ make: add print-versions helper target
+ make: add LOG_LEVEL to overridable variables
* riotboot/Makefile.include: increase RIOTBOOT_HDR_LEN for ARMv7*-M
* dist/tools/build_system_sanity_check: BUG fix errors being ignored
* boards/common: use Makefile.features
+ make: add termdeps target
* periph_common: add as dependency to periph drivers
+ nrf52: Add USB peripheral driver
+ makefiles/boards.inc.mk: list boards variables
+ makefiles/app_dirs.inc.mk: target to list supported applications/boards
+ Makefile.features: add a common file for the features parsing
+ Makefile.features: add declarative FEATURES_ variables definition
+ makefiles/utils/variables: add functions to help managing variables
* Migrate all boards to define FLASHFILE
* tools/openocd.sh: try to probe the board for real flash address
Testing
* tests/periph_flashpage: add RWWEE automatic test if hw supports it
* tests/pthread_tls: allow negative key values
* tests/gnrc_udp: include `gnrc_pktbuf_cmd` per default
+ tests/periph_hwrng: add automated python test
* tests/periph_timer: include kw41z boards in low-power timer boards
* tests/pkg_c25519: increase timeout for arduino-mega2560
+ tests/xtimer_usleep: fail with negative offsets
+ unittests: add tsrb tests
+ tests/stdin: add non regression test for stdin module
+ tests/xtimer_mutex_lock_timeout: add simple case test
+ Add NimBLE heart rate sensor example (GATT notifications)
* tests/driver_rn2xx3: fix invalid element index for txmode
* tests/pkg_semtech-loramac: don't init the mac from main
* tests/devfs: move tests-devfs out of unittests
+ examples/lorawan: fix semtech_loramac_send TX ret code
* tests/unittests: split remaining packages tests to different test
directory
API Changes
- uart_stdio RX is now optional
- CPU_MODEL declared in boards/Makefile.features
- void isrpipe_init(isrpipe_t *isrpipe, char *buf, size_t bufsize);
+ void isrpipe_init(isrpipe_t *isrpipe, uint8_t *buf, size_t bufsize);
- int isrpipe_write_one(isrpipe_t *isrpipe, char c);
+ int isrpipe_write_one(isrpipe_t *isrpipe, uint8_t c);
- int isrpipe_read(isrpipe_t *isrpipe, char *buf, size_t count);
+ int isrpipe_read(isrpipe_t *isrpipe, uint8_t *buf, size_t count);
- int isrpipe_read_timeout(isrpipe_t *isrpipe, char *buf, size_t count,\
int32_t timeout);
+ int isrpipe_read_timeout(isrpipe_t *isrpipe, uint8_t *buf, size_t count,\
uint32_t timeout);
- int isrpipe_read_all_timeout(isrpipe_t *isrpipe, char *buf, size_t count,\
uint32_t timeout);
+ int isrpipe_read_all_timeout(isrpipe_t *isrpipe, uint8_t *buf, size_t count,\
uint32_t timeout);
typedef struct tsrb {
...
- char *buf; /**< Buffer to operate on. */
+ uint8_t *buf; /**< Buffer to operate on. */
...
} tsrb_t
- int tsrb_get(tsrb_t *rb, char *dst, size_t n);
+ int tsrb_get(tsrb_t *rb, uint8_t *dst, size_t n);
- int tsrb_add_one(tsrb_t *rb, char c);
+ int tsrb_add_one(tsrb_t *rb, uint8...
Release-2019.04
RIOT-2019.04 - Release Notes
RIOT is a multi-threading operating system which enables soft real-time
capabilities and comes with support for a range of devices that are typically
found in the Internet of Things: 8-bit and 16-bit microcontrollers as well as
light-weight 32-bit processors.
RIOT is based on the following design principles: energy-efficiency, soft
real-time capabilities, small memory footprint, modularity, and uniform API
access, independent of the underlying hardware (with partial POSIX compliance).
RIOT is developed by an international open-source community which is
independent of specific vendors (e.g. similarly to the Linux community) and is
licensed with a non-viral copyleft license (LGPLv2.1), which allows indirect
business models around the free open-source software platform provided by RIOT.
About this release:
The 2019.04 release includes a number of new features including porting of
riotboot to a number of new platforms, 802.15.4 support on the nRF52, and the
ability for firmware to flash images into a separate boot slot. Support for
several new boards and new sensors was added. Additionally, this release
contains a number of bug fixes and test improvements.
About 320 pull requests with about 569 commits have been merged since the last
release and about 40 issues have been solved. 44 people contributed with code
in 88 days. Approximately 825 files have been touched with 32716 insertions
and 5149 deletions.
Notations used below:
+ means new feature/item
* means modified feature/item
- means removed feature/item
New features and changes
System libraries
+ riotboot_flashwrite: added module to reliably write a firmware image to
flash
+ crypto: added support for chacha20poly1305 AEAD symmetric key cypher
algorithm
* threads: added usage of thread_state_t enum to define thread states,
instead of an integer
* random: added usage of hwrng as seed if available
+ app_metadata: added module to print application metadata
+ unaligned.h: added functions to safely read values from potentially
unaligned pointers
+ isrpipe: split isrpipe_read_timeout to isolate xtimer dependency
Networking
* gnrc_ipv6: adapted ping6 to original-ping-like implementation
* gnrc_ipv6: allowed sending empty IPv6 packets
+ gnrc_netif_ieee802154: optional support to drop duplicate broadcast
packets
- gnrc_pktbuf: removed deprecated gnrc_pktbuf_get_iovec() function
+ l2util: initial import of a general IPv6 over X helper module
+ NimBLE: added Bluetooth device scanner
+ NimBLE: added helper functions for address printing
* NimBLE: updated package to the latest version
Packages
+ c25519: add support (embedded x25519 crypto library)
Boards
+ Arduino nano: added support
+ nrf52832-mdk: added support
+ PhyTec reel board: added support
+ MicroPython pyboard v1.1: added support
+ Hamilton: added support
+ saml10-xpro and saml11-xpro: added riotboot support
+ nrf52: added riotboot support
+ ESP32 and stm32: added command to allow runtime configuration of uart mode
+ ESP32 and ESP8266: add support for ESP-NOW network device driver
* ESP8266: freed up RAM by moving most .rodata sections from DRAM to IROM
+ Arduino: added test to verify pin mappings
+ b-l072z-lrwan1: enabled RTT feature
+ STM32l0: added support for dual bank flashing with OpenOCD
* Autonomo: changed flasher to BOSSA
* stm32: rework common clock configuration for stm32f4
* stm32f3discovery: Fix no external low speed crystal
CPU
+ stm32l0: added riotboot support
+ stm32f0: added support for periph_pm
+ stm32f3, f7, l1 and l4: added stop and standby low power modes. All
STM32 families now provide periph_pm
+ samd21: enabled idle modes
+ sam0: added support for RWWEE on-chip memory
+ Kinetis: added support for EA series and S9KEAZ129 MCU
+ TI CC2650: added I2C periph implementation
Device Drivers
+ i2c: added slave scan shell command
+ USB: added device driver initialization function and API definition
+ USB: added peripheral driver for sam0_common
+ nrf5x temperature sensor: added driver
+ nrf52: added initial 802.15.4 support
+ add7746 capacitance sensor: added driver
+ ds323x extremely accurate RTC: added driver
+ ltc4150 coulomb counter: added driver
+ sht2x temperature and humidity sensor: added driver
+ sds011 dust sensor: added driver
+ added high level driver for H bridge ICs to drive DC motors
* lpsxxx pressure and temperature sensor: add support for lps22hb and
lps25hb
Build System / Tooling
+ nrf52: added support for openocd
* improved avrdude integration
+ added support for socat as a RIOT terminal
+ added script for backporting PRs during release testing
* pyterm: specified use of python3 by default
* flasher: support for flashing images at offset addresses `pyocd`, `jlink`
* Texas Instruments UniFlash: put configuration in common
* makefiles: introduce FLASHFILE
* Use FLASHFILE for `riotboot` and `mcuboot`
* Update flashers `avrdude`, `edbg`, `jlink`, lpc2k_pgm`, `openocd`
* makefiles/docker.inc.mk: Use directories in RIOT when possible
* make: unexport `TERM*` variables
* msba2: compile 'lpc2k_pgm' when flashing
Testing
+ documentation: added initial guide to running tests
+ Makefile.include: add a 'test/available' target
* testrunner: Fix bug matching local echo
* tests/rng: replace printf_float with fmt/print_float
* tests/bloom_bytes: replace %f with fmt/print_float
* tests/posix_semaphore: sem_timedwait should not return before abstime
Known issues
Networking related issues
#11295: RFC 3306 Unicast-Prefix-based-IPv6 Multicast with BorderRouter
#11212: POSIX TCP API: bad file descriptor
#11091: gnrc_minimal on nRF52DK do not work anymore
#11033: 6lo: RIOT does not receive packets from Linux when short_addr is set
#10969: net: netdev_driver_t::send() doc unclear
#10927: gnrc_tftp: Missing minimum length check
#10878: nrfmin can get stuck and never reach RX (while TX works)
#10861: cpu/esp8266: Tracking open problems of esp_wifi netdev driver
#10809: openthread: does not build on current Arch
#10410: Missing drop implementations in netdev_driver_t::recv
#10389: gnrc_sock_udp: Possible Race condition on copy in application buffer
#10380: netdev_ieee802154: Mismatch between radio ll address and in memory
address
#10370: gomach: Resetting netif with cli doesn't return
#10338: xbee: setting PAN ID sometimes fails
#9709: examples: failed assertion in dtls-echo example
#9656: gnrc/netif: various problems after resetting interface a second time
#8779: CC2538 RF overlapping PIN usage
#8752: mrf24j40: does not link for examples/default
#8631: at86rf2xx/kw2xrf: scalar NETOPT options checked as arrays
#8271: app/netdev: application stops working after receiving frames with
assertion or completely without error
#8242: at86rf2xx: Dead lock when sending while receiving
#8199: gcoap example request on tap I/F fails with NIB issue
#8172: gnrc_netif, gnrc_uhcpc: Replacing prefix on border router results in no
configured prefix
#8130: gcoap: can't build with network stacks other than GNRC
#8086: gnrc_rpl_p2p: port to nib and fix compile errors
#7737: pkg: libcoap is partially broken and outdated
#7474: 6lo gnrc fragmentation expects driver to block on TX
#6018: nRF52 gnrc 6lowpan ble memory leak
#5863: OSX + SAMR21-xpro: shell cannot handle command inputs larger than 64 chars
#5748: gnrc: nodes crashing with too small packet buffer
#5486: at86rf2xx: lost interrupts
#5230: gnrc ipv6: multicast packets are not dispatched to the upper layers
#5051: Forwarding a packet back to its link layer source should not be allowed
#5016: gnrc_rpl: Rejoining RPL instance as root after reboot messes up routing
#4527: gnrc_ipv6: Multicast is not forwarded if routing node listens to the
address
Timer related issues
#10545: periph_timer: systematic proportional error in timer_set
#10523: saml21 system time vs rtc
#10351: samd21/periph/rtt: Interrupt flags are not correctly cleared
#10073: xtimer_usleep wrong delay time
#9187: sys/newlib: gettimeofday() returns time since boot, not current wall time
#9052: misc issues with tests/trickle
#9049: xtimer mis-scaling with long sleep times
#8746: stm32_common/periph/rtc: current implementation broken/poor accuracy
#8388: xtimer_periodic_wakeup is not interrupt safe
#8251: telosb: xtimer config wrong when running on a tmote sky
#7347: xtimer_usleep stuck for small values
#7114: xtimer: add's items to the wrong list if the timer overflows between
_xtimer_now() and irq_disable()
#6442: cpu/native: timer interrupt issue
#6052: tests: xtimer_drift gets stuck
#5338: xtimer: xtimer_now() not ISR safe
#5103: xtimer: weird behavior of tests/xtimer_drift, bug?
Drivers related issues
#11405: nrfmin: communication not possible after multicast ping with no interval
#10559: I2C API write_regs does not fit implementation
#9546: dht: driver for dht11 sensor sometimes stuck in dht_read() on Atmel SAMR21
#9419: cpu/msp430: GPIO driver doesn't work properly
#8213: at86rf2xx: Basic mode and NETOPT_AUTOACK
#8045: stm32/periph/uart: extra byte transmitted on first transmission
#8028: diskio: failed assertion in send_cmd() on lpc2387
#4876: at86rf2xx: Simultaneous use of different transceiver types is not
supported
#3366: periph/i2c: handle NACK
Native related issues
#7206: native: race-condition in IPC
#5796: native: tlsf: early malloc will lead to a crash
#495: native not float safe
...
Release-2019.01
RIOT-2019.01 - Release Notes
RIOT is a multi-threading operating system which enables soft real-time
capabilities and comes with support for a range of devices that are typically
found in the Internet of Things: 8-bit and 16-bit microcontrollers as well as
light-weight 32-bit processors.
RIOT is based on the following design principles: energy-efficiency, soft
real-time capabilities, small memory footprint, modularity, and uniform API
access, independent of the underlying hardware (with partial POSIX compliance).
RIOT is developed by an international open-source community which is
independent of specific vendors (e.g. similarly to the Linux community) and is
licensed with a non-viral copyleft license (LGPLv2.1), which allows indirect
business models around the free open-source software platform provided by RIOT.
About this release:
The 2019.01 release includes a number of new features including DMA support on
all STM32 boards, WiFi with IP connectivity on ESP32 and ESP8266, and riotboot,
a simple bootloader supporting multiple firmware slots, compatible with most Arm
Cortex-M boards supported by RIOT. Support for several new boards and new sensors
was added, as well as for the new CPU architecture Armv8-M (Cortex-M23). Last
but not least, this release contains a number of bug fixes and enhances test
automation.
About 387 pull requests with about 912 commits have been merged since the last
release and about 36 issues have been solved. 54 people contributed with code
in 110 days. Approximately 1554 files have been touched with 176241 insertions
and 50593 deletions.
Notations used below:
+ means new feature/item
* means modified feature/item
- means removed feature/item
New features and changes
System libraries
+ riotboot: initial implementation of a bootloader with multi-slots
and firmware header management
+ base64: add size estimation functions
Networking
* gnrc_ipv6: send IPv6 error messages on error
* gnrc_ipv6: refactor and improve IPv6 message reception
* gnrc_netif: refactor for easier device type integration
+ pkg_semtech-loramac: added timer calibation
* nanocoap: fix confirmable retry countdown
Packages
* gecko_sdk: bumped to version 2.5
Boards
+ added support for Kinetic USB-KW41Z
+ added support for Makerdiary nrf52840-mdk
+ added support for Microchip saml10-xpro and saml11-xpro
+ added support for Nordic nrf51-dk
+ added support for Phytec phynode-kw41z
+ added support for SODAQ SARA AFF
* b-l475e-iot01a: provide RTC and RTT features
* stm32: factorize common I2C configurations
* nucleo-l433rc/nucleo-f072rb/nucleo-f767zi: provide I2C configuration
* nucleo-l433rc: use LPUART (USB port) as stdio
* nucleo-l496zg: use LPUART (USB port) as stdio
* frdm-k64f: updated LPTMR configuration
* sensebox_samd21: add MTD configuration
* nrf51: factorize files and configurations of nrf51 based boards
* nrf52: better factorize files and configurations of nrf52 based boards
CPU
+ cortexm-common: add FPU support for cortex-m4f and cortex-m7
+ cortexm-common: added support for cortex-m23
+ added support for saml10 and saml11
+ efm32: added support for 32-bit timers
+ esp32: added esp_wifi netdev driver
+ esp8266: added esp_wifi netdev driver
+ stm32-common: add DMA support for all STM32
+ stm32-common: add LPUART driver
+ atmega-common: Add PUF SRAM feature
* nrf5x: added management of multiple exti pins in gpio driver
* nrf5x: rework UART driver to allow using multiple UARTs on nrf52840
Device Drivers
+ added support for CCS811 gas sensor
+ added support for SHT3x temperature and humidity sensor
+ added support for TPS6274x step-down dcdc converter
* periph_eeprom: added clear and erase functions
Build System / Tooling
+ added support for PyOCD programmer
+ added compile_and_test_for_board script + checks
* updated EDBG version
* testbed-support: added frdm-kw41z, pba-d-01-kw2x, samr30-xpro to
supported archis
* pyterm: correctly catch exception when serial port is busy
* print_toolchain_version: added 'make' version
Testing
+ periph_dma: added automatic test script
+ periph_rtc: added automatic test script
Known issues
Networking related issues
#10969: net: netdev_driver_t::send() doc unclear
#10956: tests/gnrc_tcp_*: #2 not working on 6Lo-based boards
#10927: gnrc_tftp: Missing minimum length check
#10878: nrfmin can get stuck and never reach RX (while TX works)
#10861: cpu/esp8266: Tracking open problems of esp_wifi netdev driver
#10809: openthread: does not build on current Arch
#10410: Missing drop implementations in netdev_driver_t::recv
#10389: gnrc_sock_udp: Possible Race condition on copy in application buffer
#10380: netdev_ieee802154: Mismatch between radio ll address and in memory
address
#10370: gomach: Resetting netif with cli doesn't return
#10338: xbee: setting PAN ID sometimes fails
#9709: examples: failed assertion in dtls-echo example
#9656: gnrc/netif: various problems after resetting interface a second time
#8859: cc1101 work instability
#8779: CC2538 RF overlapping PIN usage
#8752: mrf24j40: does not link for examples/default
#8631: at86rf2xx/kw2xrf: scalar NETOPT options checked as arrays
#8271: app/netdev: application stops working after receiving frames with
assertion or completely without error
#8242: at86rf2xx: Dead lock when sending while receiving
#8199: gcoap example request on tap I/F fails with NIB issue
#8172: gnrc_netif, gnrc_uhcpc: Replacing prefix on border router results in no
configured prefix
#8130: gcoap: can't build with network stacks other than GNRC
#8086: gnrc_rpl_p2p: port to nib and fix compile errors
#7737: pkg: libcoap is partially broken and outdated
#7474: 6lo gnrc fragmentation expects driver to block on TX
#6018: nRF52 gnrc 6lowpan ble memory leak
#5863: OSX + SAMR21-xpro: shell cannot handle command inputs larger than 64 chars
#5849: pkg: ccn-lite: rework convenience functions
#5748: gnrc: nodes crashing with too small packet buffer
#5486: at86rf2xx: lost interrupts
#5230: gnrc ipv6: multicast packets are not dispatched to the upper layers
#5051: Forwarding a packet back to its link layer source should not be allowed
#5016: gnrc_rpl: Rejoining RPL instance as root after reboot messes up routing
#4527: gnrc_ipv6: Multicast is not forwarded if routing node listens to the
address
Timer related issues
#10545: periph_timer: systematic proportional error in timer_set
#10523: saml21 system time vs rtc
#10351: samd21/periph/rtt: Interrupt flags are not correctly cleared
#10073: xtimer_usleep wrong delay time
#9187: sys/newlib: gettimeofday() returns time since boot, not current wall time
#9052: misc issues with tests/trickle
#9049: xtimer mis-scaling with long sleep times
#8746: stm32_common/periph/rtc: current implementation broken/poor accuracy
#8388: xtimer_periodic_wakeup is not interrupt safe
#8251: telosb: xtimer config wrong when running on a tmote sky
#7347: xtimer_usleep stuck for small values
#7114: xtimer: add's items to the wrong list if the timer overflows between
_xtimer_now() and irq_disable()
#6442: cpu/native: timer interrupt issue
#6052: tests: xtimer_drift gets stuck
#5338: xtimer: xtimer_now() not ISR safe
#5103: xtimer: weird behavior of tests/xtimer_drift, bug?
Drivers related issues
#10559: I2C API write_regs does not fit implementation
#9546: dht: driver for dht11 sensor sometimes stuck in dht_read() on Atmel SAMR21
#9419: cpu/msp430: GPIO driver doesn't work properly
#8213: at86rf2xx: Basic mode and NETOPT_AUTOACK
#8045: stm32/periph/uart: extra byte transmitted on first transmission
#8028: diskio: failed assertion in send_cmd() on lpc2387
#4876: at86rf2xx: Simultaneous use of different transceiver types is not
supported
#3366: periph/i2c: handle NACK
Native related issues
#10972: examples/nanocoap_server hangs after > 256 bytes packet
#8444: release test 2018.01 RC1: tests/thread_priority_inversion, hangup
#7206: native: race-condition in IPC
#5796: native: tlsf: early malloc will lead to a crash
#495: native not float safe
Other platforms related issues
#10842: Preemption of malloc on AVR
#10258: Incorrect default $PORT building for esp32-wroom-32 on macOS
#10122: Indeterministic hard fault in _mutex_lock(), with nRF52 SoftDevice
#10076: cpu/cortexm_common: irq_enable returns the current state of interrupts
(not previous)
#8408: pkg/fatfs: linker error when build tests/pkg_fatfs_vfs for msb430 based
boards
#8052: mips: several issues
#7753: pic32-wifire: race-condition when linking in concurrent build
#7667: sam0 flashpage_write issue
#7020: isr_rfcoreerrors while pinging between CC2538DKs
#6567: periph/spi: Switching between CPOL=0,1 problems on Kinetis with software CS
#5774: cpu: cortexm_common: context switching code breaks when compiling with LTO
#4954: chronos: compiling with -O0 breaks
#4612: pkg: TLSF does not build for 16 bit platforms
#1891: newlib-nano: Printf formatting does not work properly for some numeric
types
Build system related issues
#10857: frdm-kw41z: error with SLOT_LEN
handling and flasher not working
#10850: Tracking: remove harmfull use of export
in make and immediate
evaluation
#10459: make: make clean all
does not make sense and should be removed
#10047: Make warns to expect errors when disabling optional modules
#9913: Dependencies processing order issues
#9742: buildtest
uses wrong build directory
#9645: Different build behavior between murdock
and `r...
Release-2018.10.1
RIOT-2018.10.1 - Release Notes
This is a bug fixing release for the RIOT 2018.10 release.
The following bugs were fixed:
#10757: sock_dns: fix out-of-bound errors
- sock_dns: remove out-of-place puts() call
- sock_dns: remove some magic numbers
- sock_dns: fix out-of-bound errors
#10759: 2018.10 compile fixes
- pkg/jerryscript: disable -Wconversion for llvm
- pkg/nimble: disable -Waddress-of-packed-member for llvm
- pkg/tinycrypt: update commit hash after upstream rewrote history
#10285: at86rf2xx: release framebuffer on recv with (len > 0) && (buf == NULL)
- at86rf2xx: correct framebuffer release
Release-2018.10
RIOT-2018.10 - Release Notes
RIOT is a multi-threading operating system which enables soft real-time
capabilities and comes with support for a range of devices that are typically
found in the Internet of Things: 8-bit and 16-bit microcontrollers as well as
light-weight 32-bit processors.
RIOT is based on the following design principles: energy-efficiency, soft
real-time capabilities, small memory footprint, modularity, and uniform API
access, independent of the underlying hardware (with partial POSIX compliance).
RIOT is developed by an international open-source community which is
independent of specific vendors (e.g. similarly to the Linux community) and is
licensed with a non-viral copyleft license (LGPLv2.1), which allows indirect
business models around the free open-source software platform provided by RIOT.
About this release:
The 2018.10 release includes new features, like CoAP Resource Directory and
Block2, ESP32 support, rework of I2C interface, EEPROM registry,
Full and Minimal Thread Devices support in OpenThread and compliance of
LoRaWAN 1.0.2 (ABP counters stored in EEPROM). Several boards were introduced.
During the last release the board documentation was migrated from the wiki to
the RIOT API documentation to improve the
maintenance of these entries and provide a better user experience when
browsing the documentation. There were also some efforts in grouping some
modules to make them easier to access in the documentation.
There were also some efforts on refactoring, test improvements and bug fixes.
About 392 pull requests with about 914 commits have been merged since the last
release and about 20 issues have been solved. 57 people contributed with code
in 100 days. Approximately 2184 files have been touched with 211964 insertions
and 34806 deletions.
Notations used below:
+ means new feature/item
* means modified feature/item
- means removed feature/item
New features and changes
Community
+ Initial RIOT developer memo + directory structure
+ GitHub feature request template
+ 'testing' in Github PR template
* Rework and documented labeling system
* Rework MAINTAINING.md document
* Rework CONTRIBUTING.md document
Documentation
+ Add boards `slstk3401a`, `slstk3402a` and `sltb001a`
+ Migrate boards documentation to Doxygen
+ New groups under `sys` (serialization, math, memory management, hashes)
+ `arduino` docs for analog map
+ nanocoap
+ tinycbor pkg
* Drivers with `saul` support are now also part of the `drivers_saul` group
Core
+ Architecture dependent thread information
* Fix `byteorder` bebuftohs() / htobebufs() on big endian
* Make `pthread` compilable with g++
System libraries
+ Add EEPROM registration support
+ Add `arduino` time functions micros() and delayMicroseconds()
+ Add `fmt` hex byte
+ ecc: add golay(24,12) half rate and repetition code
+ tsrb: add drop function
* Change `base64` api (const + void*)
* Configure Arduino serial port at compile time
* Move `hamming256` module to generic `ecc`
* sys/auto_init: Fixed initialization of `sht1x`
* crypto/ccm: fix auth_data_len check
- Remove `cbor` module
Networking
+ cord_ep: Full CoRE Resource Directory endpoint support
+ nanocoap: add server-side Block2 support
* emb6_sock_udp: copy receive remote correctly
* ethos: Add drop frame case to recv function
* examples/gcoap: fix post/put without port number
* gnrc/6lo: set more data flag on all but last fragment
* gnrc_ipv6_nib: always configure 802.15.4 long address with IPv6 included
* gnrc_ipv6_nib: fallback to SLAAC if ARO is ignored by upstream
* gnrc_ipv6_nib: make automatic NDP packet emission (NS/RS) configurable
* gnrc_netif: fix l2addr_len > 0, but no l2addr edge-case
* gnrc_netif: reapply event flags on device reset
* gnrc_netif_ieee802154: set FCF Frame Pending when more data is expected
* gnrc_sixlowpan_frag: add page context to reassembly buffer
* gnrc_sixlowpan: refactored for better interchangability of sub-components
* gnrc_sock_[udp|ip]: read return value for _recv after release
* nanocoap: allow empty uri/location path option
Packages
+ libb2: add support (BLAKE2)
+ libhydrogen: add support
+ lora_serialization: LoRa Serialization format support
+ openthread: FTD and MTD support
+ semtech-loramac: add support for RU864 ISM band
* ccn-lite: update and adapt shell commands
* jerryscript: bump version
* littlefs: bump version to v1.6.20
* lwip: bump to version 2.1.0
* semtech-loramac: bump to version 4.4.1
* semtech-loramac: fix uninitialized datarate
* semtech-loramac: lorawan support is not considered experimental anymore
* semtech-loramac: use periph_eeprom to store lorawan configuration
* tiny-asn1: bump version
* tinycbor: Version bump to 0.5.2
Boards
+ i2c configuration for `nucleo-f070`, `nucleo-f091rc`,
`nucleo-f722ze`, `nucleo-l476rg`, `slstk3402a`.
+ second i2c configuration for `b-l475e-iot01a`
+ esp32-mh-et-live-minikit: add support
+ esp32-olimex-evb: add support
+ esp32-wemos-lolin-d32-pro: add support
+ esp32-wroom-32: add support
+ esp32-wrover-kit: add support
+ esp8266-esp-12x: add support
+ esp8266-olimex-mod: add support
+ esp8266-sparkfun-mod: add support
+ firefly: add support for Zolertia FireFly
+ lobaro_lorabox: add support
+ openmoteb-cc2538: add support
+ samr30-xpro: add support
+ sensebox: add support for `sensebox` and `sensebox_samd21`
+ sodaq_one: add support
+ ublox-c030-u201: add support
* frdm-k64f: update ADC and `saul` configuration
* nrf52xxxdk: make reset pin work
* stm32mindev: rename to `blackpill`
CPU
+ efm32: add support for enabling/disabling DC-DC converter
+ esp32: add initial support
+ esp8266: add initial support
+ i2c: introduce and adapt new I2C interface
+ kinetis: add ADC hardware averaging configuration
+ nrf52: add PWM support
+ samr30: add initial support
+ stm32l4: add support for periph_flashpage
* Add PUF SRAM feature in `nrf5x` and `stm32` families
* atmega_common: allow defining ROM and RAM length for link
* cortexm_common/ldscript: simplify generation of firmwares in section of
the ROM
* nrf5x_common: fix `gpio` port 1 functionality
* stm32-common: unified support for periph_i2c. I2C is now supported by
all stm32 families (F0/1/2/3/4/7, L0/1/4)
* stm32_common: fix source selection declared as module dependencies
Device Drivers
+ drivers/ds18: add limited support for Maxim Integrated 1-Wire temperature
sensor
+ drivers/mma7660: initial support
+ drivers/srf04: add range finder sensor
+ drivers/sx127x: add initial support for multi interrupt pins
+ drivers/tsl4531x: add support for visible light intensity sensor
+ drivers/vcnl40x10: add initial support
* drivers/*: unify driver initialization parameters scheme
* drivers/adxl345: fix driver
* drivers/at86rf2xx: add smart idle listening feature
* drivers/kw2xrf: Fix ack flag handling
* drivers/mtd_spi_nor: add 4-byte address flash support
* drivers/periph_i2c: rework API
* drivers/sx127x: return correct state when device is receiving
Build System / Tooling
+ Makefile.include: Include VERSION file for release
+ dist/tools: add lazysponge tool
+ docker: Use system GIT_CACHE_DIR if available
+ docker: allow using sudo for docker
+ make: introduce periph_gpio_irq
+ make: process include and dep for external modules
+ makefile.iotlab.single.inc.mk: add new supported nodes
* cflags: use gnu99 only if nothing else is specified (mips, msp430, native)
* docker/Makefile.include: Fix BUILDRELPATH when RIOTPROJECT is CURDIR
* docker: export RIOT_CI_BUILD_to docker
* docker: handle building in git worktree
* edbg.inc.mk: allow flashing with an offset in rom without erasing all ROM
* make: add APPDIR to info-build target
* make: provide support for listing supported and blacklisting toolchains
* make: unify app folder search (examples/*, tests/*, ...)
* makefiles/buildtests.inc.mk: fix 'clean-intermediates' not cleaning
* makefiles/docker.inc.mk: handle building in git worktree
* openocd.sh: allow flashing binary files without configuration
* pkg.mk: do not use user identity when applying patches
* pyterm: handle ctrl+d shortcut nicely
Testing
+ automatic compile tests for LLVM for selected boards
+ shellcheck: add CI check script
+ tests/bench_runtime_coreapis: add benchmark for selected core functions
+ tests/bench_sizeof_coretypes: initial include
+ tests/periph_uart: add automated testing script
+ tests/periph_eeprom: add automated testing script
+ tests/periph_flashpage: add automated testing script
* murdock: also compile with LLVM/clang
* murdock: add hook support
+ tests/arduino: add automatic test for arduino module
+ tests/libc_newlib: add test for newlib-nano inclusion
+ tests/periph_uart: add automated testing script
+ tests/gnrc_netif: add test for ULA source selection
+ tests/periph_gpio: add interrupt enable disable command
+ sock_util: Add unittest and fix detected issues
Known Issues
Networking related issues
#4527: gnrc_ipv6: Multicast is not f...
Release-2018.07
RIOT-2018.07 - Release Notes
RIOT is a multi-threading operating system which enables soft real-time
capabilities and comes with support for a range of devices that are typically
found in the Internet of Things: 8-bit and 16-bit microcontrollers as well as
light-weight 32-bit processors.
RIOT is based on the following design principles: energy-efficiency, soft
real-time capabilities, small memory footprint, modularity, and uniform API
access, independent of the underlying hardware (with partial POSIX compliance).
RIOT is developed by an international open-source community which is
independent of specific vendors (e.g. similarly to the Linux community) and is
licensed with a non-viral copyleft license (LGPLv2.1), which allows indirect
business models around the free open-source software platform provided by RIOT.
About this release:
The 2018.07 release includes new features, like NimBLE (ble stack),
a MQTT-SN client, SHA-1 based PRNG, an UUID implementation. The RISC-V CPU
architecture support used by the hifive1 board.
Effort was done on refactoring, documentation, test improvements and bug fixes.
During the last release, maintainers contributed by running the automated test
suites on their boards. This gave valuable feedback on the board support state,
test reliability and where to focus effort to make testing easier and more
reliable.
About 380 pull requests with about 675 commits have been merged since the last
release and about 27 issues have been solved. 45 people contributed with code
in 93 days. Approximately 1678 files have been touched with 147122 insertions
and 16060 deletions.
Notations used below:
+ means new feature/item
* means modified feature/item
- means removed feature/item
New features and changes
Community
+ Maintainers guidelines have been written and added to the repository
Documentation
+ Fix undefined doxygen groups and add a dedicated static check
+ Extend `auto_init` documentation
Core
+ core: clist_foreach() now returns break-causing node
System libraries
+ puf_sram: SRAM PUF feature to seed PRNGs cortex-m platforms
+ random: SHA-1 based PRNG
+ matstat: Integer mathematical statistics library
+ UUID: [RFC4122](https://tools.ietf.org/html/rfc4122) Unique ID library
* analog_util: Refactor, add unit test
- cbor: Deprecation of this module, use cn-cbor or tinycbor package
instead
Networking
+ asymcute: an asynchronous MQTT-SN client
+ gnrc_ipv6: full duplicate address detection support according to
[RFC4862](https://tools.ietf.org/html/rfc4862)
+ gnrc_ipv6: support to handle RDNSS option in neighbor discovery
+ netif.h: a network-stack agnostic API to network interfaces
+ lorawan: add example application of autonomous class A device
* sock_udp: allocate ephemeral port on sock creation when port is 0
* gnrc_netif: Enable RX and TX complete events after netdev initialization
* net/gcoap: Refine Observe re-registration
* net/nanocoap: Build message with coap_pkt_t
Packages
+ NimBLE: Bluetooth Low Energy stack used in mynewt
+ TLSF: re-enable original API to have different pools
+ LUA: Add an example with the shell
+ semtech-loramac: add support for link_check MAC command
* libcose: Use RIOT random_bytes instead of randombytes
* tweetnacl: Use RIOT random_bytes instead of randombytes
* hacl: Use RIOT random_bytes instead of randombytes
Boards
+ Nucleo boards use their marketing names
+ HiFive1 (RISC-V)
+ slstk3402a
+ stm32f429i-disc1
+ stm32l476-disco
+ nucleo-l496zg
+ stm32mindev
+ frdm-k22f, frdm-k64f, frdm-kw41z: Add bus configuration for onboard FXOS8700CQ sensor
* mulle: Fix mixed up RX TX pins on UART0
CPU
+ E310 (RISC-V)
* kinetis: GPIO: Enable the correct IRQn on CM0+
* kinetis: Refactor PIT timer driver implementation
* kinetis: Refactor RTT driver
* kinetis: Refactor clock initialization code
* kinetis: Refactor LPTMR timer implementation
* kinetis: Clean up SPI module power handling
* kinetis: Conditionally enable MCG
Device Drivers
+ periph_eeprom API with support for STM32 L0/L1 and AVR
+ AT commands parser
+ Fix periph_flashpage for iotlab-a8-m3/iotlab-m3/fox boards
+ IO1 Xplained extension: add support for light sensor and SD card, fix
GPIOs initialization and SAUL support
+ tests/bench_timers: A comprehensive benchmark for periph_timer
Build System / Tooling
+ Correctly set the RIOT_VERSION on release archives
+ iotlab-m3/iotlab-a8-m3: fix boards flashing
+ Fix use of non completely initialized BASELIBS variable
+ newlib.mk: extract gcc include search directories for newlib-nano support
+ llvm: many compatibilities issues have been resolved
* testbed-support: use new iot-lab command names
Testing
+ Address some of the failing tests
+ New tests enabled by default in CI
+ Improve testing automation for release testing
Known Issues
Networking related issues
#4527: gnrc_ipv6: Multicast is not forwarded if routing node listens to the
address
#5016: gnrc_rpl: Rejoining RPL instance as root after reboot messes up rooting
#5051: Forwarding a packet back to its link layer source should not be allowed
#5230: gnrc_ipv6: multicast packes are not dispatched to the upper layers
#5748: gnrc: nodes crashing with too small packet buffer
#6123: gnrc: crash with (excessive) traffic in native
#7474: 6lo: gnrc fragmentation expects driver to block on TX
#7737: pkg: libcoap is partially broken and outdated
#8086: gnrc_rpl_p2p: not compiling
#8130: gcoap: can't build witth network stacks other than gnrc
#8172: gnrc_netif, gnrc_uhcpc: Replacing prefix on border router results in no
configured prefix
#8271: app/netdev: application stops working after receiving frames with
assertion or completely without error
#9616: at86rf2xx: can not correctly set channel after NETOPT_STATE_RESET
#9656: gnrc/netif: various problems after resetting interface a second time
#9573: pkg/lwip: assert on samr21-xpro
#9584: drivers/cc2420: add netopt NETOPT_MAX_PACKET_SIZE
Timer related issues
#5103: xtimer: weird behavior of tests/xtimer_drift
#5338: xtimer: xtimer_now() is not ISR safe
#6052: tests: xtimer_drift_gets_stuck
#7114: xtimer: adds items to the wrong list if the timer overflows between
_xtimer_now() and irq_disable()
#7347: xtimer_usleep stuck for small values
#8251: telosb: timer config wrong when running o a tmote sky
#9052: misc issues with tests/trickle
Native related issues
#495: native not float safe
#5796 native: tlsf: early malloc will lead to a crash
#6442: cpu/native: timer interrupt issue
#7206: native: race-condition in IPC
Other platforms related issues
#4512: pkg: tests: RELIC unittests fail on iotlab-m3
#4612: pkg: TLSF does not build for 16 bit platforms
#4872: at86rf2xx: Simultaneous use of different transceiver types is not
supported
#4954: chronos: compiling with -O0 breaks
#4866: periph: GPIO drivers are not thread tafe
#5009: RIOT is saw-toothing in energy consumption (even when idling)
#5128: some use of asm keyword might be missing volatile
#5486: at86rf2xx: lost interrupts
#5774: cpu: cortexm_common: context switching code breaks when compiling with
LTO
#5848: arduino: Race condition in sys/arduino/Makefile.include
#6018: nRF52: gnrc 6lowpan ble memory leak
#6437: periph/spi: Leftovers from SPI rework in #4780
#6567: periph/spi: Switching between CPOL=0,1 problems on Kinetis with software
CS
#6650: GPIO Port shift in cc2538 is unconsistent
#6838: Issuing a reboot on ATmega328p makes the board loop-reboot
#6874: SAMD21: possible CMSIS bug
#7020: isr_rfcoreerrors while pinging between CC2538DKs
#7667: sam0 flashpage_write issues
#7846: stm32f1: I2C read functions return bogus values with unconnected devices
#8028: diskio: failed assertion in send_cmd() on lpc2387
#8045: stm32/periph/uart: extra byte transmitted on first transmission
#8436: Kinetis PhyNode: failed to flash binary > 256K
#8444: tests/thread_priority_inversion hangup
#9616: ATmega platform issues.
Other issues
#1263: sys: the TLSF implementation contains (a) read-before-write error(s)
#4053: macros: RIOT_FILE_RELATIVE printing wrong file name for headers
#4488: making the newlib thread-safe
#5561: C++11 extensions in header files
#5776: make: Predefining CFLAGS are parsed weirdly
#5863: OSX+SAMR21-xpro: shell cannot handle command inputs larger than 64 chars
#6120: Windows AVR Mega development makefile Error
#7220: sys/fmt: Missing tests for fmt_float,fmt_lpad
#7877: SPI connection can't read 16bit size register
#8107: crypto/ccm: bugs in the implementation of CCM mode
#9548: Many i2c bugs found with the i2c api rework but did not reach the release
#9709: examples: failed assertion in dtls-echo example
Fixed Issues from the last release (2018.04)
#8112 crypto/ccm: fix input_len checking with length_encoding
#8532 kinetis: timer_set_absolute randomly misses its target
#8778 sys/random: random_uint32_range is only uniform if range is a power of 2
bug quality defect
#9065 flashpage_write broken on iotlab-m3
#9154 cpu/lpc2387: Fixed broken SPI driver
#9451 Makefile.include: fully define BASELIBS before using its value
#9579 stm32_common: fix ram length for MCUs wi...
Release-2018.04
RIOT-2018.04 - Release Notes
RIOT is a multi-threading operating system which enables soft real-time
capabilities and comes with support for a range of devices that are typically
found in the Internet of Things: 8-bit and 16-bit microcontrollers as well as
light-weight 32-bit processors.
RIOT is based on the following design principles: energy-efficiency, soft
real-time capabilities, small memory footprint, modularity, and uniform API
access, independent of the underlying hardware (with partial POSIX compliance).
RIOT is developed by an international open-source community which is
independent of specific vendors (e.g. similarly to the Linux community) and is
licensed with a non-viral copyleft license (LGPLv2.1), which allows indirect
business models around the free open-source software platform provided by RIOT.
About this release:
The 2018.04 release includes major progress in support for current crypto
libraries. A lot of work has gone into updating drivers to RIOT's unified
configuration scheme. Support for ten new boards has been added. In our quest
to improve and automate testing, many test scripts have been fixed and
improved, and RIOT's CI now runs many tests on real hardware during its nightly
build testing. And as usual, many tiny fixes and improvements have been merged.
About 390 pull requests with about 1073 commits have been merged since the last
release and about 54 issues have been solved. 44 people contributed with code
in 98 days. Approximately 1491 files have been touched with 208426 insertions.
Notations used below:
+ means new feature/item
* means modified feature/item
- means removed feature/item
New features and changes
System libraries
- cbor: deprecated in favour of cn-cbor
+ hashes: add sha-3 implementation
Networking
* netdev: replaced "struct iovec" with iolist_t
+ nanocoap: added server-side block1 support
+ skald: a BLE advertising stack
Packages
+ cayenne-lpp: A Cayenne LPP library written in C
+ HACL*: a formally verified cryptographic library written in F*
+ qDSA: Small and Secure Digital Signatures with Curve-based
Diffie--Hellman Key Pairs
+ libcose: Constrained node COSE library
+ cn-cbor: A constrained node implementation of CBOR in C
+ ucglib
Boards
+ arduino-mkrfox1200
+ frdm-kw41z
+ jiminy-mega256rfr2
+ mega-xplained
+ nucleo-l433rc
+ nucleo-l452re
+ slstk3401a
+ slwstk6000b
+ stk3600
+ stk3700
CPU
+ atmega1284p
+ NXP Kinetis KW41Z
Device Drivers
+ bmx055: Bosch bmx055 9-axis IMU
+ ata8520e: Microchip ATA8520E Sigfox(tm) transceiver
Build System / Tooling
+ ci: initial on-hardware test support
Known Issues
Please refer to the issue tracker at https://github.com/RIOT-OS/RIOT/issues.
Acknowledgements
We would like to thank all companies (vendors) that provided us with (their)
hardware for porting and testing RIOT-OS. Further thanks go to companies and
institutions that directly sponsored development time. And finally, big thanks
to all of you contributing in so many different ways to make RIOT worthwhile!
More information
Mailing lists
- RIOT OS kernel developers list
[email protected] (http://lists.riot-os.org/mailman/listinfo/devel) - RIOT OS users list
[email protected] (http://lists.riot-os.org/mailman/listinfo/users) - RIOT commits
[email protected] (http://lists.riot-os.org/mailman/listinfo/commits) - Github notifications
[email protected] (http://lists.riot-os.org/mailman/listinfo/notifications)
IRC
- Join the RIOT IRC channel at: irc.freenode.net, #riot-os
License
- The code developed by the RIOT community is licensed under the GNU Lesser
General Public License (LGPL) version 2.1 as published by the Free Software
Foundation. - Some external sources and packages are published under a separate license.
All code files contain licensing information.
Release-2018.01
RIOT-2018.01 - Release Notes
RIOT is a multi-threading operating system which enables soft real-time
capabilities and comes with support for a range of devices that are typically
found in the Internet of Things: 8-bit and 16-bit microcontrollers as well as
light-weight 32-bit processors.
RIOT is based on the following design principles: energy-efficiency, soft
real-time capabilities, small memory footprint, modularity, and uniform API
access, independent of the underlying hardware (with partial POSIX compliance).
RIOT is developed by an international open-source community which is
independent of specific vendors (e.g. similarly to the Linux community) and is
licensed with a non-viral copyleft license (LGPLv2.1), which allows indirect
business models around the free open-source software platform provided by RIOT.
About this release:
The 2018.01 release includes major progress in RIOTs network communication
capabilities, i.e., rewrite of GNRC's neighbour discovery, confirmable messages
in (g)CoAP, LoRa, and GoMacH as well as updates on CCN-lite and LWIP.
Furthermore, RIOT contributes to IKEA-Hacking by bringing support for
the smart home lighting system TRADFRI (note: this will void the warranty).
Needless to say that this release also adds and updates support for several
platforms, drivers, and of course lots of enhancements to the documentation
as well as numerous bug fixes. Last but not least, RIOT now has an official
code of conduct (https://github.com/RIOT-OS/RIOT/blob/master/CODE_OF_CONDUCT.md)
More than 442 pull requests with about 865 commits have been merged since the
last release and about 96 issues have been solved. 54 people contributed with code
in 96 days. Approximately 2370 files have been touched with 223970 insertions
and 181409 deletions.
Notations used below:
+ means new feature/item
* means modified feature/item
- means removed feature/item
New features and changes
System libraries
+ event: event queue framework like libevent
Networking
+ gcoap: confirmable messages
+ nanocoap: no external package anymore
* GNRC: major rewrite of neighbour discovery
* GNRC: new API for network interface handling
Packages
+ gecko_sdk: library for EFM/EFR/EZR32 MCUs
* libcoap: git patching fixed
+ littlefs: filesystem for constraint devices
- nanocoap: now part of RIOT
* openthread: updated
+ semtech-loramac: LoRa MAC
+ umorse: morse encoder
Boards
+ acd52832
* common: restructured shared code for boards
+ b-l475e-iot01a
+ bluepill
+ ikea-tradfri
- pca10000
- pca10005
- qemu-i386
+ ruuvitag
+ sltb001a
+ teensy31
+ thingy52
- x86
CPU
+ efm32
* kinetis: unified all MCU variants
- x86
Device Drivers
+ socket_zep: emulated IEEE 802.15.4 device over a UDP for native
+ hts221
+ lc709203f
+ lis2dh12
+ rn2xx3
+ soft_spi
+ tja1042
Build System / Tooling
+ flake8: python code checker
* make: set `-Wall -Wextra` as default for all compilers and platforms
- sniffer: moved to applications repository
+ tests: add automated test scripts for many apps
Fixed Issues from the last release (2017.10)
#2143: unittests: tests-core doesn't compile for all platforms
#4499: handle of l2src_len in gnrc_ndp_rtr_sol_handle
#4822: kw2xrf: packet loss when packets get fragmented
#5005: ndp: router advertisement sent with global address
#5122: NDP: global unicast address on non-6LBR nodes disappears after a while
#5656: Possible Weakness with locking in the GNRC network stack
#5790: ND: Lost of Global IPV6 on node after sending lot of UDP frame from BR
#5944: msp430: ipv6_hdr unittests fail
#6451: Wrong value in SRF08 driver
#6502: cpu/stm32l1: RTC broken
Known Issues
Networking related issues
#5230: gnrc ipv6: multicast packets are not dispatched to the upper layers
#5858: gnrc: 6lo: potential problem with reassembly of fragments: If one frame
gets lost the reassembly state machine might get out of sync
#7035: lwIP: hangs due to sema change after a while
Timer related issues
#5103: xtimer: weird behavior of tests/xtimer_drift: xtimer_drift randomly
jumps a few seconds on nrf52
#5338: xtimer: xtimer_now() not ISR safe for non-32-bit platforms.
#6052: tests: xtimer_drift gets stuck: application freezes after ~30-200 seconds
#7114: xtimer: add's items to the wrong list if the timer overflows between
_xtimer_now() and irq_disable()
native related issues
#495: native not float safe: When FPU is used and an asynchronous context
switch occurs, either the stack gets corrupted or a floating point
exception occurs.
#6442: cpu/native: timer interrupt does not yield thread
other platform related issues
#1891: newlib-nano: Printf formatting does not work properly for some numeric
types: PRI[uxdi]64, PRI[uxdi]8 and float are not parsed in newlib-nano
#4866: not all GPIO driver implementations are thread safe: Due to non-atomic
operations in the drivers some pin configurations might get lost.
#5848: Arduino: Race condition in sys/arduino/Makefile.include
#6018: nRF52 gnrc 6lowpan ble memory leak
#6261: SAMD21: TC3 & TC4 issue when using TCC2
#6379: nrf52dk/nordic_soft_device: not working anymore
#6437: periph/spi: Leftovers from SPI rework
#6526: atmega based boards freeze when main thread is over
#6836: Issuing a reboot on ATmega328p makes the board loop-reboot
#7753: pic32-wifire: race-condition when linking in concurrent build
other issues
#1263: TLSF implementation contains (a) read-before-write error(s).
#3366: periph/i2c: handle NACK
#4488: Making the newlib thread-safe: When calling puts/printf after
thread_create(), the CPU hangs for DMA enabled UART drivers.
#5776: make: Predefining CFLAGS are parsed weirdly
#5863: OSX + SAMR21-xpro: shell cannot handle inputs of length >64 chars
#5962: Makefile: UNDEF variable is not working as documented
Acknowledgements
We would like to thank all companies (vendors) that provided us with (their)
hardware for porting and testing RIOT-OS. Further thanks go to companies and
institutions that directly sponsored development time. And finally, big thanks
to all of you contributing in so many different ways to make RIOT worthwhile!
More information
Mailing lists
- RIOT OS kernel developers list
[email protected] (http://lists.riot-os.org/mailman/listinfo/devel) - RIOT OS users list
[email protected] (http://lists.riot-os.org/mailman/listinfo/users) - RIOT commits
[email protected] (http://lists.riot-os.org/mailman/listinfo/commits) - Github notifications
[email protected] (http://lists.riot-os.org/mailman/listinfo/notifications)
IRC
- Join the RIOT IRC channel at: irc.freenode.net, #riot-os
License
- The code developed by the RIOT community is licensed under the GNU Lesser
General Public License (LGPL) version 2.1 as published by the Free Software
Foundation. - Some external sources and packages are published under a separate license.
All code files contain licensing information.