This $6 RISC-V Dev Board Fits Entirely Inside Your USB Port

Comu is a $6 mini RISC-V development board with touch pads and GPIOs that fits right inside your computer's USB port.

Nick Bild
3 months ago β€’ HW101
Comu fits entirely inside a USB port (πŸ“·: Cyao)

If your workshop already has piles of hardware everywhere you look, then you probably have to skip out on buying new gadgets that you really want from time to time. But if you have even one USB port open on your computer, you've got all the space you need for a new development board called Comu. Measuring just 13 Γ— 9.4 mm, the entire device fits inside a USB-A connector, yet it comes equipped with a 32-bit RISC-V microcontroller, four capacitive touch buttons, two LEDs, and enough exposed GPIO pins to make it useful for a lot more than blinking a light.

Comu is built around the WCH CH32V203, a RISC-V microcontroller running at up to 144 MHz. It has 224 KB of general-purpose flash, 24 KB of boot flash, and 20 KB of SRAM, along with hardware peripherals including DMA, a 12-bit ADC, and full-speed USB. Six GPIO pins are also exposed through test pads, so the tiny board can be integrated into larger hardware projects.

Its most obvious applications, however, take advantage of the fact that Comu plugs directly into a computer. It can operate as a USB HID device, making it possible to build tiny programmable controllers for repetitive tasks. The four capacitive touch buttons could become media controls, a volume slider, a sleep button, screenshot controls, or shortcuts for frequently used applications.

Those touch controls are built directly into the edges of the PCB using double-sided plated contacts. The CH32V203 also includes a dedicated TouchKey peripheral, which handles much of the work normally required to implement capacitive touch sensing.

The board's resources are quite limited, so Comu is primarily intended for lightweight bare-metal development using ch32fun. Without much overhead, some fairly complex programs can fit within the microcontroller's constraints. According to the project's developer, a basic blinking LED program takes just 40 bytes, compared with 12 KB using the Raspberry Pi Pico SDK and 324 KB using the Arduino IDE with the Pico.

To support the tiny form factor of the board, a custom, open source bootloader was developed for Comu. Because there isn't room for a BOOT0 button, the custom bootloader gives users a five-second window after plugging Comu in to upload new firmware. It occupies just 2 KB, leaving most of the CH32V203's dedicated boot flash available for other purposes.

Bare-metal C and C++ programming is the best option, but not the only option. The CH32V203 can also be programmed using Rust with ch32-hal, Arduino through arduino_core_ch32, or WCH's HAL with MounRiver Studio II.

Libraries such as TinyUSB can handle USB communications if directly manipulating packets isn't your cup of tea. On the other hand, direct access to the USB peripheral is part of Comu's appeal. Developers can manipulate raw USB packets and pair the board with tools like usbmon and Wireshark, turning this computer-in-a-USB-plug into a tiny platform for learning how USB actually works.

Comu has a tiny price tag to go with its pint-sized footprint β€” you can pick one up for $5.99 on Tindie.

Nick Bild
R&D, creativity, and building the next big thing you never knew you wanted are my specialties.

Comments

Please log in or sign up to comment.

Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles