Skip to content

STM32F746G-DISCO: the car HMI demo out of the box - #126

Merged
JohnAmadis merged 2 commits into
masterfrom
feature/carhmi
Oct 11, 2026
Merged

JohnAmadis merged 2 commits into
masterfrom
feature/carhmi

Conversation

@JaxCalder

Copy link
Copy Markdown
Contributor

Summary

After this, cmake -DBOARD=stm32f746g-disco → build → install-all gives a board running the car HMI demo, with the MP3 player for the card's music/:

  • configs/board/stm32f746g-disco/flash.dmd:
    • dmaudio service and rules: one dmaudio@wm8994 for the codec
    • dmview@>=0.10 with its service and rules: the claim channel carhmi needs. The version is on every line, because a line without it pulls dmview/libdmview 0.9 from the registry and overwrites the 0.10 the other line installed.
    • carhmi service=carhmi.ini
  • sdcard.dmd: carhmi_view (≈320 kB, goes to build/sdcard/views/carhmi_view/).
  • configs/common/flash.dmd: ymodem. upload-files / install-all type ymodem recv, but no image contained the command, so on a fresh clone the upload could not work.
  • lib/dmod → Dmod_Run: do not hold the module's mutex while its main() runs dmod#330: Dmod_Run() no longer holds the module's mutex for the whole main(). With it held, every service ran permanently at systemd's priority 4, the drawing of the view starved the MP3 decoder, and playback crackled.
  • README: a section on the demo, including how to put music on the card.

Flash: 686 KB of 1 MB used, 338 KB free.

Before merging

Released and in the registry first:

Until then CI can't resolve carhmi, carhmi_view, or dmview@>=0.10.

Test plan

  • Fresh worktree of origin/master + this branch, built with a local manifest standing in for the unreleased packages: the image contains dmview/libdmview 0.10, carhmi, dmmp3, libdmaudio/dmaudio 0.1, ymodem 0.14, and the configs of carhmi, dmview, dmaudio and the codec
  • STM32F746G-DISCO: install-all flashes and sends the view (62 files, 16.7 s). carhmi shows the card's tracks with their ID3 tags, and playback is clean with the dmod fix.
  • CI after the releases

Known issues (not in this PR)

  • Large uploads (>1 MB) are cancelled by the device partway through (seen twice: at ≈1.2 MB and ≈2.4 MB). Smaller files (the view, MP3s up to 400 KB) go through.
  • dmfatfs can lose files written shortly before a reset, so give it a few seconds after an upload.

🤖 Generated with Claude Code

JohnAmadis and others added 2 commits October 11, 2026 21:44
The board's flash.dmd starts what carhmi-demo needs - dmaudio (its service
and rules, on the WM8994), dmview 0.10 (the channel of a claim, given on
each of its lines: a line without a version would install the older one
over it) and the carhmi service -, its sdcard.dmd downloads carhmi_view.
ymodem joins the common flash modules: upload-files / install-all type
`ymodem recv`, which no image had.

lib/dmod: Dmod_Run() no longer holds the module's mutex while main()
runs - with it, every service ran at systemd's priority (4) and the
player's decoder was starved by the drawing of the view.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@JohnAmadis
JohnAmadis merged commit b7551b0 into master Oct 11, 2026
9 of 10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants