Skip to content

Tags

Tags give the ability to mark specific points in history as being important
  • 2020.04-devel
    Development branch towards 2020.04 release
  • 2020.01-RC1
  • 2019.10
    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_CT_... defines
    
    Known issues
    ============
    
    Networking related issues
    -------------------------
            packet buffer
            address
           assertion or completely without error
           configured prefix
           chars
           address
    
    Timer related issues
    --------------------
           time.
           _xtimer_now()  and irq_disable()
    
    Drivers related issues
    ----------------------
            MHz
            clock cycles
           supported
    
    Native related issues
    ---------------------
    
    Other platforms related issues
    ------------------------------
            on host
            (not previous)
           boards
           CS
           LTO
    
    Build system related issues
    ---------------------------
            flashfile
            evaluation
           image
           value
    
    Other issues
    ------------
    -none-  tests/pkg_fatfs: vol_idx print overflow on large negative value
            10
           static_asserts in the same scope
           everywhere
    
    Fixed Issues from the last release (2019.07)
    ============================================
    
            echo -n
            causes Segmentation fault
            optimization
            in udp.c
            log_printfnoformat
           Makefile.include
           R21
           types
    
    Acknowledgements
    ================
    We would like to thank all companies that provided us with 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.
    
    
  • 2019.10-RC2
  • 2020.01-devel
    Development branch towards 2020.01 release
  • 2019.10-RC1
  • 2019.07
    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
    
    ```c
    - 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_t c);
    
    - int tsrb_add(tsrb_t *rb, const char *src, size_t n);
    + int tsrb_add(tsrb_t *rb, const uint8_t *src, size_t n);
    
    typedef struct {
    ...
    -   uint16_t (*calc_rank)(gnrc_rpl_parent_t *parent, uint16_t base_rank);
    -   gnrc_rpl_parent_t *(*which_parent)(gnrc_rpl_parent_t *, gnrc_rpl_parent_t *);
    +  uint16_t (*calc_rank)(gnrc_rpl_dodag_t *dodag, uint16_t base_rank);
    
    -   void (*reset)(gnrc_rpl_dodag_t *);    /**< resets the OF */
    +  void (*reset)(gnrc_rpl_dodag_t *dodag);
    ...
    -   void (*init)(void);  /**< OF specific init function */
    +  void (*init)(gnrc_rpl_dodag_t *dodag);
    } gnrc_rpl_of_t;
    
    - thread_state_t
    + thread_status_t
    
    - void sched_set_status(thread_t *process, thread_state_t status);
    + void sched_set_status(thread_t *process, thread_status_t status);
    
    struct _thread {
    ...
    -   thread_state_t status;
    +  thread_status_t status;
    ...
    }
    
    - bool mrf24j40_cca(mrf24j40_t *dev);
    + bool mrf24j40_cca(mrf24j40_t *dev, int8_t *rssi);
    ```
    
    Deprecations
    ========================
    
    Warnings
    --------
    `gnrc_tftp` module
    `ubjson` module
    
    Removals
    --------
    `gcoap_req_send()` replaced with `gcoap_req_send2()->gcoap_req_send2()`
    
    Known issues
    ============
    
    Networking related issues
    -------------------------
            address
           assertion or completely without error
           configured prefix
           chars
           address
    
    Timer related issues
    --------------------
           time.
           _xtimer_now()  and irq_disable()
    
    Drivers related issues
    ----------------------
            clock cycles
           R21
           supported
    
    Native related issues
    ---------------------
            log_printfnoformat
    
    Other platforms related issues
    ------------------------------
            (not previous)
           boards
           CS
           LTO
           types
    
    Build system related issues
    ---------------------------
            bionic`.
            evaluation
           image
           Makefile.include
           value
    * buildtest with BUILD_IN_DOCKER hides host toolchain errors
    
    Other issues
    ------------
            optimization
            in udp.c
            10
           static_asserts in the same scope
           everywhere
    
    Fixed Issues from the last release (2019.04)
    ============================================
    
            and no error
    
    Acknowledgements
    ================
    We would like to thank all companies that provided us with 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!
    A special thanks to @fjmolinas, @leandrolanzieri, @cladmi, @jia200x, @miri64
    for helping run the release tests
    
    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.
    
    
  • 2019.07-RC3
  • 2019.07-RC2
  • 2019.10-devel
    Development branch towards 2019.10 release
  • 2019.07-RC1
  • 2019.04
    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.
    
  • 2019.04-RC2
  • 2019.07-devel
    Development branch towards 2019.07 release
  • 2019.04-RC1
  • 2019.01
    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
    -------------------------
            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 platforms related issues
    ------------------------------
            (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 (2018.10)
    ============================================
    
            re-set
            fragmentation?
            load
            2 instances
    
    You can get the complete detail in the git history and in the release milestone
    [Release 2019.01](https://github.com/RIOT-OS/RIOT/milestone/25?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.
    
    RIOT-2018.10.1 - Release Notes
    ==============================
    This is a bug fixing release for the RIOT 2018.10 release.
    The following bugs were fixed:
    
        - sock_dns: remove out-of-place puts() call
        - sock_dns: remove some magic numbers
        - sock_dns: fix out-of-bound errors
    
        - pkg/jerryscript: disable -Wconversion for llvm
        - pkg/nimble: disable -Waddress-of-packed-member for llvm
        - pkg/tinycrypt: update commit hash after upstream rewrote history
    
        - at86rf2xx: correct framebuffer release
    
  • 2019.01-RC3
  • 2018.10.1
    Release-2018.10
    
  • 2019.01-RC2
  • 2019.04-devel
    Development branch towards 2019.04 release