{"id":170189,"date":"2025-07-17T14:27:50","date_gmt":"2025-07-17T14:27:50","guid":{"rendered":"https:\/\/randomnerdtutorials.com\/?p=170189"},"modified":"2025-10-02T19:55:07","modified_gmt":"2025-10-02T19:55:07","slug":"getting-started-esp32-c3-super-mini","status":"publish","type":"post","link":"https:\/\/randomnerdtutorials.com\/getting-started-esp32-c3-super-mini\/","title":{"rendered":"Getting Started with the ESP32-C3 Super Mini"},"content":{"rendered":"\n<p>The ESP32-C3 Super Mini is a compact development board based on the Espressif ESP32-C3 chip, part of the ESP32 family. Its main advantages over other ESP32 boards are its small size and low power consumption in deep sleep mode. In this guide, we\u2019ll introduce the ESP32-C3 Super Mini, explore its features and pinout, show you how to program it using the Arduino IDE, and run a few examples to test the board.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" fetchpriority=\"high\" decoding=\"async\" width=\"1200\" height=\"675\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-SuperMini-Getting-Started.jpg?resize=1200%2C675&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Getting Started with the ESP32-C3 SuperMini\" class=\"wp-image-170280\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-SuperMini-Getting-Started.jpg?w=1920&amp;quality=100&amp;strip=all&amp;ssl=1 1920w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-SuperMini-Getting-Started.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-SuperMini-Getting-Started.jpg?resize=1024%2C576&amp;quality=100&amp;strip=all&amp;ssl=1 1024w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-SuperMini-Getting-Started.jpg?resize=768%2C432&amp;quality=100&amp;strip=all&amp;ssl=1 768w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-SuperMini-Getting-Started.jpg?resize=1536%2C864&amp;quality=100&amp;strip=all&amp;ssl=1 1536w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\">Table of Contents<\/h2>\n\n\n\n<p>In this guide, we&#8217;ll cover the following topics:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"#esp32-c3-supermini-intro\" title=\"\">Introducing the ESP32-C3 Super Mini<\/a><\/li>\n\n\n\n<li><a href=\"#esp32-c3-supermini-specs\" title=\"\">ESP32-C3 Super Mini Technical Specifications<\/a><\/li>\n\n\n\n<li><a href=\"#peripheral-interface\" title=\"\">ESP32-C3 Super Mini Peripheral Interface<\/a><\/li>\n\n\n\n<li><a href=\"#pinout\" title=\"\">ESP32-C3 Super Mini Pinout<\/a><\/li>\n\n\n\n<li><a href=\"#programming-arduino-ide\" title=\"\">Programming the ESP32 C3 Super Mini with Arduino IDE<\/a><\/li>\n\n\n\n<li><a href=\"#web-server\" title=\"\">Testing Wi-Fi on the ESP32-C3 Super Mini (Web Server)<\/a><\/li>\n\n\n\n<li><a href=\"#sleep-modes\" title=\"\">Sleep Modes with the ESP32-C3 Super Mini<\/a>\n<ul class=\"wp-block-list\">\n<li><a href=\"#deep-sleep-timer-wakeup\" title=\"\">ESP32-C3 Super Mini &#8211; Deep Sleep with Timer Wake-Up<\/a><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><a href=\"#power-consumption\" title=\"\">Power Consumption in Deep Sleep Mode<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"esp32-c3-supermini-intro\">Introducing the ESP32-C3 Super Mini<\/h2>\n\n\n\n<p>The <a href=\"https:\/\/makeradvisor.com\/tools\/esp32-c3-super-mini\/\" target=\"_blank\" rel=\"noopener\" title=\"\">ESP32-C3 Super Mini<\/a> is a compact development board featuring the ESP32-C3 chip with built-in Wi-Fi and Bluetooth. Unlike other ESP32 board models, this one is a single-core chip. It has a very small footprint and is optimized for low power consumption, drawing only around 43\u00b5A in deep sleep mode, according to the datasheet. The board has 16 pins, with 11 programmable GPIOs that support ADC, PWM, UART, I2C, and SPI.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"750\" height=\"422\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-Super-Mini.jpg?resize=750%2C422&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP32-C3 Super Mini\" class=\"wp-image-170212\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-Super-Mini.jpg?w=750&amp;quality=100&amp;strip=all&amp;ssl=1 750w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-Super-Mini.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/figure><\/div>\n\n\n<p>It includes both RST (reset) and BOOT buttons. The BOOT button is used to put the board into bootloader mode for uploading code, while the RST button resets the board\u2014useful for restarting and running newly uploaded code.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"750\" height=\"422\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-SuperMini-USB-C.jpg?resize=750%2C422&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP32 C3 SuperMini USB-C Interface\" class=\"wp-image-170213\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-SuperMini-USB-C.jpg?w=750&amp;quality=100&amp;strip=all&amp;ssl=1 750w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-SuperMini-USB-C.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/figure><\/div>\n\n\n<p>The board also features a USB-C interface, which can be used for powering the board, uploading code, or serial communication. Alternatively, you can power the board using an external 5V source through the 5V and GND pins\u2014but note that the USB-C port shouldn\u2019t be used at the same time as an external power source.<\/p>\n\n\n\n<p>Like many other ESP32 board models, it comes with an onboard LED. But, in this case, it&#8217;s connected to GPIO 8 (instead of GPIO 2 in most boards).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"esp32-c3-supermini-specs\">ESP32-C3 Super Mini Technical Specifications<\/h2>\n\n\n\n<p>Here&#8217;s a summary of the <a href=\"https:\/\/makeradvisor.com\/tools\/esp32-c3-super-mini\/\" target=\"_blank\" rel=\"noopener\" title=\"\">ESP32-C3<\/a> technical specifications:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Processor: 32-bit RISC-V CPU running up to 160 MHz<\/li>\n\n\n\n<li>IEEE 802.11b \/g\/n WiFi and Bluetooth 5 (LE) protocols<\/li>\n\n\n\n<li>400KB SRAM, 384KB ROM and built-in 4M flash<\/li>\n\n\n\n<li>Compact SMD antenna<\/li>\n\n\n\n<li>11 GPIOs that support the following interfaces:\n<ul class=\"wp-block-list\">\n<li>4 ADC pins<\/li>\n\n\n\n<li>PWM<\/li>\n\n\n\n<li>UART<\/li>\n\n\n\n<li>I2C<\/li>\n\n\n\n<li>SPI<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Onboard LED on GPIO 8<\/li>\n\n\n\n<li>Reset and Boot buttons<\/li>\n\n\n\n<li>Ultra low power consumption: as low as 43uA in deep sleep mode<\/li>\n\n\n\n<li>Small form factor<\/li>\n<\/ul>\n\n\n\n<p>You can also take a look at the following table:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Microcontroller (processor)<\/strong><\/td><td>Espressif ESP32-C3 (32-RISC-V single-core, up to 160 MHz)<\/td><\/tr><tr><td><strong>Flash Memory<\/strong><\/td><td>4 MB (onboard SPI flash)<\/td><\/tr><tr><td><strong>SRAM<\/strong><\/td><td>400 KB<\/td><\/tr><tr><td><strong>ROM<\/strong><\/td><td>384 KB<\/td><\/tr><tr><td><strong>Wi-Fi<\/strong><\/td><td>802.11 b\/g\/n, 2.4 GHz, up to 150 Mbps<\/td><\/tr><tr><td><strong>Bluetooth<\/strong><\/td><td>Bluetooth 5.0 LE<\/td><\/tr><tr><td><strong>GPIO Pins<\/strong><\/td><td>11 accessible GPIOs<\/td><\/tr><tr><td><strong>Analog Inputs (ADC)<\/strong><\/td><td>2 \u00d7 12-bit SAR ADCs, up to 6 channels<\/td><\/tr><tr><td><strong>PWM Channels<\/strong><\/td><td>6 channels<\/td><\/tr><tr><td><strong>SPI<\/strong><\/td><td>3 \u00d7 SPI interfaces (SPI0, SPI1 reserved)<\/td><\/tr><tr><td><strong>I2C<\/strong><\/td><td>1 \u00d7 I2C interface<\/td><\/tr><tr><td><strong>UART<\/strong><\/td><td>2 \u00d7 UART interfaces<\/td><\/tr><tr><td><strong>I2S<\/strong><\/td><td>1 \u00d7 I2S interface<\/td><\/tr><tr><td><strong>USB Interface<\/strong><\/td><td>USB-C, supports USB CDC<\/td><\/tr><tr><td><strong>Power Supply<\/strong><\/td><td>5V via USB-C or 3.3V\u20136V via VIN (5V) pin; onboard 3.3V regulator (up to 500 mA)<\/td><\/tr><tr><td><strong>Operating Voltage<\/strong><\/td><td>3.3V (logic level for GPIOs)<\/td><\/tr><tr><td><strong>Deep Sleep Mode<\/strong><\/td><td>43uA<\/td><\/tr><tr><td><strong>Buttons<\/strong><\/td><td>1 \u00d7 Reset button, 1 \u00d7 Boot button (GPIO9)<\/td><\/tr><tr><td><strong>LED<\/strong><\/td><td>1 \u00d7 onboard LED (on GPIO8, active low)<\/td><\/tr><tr><td><strong>Programming<\/strong><\/td><td>Arduino IDE, ESP-IDF, MicroPython, PlatformIO\/pioarduino<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Where to Buy ESP32-C3 Super Mini?<\/h3>\n\n\n\n<p>The ESP32-C3 Super Mini board is widely available on many different stores. Check the following link to compare its price on different stores:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><a href=\"https:\/\/makeradvisor.com\/tools\/esp32-c3-super-mini\/\" target=\"_blank\" rel=\"noopener\" title=\"\">Buy ESP32-C3 Super Mini<\/a><\/strong><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"peripheral-interface\">ESP32-C3 Super Mini Peripheral Interface<\/h2>\n\n\n\n<p>The ESP32-C3 Super Mini comes with 16 pins, 11 of which are programmable GPIOs that you can use to control peripherals and read sensors. It supports the following peripheral interfaces:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Digital I\/O<\/li>\n\n\n\n<li>PWM<\/li>\n\n\n\n<li>ADC<\/li>\n\n\n\n<li>PWM<\/li>\n\n\n\n<li>UART<\/li>\n\n\n\n<li>I2C<\/li>\n\n\n\n<li>SPI<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"pinout\">ESP32-C3 Super Mini Pinout<\/h2>\n\n\n\n<p>The following picture shows the pinout for the ESP32-C3 Super Mini board. Please note that the pinout can change slightly depending on the manufacturer. So, double-check the pinout with the pin mapping on the silkscreen of your board.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-Super-Mini-Pinout-f.png?quality=100&#038;strip=all&#038;ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"918\" height=\"484\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-Super-Mini-Pinout-f.png?resize=918%2C484&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP32-C3 SuperMini Pinout\" class=\"wp-image-170209\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-Super-Mini-Pinout-f.png?w=918&amp;quality=100&amp;strip=all&amp;ssl=1 918w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-Super-Mini-Pinout-f.png?resize=300%2C158&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-Super-Mini-Pinout-f.png?resize=768%2C405&amp;quality=100&amp;strip=all&amp;ssl=1 768w\" sizes=\"(max-width: 918px) 100vw, 918px\" \/><\/a><\/figure><\/div>\n\n\n<p>The following table describes the pin mapping and its functions.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Pin<\/strong><\/td><td><strong>Function<\/strong><\/td><\/tr><tr><td><strong>3V3<\/strong><\/td><td>3.3V output\/input (outputs 3.3V from the onboard regulator, or it is a input for external 3.3V power supply)<\/td><\/tr><tr><td><strong>5V<\/strong><\/td><td>5V input\/output (connects to the USB-C 5V or external 5V supply)<\/td><\/tr><tr><td><strong>GND<\/strong><\/td><td>GND pin<\/td><\/tr><tr><td><strong>GPIO 0<\/strong><\/td><td>General-purpose I\/O, ADC1, PWM<\/td><\/tr><tr><td><strong>GPIO 1<\/strong><\/td><td>General-purpose I\/O, ADC1, PWM<\/td><\/tr><tr><td><strong>GPIO 2<\/strong><\/td><td>General-purpose I\/O ADC1, Strapping Pin (Boot Mode) (avoid for general use)<\/td><\/tr><tr><td><strong>GPIO 3<\/strong><\/td><td>General-purpose I\/O, PWM<\/td><\/tr><tr><td><strong>GPIO 4<\/strong><\/td><td>General-purpose I\/O, PWM, default <strong>SPI SCK<\/strong> pin<\/td><\/tr><tr><td><strong>GPIO 5<\/strong><\/td><td>General-purpose I\/O, PWM, default <strong>SPI MISO <\/strong>pin<\/td><\/tr><tr><td><strong>GPIO 6<\/strong><\/td><td>General-purpose I\/O, PWM, default <strong>SPI MOSI<\/strong> pin<\/td><\/tr><tr><td><strong>GPIO 7<\/strong><\/td><td>General-purpose I\/O, PWM, default <strong>SPI SS<\/strong> pin<\/td><\/tr><tr><td><strong>GPIO 8<\/strong><\/td><td>Connected to the onboard LED (active low); Strapping Pin (avoid for general use);<br>Default <strong>I2C SDA<\/strong> pin<\/td><\/tr><tr><td><strong>GPIO 9<\/strong><\/td><td>Connected to BOOT Button (LOW to enter bootloader), Strapping Pin (avoid for general use)<br>Default <strong>I2C SCL<\/strong> pin<\/td><\/tr><tr><td><strong>GPIO 10<\/strong><\/td><td>General-purpose I\/O, PWM<\/td><\/tr><tr><td><strong>GPIO 20<\/strong><\/td><td>General-purpose I\/O, PWM, default <strong>UART RX<\/strong> Pin<\/td><\/tr><tr><td><strong>GPIO 21<\/strong><\/td><td>General-purpose I\/O, PWM, default <strong>UART TX <\/strong>Pin<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><strong>Strapping Pins<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>GPIO 2: a strapping to enter bootloader mode &#8211; avoid for general use.<\/li>\n\n\n\n<li>GPIO 8: connected to the onboard blue LED (inverted logic\/active LOW); it&#8217;s also a strapping pin;<\/li>\n\n\n\n<li>GPIO 9: connected to the BOOT button &#8211; avoid for general use;<\/li>\n<\/ul>\n\n\n\n<p>You can still use the strapping pins in your projects, however, you need to take into account the fluctuation of the state of these GPIOs when the ESP32 resets or enters into bootloader mode.<\/p>\n\n\n\n<p><strong>Power Pins<\/strong><\/p>\n\n\n\n<p>When it comes to power pins, you have one 5V, one 3V3, and a GND pin.<\/p>\n\n\n\n<p>The 3V3 pin provides 3.3V from the onboard regulator or accepts 3.3V from an external power source. Similarly, the 5V pin, can be used for input to power the board, or it outputs 5V from the USB power supply.<\/p>\n\n\n\n<p><strong>PWM<\/strong><\/p>\n\n\n\n<p>All general-purpose GPIOs can output PWM signals.<\/p>\n\n\n\n<p><strong>Analog (ADC) Pins<\/strong><\/p>\n\n\n\n<p>GPIOs 0, 1, 2, 3, 4, and 5 support analog reading:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>GPIO 0: ADC1_CH0<\/li>\n\n\n\n<li>GPIO 1: ADC1_CH1<\/li>\n\n\n\n<li>GPIO 2: ADC1_CH2<\/li>\n\n\n\n<li>GPIO 3: ADC1_CH3<\/li>\n\n\n\n<li>GPIO 4: ADC1_CH4<\/li>\n\n\n\n<li>GPIO 5: ADC1_CH5<\/li>\n<\/ul>\n\n\n\n<p><strong>UART, I2C, and PWM<\/strong><\/p>\n\n\n\n<p>Due to the ESP32 multiplexing feature, the UART, SPI, and I2C interfaces can be assigned to nearly any GPIO.<\/p>\n\n\n\n<p>However, when using Arduino IDE, and assuming you&#8217;re selecting the ESP32 C3 board in the Boards menu, it will assume the following pins as defaults:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>UART<\/strong>: defaults to <strong>GPIO 20 (RX)<\/strong> and <strong>GPIO21 (TX)<\/strong><\/li>\n\n\n\n<li><strong>SPI<\/strong>: defaults to <strong>GPIO6 (MISO)<\/strong>, <strong>GPIO7 (MOSI)<\/strong>, <strong>GPIO10 (SCK)<\/strong>, and <strong>GPIO 5 (SS)<\/strong><\/li>\n\n\n\n<li><strong>I2C<\/strong>: defaults to<strong> GPIO 8<\/strong> <strong>(SDA)<\/strong> and <strong>GPIO 9<\/strong> <strong>(SCL)<\/strong><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Board Datasheet<\/h3>\n\n\n\n<p>For more information about the board, you can check its datasheet in the link below:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/dl.artronshop.co.th\/ESP32-C3%20SuperMini%20datasheet.pdf\" target=\"_blank\" rel=\"noopener\" title=\"\">ESP32-C3 Super Mini Datasheet<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"programming-arduino-ide\">Programming the ESP32 C3 Super Mini with Arduino IDE<\/h2>\n\n\n\n<p>You can program the ESP32-C3 Super Mini using Arduino IDE like any other ESP32 module. To do that, follow the next steps.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1) Installing Arduino IDE<\/h3>\n\n\n\n<p>First, install Arduino IDE and the ESP32 boards.<\/p>\n\n\n\n<p>Go to the <a href=\"https:\/\/www.arduino.cc\/en\/software#experimental-software\" target=\"_blank\" rel=\"noreferrer noopener\">Arduino website and download the version<\/a> for your operating system.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"386\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/Arduino-ide-2-software-install-download.png?resize=750%2C386&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Arduino IDE 2 Software Install Download\" class=\"wp-image-148598\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/Arduino-ide-2-software-install-download.png?w=750&amp;quality=100&amp;strip=all&amp;ssl=1 750w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/Arduino-ide-2-software-install-download.png?resize=300%2C154&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/figure><\/div>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Windows<\/strong>: run the downloaded file and follow the instructions in the installation guide (for Windows, we recommend the first option).<\/li>\n\n\n\n<li><strong>Mac OS X<\/strong>: copy the downloaded file into your application folder.<\/li>\n\n\n\n<li><strong>Linux<\/strong>: extract the downloaded file, and open the <span class=\"rnthl rntliteral\">arduino-ide<\/span> file that will launch the IDE.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"499\" height=\"388\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/Arduino-2-0-installation-successful.png?resize=499%2C388&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Arduino IDE 2.0 installation successful Windows Mac OS X Linux\" class=\"wp-image-103670\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/Arduino-2-0-installation-successful.png?w=499&amp;quality=100&amp;strip=all&amp;ssl=1 499w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/Arduino-2-0-installation-successful.png?resize=300%2C233&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 499px) 100vw, 499px\" \/><\/figure><\/div>\n\n\n<p>If you have doubts, you can go to the <a href=\"https:\/\/www.arduino.cc\/en\/Tutorial\/getting-started-with-ide-v2\/ide-v2-downloading-and-installing\" target=\"_blank\" rel=\"noreferrer noopener\">Arduino Installation Guide<\/a>.<\/p>\n\n\n\n<p><strong>Do you need an ESP32-C3 Super Mini board?<\/strong> <a href=\"https:\/\/makeradvisor.com\/tools\/esp32-c3-super-mini\/\" target=\"_blank\" rel=\"noopener\" title=\"\">You can buy it here<\/a>.<\/p>\n\n\n\n<p class=\"rntbox rntclblue\">Recommended reading: <a href=\"https:\/\/makeradvisor.com\/esp32-development-boards-review-comparison\/\" target=\"_blank\" rel=\"noreferrer noopener\">ESP32 Development Boards Review and Comparison<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2) Install the ESP32 Boards in Arduino IDE<\/h3>\n\n\n\n<p>To install the ESP32 boards in your Arduino IDE, follow these instructions.<\/p>\n\n\n\n<p>Open the Boards Manager. You can go to <strong>Tools <\/strong>&gt; <strong>Board <\/strong>&gt; <strong>Boards Manager&#8230;<\/strong> or you can simply click the <strong>Boards Manager <\/strong>icon in the left-side corner.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"799\" height=\"586\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/arduino-ide-2-boards-manager.png?resize=799%2C586&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Arduino IDE 2 - Boards Manager\" class=\"wp-image-148602\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/arduino-ide-2-boards-manager.png?w=799&amp;quality=100&amp;strip=all&amp;ssl=1 799w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/arduino-ide-2-boards-manager.png?resize=300%2C220&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/arduino-ide-2-boards-manager.png?resize=768%2C563&amp;quality=100&amp;strip=all&amp;ssl=1 768w\" sizes=\"(max-width: 799px) 100vw, 799px\" \/><\/figure><\/div>\n\n\n<p>Search for <strong>ESP32 <\/strong>and press the install button for <strong>esp32 by Espressif Systems version 3.X<\/strong>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"889\" height=\"586\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/Install-ESP32-Arduino-IDE-2.png?resize=889%2C586&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Install ESP32 Arduino IDE 2 board add-on version 3\" class=\"wp-image-167879\" style=\"width:812px;height:auto\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/Install-ESP32-Arduino-IDE-2.png?w=889&amp;quality=100&amp;strip=all&amp;ssl=1 889w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/Install-ESP32-Arduino-IDE-2.png?resize=300%2C198&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/Install-ESP32-Arduino-IDE-2.png?resize=768%2C506&amp;quality=100&amp;strip=all&amp;ssl=1 768w\" sizes=\"(max-width: 889px) 100vw, 889px\" \/><\/figure><\/div>\n\n\n<p>That&#8217;s it. It should be installed after a few seconds.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3) Putting the ESP32 C3 Super Mini in Bootloader Mode<\/h3>\n\n\n\n<p>Connect the ESP32-C3 Super Mini to your computer in Bootloader Mode (ready for uploading code via USB). You may <strong>need to do this the first time you&#8217;re connecting your board to your computer<\/strong>.<\/p>\n\n\n\n<p>In my case, I only needed to do this procedure once, but I read some people reporting that they needed to do this every time they wanted to upload a new code.<\/p>\n\n\n\n<p>Follow these steps:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Hold down the <strong>BOOT <\/strong>button.<\/li>\n\n\n\n<li>Press and release the <strong>RESET <\/strong>button (while still holding <strong>BOOT<\/strong>).<\/li>\n\n\n\n<li>Then release the <strong>BOOT<\/strong> button.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">4) Uploading Code to the ESP32-C3 Super Mini<\/h3>\n\n\n\n<p>Copy the following code to your Arduino IDE. This code simply blinks the onboard LED (connected to GPIO 8) and prints in the Serial Monitor the current state of the GPIO.<\/p>\n\n\n<pre style=\"max-height: 40em; margin-bottom: 20px;\"><code class=\"language-c\">\/*********\n  Rui Santos &amp; Sara Santos - Random Nerd Tutorials\n  Complete project details at https:\/\/RandomNerdTutorials.com\/getting-started-esp32-c3-super-mini\/\n*********\/\n\n\/\/ ESP32 C3 Super Mini on-board LED (works with inverted logic)\nconst int ledPin = 8; \n\nvoid setup() {\n  Serial.begin(115200);\n  pinMode(ledPin, OUTPUT);\n}\n\nvoid loop() {\n  digitalWrite(ledPin, HIGH); \n  Serial.println(&quot;LED OFF&quot;);\n  delay(1000);                     \n  digitalWrite(ledPin, LOW); \n  Serial.println(&quot;LED ON&quot;);  \n  delay(5000);                     \n}\n<\/code><\/pre>\n\t<p style=\"text-align:center\"><a class=\"rntwhite\" href=\"https:\/\/github.com\/RuiSantosdotme\/Random-Nerd-Tutorials\/raw\/master\/Projects\/ESP32-C3\/ESP32-C3_Blink_LED.ino\" target=\"_blank\">View raw code<\/a><\/p>\n\n\n\n<p>Now, select the board and COM Port. Click on the drop-down menu at the top and select the <strong>ESP32C3 Dev Module<\/strong>. Then, select the corresponding COM port.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"710\" height=\"136\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/Arduino-IDE-Selecting-ESP32-C3-SuperMini.jpg?resize=710%2C136&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Arduino IDE - selecting ESP32-C3 SuperMini\" class=\"wp-image-170261\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/Arduino-IDE-Selecting-ESP32-C3-SuperMini.jpg?w=710&amp;quality=100&amp;strip=all&amp;ssl=1 710w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/Arduino-IDE-Selecting-ESP32-C3-SuperMini.jpg?resize=300%2C57&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 710px) 100vw, 710px\" \/><\/figure><\/div>\n\n\n<p>Then, enable the following option in the <strong>Tools <\/strong>menu &gt; <strong>USB CDC on Boot<\/strong>.<\/p>\n\n\n\n<p>Finally, click the upload button to upload the code.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"36\" height=\"39\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/arduino-ide-2-upload-button.png?resize=36%2C39&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Arduino IDE 2 Upload Button\" class=\"wp-image-146269\"\/><\/figure><\/div>\n\n\n<p>Press the board RST button so that it starts running the newly uploaded code.<\/p>\n\n\n\n<p>The onboard LED will blink every second.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"421\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-Super-Mini-Onboard-LED-Blinking-ON.jpg?resize=750%2C421&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP32 C3 SuperMini Blinking onboard LED\" class=\"wp-image-170262\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-Super-Mini-Onboard-LED-Blinking-ON.jpg?w=750&amp;quality=100&amp;strip=all&amp;ssl=1 750w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-Super-Mini-Onboard-LED-Blinking-ON.jpg?resize=300%2C168&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"422\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-Super-Mini-Onboard-LED-Blinking-OFF.jpg?resize=750%2C422&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP32 C3 SuperMini Blinking onboard LED\" class=\"wp-image-170263\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-Super-Mini-Onboard-LED-Blinking-OFF.jpg?w=750&amp;quality=100&amp;strip=all&amp;ssl=1 750w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-Super-Mini-Onboard-LED-Blinking-OFF.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/figure><\/div>\n\n\n<p>At the same time, you can open the Serial Monitor at a baud rate of 115200. It will print the current LED state on the window.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"710\" height=\"586\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-SuperMini-Blinking-LED-Serial-Monitor.jpg?resize=710%2C586&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP32-C3 Super Mini - Blinking an LED - Serial Monitor\" class=\"wp-image-170210\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-SuperMini-Blinking-LED-Serial-Monitor.jpg?w=710&amp;quality=100&amp;strip=all&amp;ssl=1 710w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-SuperMini-Blinking-LED-Serial-Monitor.jpg?resize=300%2C248&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 710px) 100vw, 710px\" \/><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"web-server\">Testing Wi-Fi on the ESP32-C3 Super Mini (Web Server)<\/h2>\n\n\n\n<p>To test the Wi-Fi of the ESP32-C3 Super Mini, we&#8217;ve prepared a web server that controls the onboard LED.<\/p>\n\n\n\n<p><strong>1) <\/strong>Copy the following code to your Arduino IDE.<\/p>\n\n\n<pre style=\"max-height: 40em; margin-bottom: 20px;\"><code class=\"language-c\">\/*********\n  Rui Santos &amp; Sara Santos - Random Nerd Tutorials\n  Complete project details at https:\/\/RandomNerdTutorials.com\/getting-started-esp32-c3-super-mini\/\n  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files.\n  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n*********\/\n\n#include &lt;WiFi.h&gt;\n#include &lt;WebServer.h&gt;\n\n\/\/ Replace with your network credentials\nconst char* ssid = &quot;REPLACE_WITH_YOUR_SSID&quot;;\nconst char* password = &quot;REPLACE_WITH_YOUR_PASSWORD&quot;;\n\n\/\/ Assign output variable to GPIO pin\nconst int output = 8;\nString outputState = &quot;OFF&quot;;\n\n\/\/ Create a web server object\nWebServer server(80);\n\n\/\/ Function to handle turning GPIO on\nvoid handleGPIOOn() {\n  outputState = &quot;ON&quot;;\n  digitalWrite(output, LOW);\n  handleRoot();\n}\n\n\/\/ Function to handle turning GPIO off\nvoid handleGPIOOff() {\n  outputState = &quot;OFF&quot;;\n  digitalWrite(output, HIGH);\n  handleRoot();\n}\n\n\/\/ Function to handle the root URL and show the current state\nvoid handleRoot() {\n  String html = &quot;&lt;!DOCTYPE html&gt;&lt;html&gt;&lt;head&gt;&lt;meta name=\\&quot;viewport\\&quot; content=\\&quot;width=device-width, initial-scale=1\\&quot;&gt;&quot;;\n  html += &quot;&lt;link rel=\\&quot;icon\\&quot; href=\\&quot;data:,\\&quot;&gt;&quot;;\n  html += &quot;&lt;style&gt;&quot;;\n  html += &quot;html { font-family: Helvetica; text-align: center; background: #f5f7fa; margin: 0; padding: 20px; }&quot;;\n  html += &quot;body { max-width: 600px; margin: 0 auto; background: white; padding: 20px; border-radius: 10px; box-shadow: 0 2px 10px rgba(0,0,0,0.1); }&quot;;\n  html += &quot;h1 { color: #333; font-size: 28px; margin-bottom: 20px; }&quot;;\n  html += &quot;p { color: #555; font-size: 18px; margin: 10px 0; }&quot;;\n  html += &quot;.button { background: #4CAF50; border: none; color: white; padding: 12px 24px; text-decoration: none; font-size: 20px; border-radius: 8px; cursor: pointer; transition: background 0.2s ease; display: inline-block; width: 120px; box-sizing: border-box; }&quot;;\n  html += &quot;.button:hover { background: #45a049; }&quot;;\n  html += &quot;.button2 { background: #555555; }&quot;;\n  html += &quot;.button2:hover { background: #666666; }&quot;;\n  html += &quot;&lt;\/style&gt;&lt;\/head&gt;&quot;;\n  html += &quot;&lt;body&gt;&lt;h1&gt;ESP32 Web Server&lt;\/h1&gt;&quot;;\n\n  \/\/ Display GPIO controls\n  html += &quot;&lt;p&gt;GPIO - State &quot; + outputState + &quot;&lt;\/p&gt;&quot;;\n  if (outputState == &quot;ON&quot;) {\n    html += &quot;&lt;p&gt;&lt;a href=\\&quot;\/off\\&quot;&gt;&lt;button class=\\&quot;button button2\\&quot;&gt;OFF&lt;\/button&gt;&lt;\/a&gt;&lt;\/p&gt;&quot;;\n  } else {\n    html += &quot;&lt;p&gt;&lt;a href=\\&quot;\/on\\&quot;&gt;&lt;button class=\\&quot;button\\&quot;&gt;ON&lt;\/button&gt;&lt;\/a&gt;&lt;\/p&gt;&quot;;\n  }\n\n  html += &quot;&lt;\/body&gt;&lt;\/html&gt;&quot;;\n  server.send(200, &quot;text\/html&quot;, html);\n}\n\nvoid setup() {\n  Serial.begin(115200);\n\n  \/\/ Initialize the output variable as output\n  pinMode(output, OUTPUT);\n  \/\/ Set the onboard LED to LOW (inverted logic)\n  digitalWrite(output, HIGH);\n\n  \/\/ Connect to Wi-Fi network\n  Serial.print(&quot;Connecting to &quot;);\n  Serial.println(ssid);\n  WiFi.begin(ssid, password);\n  while (WiFi.status() != WL_CONNECTED) {\n    delay(500);\n    Serial.print(&quot;.&quot;);\n  }\n  Serial.println(&quot;&quot;);\n  Serial.println(&quot;WiFi connected.&quot;);\n  Serial.println(&quot;IP address: &quot;);\n  Serial.println(WiFi.localIP());\n\n  \/\/ Set up the web server to handle different routes\n  server.on(&quot;\/&quot;, handleRoot);\n  server.on(&quot;\/on&quot;, handleGPIOOn);\n  server.on(&quot;\/off&quot;, handleGPIOOff);\n\n  \/\/ Start the web server\n  server.begin();\n  Serial.println(&quot;HTTP server started&quot;);\n}\n\nvoid loop() {\n  \/\/ Handle incoming client requests\n  server.handleClient();\n}<\/code><\/pre>\n\t<p style=\"text-align:center\"><a class=\"rntwhite\" href=\"https:\/\/github.com\/RuiSantosdotme\/Random-Nerd-Tutorials\/raw\/master\/Projects\/ESP32-C3\/ESP32-C3_Web_Server.ino\" target=\"_blank\">View raw code<\/a><\/p>\n\n\n\n<p><strong>2)<\/strong> Insert your Wi-Fi network credentials in the following lines.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const char* ssid = \"REPLACE_WITH_YOUR_SSID\";\nconst char* password = \"REPLACE_WITH_YOUR_PASSWORD\";<\/code><\/pre>\n\n\n\n<p><strong>3)<\/strong> Upload the code to your board.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"36\" height=\"39\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2021\/05\/arduino-ide-2-upload-button.png?resize=36%2C39&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"Arduino IDE 2 Upload Button\" class=\"wp-image-146269\"\/><\/figure><\/div>\n\n\n<p><strong>4) <\/strong>Open the Serial Monitor at a baud rate of 115200.<\/p>\n\n\n\n<p><strong>5)<\/strong> Press the board RST button.<\/p>\n\n\n\n<p><strong>6)<\/strong> Its IP address will be printed in the Serial Monitor.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"666\" height=\"283\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-Super-Mini-Web-Server-Get-IP-Address-Serial-Monitor.png?resize=666%2C283&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP32C3 SuperMini - Getting IP Address Serial Monitor\" class=\"wp-image-170264\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-Super-Mini-Web-Server-Get-IP-Address-Serial-Monitor.png?w=666&amp;quality=100&amp;strip=all&amp;ssl=1 666w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-Super-Mini-Web-Server-Get-IP-Address-Serial-Monitor.png?resize=300%2C127&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 666px) 100vw, 666px\" \/><\/figure><\/div>\n\n\n<p><strong>7)<\/strong> Open a web browser on your local network and paste the IP address. You should get access to the web server. Click the button to control the onboard LED.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"422\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-SuperMini-Control-Onboard-LED-Web-Server-2.jpg?resize=750%2C422&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP32 C3 SuperMini Web Server Control Onboard LED\" class=\"wp-image-170265\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-SuperMini-Control-Onboard-LED-Web-Server-2.jpg?w=750&amp;quality=100&amp;strip=all&amp;ssl=1 750w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-SuperMini-Control-Onboard-LED-Web-Server-2.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"422\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-SuperMini-Control-Onboard-LED-Web-Server.jpg?resize=750%2C422&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP32 C3 SuperMini Web Server Control Onboard LED\" class=\"wp-image-170266\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-SuperMini-Control-Onboard-LED-Web-Server.jpg?w=750&amp;quality=100&amp;strip=all&amp;ssl=1 750w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-SuperMini-Control-Onboard-LED-Web-Server.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"sleep-modes\">Sleep Modes with the ESP32-C3 Super Mini<\/h2>\n\n\n\n<p>One of the biggest advantages of the ESP32-C3 Super Mini, besides its small form factor, is its lower consumption in sleep mode.<\/p>\n\n\n\n<p>It supports deep sleep and light sleep modes. <a href=\"https:\/\/docs.espressif.com\/projects\/esp-idf\/en\/v5.0\/esp32c3\/api-reference\/system\/sleep_modes.html\" target=\"_blank\" rel=\"noopener\" title=\"\">More info on the sleep functions can be found in the documentation here<\/a>.<\/p>\n\n\n\n<p>We have several tutorials explaining how to use deep sleep and light sleep with the ESP32 (however, keep in mind that some external wake-up function are different for the ESP32-C3 Super Mini).<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp32-light-sleep-arduino\/\" title=\"\">ESP32 Light Sleep Mode and Wake-Up Sources (Arduino IDE)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/esp32-deep-sleep-arduino-ide-wake-up-sources\/\">ESP32 Deep Sleep with Arduino IDE and Wake Up Sources<\/a>*<\/li>\n<\/ul>\n\n\n\n<p>* in case of external wake-up with the ESP32-C3 Super Mini, you need to use the <span class=\"rnthl rntliteral\"><a href=\"https:\/\/docs.espressif.com\/projects\/esp-idf\/en\/v5.0\/esp32c3\/api-reference\/system\/sleep_modes.html#_CPPv433esp_deep_sleep_enable_gpio_wakeup8uint64_t33esp_deepsleep_gpio_wake_up_mode_t\" target=\"_blank\" rel=\"noopener\" title=\"\">esp_deep_sleep_enable_gpio_wakeup()<\/a><\/span> function instead.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"deep-sleep-timer-wakeup\">ESP32-C3 Super Mini &#8211; Deep Sleep with Timer Wake-Up<\/h3>\n\n\n\n<p>The following example is a simplified code that puts the ESP32 in deep sleep mode for one minute. After each minute, it wakes up and blinks the LED connected to GPIO 8.<\/p>\n\n\n<pre style=\"max-height: 40em; margin-bottom: 20px;\"><code class=\"language-c\">\/*********\n  Rui Santos &amp; Sara Santos - Random Nerd Tutorials\n  Complete project details at https:\/\/RandomNerdTutorials.com\/getting-started-esp32-c3-super-mini\/\n*********\/\n\n#define uS_TO_S_FACTOR 1000000ULL   \/\/ Microseconds to seconds\n#define TIME_TO_SLEEP 60            \/\/ Deep sleep duration in seconds\n#define LED_PIN 8                   \/\/ LED connected to GPIO 8\n\nvoid setup() {\n  delay(100);\n  pinMode(LED_PIN, OUTPUT);\n\n  \/\/ Blink LED (on-board LED works with inverted logic)\n  digitalWrite(LED_PIN, LOW);\n  delay(1000);\n  digitalWrite(LED_PIN, HIGH);\n\n  \/\/ Set deep sleep timer\n  esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR);\n\n  \/\/ Enter deep sleep\n  esp_deep_sleep_start();\n}\n\nvoid loop() {\n  \n}\n<\/code><\/pre>\n\t<p style=\"text-align:center\"><a class=\"rntwhite\" href=\"https:\/\/github.com\/RuiSantosdotme\/Random-Nerd-Tutorials\/raw\/master\/Projects\/ESP32-C3\/ESP32-C3_Deep_Sleep_Timer_Wake_Up.ino\" target=\"_blank\">View raw code<\/a><\/p>\n\n\n\n<p>To put the ESP32 in deep sleep mode and wake it up with a timer, call the <span class=\"rnthl rntliteral\">esp_sleep_enable_timer_wakeup()<\/span> function and pass the number of microseconds to sleep as argument.<\/p>\n\n\n\n<pre class=\"wp-block-code language-c\"><code>esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR);<\/code><\/pre>\n\n\n\n<p>After setting up the wake-up source, you can put the ESP32 in deep sleep mode using <span class=\"rnthl rntliteral\">esp_deep_sleep_start()<\/span>.<\/p>\n\n\n\n<pre class=\"wp-block-code language-c\"><code>esp_deep_sleep_start();<\/code><\/pre>\n\n\n\n<p>To test this code, make sure to connect an LED to GPIO 8 or use the onboard LED.<\/p>\n\n\n\n<p><strong>Note<\/strong>: I couldn&#8217;t use the Serial Monitor with the ESP32-C3 Super Mini in deep sleep mode because it wouldn&#8217;t connect to the Serial Monitor automatically after waking up.<\/p>\n\n\n\n<p><strong>Important<\/strong>: after uploading a deep sleep code to the board, to program it again, you need to do the button sequence to put it in bootloader mode.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Hold down the <strong>BOOT <\/strong>button.<\/li>\n\n\n\n<li>Press and release the <strong>RESET <\/strong>button (while still holding <strong>BOOT<\/strong>).<\/li>\n\n\n\n<li>Then release the <strong>BOOT<\/strong> button.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"power-consumption\">Power Consumption<\/h2>\n\n\n\n<p>Using the previous example on the ESP32-C3 Super Mini, I measured a deep sleep power consumption of approximately 600 \u00b5A. This is higher than the datasheet\u2019s specified 40 uA. This is likely due to unoptimized configurations, such as floating GPIOs; or you need to use ESP-IDF to use more efficient functions.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"422\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-Super-Mini-Power-Consumption-deep-sleep.jpg?resize=750%2C422&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP32-C3 Super Mini Power Consumption Deep Sleep Mode\" class=\"wp-image-170276\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-Super-Mini-Power-Consumption-deep-sleep.jpg?w=750&amp;quality=100&amp;strip=all&amp;ssl=1 750w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-Super-Mini-Power-Consumption-deep-sleep.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><figcaption class=\"wp-element-caption\">Power Consumption of the ESP32-C3 Super Mini in Deep Sleep Mode<\/figcaption><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"422\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-DOIT-Power-Consumption-Deep-Sleep-Mode.jpg?resize=750%2C422&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP32 DOIT Board - Power Consumption in Deep Sleep Mode\" class=\"wp-image-170277\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-DOIT-Power-Consumption-Deep-Sleep-Mode.jpg?w=750&amp;quality=100&amp;strip=all&amp;ssl=1 750w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-DOIT-Power-Consumption-Deep-Sleep-Mode.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><figcaption class=\"wp-element-caption\">ESP32 DOIT Board &#8211; Power Consumption in Deep Sleep Mode<\/figcaption><\/figure><\/div>\n\n\n<p>Still, compared to a regular ESP32, which consumes about 10mA in deep sleep, the ESP32-C3\u2019s measured 600 \u00b5A is still more efficient and a great improvement without any modifications in the code.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Wrapping Up<\/h2>\n\n\n\n<p>We hope you&#8217;ve found this ESP32-C3 Super Mini getting-started guide useful. Once you&#8217;ve gotten familiar with the board and its pinout, you can use <a href=\"https:\/\/randomnerdtutorials.com\/projects-esp32\/\" title=\"\">our other ESP32 projects<\/a> with this particular board\u2014just make sure to rearrange the pin assignment if needed.<\/p>\n\n\n\n<p>If you want to learn more about the ESP32, make sure to check out our resources:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/randomnerdtutorials.com\/learn-esp32-with-arduino-ide\/\">Learn ESP32 with Arduino IDE eBook<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/build-web-servers-esp32-esp8266-ebook\/\">Build Web Servers with ESP32 and ESP8266 eBook<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/randomnerdtutorials.com\/projects-esp32\/\"><strong>More ESP32 Tutorials and Projects\u2026<\/strong><\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>ESP32-C3 Super Mini Pinout Schematic diagram <\/p>\n<p class=\"read-more-container\"><a href=\"https:\/\/randomnerdtutorials.com\/getting-started-esp32-c3-super-mini\/\" class=\"read-more button\">CONTINUE READING \u00bb<\/a><\/p>\n","protected":false},"author":5,"featured_media":170280,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[276,281,277,299,264],"tags":[],"class_list":["post-170189","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-esp32","category-esp32-project","category-esp32-arduino-ide","category-0-esp32","category-project"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2025\/05\/ESP32-C3-SuperMini-Getting-Started.jpg?fit=1920%2C1080&quality=100&strip=all&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts\/170189","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/comments?post=170189"}],"version-history":[{"count":16,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts\/170189\/revisions"}],"predecessor-version":[{"id":179896,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts\/170189\/revisions\/179896"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/media\/170280"}],"wp:attachment":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/media?parent=170189"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/categories?post=170189"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/tags?post=170189"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}