Skip to content

Conversation

@maribu
Copy link
Member

@maribu maribu commented Oct 19, 2025

Contribution description

  • Adds support for the Olimexino STM32F3 open hardware board
  • Sneaks in some IWYU linter pragmas
  • Sneaks in a USB fix needed to run tests/periph/timer with the Olimexino-STM32F3 when using stdio_usb_cdc_acm

Testing procedure

  • tests/basic/default runs with USB and both LEDs and the BOOT button work with the saul shell command
  • tests/periph/timer passes, confirming the timer config is correct
  • Tripple-checked the Arduinio I/O mapping by comparing schematics to header
  • Testing PWM config
  • Testing ADC config

Issues/PRs references

None

@github-actions github-actions bot added Platform: ARM Platform: This PR/issue effects ARM-based platforms Area: doc Area: Documentation Area: boards Area: Board ports Area: cpu Area: CPU/MCU ports labels Oct 19, 2025
@maribu maribu force-pushed the boards/olimexino-stm32f3 branch from 562c48f to 9507f43 Compare October 19, 2025 16:07
@crasbe crasbe added Type: new feature The issue requests / The PR implemements a new feature for RIOT CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR labels Oct 19, 2025
Copy link
Contributor

@crasbe crasbe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some style comments.

Comment on lines +22 to +26
/* This board provides an LSE */
#ifndef CONFIG_BOARD_HAS_LSE
# define CONFIG_BOARD_HAS_LSE 1
#endif

/* This board provides an HSE */
#ifndef CONFIG_BOARD_HAS_HSE
# define CONFIG_BOARD_HAS_HSE 1
#endif
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure these defines need an #ifndef block tbh. That's not something you would actually change?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would at least be possible to disabled the use of the external crystals.

Other than reproducing an issue that only triggers on boards without external crystals when having only this board at hand, I do not have a use case.

This matches what other boards do, though. It might be better to keep it consistent for now and have this discussion for all boards.

@crasbe
Copy link
Contributor

crasbe commented Oct 19, 2025

Perhaps you can (temporarily) change the .murdock file, so that the CI quickbuild actually tests the new board.

@riot-ci
Copy link

riot-ci commented Oct 19, 2025

Murdock results

✔️ PASSED

7b75df6 fixup! cpu/stm32/periph_usb: block idle power mode

Success Failures Total Runtime
10547 0 10550 08m:56s

Artifacts

@maribu maribu force-pushed the boards/olimexino-stm32f3 branch from 63b2f82 to 8e960c6 Compare October 19, 2025 18:25
@maribu maribu requested a review from jia200x as a code owner October 19, 2025 18:25
This reduces false positives for included but not directly used headers.
This USB peripheral seems to not be clocked when entering IDLE, at least
on STM32F3.

Given that an increase of power consumption in the order of 10s of mA
is usually of little concern when powered via USB, this just disables
the idle power state for all STM32 MCUs when USB is in use to rather
err on the side of additional power draw, rather than broken USB.
@maribu maribu force-pushed the boards/olimexino-stm32f3 branch from 8e960c6 to 145fd81 Compare October 19, 2025 20:07
/* Block STOP/STANDBY */
pm_block(STM32_PM_STOP);
pm_block(STM32_PM_STANDBY);
pm_block(STM32_PM_IDLE);
Copy link
Contributor

@kaspar030 kaspar030 Oct 20, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe update comment?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area: boards Area: Board ports Area: cpu Area: CPU/MCU ports Area: doc Area: Documentation CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR Platform: ARM Platform: This PR/issue effects ARM-based platforms Type: new feature The issue requests / The PR implemements a new feature for RIOT

4 participants