I built a single-board version of David Carr's Simple Software Radio Peripheral.  This is a USB-connected ADC that can be used for software radio work.

SSRP board

Design files are available here: ssrp.tar.gz

The designs in the upper right corner of the picture are an unrelated RF filter and amplifer that I added to use the extra board space.

To make the unprogrammed EZ-USB chip available to regular users, create a file in /etc/udev/rules.d with the following line:

ATTR{idVendor}=="04b4", ATTR{idProduct}=="8613", GROUP="plugdev", SYMLINK+="fx2"

/dev/fx2 will be created when the device is plugged in.

You must have an external power supply - it doesn't use USB power (which is often below 5V).  Center negative, 2.1mm pin, 7-9V, something like 50mA.

sdcc is required to build the firmware.  The EZ-USB chip can be programmed on every power-on, or the code can be stored in the serial EEPROM.

The receive program is used to read data from the device and write it to a pipe for GNU Radio.  For fast USB access it uses fusb, which is part of GNU radio.  You must modify ssrp/receive/Makefile to point to your GNU Radio source directory.


  • Jumper U4-21 to GND (I used the via by R3).
  • Break the trace going to X1-8 (3.3V) and jumper it to 5V, which is nearby.  There aren't many 3.3V half-can oscillators.
  • R1, R3, and R14 should be jumpered.
  • R2 and R13 should be open.

Check for shorts between the supply rails and from each supply to GND.  The 0603 pads on the bottom have little clearance and it's easy to bridge the gap without noticing.

On first power-up, check the supplies.  Then plug in USB and see if it shows up in lsusb.  It will have the default Cypress product/vendor IDs of 04b4:8613.