Bridle 3.6.0 Release Notes

This project demonstrate the integration of TiaC Systems support in open source projects, like the Zephyr RTOS, with libraries and source code for applications. It is not yet intended or supported by TiaC Systems for product development.

Highlights

  • Add the u-blox library (ubxlib) and provide a simple GNSS example.

  • Add Raspberry Pi Pico Clock Shields.

  • Add Raspberry Pi Pico LCD Shields.

  • Add Raspberry Pi Pico LED Shields.

  • Add Raspberry Pi Pico TEST Shields.

  • Add DTS bindings for pwm-buzzers and pwm-servos.

  • Support the Cytron Maker RP2040 family.

  • Support The PicoBoy mini-handheld.

  • Use board extensions.

Note

See the changelog and readme files in the component repositories for a detailed description of changes.

Repositories

For more details, see: Repositories and revisions.

Component

Group : Imports

Branch

Tag

tiac-bridle

v3.6-branch

v3.6.0

geographiclib
tiacsys/main
(main)
liblc3
loramac-node
lvgl
mcuboot
open-amp
openthread
picolibc
hal : cmsis
hal : hal_altera
hal : hal_atmel
hal : hal_espressif
hal : hal_gigadevice
hal : hal_infineon
hal : hal_microchip
hal : hal_nordic
hal : hal_nuvoton
hal : hal_nxp
hal : hal_openisa
hal : hal_quicklogic
hal : hal_renesas
hal : hal_rpi_pico
hal : hal_silabs
hal : hal_st
hal : hal_stm32
hal : hal_telink
hal : hal_ti
hal : hal_xtensa
hal : libmetal
fs : fatfs
fs : littlefs
tee : trusted-firmware-a
tee : trusted-firmware-m
crypto : mbedtls
crypto : tinycrypt
debug : mipi-sys-t
debug : segger
tools : edtt
tools : net-tools
optional : canopennode
optional : chre
optional : psa-arch-tests
optional : tf-m-tests
tiacsys/v3.6-branch
(v3.6-branch)

v3.6.0

Supported boards

  • Arduino/Genuino Zero

  • PicoBoy Mini-Handheld

  • Cytron Maker Nano RP2040

  • Cytron Maker Pi RP2040

  • NXP MIMXRT1010-EVK

  • NXP MIMXRT1060-EVK

  • Raspberry Pi Pico and Pico W

  • Seeed Studio XIAO SAMD21 (Seeeduino XIAO)

  • Seeeduino Cortex-M0+

  • Seeeduino Lotus Cortex-M0+

  • ST Nucleo F2xxxx

  • ST Nucleo F3xxxx / L4xxxx

  • ST Nucleo F6xxxx

  • TiaC Magpie STM32F777NIHx

  • Waveshare RP2040 (series of mini and pico sized boards)

Supported shields

  • Seeed Studio Grove Interconnect Shields

  • Grove Button Shields

  • Grove LED Shields

  • Raspberry Pi Pico Clock Shields

  • Raspberry Pi Pico LCD Shields

  • Raspberry Pi Pico LED Shields

  • Raspberry Pi Pico TEST Shields

  • Waveshare LCD Modules

  • Waveshare Pico 10-DOF IMU Sensor

  • Waveshare Pico Environment Sensor

Supported snippets

  • USB Console Snippet (usb-console)

  • PWM Servomotor Preset Snippet (pwm-servo)

  • CAN timing adjustments (can-timing-adj)

Change log

  • When getopt() is active (CONFIG_SHELL_GETOPT=y), the Zephyr shell is not parsing command handler to print help message. It must be done explicitly inside the command implementation.

  • Update GPIO to use DT_HAS_<compat>_ENABLED Kconfig symbol to expose the driver and enable it by default based on devicetree.

  • Use Board extensions to extended Zephyr upstream board configurations. In some situations, certain hardware description or choices can not be added in the upstream Zephyr repository, but they can be in a downstream project, where custom bindings or driver classes can also be created. This feature may also be useful in development phases, when the board skeleton lives upstream, but other features are developed in a downstream module. Thus the extensions spinned around in different shields or snippets were centraliced as board extensions, e.g. the special Raspberry Pi Pico R3 edge connector binding.

  • Remove special board extensions for Nucleo F303RE/F401RE, NXP MIMXRT1010-EVK, and RPi Pico from the Grove Interconnect Shield.

  • Convert all RP2040 based boards to the new Clock Controller support.

  • Adds the new DTS binding pwm-buzzers, which can be used in the same way as the Zephyr upstream binding pwm-leds; but here for simple buzzers, each used by a dedicated PWM channel to output simple digital sounds. A simple buzzer sample is now also part of Bridle. This can be used for simple music playback via PWM.

  • Adds the new DTS binding pwm-servos to combine several PWM channels in one node and make different numbers of servomotors known via alias entries. As long as there is no stable servo motor or motion API in Zephyr or Bridle, this binding will remain in flux and will not be finished.

  • Add the new PWM Servomotor Preset Snippet (pwm-servo) for quite board specific preperations of the standard Zephyr Servomotor sample. Add support for the following boards:

    • Cytron Maker Pi RP2040

  • Add more boards to the USB Console Snippet (usb-console):

    • Cytron Maker Nano RP2040

    • Cytron Maker Pi RP2040

    • NXP MIMXRT1010-EVK

    • NXP MIMXRT1060-EVK

    • Raspberry Pi Pico (W)

    • Waveshare RP2040-Geek

  • Add more shields:

    • Raspberry Pi Pico Clock Shields:

      • Pico Clock Green shield by Waveshare

    • Raspberry Pi Pico LCD Shields:

      • Pico LCD 1.14 shield by Waveshare

      • Pico LCD 2 shield by Waveshare

      • Pico ResTouch LCD 3.5 shield by Waveshare

    • Raspberry Pi Pico LED Shields:

      • Pico RGB LED shield by Waveshare

    • Raspberry Pi Pico TEST Shields:

      • Pico ALL GPIO TEST shield by Spotpear

    • Waveshare LCD Modules:

      • 2.4inch LCD Module as shield by Waveshare

    • Sensor shields:

      • Pico 10-DOF IMU Sensor shield by Waveshare

      • Pico Environment Sensor shield by Waveshare

  • New Zephyr module: support u-blox portable C API ubxlib with GNSS sample.

    The GNSS sample, ubx_gnss was qualified to run on the following boards:

    • Nordic nRF9160 DK (nRF9160)

    • Nordic nRF52840 DK (nRF52840)

    • ST Nucleo L496ZG

    • ST Nucleo F413ZH

    • ST Nucleo F767ZI

    • NXP MIMXRT1170-EVKB (CM7)

    • NXP MIMXRT1060-EVK

    • NXP MIMXRT1010-EVK

The following sections provide detailed lists of changes by component.

Build Infrastructure

Take over the new build principles from Zephyr:

  • Use the new upstream MIPI DBI API for all ILI9xxx based displays.

  • Take over upstream ci/check_compliance.py from Zephyr, adapt with all the needs for Bridle and extend support for external module roots as defined by Zephyr module settings (MODULE_EXT_ROOT).

  • Use new ci/check_compliance.py on GitHub workflow QA Compliance Check to do following with each PR:

    • Checks various nits in added/modified files, not coverd by other checks, e.g. checkpatch.pl and pylint.

    • Checks if Emails of author and signed-off messages are consistent.

    • Checks for conflict markers or whitespace errors.

    • Run Git, Python and YAML linting on the commits and find issues with style and syntax.

    • Check that MAINTAINERS file parses correctly.

    • Check that all modules have a MAINTAINERS entry.

    • Checks introducing any unwanted properties in Devicetree Bindings.

    • Checks introducing any new warnings/errors with Kconfig when no modules are available.

    • Checks introducing any new warnings/errors with Kconfig, the basic Kconfig test, which is checking only for undefined references.

    • Check for blocks of code or config that should be kept sorted.

    • Check that the diff contains no binary files that are not tollerated.

    • Check that any added image is limited in allowed size.

  • Provide a nix flake for reproducible development and build environments. The new nix flake definition, which provides as output a devshell, is now setup a development environment containing all necessary tools and libraries to work with Bridle. Really all dependencies, i.e. both system packages on the host and all necessary Python packages.

Documentation

  1. All scattered links to external resources and internal references to sections in the various docsets (e.g. Bridle or Zephyr) were moved to a central location in the files links.txt and shortcuts.txt and thus centralized.

  2. Clarification that the Zephyr SDK will indeed be used and is the preferred default toolchain. All other references to the GNU toolchains by ARM Ltd. are entirely optional and may or may not be used.

  3. Update all output messages in documentation to be in sync with the upcoming Bridle version v3.6.0, based on Zephyr v3.6 (samples and tests).