Skip to content

feat(mosaico): add Type-C CDC console and automatic download - #9

Merged
eMUQI merged 4 commits into
mainfrom
mosaico-usb-cdc
Oct 3, 2026
Merged

eMUQI merged 4 commits into
mainfrom
mosaico-usb-cdc

Conversation

@eMUQI

@eMUQI eMUQI commented Oct 3, 2026 •

Copy link
Copy Markdown
Owner

Summary

ESP-Mosaico currently requires BOOT/power operations to enter wired download mode. Enable a Type-C USB OTG CDC console with the upstream USB Serial/JTAG-compatible DTR/RTS reset sequence, allowing a running application to enter ROM download mode from the host.

  • Vendor the pinned upstream USB HS Console component, enable it only for Mosaico, and keep application startup available if USB initialization fails.
  • Keep CameraBoard GPIO33 ownership independent of the Type-C USB OTG console.
  • Document first-install/recovery steps, application-to-ROM port changes, segmented flashing, and console API constraints; include dependency and license records.

Validation

  • Built and flashed standalone CDC commit a5eaff0 with ESP-IDF v6.1; no BLE OTA branch changes are included.
  • macOS / esptool 5.3.1: entered ROM from application CDC without buttons, wrote the 5,461,504-byte application in six segments to the existing active slot, and verified every segment and the complete image.
  • Before reboot, hash checks confirmed bootloader, partition table, NVS, PHY and OTA metadata were unchanged by flashing.
  • After booting the standalone image, repeated application CDC → ROM download → watchdog reset → application CDC without buttons.
  • Both boots detected SC101IOT and continued camera capture; CDC logs were captured for 30 seconds and 20 seconds without observed crashes or disconnects.
  • The original code revision passed all CI checks. The subsequent update only records this hardware validation in the target README.

Long-duration camera/CDC coexistence and Windows behavior remain unverified. USB ports re-enumerate between application and ROM; a single idf.py flash command handling that transition has not been validated. BOOT recovery remains necessary if the application or USB initialization fails. Flash-region checks do not establish runtime pairing acceptance.

@eMUQI

eMUQI commented Oct 3, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 3, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-03T09:29:17.801139Z a5eaff0 Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. 🚀

Reviewed commit: a5eaff0bad

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@eMUQI
eMUQI merged commit 6841991 into main Oct 3, 2026
16 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.

1 participant