CherryUSB is a lightweight open-source USB device/host stack for embedded systems with one or more USB interfaces. The stack implements various class drivers such as CDC, HID, MSC, audio, video, and so on. It’s apparently part of Boufallo Lab SDK (e.g. for BL702 MCU), and has been ported and tested with WCH CH32V307 RISC-V MCU, STMicro STM32F4, and Nuvoton NUC442 Cortex-M4 microcontroller, as well as a two Arm Cortex-M3 microcontrollers I’ve never heard of: EastSoft ES32F3 and MindMotion MM32L3xx. CherryUSB device stack highlights: Support for USB2.0 full and high speed Endpoint irq callback USB classes support Composite Device Communication Device Class (CDC) Human Interface Device (HID) including “Custom HID” Mass Storage Class (MSC) USB VIDEO Class (UVC1.0,UVC1.5) USB AUDIO Class (UAC1.0, UAC2.0) Device Firmware Upgrade CLASS (DFU) MIDI CLASS (MIDI) Test and Measurement CLASS (TMC) Vendor class Remote NDIS (RNDIS) support Support WINUSB 1.0,WINUSB 2.0 with BOS (Binary Device Object […]
LilyGO has been very busy in recent weeks, and their latest product is the “T-Dongle ESP32-S2” development board that looks very much like Espressif ESP32-S3-USB-OTG board development board but is equipped with the single-core WiFi-only ESP32-S2 processor instead of the dual-core ESP32-S3 SoC with WiFi 4 and Bluetooth 5.0. The T-Dongle ESP32-S2 board is designed for the development of USB applications and comes with USB OTG female and male ports, as well as the same 1.14-inch color display found on T-Display RP2040/ESP32 and T-PicoC3 boards. T-Dongle ESP32-S2 development board specifications: Wireless SoC – Espressif Systems ESP32-S2 single-core Xtensa LX7 processor @ up to 240 MHz with 320 kB SRAM, 128 kB ROM, WiFi 4 connectivity Antennas – 3D antenna, IPEX antenna connector Storage – MicroSD card socket Display – 1.14-inch full-color IPS LCD Display (ST7789V SPI controller) with 240 x 135 resolution USB 1x USB OTG female port to connect […]
WCH CH340 family of USB to serial chip is very popular, and often found on development boards for debugging/access to the serial console, but the company has now introduced the CH343 “Gen3” chip – just like CH9102F apparently – with a higher 6 Mbps baud rate, support for 1.8V, 2.5V, 3.3V, and 5V IO voltage, and the ability to request custom USB VID/PID numbers. Three variants exist with CH343P, CH343G, and CH343K with different packages: QFN16, SOP16, and ESSOP10 respectively. CH343P contains an EEPROM for easy customization, while CH343G and CH343K PID/VID can still be customized for larger orders. CH343 key features and specifications: Full-speed USB 2.0 device interface Hardware full-duplex serial UART interface with baud rate varies from 50bps to 6Mbps. Automatic identification and dynamic adaptation of common communication baud rate of 115200bps and below. Supports 5, 6, 7, or 8 data bits, as well as odd, even, space, […]
Espressif’s ESP USB Bridge is a project based on the ESP-IDF that leverages ESP32-S2 or ESP32-S3 USB interface to use the board as a USB to UART or USB to JTAG debug board. It can serve as a substitute for USB to TTL debug boards based on CH340 or CP2104 for instance, be used with OpenOCD in JTAG bridge mode, and also flash UF2 firmware file to the target board. As just mentioned, there are three main use cases: Serial bridge mode with a terminal program or a firmware flashing tool like esptool. In that case, it just works like your typical USB to TTL debug board JTAG bridge mode for JTAG debugging with OpenOCD, and if the target board is based on ESP32, you can use openocd-esp32 project Mass storage device where the board can be accessed by a file manager on the host computer. One of the specific […]
If you need to control or debug multiple devices over UART devices, you’d be glad to learn WCH has just launched the CH348 USB to serial chip with eight UART ports. Two models are offered CH348L in an LQFP100 package and CH348Q in an LQFP48 package. Both offer eight UART interfaces, but CH348L comes with more CTS/RTS and DTR/hardware flow control signals, as well as DTR, DCD, RI signals, and support for independent voltage for I/Os. CH348 key features specifications: High-speed USB device interface Hardware full-duplex serial port, integrated independent transmit-receive buffer Baud rate varies from 1200bps to 6Mbps. The serial ports support 8 data bits, odd, even, and none parity, 1/2 stop bit. Each serial port comes with a 2048-byte receiving FIFO and a 1024-byte transmitting FIFO. Signals RTS, DTR, DCD, RI, DSR, and CTS supported for hardware flow control The MODEM interface signal pins and 485 transmit and […]
The Raspberry Pi RP2040 specifications only list one USB 1.1 Host/Device hardware interface, but developer’s Sekigon Gonnoc decided to leverage the microcontroller’s programmable I/Os (PIO) to add an extra USB port that also works in host or device mode. While the C library is still supposed to be a work in progress Sekigon implemented full-speed (12 Mbps) and slow-speed (1.5Mbps) host, full-speed device, USB hub, and multi-port support. There’s even a demo with three “Pico Pico USB” keyboards acting as USB hubs and HID plus a wireless mouse to show the results. The implementation uses one PIO for the USB transmitter using 22 instructions and one state machine and another PIO for the USB receiver using 31 instructions and two state machines, as well as one 1ms loop timer for the host, and one PIO interrupt for the receiver. You’ll find the code to implement the extra USB port on […]
A couple of months ago I received “RPI All-in-One”, a 10.1-inch touchscreen display for Raspberry Pi boards, listed the specifications, checked out the package content, installed a Raspberry Pi 4 inside the display before booting my new all-in-one (AiO) PC successfully. I’ve now had time to spend more time with the PC/display and see how it performs under various conditions. I also tested HDMI and USB-C input features with a laptop and mini PC. Fan or fanless operation? After updating Raspberry Pi OS, I ran sbc-bench.sh script together with rpi-monitor to see how the Raspberry Pi 4 with 1GB RAM would perform under load with the (noisy) fan enabled.
Installing needed tools. This may take some time. Done.
Checking cpufreq OPP. Done (results will be available in 11-15 minutes).
Executing tinymembench. Done.
Executing OpenSSL benchmark. Done.
Executing 7-zip benchmark. Done.
Checking cpufreq OPP. Done (17 minutes elapsed).
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_ADDRESS = "en_GB.UTF-8",
LC_NAME = "en_GB.UTF-8",
LC_MONETARY = "en_GB.UTF-8",
LC_PAPER = "en_GB.UTF-8",
LC_IDENTIFICATION = "en_GB.UTF-8",
LC_TELEPHONE = "en_GB.UTF-8",
LC_MEASUREMENT = "en_GB.UTF-8",
LC_TIME = "en_GB.UTF-8",
LC_NUMERIC = "en_GB.UTF-8",
LANG = (unset)
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
It seems neither throttling nor frequency capping has occured.
memcpy: 2595.9 MB/s (0.8%)
memset: 3398.3 MB/s (2.7%)
7-zip total scores (3 consecutive runs): 5556,5650,5565
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes
aes-128-cbc 61981.49k 76335.40k 82773.25k 84199.42k 84355.75k 84393.98k
aes-128-cbc 62224.25k 76254.36k 82779.39k 84461.91k 84757.16k 84825.43k
aes-192-cbc 55900.34k 67052.89k 71500.80k 73121.11k 73362.09k 73203.71k
aes-192-cbc 55869.41k 66963.52k 71835.14k 72934.74k 73471.32k 73465.86k
aes-256-cbc 50541.63k 59834.26k 63387.14k 64413.70k 64634.88k 64760.49k
aes-256-cbc 50646.47k 59735.02k 63384.92k 64461.14k 64648.53k 64629.42k
Full results uploaded to http://ix.io/3MfY.
In case this device is not already represented in official sbc-bench results list then please
consider submitting it at https://github.com/ThomasKaiser/sbc-bench/issues with this line:
| RPi 4 Model B Rev 1.1 / BCM2711 rev B0 | 1500 MHz | 5.10 | Bullseye armhf | 5590 | 62100 | 64690 | 2600 | 3400 | - | [http://ix.io/3MfY](http://ix.io/3MfY) |
No throttling was detected, and the temperature never exceeded 56°C in a room with an ambient temperature of 26°C. I then disconnect the fan, but it turns out the fan can also be easily disabled in the OSD menu […]
I’ve just come across a few USB boards that take advantage of the Raspberry Pi Zero (W) test pads to add one or more USB Type-A ports to the board without soldering. The first one is “Catda Raspberry Pi zero WH USB expansion board” which I found on Banggood for $9.99. It’s a kit that ships with a USB Zero plug expansion module, an acrylic “isolation protection cover”, an acrylic transparent light diffraction protection cover plus M2.5 screws and nuts for mounting it to the Raspberry Pi Zero WH board, but it should work any Raspberry Pi Zero including the new Raspberry Pi Zero 2 W board since it relies on pogo pin to connect the four test pads for USB data and power, and those are in the same position for all Pi Zero boards. You can then plug it into a laptop or computer to power the board […]