Jump to content

Data input/output for an SDR board

Recommended Posts


I’m looking for an SDR radio for an application and have a technical question regarding the Ettus USRP 210 product. I will explain before my application, and then I will ask. I never worked with an SDR board.

Our application will generate data through a PRBS generator with a TTL or ECL logic level. Maybe it will have a TTL/RS422 converter. Then, the data will be sent to the SDR to be modulated and transmitted in a loopback channel. The received RF signal will then be demodulated, and a BER tester will analyze the digital output.

Thus, is the GPIO connection of this board possible to use as data input/output? If yes, what is the logic level of the GPIO port? Is there another option if this board does not support this operation? Our bit rate is not high. It is in the order of 1 Mbps.

If the GPIO is not used for data input/output, could I use an RS422/USB converter to send the data directly to the USB port in a full duplex condition?


Link to comment
Share on other sites

HI @Jones,

I have been recommended by the Ettus team that support questions regarding Ettus products should be directed to the their mailing lists, https://kb.ettus.com/Mailing_Lists, where Ettus Research engineers, Ettus support, and customers themselves have been active for the last 10+ years.

If anything, this will at least reduce the time it takes for you to receive an accurate response since the Digilent staff will end up reaching out to the Ettus team about this anyway and relaying the answer back to you.

I can at least let you know that GPIO headers are either 3.3 V or 1.8 V depending on which header you are looking at based on this section of the manual, https://files.ettus.com/manual/page_usrp_b200.html#b200_switches, but I do not readily know if it is a good fit for your intended application.


Link to comment
Share on other sites



Hi @JColvin,

Thank you for your answer. I'll send my questions directly to them, as you suggested.

Regarding the SDR, how does it typically work? Is it a PC software that will send the data to the SDR through the USB port? If yes, how does it work to send and receive data? Is a file that is transmitted? 



Edited by Jones
Link to comment
Share on other sites

  • 4 weeks later...

Hi @Jones (cc: @JColvin in case other people ask):  


  • GNURADIO (gnuradio.org) is to SDR what gcc/gpp is to C/C++ (see also: radioconda). 
    • Much of Ettus' most readable how-to documentation for the B210 (and other USRP devices) is in the form of presentations at GRCON.  
    • GNURADIO is written in C/C++ (core API / tools) and Python (high-level interface and tools).  
  • MATLAB has lots of SDR-related toolboxes that are easy-to-use, convenient, and remarkably slow.  
    • MATLAB code for SDR can be made more performant by spending $12,000 (per seat) on their C++ cross-compiler.  I wish I was kidding.
  • radioconda (https://github.com/ryanvolz/radioconda) is exactly what it sounds like: a superset of conda that serves as a drop-in replacement for your regular conda distribution.  It contains the latest version of GNURADIO and other open-source SDR tools, and works out-of-the box for Linux, Windows, and Mac, including Arm64. 
    • Not just python: it includes C/C++ tools and apis 
    • It contains the full set of Ettus USRP/UHD drivers, tools and APIs.
    • What's the catch?  Python version is usually 1 or 2 points behind, e.g. current radioconda python version is 3.10.13, latest stable release is 3.12.2
    • What are the benefits?  Radioconda "just works:" until a couple of years ago, GNURADIO was very hard to install on any platform that's not Ubuntu - back then, it made MATLAB  a viable choice for SDR. 

Can GPIO be used for Signals? (short answer: no, and do not connect your TTL output to the SMA antenna port):

  • The relevant page for electrical characteristics of B2x0 is here: https://files.ettus.com/manual/page_usrp_b200.html#b200_hw_ref_ext  
  • The 'definitive' guide to USRP GPIO (including B210) is here: https://events.gnuradio.org/event/18/contributions/234/attachments/74/186/GPIOs on USRPs.pdf
    • On newer B210s GPIO header 504 is populated, so you can indeed use it, but not for signal.
    • B2x0 GPIO is used for:
      1. controlling and monitoring the 'state' of the radio: e.g., which banks are transmitting or receiving, which lights are blinking, etc.
      2. communicating with the built-in FPGA. 
      3. 10MHz clock ref (which, except on B200-mini, already has an SMA connector on the front panel).
  • WARNING: "RX power -15 dBm max" (from the above electrical characteristics manual). 
    • Applying a signal with greater than about 0.03 milliwatts of power to the Rx2 or Rx/Tx SMA connectors risks "magic smoke"-level damage to your B210.

Other Resources:

(Disclaimer: I do not work for Ettus/NI/Emerson/Digilent and I am sometimes wrong) 

Edited by dr.whom
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...