Skip to content

2025q3 release

Latest
Compare
Choose a tag to compare
@salkinium salkinium released this 02 Oct 20:14

This release covers everything from 2025-07-01 and has been tested with avr-gcc
v14.2.0 from upstream and arm-none-eabi-gcc v14.2.1 from xpack.

Breaking changes:

  1. Protothreads and Resumables are removed!

    They were announced as deprecated in 2024q4 and now all usage of them has
    been removed from modm's code base. The modules are still available in the
    source code, but nothing in modm uses them anymore. The modules will be
    deleted in the future. Please port your code to use fibers instead. Consult
    the modm:processing:fiber module docs for more information.

  2. RTT IODevice has been re-implemented as a static template class:

    Rtt rtt(0);
    modm::IODeviceObjectWrapper< Rtt, modm::IOBuffer::DiscardIfFull > rtt_device(rtt);
    // has been replaced with
    modm::IODeviceWrapper< Rtt<0>, modm::IOBuffer::DiscardIfFull > rtt_device;
  3. The class Qmc5883l has been properly namespaced into modm::Qmc5883l.

  4. The MCP2515 driver has been re-implemented to be compatible with fibers.
    The API has changed slightly. Please consult the module documentation for
    details.

Features:

  • Support for blocking IODevice in fibers.
  • Use of RTT for boards without serial connections.
  • Fiberize all UART drivers to yield in blocking calls.
  • Add option to automatically watermark fiber stacks.
  • Add external triggers and offset for the STM32F3/G4/L4/H7 ADC driver.

Integrated Projects:

  • Segger RTT added at v8.54.

Fixes:

  • Use HSE as RTC clock source instead of LSI for boards when possible.

New device drivers:

  • ADS868x ADC as modm:driver:ads868x.

Known bugs:

  • OpenOCD cannot enable SWO on STM32H7 targets. See #1079.
  • arm-none-eabi-gdb TUI and GDBGUI interfaces are not supported on Windows.
    See #591.
  • Generating modm on Windows creates paths with \ that are not compatible with
    Unix. See #310.
  • lbuild build and lbuild clean do not remove all previously generated files
    when the configuration changes. See #285.

Many thanks to all our contributors:

PR #1293 -> 2025q3.

Detailed changelog

2025-09-27: Add external triggers and offsets to STM32 ADC driver

PR #1275 -> 9c6d656.
Tested in hardware by @Tecnologic and @chris-durand.

2025-09-08: Refactor MCP2515 driver

PR #817 -> 3db3bcd.

2025-09-07: Add ADS868x ADC driver

PR #860 -> 7b8f2cc.

2025-09-03: Add automatic fiber stack watermarking

PR #1290 -> 5f8a558.
Tested in hardware by @salkinium.

2025-08-24: Remove all Protothread and Resumable code

PR #1285 -> 211f24e.
Tested in hardware by @salkinium.

2025-08-17: Fiberize all UART drivers

PR #1284 -> 93c4805.
Tested in hardware by @salkinium.

2025-08-15: Use HSE as RTC clock when possible

PR #1282 -> aeee675.
Tested in hardware by @salkinium.

2025-08-11: Integrate Segger RTT code

PR #1281 -> 89f387f.
Tested in hardware by @salkinium.

2025-08-03: Implement blocking IODevice for fibers

It blocks until a newline character has been sent.

PR #1279 -> 7d9070d.
Tested in hardware by @salkinium.