Skip to content

Esp32/usb cdc tinyusb 2.0#2339

Draft
petermm wants to merge 1 commit into
atomvm:release-0.7from
petermm:esp32/usb-cdc-tinyusb-2.0
Draft

Esp32/usb cdc tinyusb 2.0#2339
petermm wants to merge 1 commit into
atomvm:release-0.7from
petermm:esp32/usb-cdc-tinyusb-2.0

Conversation

@petermm

@petermm petermm commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Fixes #2337

Only draft as I need to test it more thoroughly..

These changes are made under both the "Apache 2.0" and the "GNU Lesser General
Public License 2.1 or later" license terms (dual license).

SPDX-License-Identifier: Apache-2.0 OR LGPL-2.1-or-later

The USB CDC code targeted the deprecated esp_tinyusb 1.x API, but CI
pulls in esp_tinyusb ^2.0.0. Migrate to the canonical 2.0.0 names so the
driver and console build against the dependency actually installed:

- tusb_cdc_acm_init/deinit  -> tinyusb_cdcacm_init/deinit
- esp_tusb_init_console     -> tinyusb_console_init
- tusb_cdc_acm.h/tusb_console.h headers -> tinyusb_* headers

Link esp_tinyusb in avm_builtins whenever the managed component is
present instead of gating on IDF >= 5.3. esp_tinyusb 2.0.0 supports
IDF >= 5.0, and the old guard left the usb_cdc_driver.c TinyUSB includes
unsatisfied on IDF 5.2, breaking the build. Emit a clear FATAL_ERROR if
the component is missing rather than failing later on a missing header.

Stop shadowing the managed component's TINYUSB_CDC_ENABLED symbol: the
AtomVM USB options now select it instead of redefining/depending on it,
which also lets CI enable USB CDC with a single sdkconfig entry.

Add IDF v5.2.7 usb-serial and usb-cdc jobs to the ESP32 CI matrix to
cover the lowest supported esp_tinyusb 2.0.0 IDF version.

Signed-off-by: Peter M <petermm@gmail.com>
@petermm petermm changed the base branch from main to release-0.7 June 22, 2026 14:24
@github-advanced-security

Copy link
Copy Markdown

You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool.

What Enabling Code Scanning Means:

  • The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
  • Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
  • You will be able to see the analysis results for the pull request's branch on this overview once the scans have completed and the checks have passed.

For more information about GitHub Code Scanning, check out the documentation.

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.

Use ESP32-S2 on-chip usb interface for console I/O for the esp32 s2 (was issue #1190)

2 participants