ESP32-C3 SuperMini Development Board
$28.45
$37.55
Description The ESP32-C3 SuperMini Development Board packs a powerful processor with WiFi and Bluetooth capability into a tiny package. PACKAGE INCLUDES: ESP32-C3 SuperMini Development Board Qty 2 – 1×8 pins shipped loose KEY FEATURES OF ESP32-C3 SUPERMINI DEVELOPMENT BOARD: Microcontroller: 32-bit RISC-V single-core (ESP32C3FN4) Clock Speed: 160MHz USB Connector: USB-C Flash Memory: 4 MB RAM: 400 KByte Digital I/O: 11 (all support interrupts) PWM: All 11 digital I/O pins support PWM Analog Inputs: 6 Inputs, 12-bit (GPIO5 cannot be used when Wi-Fi is enabled) Communications: 1 Serial, 1 SPI, 1 I2C, USB Bluetooth: 5.0 LE (Low Energy) WiFi: Built-in 802.11 b/g/n 2.4GHz Buttons: RST (Reset) and BOOT Programming: Compatible with Arduino IDE Pin Spacing: 0.6″ row to row with 0.1″ pin spacing. Breadboard compatible Operating Voltage: 3.3V internal power and I/O. 3.3V to 7V external power with on-board regulator The ESP32 -C3 is a very small IOT board with good programming support using the Arduino IDE. Besides the IDE, it can also be programmed using the Espressif IDF, Micropython, LUA and other programming environments. Compared to the typical AVR processor of the standard Arduino the ESP32-C3 has a larger 4 MB Flash memory for program space and runs at clock speeds of up to 160MHz. These boards can be used as a stand-alone MCU in place of something like an Arduino or it can be used as a peripheral in conjunction with another MCU just to provide WiFi, Bluetooth or other unique capabilities that it has. The compact size makes it perfect for embedding into a project. The board incorporates 2 pushbuttons. One is labeled ‘RST‘ which is the Reset button. The reset button can be used to restart the program if needed. The other button is labeled ‘BOOT‘. This button is used to download programs to the board as described in the example program section down below under certain conditions. The ESP32-C3 chip allows some of the I/O such as the serial ports and I2C to be multiplexed to any of the GPIO pins for flexibility. The pinout shown in the attached drawing is the default pinout. The 16-pin board is breadboard compatible. The I/O is labeled on the bottom side of the board, so refer to the pinout drawing to figure out where things are. Digital I/O There are a total of 11 GPIO on the board that are brought out to the header pins. The pins are labeled GPIOx (GPIO0 – GPIO10). When using with Arduino IDE, the digital pin number is the same as the GPIO pin number, so GPIO8 is referenced as just ‘8’. All of the digital I/O support PWM and interrupts. In addition they can be configured to have pull-up or pull-down resistors. The small blue on-board LED is connected to GPIO8. The digital I/O is limited to 3.3V. If using with 5V logic, level translators should be used. Analog I/O There are 6 pins that support analog input (A0 – A5) with up to 12-bit resolution. I2C Bus The module brings out one I2C port. The default configuration has SDA on GPIO8 and SCL on GPIO9. The I2C functionality can be multiplexed to other pins. Note that the blue LED is on GPIO8, so avoid using both the LED under user control and I2C at the same time. SPI Bus There are 4 pins assigned for an SPI bus. SCK on GPIO4, MISO on GPIO5, MOSI on GPIO6 and SS (Chip Select) on GPIO7. Serial I/O The module brings out 1 serial port. The default configuration has RX on GPIO20 and TX on GPIO21. The serial functionality can be multiplexed to other pins. Powering the Board Internally, the board operates on 3.3V. An on-board regulator takes in nominal 5V power from USB or the 5V pin and regulates it down to 3.3V for the microcontroller chip. This 3.3V is also available on the 3.3V pin to power small external accessories. The current draw should be limited to under 250mA. This 3.3V pin can also be used as a power input as noted below. There are three mutually exclusive ways to provide power to the board. 5V from USB-C port through the USB cable 5-7V applied to the VIN 5V pin 3.3V applied to the VIN 3.3V pin Operating current is about 130mA under normal operation and the maximum current draw per the datasheet is 500mA. A red power LED is lit when power is applied. The ESP32-C3 can be placed into various low power modes when battery operated to maximize battery life. The power LED draws about 3mA and can be removed to reduce that power draw if desired. Please note: The board does not have power switching circuitry as a typical Arduino does, so ensure only one of these power options are used to power the board at one time or damage may result. If using USB in a system that also has VIN power, a USB cable can be modified by cutting the red 5V power wire inside the cable to make it a data-only cable. Another option when using it permanently installed in a system is to power the module from 3.3V on the 3.3V pin and remove the small diode next to the USB connector as shown below. This disconnects 5V from both the USB and the VIN pin from the device, making it possible to plug in USB and program the device or monitor output while also being powered from the baseboard. This does remove the ability to power the device directly from USB if you remove it from the baseboard. This modification is made to the units installed in our Mini Platform for Teensy 4.1 product. Programming the Board Programming is done through the USB-C connector. Ensure that you have a USB-C data cable that includes both the power pins as well as the data pins. Many USB-C cables floating around are charging cables that include the power pins only. Here is a USB-C data cable if one is needed. Filters Sort results Reset Apply CAB-25 - USB 2.0 Type-A to USB-C Data Cable, 5Ft$6.95 Qty Max: 58 Min: 1 Step: 1 ADD TO CART To communicate over USB, the microprocessor has built-in native USB support and will show up in the Device Manager as a USB Serial Device. The board can be programmed in C using the Arduino IDE and is how the modules are most often used. An example program is shown down below which scans for WiFi networks. There are many instructions for installing and using ESP32 based boards with the Arduino IDE, but here is a short version. Open IDE File/Preferences window and in the Additional Board Manager URLs field enter the following: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json. If you already have links for other additional boards loaded, just open the window and add it as a new line to the end of the existing list as shown here. 2. Under Tools/Boards/Boards Manager, you can now find and install “ESP32 by Espressif Systems” as shown below. Click Install. 3. Under Tools/Boards select “ESP32C3 Dev Module“. 4. With the board plugged in to the USB-C cable, select the port that the board is attached to. In my case it happened to be COM30. If the board is not detected, ensure that the cable you are using is a data cable and not a charging cable as is often supplied with a cell phone. Charging cable have power wires, but do not have the data wires needed for communicating with the device. 5. Select ‘USB CDC On Boot: “Enabled“. This allows the ESP32-C3 to use the USB port for serial output. It is disabled by default. Here is what the Tools menu looks like on my setup. Note that once the ESP32 board type is added to the IDE, there will be many more items added to the Tools drop down menu Our Evaluation Results: These boards have good overall build quality for the price point. The main limitation of this board being the relatively low I/O count, but it does support all the basics like the commonly used I2C and SPI buses, analog input, digital I/O and PWM. Due to the small pin count, some pins serve double-duty, so be aware of possible conflicts. Safest pins to use with no conditions are GPIO0, GPIO1, GPIO3 and GPIO10. We use the Tenstar Robot version as they have better WiFi performance due to the larger spacing between the antenna and the crystal than some of the other modules that we tested. We use this same module as part of our Mini Platform for Teensy 4.1. The USB-C connector has a small footprint and the cable can be inserted in either direction which makes it popular for small boards where space is limited. As with any small USB connector, some care should be taken not to put too much stress on the connector by pulling up on the USB cable. Push straight in and pull straight out and you will be fine. Downloading Software to the Board When the download button is pushed in the IDE and after the compile completes successfully, the IDE will show ‘Connecting…‘ The download should happen automatically and you will see the downloading progress in the Output window of the IDE. If the download does not automatically happen, you may need to push and hold the button labeled ‘Boot‘ until the download starts, then release the button. The Boot button puts the ESP32-C3 into download mode. Once the download is complete, the IDE will report ‘Leaving…. Hard resetting via RTS pin… ‘. At that point the download is complete and the board should be running the program. If it does not automatically run, you can try pressing the RST button to restart it. The program below is based on one of the sample programs ‘WiFiScan’ that is available once the ESP32 boards are loaded into the IDE. It scans for WiFi networks and sends the list of networks found to the Serial Monitor window. The version here also lights the built-in blue LED while a scan is in process for added bling. Ensure you set the Monitor Window for 115200 Baud and you have USB CDC on Boot Enabled to see the serial output. ESP32-C3 WiFi Scan Example Program /* This sketch demonstrates how to scan for WiFi networks. Scans for networks every 5 seconds and turns on the on-board LED during the scan */ #include "WiFi.h" const int LED_PIN = 8; //=============================================================================== // Initialization //=============================================================================== void setup() { Serial.begin(115200); // Set WiFi to station mode and disconnect from an AP if it was previously connected WiFi.mode(WIFI_STA); WiFi.disconnect(); delay(100); pinMode(LED_PIN, OUTPUT); Serial.println("Setup done"); } //=============================================================================== // Main //=============================================================================== void loop() { Serial.println("scan start"); digitalWrite(LED_PIN, LOW); // turn the LED on (LOW is the voltage level) // WiFi.scanNetworks will return the number of networks found int n = WiFi.scanNetworks(); Serial.println("scan done"); if (n == 0) { Serial.println("no networks found"); } else { Serial.print(n); Serial.println(" networks found"); for (int i = 0; i < n; i) { // Print SSID and RSSI for each network found Serial.print(i 1); Serial.print(": "); Serial.print(WiFi.SSID(i)); Serial.print(" ("); Serial.print(WiFi.RSSI(i)); Serial.print(")"); Serial.println((WiFi.encryptionType(i) == WIFI_AUTH_OPEN) ? " " : "*"); delay(10); } } Serial.println(""); digitalWrite(LED_PIN, HIGH); // turn the LED off by making the voltage HIGH // Wait a bit before scanning again delay(5000); } Before they are shipped, these modules are: Sample inspected and tested per incoming shipment. Notes: None Technical Specifications Microcontroller 32-bit RISC-V single-core (ESP32C3FN4) Clock Speed 160MHz Operating Voltage 3.3V Power Input Voltage 3.3V or 5V nominal (7V max) Digital I/O Pins 11 PWM I/O Pins (Shared with Digital I/O) 11 Analog Input Pins 6 (12-bit) DC Current per I/O Pin 10-40mA depending on total chip loading Hardware Serial Ports (UARTS) 1 I2C Ports 1 SPI Ports 1 Flash Memory 4 MBytes SRAM 400 KBytes Built-in LED (blue) Pin 8 Network IEEE 802.11 b/g/n WiFi 2.4GHz Bluetooth 5.0 (LE) USB Connector Style USB-C Board Dimensions (L x W) 22.5 x 18mm (0.89 x 0.71″) Pin Spacing (row-to-row) 15.24mm (0.6″) Country of Origin China Datasheet ESP32-C3 Schematics (representative) FURTHER READING Doing a search on ESP32-C3 SuperMini will yield a large number of information articles about these modules that provide further insight into using them. Here are a few that may be useful. Done.Land C3supermini ESPboards ESP32-C3 Super Mini Random Nerd Tutorials ESP32-C3 Super Mini
Arduino, Teensy & Iot