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 ------------------------- address assertion or completely without error configured prefix address Timer related issues -------------------- _xtimer_now() and irq_disable() Drivers related issues ---------------------- supported Native related issues --------------------- Other platform related issues ----------------------------- clock cycles and no error (not previous) boards types Build system related issues --------------------------- evaluation image Makefile.include value Other issues ------------ static_asserts in the same scope everywhere Fixed Issues from the last release (2019.01) ============================================ You can get the complete detail in the git history and in the release milestone [Release 2019.04](https://github.com/RIOT-OS/RIOT/milestone/26?closed=1). 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 ================ http://www.riot-os.org Mailing lists ------------- * RIOT OS kernel developers list devel@riot-os.org (http://lists.riot-os.org/mailman/listinfo/devel) * RIOT OS users list users@riot-os.org (http://lists.riot-os.org/mailman/listinfo/users) * RIOT commits commits@riot-os.org (http://lists.riot-os.org/mailman/listinfo/commits) * Github notifications notifications@riot-os.org (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.