feat(examples): F469-Disco display examples with panel auto-detection#867
Closed
Amperstrand wants to merge 16 commits intostm32-rs:masterfrom
Closed
feat(examples): F469-Disco display examples with panel auto-detection#867Amperstrand wants to merge 16 commits intostm32-rs:masterfrom
Amperstrand wants to merge 16 commits intostm32-rs:masterfrom
Conversation
The ft6x06 v0.1.2 crate panics when the touch controller reports more than FT6X06_MAX_NB_TOUCH (2) simultaneous touches, which can happen due to electrical noise or ghost touches. This patch applies PR #5 (commit cc352f8) which clamps the touch count instead of asserting, preventing device crashes. Refs: Srg213/ft6x06#4 Refs: Srg213/ft6x06#5 Testing: cargo check passes with patched dependency
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
The FT6X06 touch interrupt is active-LOW and requires a pull-down resistor for a defined idle state. Without this, the pin floats and wait_touch_interrupt() never returns properly. The sdio::init() function returns PC1 for touch interrupt use, but was returning it without any pull configuration. Now configures it as pull-down input before returning.
When building a BSP that depends on the HAL, both build.rs scripts were running and potentially conflicting. Now the HAL only generates memory.x when it's the primary package being built. BSPs have their own board-specific memory.x (flash/RAM sizes vary by chip package) and should use that instead of the HAL's generic defaults.
Complete BSP for STM32F469I-DISCO board including: - build.rs with memory.x generation - memory.x for F469 (2M flash, 320K RAM) - Examples: display, touch, SDRAM, GPIO - README with usage instructions - Embed.toml for probe-rs - License (0BSD)
For future AI agents using this HAL: - PIN-CONSUMPTION.md: Documents which 52 pins SDRAM consumes and which remain available (PC1, PC8-12, PD2, PH7). Hardware constraint not obvious from code. - USB-GUIDE.md: USB OTG FS setup with 48MHz PLL48CLK requirement, CDC-ACM pattern, and troubleshooting table. The USB module IS functional (contrary to previous misinformation). - usb_cdc_serial.rs: Working CDC-ACM example that compiles and demonstrates virtual serial port with echo test. - README.md: Updated with correct doc links and USB example. - Cargo.toml: Added USB dev-dependencies (usb-device, usbd-serial, static_cell).
Allows external code to change SDIO clock speed after initialization. This is needed for SDXC cards that require 400KHz for init but can benefit from higher speeds (e.g., 12MHz) for data transfer.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add 6 display examples for the STM32F469I-DISCO board with runtime auto-detection of panel type (NT35510 on RevC boards vs OTM8009A on RevA boards):
Shared Board Support
Board-specific initialization lives in
examples/f469disco/board.rs— a shared helper module providing:Key Features
defmtfeatureDependencies
nt35510crate for NT35510 panel driverotm8009acrate for OTM8009A panel driverTesting
cargo check --features=stm32f469,stm32-fmc,framebuffer,dsihost --examplesdefmtfeaturememory.xupdated to STM32F469NIH6 values (2048K Flash, 320K RAM)Supersedes #843 (split into focused PRs). Requires #866 to be merged first.