summaryrefslogtreecommitdiff
path: root/examples/device/video_capture
AgeCommit message (Collapse)Author
2026-07-12ch32h417: add USB3 SuperSpeed dcd with runtime USB2 fallbackhathach
Second stage: the USBSS SuperSpeed device driver (SPEED=super now links). The LINK layer is the same IP as the CH569 but the endpoint engine is the H417's reworked chain-DMA design (hardware SEQ_AUTO/ERDY_AUTO, persistent RB_EP_*_HALT, per-chain completion). The RCC/PHY/LINK bring-up and EP0 control sequences are transcribed from the WCH EVT USBSS device demo; data endpoints arm one chain per packet (burst 1) for correctness-first bring-up, matching the CH569 port's initial path - raise CFG_TUD_WCH_USB30_MAX_BURST once the hardware validates. Buffers may live anywhere in the shared SRAM (all DMA-reachable), so no bounce machinery is needed. - src/portable/wch/dcd_ch32h417_usb30.c (+ ch32h417_usb30_reg.h): full dcd with a STATE_CHG-driven LTSSM handler, LMP PORT_CAP/PORT_CFG exchange, EP0 DPH/ERDY flow with software sequence, chain-armed data endpoints, per-EP HALT stall, and a TIM12-backstopped runtime USB2 fallback that hands rhport 0 to ch32h417_usb2_* when SuperSpeed training fails (host has no SS port). - examples/device/*/skip.txt: add mcu:CH32H417 to the FreeRTOS + audio/video examples (no FreeRTOSConfig for this family yet), mirroring mcu:CH569. Build-verified: all 20 device examples build for SPEED=super, and cdc_msc for SPEED=high, clean under -Werror (riscv-none-elf-gcc 13.2). Hardware bring-up at 5 Gbps (usbtest battery, throughput) is pending rig availability. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]> Claude-Session: https://claude.ai/code/session_01QWhrtHjbSVMKcY68vxBwBm
2026-07-07Add CH569/CH565 family with HydraUSB3 v1 board and USB2 HS dcdhathach
- OPT_MCU_CH569 (2250) + tusb_mcu.h capability block: USB3 SuperSpeed (USBSS) or USB2 HighSpeed (USBHS) selected at compile time via CFG_TUD_WCH_USBIP_USB30/USBHS, both on rhport 0 - New dcd_ch56x_usbhs.c: CH56x USB2 HS device driver ported from dcd_ch32_usbhs.c (same bit encoding, CH56x-specific register layout: R8_UEPn_MOD enables, different DMA/MAX_LEN/control offsets, 8 EPs). Internals exposed as ch56x_usb2_* (dcd_ch56x.h) for the upcoming USB3 dcd's runtime fallback. USB DMA only reaches RAMX: buffers in the .dmadata section, non-RAMX transfer buffers bounce per-endpoint - hw/bsp/ch56x family (SDK dep hydrausb3/wch-ch56x-bsp, Apache-2.0, no binary blobs) + hydrausb3_v1 board: 120 MHz clock (required for USB3), UART1 PA8/PA7 logging, LED PB22, button PB23, linker script with 16-byte aligned NOLOAD .dmadata section in RAMX - SPEED=high|super build option (default high until the USB3 dcd lands) - CI: add ch56x to riscv-gcc matrix; skip FreeRTOS/audio/video examples (as CH583) and msc_dual_lun (16 KB RAMS, as SAMD11/MKL25) Verified: cdc_msc builds via CMake and Make; full example sweep green; .dmadata lands at 0x20020000 (RAMX) with 16-byte alignment. Co-Authored-By: Claude Fable 5 <[email protected]>
2026-07-03fix: correct video stack macro typo in video capture examplescuolm
Corrects VIDEO_STACK_SZIE to VIDEO_STACK_SIZE.
2026-06-29docs: add build-doc tooling and a README for every examplehathach
Documentation tooling: - Add the `build-doc` skill and `tools/build_doc.py` wrapper for local Sphinx builds (clean / -W / open). - Enable Markdown (MyST) in conf.py and auto-collect examples/{device,host,dual}/*/README.md into a 3-level Examples nav (Examples > Device/Host/Dual > example), noting each page's source location and normalizing headings to a single H1. - Remove the stale `.claude/commands/build-doc.md`; point the AGENTS.md Documentation section at the skill. Example docs: - Add a README.md for every device/host/dual example: what it does, USB interface table, notable tusb_config.h settings, generic CMake + Make build steps, and how to try it. - Fold each *_freertos variant into its base README, noting the FreeRTOS source path and any RTOS-specific behavior. Generated docs/examples/ output is git-ignored. Builds clean with `sphinx-build -W`. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
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-03-18skip video_capture example for CH58X due to 32KB RAM limitationalt-0191
2026-02-28replace board_millis() with tusb_time_millis_api()hathach
2025-12-19clean up cmake, remove family_get_project_name()hathach
2025-11-21Also fix bDescriptorTypeHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2025-11-21Fix in multiple example codes, wrong descriptor length was taken for ↵Thomas Rubin
tusb_desc_device_qualifier_t. Signed-off-by: Thomas Rubin <[email protected]>
2025-11-17Merge pull request #3345 from hathach/update-iso-allocHa Thach
make dcd_edpt_iso_alloc/activate as default API for ISO endpoint
2025-11-17make TUP_DCD_EDPT_ISO_ALLOC i.e dcd_edpt_iso_alloc()/dcd_edpt_iso_activate() ↵hathach
as default driver implementation. dcd_edpt_close() is deprecated and will be removed from all driver in the future.
2025-11-14Merge remote-tracking branch 'tinyusb/master' into embedded-ideas/masterMengsk
Signed-off-by: Mengsk <[email protected]>
2025-11-06make host info to devcie cdc to work with freertos/nooshathach
2025-10-31Fixed trailing whitespaces in files (used wrong editor)Tobi
2025-10-30Video class: Changed pararameters of payload request to a dedicated ↵Tobi
structure in order to meet coding guideliness
2025-10-30Added bufferless operation to the video capture example. Can be tested with ↵Tobi
e.g. nanoCH32V305 board with the following settings: - tusb_config.h - #define CFG_TUD_VIDEO_STREAMING_EP_BUFSIZE 1024 - #define CFG_TUD_VIDEO_STREAMING_BULK 1 - #define CFG_EXAMPLE_VIDEO_DISABLE_MJPEG - #define CFG_EXAMPLE_VIDEO_BUFFERLESS and - usb_descriptor.h - #define FRAME_RATE 60
2025-10-28fix Identifiers that start with '__' or '_[A-Z]' are reserved.hathach
fix compiling with nuc family
2025-10-28fix descriptor warning when shifting zerohathach
2025-10-24fix several warningshathach
2025-10-14more make refactorhathach
2025-10-14move make.mk to hw/bsp/family_support.mkhathach
2025-09-17Fix board_init_after_tusbHiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2025-07-02update esp build, replace TUSB_MCU_VENDOR_ESPRESSIF by ESP_PLATFORMhathach
2025-02-11Fix path.HiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2025-02-09Add CMake presets.HiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2025-01-23kind of work with zephyr with pca10056 with cmake -DBUILD_ZEPHYRhathach
2025-01-21bump up cmake min to 3.20hathach
2024-10-15move core init code to dwc2 common. update/correct build for esppressifhathach
2024-10-14change the tusb_rhport_init_t struct, exclude the rhport to make API more ↵hathach
consistent
2024-10-11change tusb_init(), tusb_rhport_init() to use init struct for expandabilityhathach
2024-10-10add new tusb_int_handler(rhport, in_isr) as common irq handlerhathach
update tusb_init() to take rhport and role, defined as macro with optional argument for backward compatible
2024-09-30skip some examples for mcxa15hathach
2024-08-19rename TUD_ENDPOINT_EXCLUSIVE_NUMBER to TUD_ENDPOINT_ONE_DIRECTION_ONLYhathach
2024-06-14fix ci skip example for ch32v1hathach
2024-05-15add CH32V20x USB OTG/FS driverMatthew Tran
2024-05-09Rework ci (#2631)Ha Thach
* add name field to usbd_class_driver_t * ci: use set matrix py script * add riscv32 and cmake support for ch32v307, fomu, gd32vf103 * update build_cmake.py to take --family --board --toolchain * separate hil test to its own workflow * move esp32 board into separated hil json * add make build to ci * remov build_make.py * build.py support esp32 board * setup toolchain support esp-idf * fix missing click * merge family in matrix build to reduce jobs * skip cifuzz since it still has issue with get_deps and click
2024-04-25adding support for esp32 for use with max3421e hosthathach
2024-04-05update uvc 2ch to stream0 use yuy2, stream1 use mpeghathach
this help reduce sram requirement for example, also provide different format (uncompressed & mpeg)
2024-01-30Merge pull request #2428 from YixingShen/masterHa Thach
update video_capture
2024-01-29add freertos build support for video_capture examplehathach
2024-01-29remove the use of descriptor template for video capture examplehathach
2024-01-26update example to work with iso streaminghathach
2024-01-26update example to work bulk mjpeghathach
2024-01-26rename and add more video descriptorshathach
use struct to define uvc descriptor for video_capture since uvc is rather too complicated to use macro templates
2024-01-26Merge branch 'master' of https://github.com/YixingShen/tinyusbYixingShen
2024-01-26add "set tx_busy 1" into video_capture's video_tas for "if (tx_busy) return"YixingShen
2024-01-25minor update to video capture examplehathach
2024-01-24clean up video example for readabilityhathach
2023-12-24add high speed into examples\device\video_captureYixingShen