Getting RGB LED Working on ESP32-C3 DevKitM-1 / Rust-1
This guide shows how to configure Arduino IDE for the ESP32-C3 DevKitM-1 / Rust-1 board and control its onboard WS2812 RGB LED using GPIO2.
1. Configure Arduino IDE for ESP32-C3
-
Go to File → Preferences and add the ESP32 board URL:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Open Tools → Board → Board Manager, search for
esp32
, and install it.Select Tools → Board → ESP32 Arduino → ESP32C3 Dev Module.
-
Under Tools, choose the following:
Setting Value Upload Speed 115200
CPU Frequency 160 MHz
Flash Frequency 80 MHz
Flash Size 4 MB
Partition Scheme Default 2 MB app, 2 MB SPIFFS
Select the COM port under Tools → Port where the board is connected.
2. Install Required Library
Open Sketch → Include Library → Manage Libraries, search for Adafruit NeoPixel, and click Install.
3. Final RGB Blink + Serial Test Sketch
This sketch drives the onboard WS2812 RGB LED connected to GPIO2.
Open Serial Monitor at 115200 baud to see which color is active.
#include <Adafruit_NeoPixel.h>
#define LED_PIN 2 // ESP32-C3 DevKitM-1 / Rust-1 onboard RGB LED pin
#define LED_COUNT 1
Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
void setup() {
Serial.begin(115200);
delay(1000);
Serial.println("✅ RGB LED test started on GPIO2");
strip.begin();
strip.setBrightness(50);
strip.clear();
strip.show();
}
void loop() {
Serial.println("RED");
strip.setPixelColor(0, strip.Color(255, 0, 0));
strip.show();
delay(500);
Serial.println("GREEN");
strip.setPixelColor(0, strip.Color(0, 255, 0));
strip.show();
delay(500);
Serial.println("BLUE");
strip.setPixelColor(0, strip.Color(0, 0, 255));
strip.show();
delay(500);
}
4. Expected Behavior
- The LED will cycle red → green → blue every 1.5 seconds.
- Serial Monitor will print the current color name.
- If colors look swapped, change
NEO_GRB
toNEO_RGB
in the strip declaration.
5. Troubleshooting
- No light? Make sure you installed the Adafruit NeoPixel library and selected the correct COM port.
-
Dim light? Increase
strip.setBrightness(50)
to a higher value (0–255).
Demo Video: ESP32-C3 RGB LED Blink Demo
With this setup, you can easily verify that your ESP32-C3 DevKitM-1 / Rust-1 board is configured correctly and its onboard RGB LED is working.
Top comments (0)