Skip to content

Conversation

@brentru
Copy link
Member

@brentru brentru commented Nov 26, 2025

This pull request adds support for the ESP32-C6 chip to this library.

Why? We've started using the ESP32-C6 chip as an "AirLift" Co-Processor!

The workflow for updating the ESP32-C6 onboard the FruitJam is non-beginner friendly and requires the following steps:

  1. Put board in DFU mode
  2. Upload "Serial Passthru UF2" to board
  3. Connect and configure board with WebESPTool or desktop esptool.py
  4. Upload nina firmware binary
  5. Reset Board
  6. Re-Upload CircuitPython/WipperSnapper UF2

What we're proposing (cc @dhalbert): Provide a UF2 with CircuitPython, the latest nina-fw, and the flashing code for download. This would eliminate the need for another tool (Esptool/Webesptool) to just update nina-fw.

  1. Put board in DFU Mode
  2. Upload the UF2
  3. Re-upload CircuitPython/WipperSnapper UF2

This pull request updates miniesptool to add compatibility for detecting and flashing a binary to an ESP32-C6:

  • Added detection logic, constants, for ESP32-C6
  • Tested flashing the latest nina-fw binary to the ESP32-C6 co-processor.

Tests:

Board: Adafruit CircuitPython 10.0.3 on 2025-10-17; Adafruit Fruit Jam with rp2350b
Binary: NINA_ADAFRUIT-fruitjam_c6-3.2.0.bin

Test Result (115200 baud config, 912600 baud flash)


ESP32-C6 Nina-FW Loader
Resetting
Synced
Detected ESP32-C6
Flash size: 0x200
NEw Flash size: 0x400
Found: ESP32-C6
MAC ADDR:  ['0x7c', '0x2c', '0x67', '0x5a', '0x7b', '0xc0']
Flashing...

Writing nina.bin w/filesize: 1626112
Erase size 1626112, num_blocks 1588, size 1024, offset 0x0000
Took 6.50s to erase 1588 flash blocks
Writing at 0x0018a800... (99 %)
Took 212.72s to write 1626112 bytes
Done flashing, resetting..
Code done running.

@brentru brentru requested a review from ladyada November 26, 2025 21:14
@BobCochran
Copy link

I am interested in following this pull request. I have invested a lot of time in doing a firmware update on the ESP32-WROOM-32E on my "AirLift Wifi Shield" (PID 4285.) Thanks to Mikey Sklar and Bruce Blake for showing me the path to success! I have an interest in the updates on other ESP-32 chips such as the C6. I am user 'bcochran1' on the Adafruit forums. I am happy to help with items related to this pull request. Thanks, Bob Cochran.

@brentru brentru requested a review from dhalbert December 1, 2025 19:50
@brentru
Copy link
Member Author

brentru commented Dec 1, 2025

@dhalbert in lieu of ladyada reviewing, could you review this PR for me?

Copy link
Contributor

@dhalbert dhalbert left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One requested change about setting the version.

Have you tested this version to confirm it's still working fine with plain ESP32? Thanks.

@brentru
Copy link
Member Author

brentru commented Dec 1, 2025

@dhalbert

One requested change about setting the version.

I do not see this review or comment. Could you check to ensure you submitted it?

Have you tested this version to confirm it's still working fine with plain ESP32? Thanks.

✅ Tested on Adafruit PyPortal w. ESP32 AirLift


Example Code: miniesptool_simpletest.py with nina-fw, latest
code.py output:

ESP32 Nina-FW
Resetting
Synced
Found: ESP32
MAC ADDR:  ['0x8', '0xd1', '0xf9', '0x3c', '0x8', '0x78']

Writing nina-fw.bin w/filesize: 1333248
Erase size 1333248, num_blocks 2604, size 512, offset 0x0000
Took 4.98s to erase 2604 flash blocks
Writing at 0x00137000... (95 %)Took 189.24s to write 1333248 bytes
Resetting

Copy link
Contributor

@dhalbert dhalbert left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great! Thanks!

@brentru brentru merged commit abb5b45 into adafruit:main Dec 1, 2025
1 check passed
@brentru brentru deleted the add-c6 branch December 1, 2025 21:08
adafruit-adabot pushed a commit to adafruit/Adafruit_CircuitPython_Bundle that referenced this pull request Dec 2, 2025
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.

3 participants