Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
dbfd93b
[driver] Adding AS5047 driver and example
hshose Mar 6, 2024
2406559
[stm32] Extend Timer features: PWM modes and Comparator
victorandrehc Mar 28, 2023
a371df6
[stm32] add enable break in timer
Feb 26, 2024
3aedcf8
fix clock in lis3::SpiMaster::initialize
TomSaw Mar 7, 2024
553c4c7
[cmake] Change template to respect repo name
Javask Apr 24, 2023
d257401
[cmake] Support header only libraries
Javask Sep 20, 2023
2f51822
[cmake] Correctly propagate options to all repos
Javask Sep 22, 2023
97ffcb4
[cmake] Emulate scons behaviour of including everything
Javask Sep 22, 2023
a5cee07
[cmake] Fix build on windows
Javask Sep 27, 2023
1a89fbe
[cmake] Update auto-generated CMakeLists
Javask Mar 8, 2024
9496060
[stm32] add advanced initialize on iwdg
Feb 26, 2024
734de07
[stm32] i2c irq priority can be set
wald-zat Oct 4, 2023
9d4baa9
[stm32] Fix flash page size for large F103, F105 and F107 devices
chris-durand Mar 12, 2024
e1d8a17
[stm32/sam_x7x] Allow I2C ISR priority to be set
rleh Mar 14, 2024
a066925
Fix Python syntax
rleh Mar 14, 2024
c43be03
[ext] Update modm-devices submodule
rleh Mar 14, 2024
d72efc7
[tools] Improvements to BlackMagicProbe tool
kapacuk Mar 26, 2024
6937325
[lbuild] distutils is deprecated since Python 3.12
salkinium Mar 31, 2024
3ccdc56
[ext] Update CMSIS headers for STM32
salkinium Mar 31, 2024
3b03250
[release] Update changelog for 2024q1 release
salkinium Apr 1, 2024
f01fd0a
[tools] Font generation with Python 3
becseya Apr 1, 2024
19bfa81
[cortex-m] Communicate the flash_offset to the dfu-util tool
el-han May 14, 2024
f0e5a2a
[cortex-m] added flash_reserved section
hshose Mar 20, 2024
cde35ed
[ext] added nlohmann json submodule
hshose Mar 25, 2024
4c79529
[ext] example for json usage added
hshose Mar 12, 2024
71becdc
[flash] STM32G4 flash erase dual bank BKER bit
hshose Mar 30, 2024
2d8a989
[stm32] Add DMA capabilities to F0/G0 ADC
wald-zat May 19, 2024
901a3dc
[examples] Add ADC with DMA example for STM32F0
wald-zat May 19, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,7 @@ jobs:
run: |
python3 tools/scripts/authors.py --handles --count --shoutout --since 2017-01-01
python3 tools/xpcc_generator/builder/system_layout.py examples/xpcc/xml/communication.xml -o /tmp
python3 tools/font_creator/font_export.py tools/font_creator/fonts/all_caps_3x5.font /tmp/all_caps_converted

stm32-examples:
runs-on: ubuntu-22.04
Expand Down
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -46,3 +46,6 @@
[submodule "ext/arm/cmsis-dsp"]
path = ext/arm/cmsis-dsp
url = https://github.com/modm-ext/cmsis-dsp-partial.git
[submodule "ext/nlohmann/json"]
path = ext/nlohmann/json
url = [email protected]:modm-ext/json-partial.git
4 changes: 4 additions & 0 deletions .mailmap
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,12 @@ Christopher Durand <[email protected]>
Christopher Durand <[email protected]>
Daniel Krebs <[email protected]>
Daniel Krebs <[email protected]> <[email protected]>
Daniel Waldhäusl <[email protected]>
David Hebbeker <[email protected]>
David Hebbeker <[email protected]> <[email protected]>
David Hebbeker <[email protected]> <[email protected]>
David Hebbeker <[email protected]> <[email protected]>
Dima Barsky <[email protected]>
Erik Henriksson <[email protected]>
Erik Henriksson <[email protected]> <[email protected]>
Fabian Greif <[email protected]>
Expand Down Expand Up @@ -51,6 +53,7 @@ Marten Junga <[email protected]> <[email protected]>
Martin Esser <[email protected]>
Martin Rosekeit <[email protected]>
Martin Rosekeit <[email protected]> <[email protected]>
Michael Jossen <[email protected]>
Michael Thies <[email protected]>
Mike Wolfram <[email protected]>
Mike Wolfram <[email protected]> <[email protected]>
Expand Down Expand Up @@ -87,6 +90,7 @@ Thorsten Lajewski <[email protected]>
Tomasz Chyrowicz <[email protected]>
Tomasz Wasilczyk <[email protected]>
Valeriy Osipov <[email protected]>
Victor Costa <[email protected]>
Vivien Henry <[email protected]>
Zawadniak Pedro <[email protected]>
Álan Crístoffer <[email protected]>
221 changes: 221 additions & 0 deletions CHANGELOG.md

Large diffs are not rendered by default.

31 changes: 16 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ Please [discover modm's peripheral drivers for your specific device][discover].
<td align="center">✅</td>
<td align="center">✕</td>
<td align="center">✕</td>
<td align="center"></td>
<td align="center"></td>
<td align="center">✅</td>
<td align="center">○</td>
<td align="center">○</td>
Expand Down Expand Up @@ -721,100 +721,101 @@ your specific needs.
<td align="center"><a href="https://modm.io/reference/module/modm-driver-ads816x">ADS816x</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-ams5915">AMS5915</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-apa102">APA102</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-as5047">AS5047</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-at24mac402">AT24MAC402</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-block-device-spi-flash">SPI Flash</a></td>
</tr><tr>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-block-device-spi-flash">SPI Flash</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-bme280">BME280</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-bmi088">BMI088</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-bmp085">BMP085</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-bno055">BNO055</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-cat24aa">CAT24AA</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-cycle_counter">CYCLE-COUNTER</a></td>
</tr><tr>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-cycle_counter">CYCLE-COUNTER</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-drv832x_spi">DRV832X</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-ds1302">DS1302</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-ds1631">DS1631</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-ds18b20">DS18B20</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-ea_dog">EA-DOG</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-encoder_input">Encoder Input</a></td>
</tr><tr>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-encoder_input">Encoder Input</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-encoder_input-bitbang">Encoder Input BitBang</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-encoder_output-bitbang">Encoder Output BitBang</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-ft245">FT245</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-ft6x06">FT6x06</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-gpio_sampler">Gpio Sampler</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-hclax">HCLAx</a></td>
</tr><tr>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-hclax">HCLAx</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-hd44780">HD44780</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-hmc58x">HMC58x</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-hmc6343">HMC6343</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-hx711">HX711</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-i2c-eeprom">I2C-EEPROM</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-ili9341">ILI9341</a></td>
</tr><tr>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-ili9341">ILI9341</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-is31fl3733">IS31FL3733</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-itg3200">ITG3200</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-ixm42xxx">IXM42XXX</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-l3gd20">L3GD20</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-lan8720a">LAN8720A</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-lawicel">LAWICEL</a></td>
</tr><tr>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-lawicel">LAWICEL</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-lis302dl">LIS302DL</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-lis3dsh">LIS3DSH</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-lis3mdl">LIS3MDL</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-lm75">LM75</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-lp503x">LP503x</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-lsm303a">LSM303A</a></td>
</tr><tr>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-lsm303a">LSM303A</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-lsm6ds33">LSM6DS33</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-lsm6dso">LSM6DSO</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-ltc2984">LTC2984</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-max31855">MAX31855</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-max31865">MAX31865</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-max6966">MAX6966</a></td>
</tr><tr>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-max6966">MAX6966</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-max7219">MAX7219</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-mcp23x17">MCP23x17</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-mcp2515">MCP2515</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-mcp3008">MCP3008</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-mcp7941x">MCP7941x</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-mcp990x">MCP990X</a></td>
</tr><tr>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-mcp990x">MCP990X</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-mmc5603">MMC5603</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-ms5611">MS5611</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-ms5837">MS5837</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-nokia5110">NOKIA5110</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-nrf24">NRF24</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-parallel_tft_display">TFT-DISPLAY</a></td>
</tr><tr>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-parallel_tft_display">TFT-DISPLAY</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-pat9125el">PAT9125EL</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-pca8574">PCA8574</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-pca9535">PCA9535</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-pca9548a">PCA9548A</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-pca9685">PCA9685</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-qmc5883l">QMC5883L</a></td>
</tr><tr>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-qmc5883l">QMC5883L</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-sh1106">SH1106</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-siemens_s65">SIEMENS-S65</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-siemens_s75">SIEMENS-S75</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-sk6812">SK6812</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-sk9822">SK9822</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-ssd1306">SSD1306</a></td>
</tr><tr>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-ssd1306">SSD1306</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-st7586s">ST7586S</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-st7789">ST7789</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-stts22h">STTS22H</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-stusb4500">STUSB4500</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-sx1276">SX1276</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-sx128x">SX128X</a></td>
</tr><tr>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-sx128x">SX128X</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-tcs3414">TCS3414</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-tcs3472">TCS3472</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-tlc594x">TLC594x</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-tmp102">TMP102</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-tmp12x">TMP12x</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-tmp175">TMP175</a></td>
</tr><tr>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-tmp175">TMP175</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-touch2046">TOUCH2046</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-vl53l0">VL53L0</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-driver-vl6180">VL6180</a></td>
Expand Down
179 changes: 179 additions & 0 deletions docs/release/2024q1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,179 @@
## 2024-04-01: 2024q1 release

This release covers everything from 2024-01-01 and has been tested with avr-gcc
v12.2.0 from Upstream and arm-none-eabi-gcc v12.2.1 from xpack.

Breaking changes:

- TinyUSB v0.16 implements a DFU class in addition to a DFU *runtime* class.
Therefore the `modm:tinyusb:config:device.dfu` option was renamed to
`device.dfu_rt` to align with the TinyUSB naming.
- TinyUSB v0.16 improves support for using two USB ports at the same time. A
differnt port can now be chosen for device and host classes. In addition, the
HS peripheral may be operated in FS mode, therefore the `modm:tinyusb:speed`
option was renamed to `modm:tinyusb:max-speed` since it now has a different
meaning.
- Remove the separate `hosted-rpi` Raspberry Pi target in favor of plain
`hosted-linux`. Its GPIO implementation based on wiringPi is removed.

Features:

- Add USB High-Speed support to all development boards with ULPI interface.
- Catch accidental use of Newlib's printf implementation.
- Fibers are now implemented for ARM64, albeit only on Linux and macOS.
- Add BDMA driver for STM32H7.
- DMA support for ADC driver on STM32F3 and STM32G4.
- Support for ADC conversion sequences on STM32F3 and STM32G4.
- Add Prescaler+Counter constexpr algorithm and use it in `Iwdg::initialize()`.
- Add PWM modes, break input and comparator to Timer driver on STM32.
- CMake generator now works with multiple lbuild repositories.
- Allow setting I2C interrupt priority for STM32 and SAMx7x.

Integrated Projects:

- TinyUSB upgraded to v0.16.0.
- STM32G0 headers upgraded to v1.4.4.
- STM32G4 headers upgraded to v1.2.3.
- STM32H5 headers upgraded to v1.2.0.
- STM32H7 headers upgraded to v1.10.4.
- STM32L5 headers upgraded to v1.0.6.
- STM32U5 headers upgraded to v1.4.0.
- STM32WB headers upgraded to v1.12.1.

Fixes:

- Fix `Rcc::enable()` for STM32H7 comparator.
- Fix Timer 23 and 24 counter size on STM32H7.
- Fix ADC asynchronous clock on STM32H7.
- Fix DMA enable on STM32G0.
- Fix reconfiguring DMAMUX requests.
- Fix ADC sampling time configuration on STM32F3.
- Separate ULPI clock from USB clock on STM32 to allow using OTGHS in FS mode.
- Stack alignment underneath promise in fiber tasks.
- Move `Iwdg` driver to `modm::platform::Iwdg` namespace.
- Fix flash page size for large F103, F105 and F107 devices.

New development boards:

- DISCO-F401VC as `modm:disco-f401vc`.
- NUCLEO-G070RB as `modm:nucleo-g070rb`.
- DISCO-F411VE as `modm:disco-f411ve`.

New device drivers:

- AS5047 absolute encoder driver as `modm:driver:as5047`.

Known bugs:

- OpenOCD cannot enable SWO on STM32H7 targets. See #1079.
- Compiling Protothreads and Resumable Functions is broken on GCC13. See #1012.
- `arm-none-eabi-gdb` TUI and GDBGUI interfaces are not supported on Windows.
See #591.
- STM32F7: D-Cache not enabled by default. See #485.
- 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.
A special shoutout to first timers 🎉:

- Carl Treudler (@cajt)
- Christopher Durand (@chris-durand)
- Daniel Waldhäusl
- Dima Barsky (@kapacuk) 🎉
- Henrik Hose (@hshose)
- Michael Jossen (@Javask) 🎉
- Niklas Hauser (@salkinium)
- Raphael Lehmann (@rleh)
- Thomas Sommer (@TomSaw)
- Victor Costa (@victorandrehc)

PR #1153 -> 2024q1.

<details>
<summary>Detailed changelog</summary>

#### 2024-03-15: Allow I2C interrupt priority to be set

PR #1143 -> 734de07 and PR #1148 -> e1d8a17.

#### 2024-03-09: Adapt CMake generator to multiple lbuild repositories

PR #1140 -> 1a89fbe.
Tested in hardware by @Javask.

#### 2024-03-08: Extend Timer features for STM32G0

PR #1134 -> a371df6.
Tested in hardware by @victorandrehc.

#### 2024-03-08: Add AS5047 absolute encoder driver

PR #1138 -> dbfd93b.
Tested in hardware by @hshose.

#### 2024-03-06: Add DISCO-F411VE board support

PR #1135 -> 009bb06.
Tested in hardware by @tomsaw.

#### 2024-02-06: Use Prescaler+Counter algorithm for `Iwdg::initialize()`

PR #1127 -> 23036e3.
Tested in hardware by @salkinium.

#### 2024-02-05: Add DMA and conversion sequence support to STM32F3/G4 ADC

PR #1126 -> fe4cbc5.
Tested in hardware by @chris-durand.

#### 2024-02-02: Add NUCLEO-G070RB board support

PR #1125 -> 6de70ba.
Tested in hardware by @chris-durand.

#### 2024-02-01: Add BDMA driver for STM32H7

PR #1115 -> 2e40ab4.
Tested in hardware by @chris-durand.

#### 2024-01-21: Implement Fibers for ARM64

New targets with `-arm64` suffix, `-x86_64` is implicit for backwards
compatibility:

- `hosted-linux-arm64`
- `hosted-darwin-arm64`

Removed `hosted-rpi` target, as wiringPi is deprecated and thus the target lost
its only peripheral.

PR #1113 -> 623a13b.
Tested in hardware by @salkinium (Apple Silicon M2) and @rleh (Raspberry Pi).

#### 2024-01-14: Catch Newlib's printf usage

This previously lead to cryptic linking failures due to a missing heap
implementation. Now any use of `printf` without including the `modm:printf`
module will lead to a linking failure with a proper error description.

PR #1120 -> 7318c28.
Tested by @salkinium.

#### 2024-01-05: Upgrade TinyUSB to v0.16.0

PR #1116 -> 1f210c1.
Tested in hardware by @salkinium with **high** impact on TinyUSB configuration.

#### 2024-01-05: Add DISCO-F401VC board support

PR #1117 -> 2381c61.
Tested in hardware by @cajt.

#### 2024-01-04: Miscellaneous fixes for STM32H7 and STM32G0

PR #1114 -> 8bcbe25.
Tested in hardware by @chris-durand.

</details>
Loading