DFRobot Beetle ESP32-C3

by DFRobot

Image of Board

Beetle ESP32-C3, mainly intended for IoT applications, is a controller based on ESP32-C3 RISC-V 32bit single-core processor.

On a coin-size board of 25*20.5 mm, there are up to 13 IO ports broken out, so you don’t have to worry about running out of IO ports when making projects. Meanwhile, li-ion battery charging management function is integrated on the board which allows to directly connect li-ion battery without extra modules, while ensuring the application size and safety.

The equipped expansion board for Beetle ESP32-C3 brings out more power sources without increasing product volume, more convenient to solder. Besides, the onboard easy-to-connect GDI saves the trouble of wiring when using a screen.

Interface pins

  • Digital I/O x13
  • LED PWM controller with 6 channels
  • SPI x1
  • UART x2
  • I2C x1
  • I2S x1
  • Infrared receiver and transmitter: transmit channel x2, receive channel x2, (any pin)
  • 2 × 12-bit SAR A/D converters, 6 channels
  • DMA controller, 3 receive channels and 3 transmit channels
  • USB Type-C: 5V
  • PIN10/LED: Onboard LED pin
  • ESP32-C3 module: the latest ESP32-C3 module launched by Espressif
  • RST: reset pin, short contact point trigger reset
  • TP4057: TP4057 lithium battery charge management chip
  • Charge: charging indicator
    • Off: not plugged in power supply or fully charged
    • On: charging
    • Blinking: battery not connected
  • 18Pin-FPC:GDI display interface

To Boot into Firmware Download Mode

Beetle ESP32 C3 Firmware Download

  1. Pull PIN 9 Down
  2. Place a jumper across RST and hold for 3 seconds
  3. Release RST and PIN 9
  4. Flash as normal per Espressif port instructions


Add any links to purchase the board


Have some info to add for this board? Edit the source for this page here.

CircuitPython 8.2.6

This is the latest stable release of CircuitPython that will work with the DFRobot Beetle ESP32-C3.

Use this release if you are new to CircuitPython.

Release Notes for 8.2.6


Built-in modules available: _asyncio, _bleio, _pixelmap, adafruit_bus_device, adafruit_pixelbuf, aesio, analogbufio, analogio, array, atexit, audiocore, audiomixer, binascii, bitbangio, bitmaptools, board, builtins, builtins.pow3, busio, busio.SPI, busio.UART, canio, collections, digitalio, displayio, dualbank, errno, espidf, espnow, fontio, framebufferio, getpass, hashlib, i2ctarget, io, ipaddress, json, keypad, keypad.KeyMatrix, keypad.Keys, keypad.ShiftRegisterKeys, math, mdns, microcontroller, msgpack, neopixel_write, nvm, onewireio, os, os.getenv, ps2io, pulseio, pwmio, rainbowio, random, re, rgbmatrix, rtc, sdcardio, select, sharpdisplay, socketpool, ssl, storage, struct, supervisor, synthio, sys, terminalio, time, touchio, traceback, ulab, vectorio, watchdog, wifi, zlib

Absolute Newest

Every time we commit new code to CircuitPython we automatically build binaries for each board and language. The binaries are stored on Amazon S3, organized by board, and then by language. These releases are even newer than the development release listed above. Try them if you want the absolute latest and are feeling daring or want to see if a problem has been fixed.

Previous Versions of CircuitPython

All previous releases of CircuitPython are available for download from Amazon S3 through the button below. For very old releases, look in the OLD/ folder for each board. Release notes for each release are available at GitHub button below.

Older releases are useful for testing if you something appears to be broken in a newer release but used to work, or if you have older code that depends on features only available in an older release. Otherwise we recommend using the latest stable release.