summaryrefslogtreecommitdiff
path: root/examples/device
AgeCommit message (Collapse)Author
2026-06-22Merge remote-tracking branch 'origin/master' into add-ch58x-usbfshathach
2026-06-22hw/bsp+wch: rename the CH58x family to ch583 and OPT_MCU_CH58X to OPT_MCU_CH583hathach
The BSP family and MCU option were named "ch58x"/"CH58X", but the supported part is the CH583/CH582 (and the SDK repo is openwch/ch583); CH585 is a separate MCU family, so the CH58x umbrella was misleading. Rename to the specific family: - hw/bsp/ch58x -> hw/bsp/ch583 (dir), and the BSP-local files ch58x_it.* -> ch583_it.*, system_ch58x.* -> system_ch583.* (include guards/refs updated). The vendor SDK files (CH58x_common.h, CH58x_*.c in hw/mcu/wch/ch583) keep their names. - OPT_MCU_CH58X -> OPT_MCU_CH583 in tusb_option.h, tusb_mcu.h, and the shared WCH USBFS driver (ch32_usbfs_reg.h, dcd_ch32_usbfs.c). OPT_MCU_CH582 is kept as an alias (same value), so either name selects the same code. - FAMILY_MCUS CH58X -> CH583, CFG_TUSB_MCU=OPT_MCU_CH583, mcu:CH58X -> mcu:CH583 in the example skip lists, the CI build matrix (ci_set_matrix.py), the get_deps family tag, and docs/reference/boards.rst. Board names (ch582m_evt, yd-ch582m) are unchanged. Verified: make + cmake build for ch582m_evt, and ci.lan HIL (all device examples pass). Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-06-20examples: skip isochronous audio/UAC examples on CH58Xhathach
CH58x has no isochronous support (dcd_edpt_iso_alloc() returns false), but the audio class ignores that result and the endpoints fall back to capped 64-byte non-iso transfers, producing non-functional audio firmware. video_capture and the FreeRTOS audio examples already carry mcu:CH58X; add it to the remaining iso examples (audio_test, audio_4_channel_mic, audio_test_multi_rate, cdc_uac2, uac2_headset, uac2_speaker_fb) so they are not built for CH58x. Found by Codex review. Verified via build_utils.skip_example() that all six now skip on ch582m_evt while control examples (e.g. cdc_msc) still build. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-06-19Merge pull request #3704 from rhgndf/fix-one-dir-examplesZixun LI
Fix one direction endpoint examples
2026-06-18Merge pull request #3618 from hathach/copilot/fix-audio-bitfield-order-issuesHa Thach
fix: BE bitfield guards for audio structs and endian-safe wValue/wIndex extraction in UAC2 examples
2026-06-18test/hil: fix esp32 audio_test_freertos (FreeRTOS tick), skip metro_m4hathach
Enabling the audio test fleet-wide surfaced failures on esp32-p4/s3 and metro_m4_express: the UAC mic enumerates but arecord fails the iso IN read with EIO, while 18 other boards pass strict=1.000. esp32: root cause is the FreeRTOS tick rate. ESP-IDF defaults CONFIG_FREERTOS_HZ to 100, so the audio task wakes only every 10 ms and can't service the 1 ms UAC iso frames -> underrun -> arecord EIO. (The same dwc2 driver passes on STM32, whose FreeRTOSConfig is 1000 Hz.) Set CONFIG_FREERTOS_HZ=1000 in the example sdkconfig.defaults; the example defaults are honored in the generated sdkconfig alongside the BSP's, so this takes effect. metro_m4_express (samd51): not tick-rate -- its FreeRTOSConfig is already 1000 Hz like the passing boards -- so it's a separate iso-IN issue, skipped for now. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-06-18examples/uac2: drop redundant entity_id check in request helpershathach
The audio20 get/set entity dispatchers already extract entity_id from wIndex and route to the matching clock / feature-unit helper, so each helper's own entity_id re-derivation and TU_ASSERT(entity_id == ...) was dead: the helper is only ever reached for its one entity. Unknown entities are still rejected by the dispatcher's "not handled" path. Remove the redundant local, the dead assert, and the constant "entity" field from each helper's not-supported log (the message text already identifies the entity). The local is dropped entirely rather than kept for the log, since TU_LOG1 compiles out in release and would leave it unused. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-06-18Merge remote-tracking branch 'origin/master' into pr-3618hathach
2026-06-18Merge remote-tracking branch 'origin/master' into add-ch58x-usbfshathach
2026-06-14Fix one direction endpoint examplesJie Feng
2026-06-11Merge remote-tracking branch 'origin/master' into stm32c5hathach
# Conflicts: # README.rst
2026-06-11HIL: replace build.flags_on with named build variants (#3687)Ha Thach
* test/hil: replace build.flags_on with named variant schema Boards declare build variants as `variant: [{name, flags}]` instead of `build.flags_on`. The variant `name` is the build dir (cmake-build-<name>) and the HIL report row; `flags` is the raw CFLAGS string (-D...=1) injected via CFLAGS_CLI. No `variant` => a single build named after the board. - build.py: --build-name <name> (dir) + --cflag=<token> (raw CFLAGS, repeatable, =form survives the matrix's shell word-splitting); drop -f1/CFLAGS wrapping. - hil_ci_set_matrix.py: emit one build arg per variant. - hil_test.py: iterate variants; report row + build dir = variant name. - hil_ci.sh: copy all cmake-build-<board>* dirs for -b runs. - get_deps.py: accept (ignore) --build-name/--cflag from matrix args. - tinyusb.json: migrate all 6 flags_on boards to variant. * board_test: park CI build with busy spin instead of wfe
2026-06-10Merge pull request #3690 from hathach/claude/board-test-idle-parkHa Thach
hil: park boards with idle board_test instead of erasing flash
2026-06-01Merge pull request #3657 from hathach/usbh-add-control-queueHa Thach
Add control transfer fifo for host stack
2026-05-30esp32 build fixesHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-05-30ci: fix IAR Pe111 and stm32h7s3 flash overflowhathach
- examples/device/midi2_device/src/main.c: drop the unreachable `return 0;` after the `while(1)` superloop. IAR with --warnings_are_errors rejects Pe111 (statement is unreachable); C99 lets `int main` fall off the end, matching midi_test. - examples/host/msc_file_explorer_freertos/skip.txt: skip stm32h7s3nucleo. The board has only 64 KB on-chip FLASH and the FreeRTOS + FatFS host MSC explorer now overflows by ~248 bytes after the async control queue refactor. Co-Authored-By: Claude Opus 4.7 <[email protected]>
2026-05-29midi2_device: gate -Wno-type-limits to GCC/Clang for IAR buildhathach
iccarm rejects -Wno-type-limits, breaking the hil-hfp-iar CI matrix (stm32l412nucleo, stm32f746disco, lpcxpresso43s67). Apply the same CMAKE_C_COMPILER_ID guard used in hw/bsp/family_support.cmake so IAR builds skip the flag without losing the GCC warning suppression. Co-Authored-By: Claude Opus 4.7 <[email protected]>
2026-05-29Merge branch 'master' into usbh-add-control-queuehathach
2026-05-28abstract OS logic with `CFG_TUSB_OS_HAS_SCHEDULER` to simplify conditional ↵hathach
checks
2026-05-26Fix typo in CDC stack size constantPhozer
2026-05-25chore: resolve .gitignore merge conflict with mastercopilot-swe-agent[bot]
Co-authored-by: HiFiPhile <[email protected]>
2026-05-24Merge remote-tracking branch 'tinyusb/master' into stm32c5HiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-05-23tweak examplesHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-05-23set ch32v20x EP on supported audio examplesHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-05-19Merge pull request #3571 from sauloverissimo/feat/midi2-device-host-driverZixun LI
feat: Add USB-MIDI 2.0 Device and Host class drivers
2026-05-18update exampleHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-05-17midi2: drain pattern for RX FIFOSaulo Veríssimo
Default RX/TX buffers to EPSIZE for both device and host. Document drain-in-loop on ump_read; example device callback drains until empty.
2026-05-17bsp: fix tcpp0203 lto uninit errorHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-05-16midi2: skip.txt commentsSaulo Veríssimo
2026-05-16midi2: skip 3 more boards with same tcpp0203 BSP bugSaulo Veríssimo
stm32h573i_dk, stm32n657nucleo and stm32n6570dk have the same pre-existing uninitialized io_ctx.GetTick in their board.h that we already skip on stm32h7s3nucleo. Trips with Make+LTO; CMake passes.
2026-05-16midi2: remove unused ump_noop helperSaulo Veríssimo
arm-clang fails with -Werror=unused-function; arm-gcc was silently omitting it via LTO. The helper was never called.
2026-05-16midi2: add sources to TINYUSB_SRC_C, skip familySaulo Veríssimo
Make build was missing midi2_device.c/midi2_host.c from src/tinyusb.mk. Skip stm32h7s3nucleo board which exposes a pre-existing uninitialized warning in its board.h (board_init2) under Make+LTO.
2026-05-16midi2: fix CI matrix with only.txt and skip.txtSaulo Veríssimo
Restrict midi2_host build to MCUs with USB host support (cloned from midi_rx) and skip SAMD11 from midi2_device (ROM overflow on link).
2026-05-16midi2: device example - portable, add protocol fallbackSaulo Veríssimo
Remove the rp2040-only guard; the example now follows the audio_test pattern (only Espressif uses its own build system). Add CMakePresets.json and generic product strings. The runtime fallback picks the path that matches the host state, per message, mirroring the idea behind the UAC examples: Alt 0 USB-MIDI 1.0 32-bit Event Packets (packet_write) Alt 1 + MIDI 1.0 negotiated UMP MT 0x2 (ump_write) Alt 1 + MIDI 2.0 negotiated UMP MT 0x4 (ump_write) Build-tested on rp2040, rp2350, stm32f0/f1/f2/f3/f4/f7/g0/g4/h5/h7/l0/l4/u0/u5/wb/c0, samd2x_l2x, samd5x_e5x, same7x, nrf, imxrt, lpc17, lpc55, mcx, ra, da1469x, efm32. Ref #3571
2026-05-14enable iperfHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-05-13Add GetPartialObject to MTP exampleWojciech Klimek
Added support for GetPartialObject for better compatibility with Linux file explorers.
2026-05-12fix: CI build failures on non-RP2040 platformsSaulo Veríssimo
- Use UINT32_C(1) instead of 1u for bit shifts >= 16 in midi2_device.c to avoid shift-count-overflow on 16-bit platforms (MSP430) - Add Makefiles for midi2_device and midi2_host examples with family guard (skip if FAMILY != rp2040). These examples require Pico SDK and board-specific hardware - Restrict midi2_device CMakeLists.txt to rp2040 family (matching midi2_host)
2026-05-12example: add MIDI 2.0 Device example (midi2_device)Saulo Veríssimo
Add Device example that plays Twinkle Twinkle Little Star using native UMP format. Demonstrates all MIDI 2.0 Channel Voice message types: 16-bit velocity, 32-bit CC, 32-bit pitch bend, 32-bit channel/poly pressure, per-note management, program change with bank select, and JR timestamps. USB descriptor exposes both Alt Setting 0 (MIDI 1.0) and Alt Setting 1 (UMP) per USB-MIDI 2.0 specification. Tested on: Raspberry Pi Pico (RP2040), Linux (ALSA), Windows (MIDI Services)
2026-05-10add stm32c5 supportHiFiPHile
Signed-off-by: HiFiPHile <[email protected]>
2026-05-08reduce NTM sizeHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-05-08lpc55 works with net_lwipHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-05-08fix iperf server is always excludedHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-05-08Merge remote-tracking branch 'tinyusb/master' into ncm_packet_filterHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2026-05-04minor clean uphathach
2026-05-03Merge branch 'master' into copilot/upgrade-net-lwip-webserver-descriptorsZixun LI
2026-05-01Merge remote-tracking branch 'origin/master' into ncm_packet_filterHiFiPHile
2026-05-01ncm: implement GetNtbInputSize requestZixun LI
Signed-off-by: HiFiPHile <[email protected]>
2026-04-30refactor capabilityZixun LI
Signed-off-by: Zixun LI <[email protected]>
2026-04-28fix warning, change hil jlink for feather nrf52840hathach
2026-04-26max32 change bulk endpoint to EP8,9 (2KB FIFO) and Audio ISO to EP10, 11 ↵hathach
(4KB FIFO)