ESP32-C6-DevKitC-1 First Blink: Why ESP-IDF Defaults to LED Strip on GPIO8 (Not Plain GPIO)

9 views 0 likes 0 comments 16 minutesOriginalTutorials

Walk Espressif's official esp-idf blink example on an ESP32-C6-DevKitC-1: the RGB LED stays on GPIO8, but skipping set-target / LED-strip defaults leaves it dark while logs still say ON/OFF. Covers dual USB-C and a disclosed eBay N8 listing.

#ESP32-C6 #ESP-IDF #Espressif #DevKitC-1 #Microcontroller #Embedded #Affiliate
ESP32-C6-DevKitC-1 First Blink: Why ESP-IDF Defaults to LED Strip on GPIO8 (Not Plain GPIO)

ESP32-C6-DevKitC-1 First Blink: Why ESP-IDF Defaults to LED Strip on GPIO8 (Not Plain GPIO)

The quickest honest test of a new ESP32-C6-DevKitC-1 is the blink example that ships inside Espressif's own SDK. It is also where a lot of "my board is dead" tickets start, because the on-board LED is an addressable RGB LED, and the official example only switches into that mode when the esp32c6 target defaults are applied.

Everything below comes from open-source, Espressif-maintained sources:

I verified the example configs against the upstream files (sdkconfig.defaults.esp32c6, main/Kconfig.projbuild, main/idf_component.yml, main/blink_example_main.c). I did not flash hardware for this write-up, and I did not run a full ESP-IDF compile on the machine I wrote on, so treat the steps as source-verified, not as a flash log.

Disclosure: further down I link one eBay listing for the board. That link is an eBay affiliate link (customid=blog01); if you buy through it I may earn a commission at no extra cost to you. Check the listing yourself before you pay.

The two facts that matter before you flash anything

1. The LED is an addressable RGB LED (WS2812-style), not a GPIO LED. Toggling the pin high and low does nothing visible. The blink example handles this with Espressif's led_strip component (pulled in by main/idf_component.yml as espressif/led_strip: "^3.0.0").

2. On C6 the pin is stable — the mode is not. Unlike the ESP32-S3-DevKitC-1, where the LED moved between GPIO38 (v1.1) and GPIO48 (v1.0), the C6 user guide and the example's BLINK_GPIO default both say GPIO8. The trap is elsewhere.

The C6-specific defaults file is almost empty. Upstream sdkconfig.defaults.esp32c6 contains only:

ini 复制代码
CONFIG_BLINK_LED_STRIP=y

That one line is what flips the example from "plain GPIO" to "LED strip". Look at main/Kconfig.projbuild: the choice default without target defaults is BLINK_LED_GPIO, while BLINK_GPIO itself defaults to 8. So if you skip idf.py set-target esp32c6, lose the defaults file, or manually pick GPIO in menuconfig, the project can still build and print Turning the LED ON! while the RGB LED stays dark. Nothing is broken; you are driving an addressable LED as if it were a normal diode.

Pick the right variant

The C6 DevKitC-1 ships with an ESP32-C6-WROOM-1 module. Common flash sizes you will see in shops:

Part number Module Flash (typical listing)
ESP32-C6-DevKitC-1-N8 ESP32-C6-WROOM-1-N8 8 MB SPI flash
ESP32-C6-DevKitC-1-N4 ESP32-C6-WROOM-1-N4 4 MB SPI flash

N8 is the one most "first board" tutorials assume. Confirm the module label on arrival; flash size does not change the RGB pin, but it does change how much room you have for later projects.

The board I'd point you to

If you still need a board, this is the listing I checked while writing: ESP32-C6-DevKitC-1-N8 (Adafruit part #5672) on eBay (affiliate link).

When I opened it on Nov 5, 2026, the title was ESP32-C6-DevKitC-1-N8 - 8MB SPI Flash Adafruit part #5672, condition was New, Buy It Now, more than 10 available, and it shipped from Gaffney, South Carolina, United States. The seller (gooddeal1976) showed 100% positive feedback from about 5,274 ratings, and returns were accepted for 30 days with the seller paying return shipping. The page showed US 14.99** plus about **US 3.99 shipping to ZIP 10001. Photos match the official Espressif layout (ESP32-C6-WROOM-1, dual USB-C UART/USB, RGB at IO8). Catalog photos on the listing show a PCB silkscreen that looks like V1.1; the title does not claim V1.2, so treat the revision as something to verify on the board you receive rather than as a guaranteed silkscreen version.

Whichever seller you buy from, check two things on arrival: the module label (ESP32-C6-WROOM-1 with the flash code you paid for) and that the RGB LED is wired to IO8, as in Espressif's user guide.

1) Install ESP-IDF

Follow Espressif's Get Started guide for your OS (the installer or install.sh plus export.sh). When it is done, idf.py --version should print a version. Use a release that lists esp32c6 as a supported target.

2) Copy the example and set the target

bash 复制代码
cp -r "$IDF_PATH/examples/get-started/blink" ~/c6-blink
cd ~/c6-blink
idf.py set-target esp32c6

set-target is what makes sdkconfig.defaults.esp32c6 apply, including CONFIG_BLINK_LED_STRIP=y. Skip it and you may be building for the wrong chip, or for C6 with the Kconfig choice left on plain GPIO.

3) Check the LED settings

bash 复制代码
idf.py menuconfig

Under Example Configuration:

  • Blink LED type: LED strip (not GPIO)
  • LED strip backend peripheral: RMT if available, otherwise SPI
  • Blink GPIO number: 8

If the LED type is still GPIO, fix that before you chase cables or a "dead" board.

4) Pick the right USB port, then flash

The DevKitC-1 has two USB-C ports. Per Espressif's user guide, one goes through a USB-to-UART bridge (the usual port for idf.py flash monitor), and the other is the chip's native USB. Start with the UART bridge port:

bash 复制代码
idf.py -p /dev/ttyUSB0 flash monitor   # macOS: /dev/cu.usbserial-*  Windows: COMx

If flashing won't start, hold Boot, tap Reset, release Boot to force download mode. Use a data cable; charge-only cables are still the most common fake "dead board". Exit the monitor with Ctrl-].

When the example is configured for the addressable LED, the source logs:

text 复制代码
I (...) example: Example configured to blink addressable LED!
I (...) example: Turning the LED OFF!
I (...) example: Turning the LED ON!

If you instead see Example configured to blink GPIO LED!, you are in the wrong mode even if GPIO is already 8.

Troubleshooting in one table

Symptom Most likely cause Fix
Logs say ON/OFF, LED dark, type is GPIO Addressable LED driven as plain GPIO Switch to LED strip; re-run set-target esp32c6 so defaults apply
Logs say addressable LED, still dark Wrong pin, bad solder joint, or non-DevKit wiring Confirm GPIO8 / IO8 against the silkscreen and user guide
Wrong colour LED colour order differs by model Adjust led_strip_set_pixel() RGB values in blink_example_main.c
No serial port appears Charge-only cable or wrong USB-C port Swap cable; use the USB-to-UART port first
Build targets the wrong chip Skipped set-target idf.py set-target esp32c6 and rebuild

Takeaway

When a new C6 DevKit seems dead, do not start by swapping GPIO numbers the way you would on an S3. On the ESP32-C6-DevKitC-1 the official answer is already in esp-idf: keep GPIO8, and make sure the blink example is in LED strip mode via the esp32c6 defaults — not plain GPIO.

Affiliate disclosure: the eBay link above is an affiliate link (customid=blog01). Prices, stock and seller details change; I describe the listing as I saw it on Nov 5, 2026.

Last Updated:2026-11-05 10:20:38

Comments (0)

Post Comment

Loading...
0/500

No comments yet, be the first to comment!