Steve Markgraf Releases a New "hsdaoh" to Give the Raspberry Pi Pico 2, RP2350 High-Speed Data
The RP2350's new HSTX port delivers the high-speed data transmission it promises — to a $5 USB HDMI capture dongle.
Developer Steve Markgraf has released a new version of his "hsdaoh" high-speed data transfer tool, which uses the High-Speed Transmission (HSTX) interface on the Raspberry Pi Pico 2 and other RP2350-based microcontroller boards to throw up to 600Mb/s of data at a USB host.
"Using $5 USB 3.0 HDMI capture sticks based on the MacroSilicon MS2130," Markgraf explains, "this project allows to stream out up to 75MByte/s of real time data from an RP2350 (with overclocking) to a host computer with USB 3.0. The repository contains a library — libpicohsdaoh
— which implements the main functionality. It reads the data from a ring buffer, and streams it out via the HSTX port. In addition to that, the apps folder contains a couple of example applications."
Markgraf's original hsdaoh project focused on low-cost FPGA development boards, which are frequently available with an HDMI video output but no other form of high-speed peripheral connectivity. Markgraf's idea was to take advantage of the HDMI port to create a high-speed link to a cheap USB 3.0 HDMI capture dongle — encoding data as video, capturing it, then decoding it again at the host device. It was enough to hit nearly 1,500Mb/s in testing — and, as the developer has now proven, can also be applied to microcontrollers with HDMI or HDMI-like video interfaces.
The HSTX port is a new feature of the Raspberry Pi RP2350, the quad-core dual-architecture successor to the popular Raspberry Pi RP2040. While it was designed primarily for use as a DVI video output without tying up other resources on the chip, Markgraf's tool uses it for arbitrary data at rates of up to 75MB/s (600Mb/s). The only catch: to hit that rate requires overclocking the RP2350's processor cores to 320MHz.
To showcase the project, Markgraf has created three demo apps: a counter, which is used to verify that the transmission and reception process is working correctly; streaming from the RP2350's internal analog to digital converter (ADC), at rates of up to 3.33 mega-samples per second (MS/s) at stock voltages or 7.9MS/s when run beyond the chip's rated voltage; and streaming from an external Analog Devices AD9226 ADC.
The project's source code is available on GitHub under the permissive BSD three-clause license, along with instructions for building it and flashing it to a Raspberry Pi Pico 2 or other RP2350 board.