M5Stamp C3U IoT module relies on ESP32-C3’s own USB interface for firmware programming

M5Stamp C3U is an update of the M5Stamp C3 RISC-V IoT module with heat-resistant cover, support for WiFi 4 and Bluetooth 5.0, that does without CH9102 USB to TTL chip, relying instead on the internal USB interface of ESP32-C3 processor to handle serial programming of the firmware, and gaining on extra GPIO pin in the process.

While several ESP32 processors come with a built-in USB interface, many boards still use an external USB to TTL chip such as CH340 or CP2102 to handle the serial interface used for debugging and flashing the firmware likely because of limitations when using ESP32-C3’s USB serial/JTAG controller console, but M5Stack probably considered those to be workable, and the small cost-saving beneficial.

M5Stamp C3U

M5Stamp C3U specifications:

  • WiSoC – ESP32-C3FH4 32-bit single-core RISC-V processor @ up to 160 MHz, with 384KB ROM, 400KB SRAM, 8KB RTC SRAM, 4MB embedded flash, WiFi and Bluetooth
  • Connectivity
    • 2.4 GHz WiFi 4, 20 MHz and 40 MHz bandwidth, IEEE 802.11 b/g/n protocol, up to 150 Mbps
    • Bluetooth 5, Bluetooth mesh, with supports for 125 Kbps, 500 Kbps, 1 Mbps, 2 Mbps bitrate, long-range
    • 2.4G 3D Antenna
  • USB – 1x USB Type-C port for power and programming via CH9102 USB to TTL chip
  • Expansion – 2.54mm pitch headers with ADC, 13x 14x GPIO, SPI, UART, I2C, I2S, PWM, RMT, DMA, USB Serial, TWAI
  • Misc – 1x user button, 1x reset button, user RGB LED
  • Input voltage – 5V @ 500mA via USB-C port
  • Dimensions – 34 x 20 x 4.5mm
  • Weight – 3.8 grams
M5Stamp C3U Mate kit ot pack of 5
M5Stamp C3U Mate kit (left) or pack of 5 modules (right)

The ESP32-C3 IoT module is offered either as a kit with a single module plus headers and connectors, or a pack of 5 modules. While firmware (Arduino, ESP32-IDF, etc…) for the original M5Stack C3 should be compatible with M5Stack C3U, the method to flash the firmware has changed as you’ll need to long-press the button on the M5Stamp C3U before applying power and entering the program download mode.

Note that by default, the USB CDC is not enabled, so the serial port output started by C3U will be output through UART0, and if you need to output through USB, you’ll need to enabled USB CDC before downloading the program. In the Arduino IDE, it can be enabled in the menu with Tools->USB CDC on Boot-Enabled. You’ll find documentation to get started with M5Stack C3U in the wiki.

M5Stamp C3U Mate with Pin Headers is sold for $5.90, while the bundle with 5 modules goes for $27.50. This compares to $6.00 and $28.90 for the equivalent M5Stack C3 items, so removing CH9102 saves about 28 cents per module from the end-user’s perspective.

Share this:

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

ROCK 5 ITX RK3588 mini-ITX motherboard
Notify of
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.
2 years ago

It’s not just a matter of cost-saving but it also means that the USB device interface is directly exposed, making the device probably more versatile in the long term.

Rogan Dawes
Rogan Dawes
2 years ago

Unfortunately, it is limited in capability to just USB CDC and JTAG, if I recall correctly. This is the implementation in ROM, but there is apparently no way to provide a smarter implementation in firmware. (Although Sprite_tm did make some comments about how it might be possible somehow).

2 years ago

Ah so that could indeed be quite limited, indeed

2 years ago

5$ per board, 30$ shipping to Germany, really great

Khadas VIM4 SBC