In the course of various development efforts, I found the need for a SDR hardware abstraction layer that went beyond the capabilities of ExtIO (the only other abstraction layer I know of). Specifically, I wanted transmit support, as well as better handling for gain and other controls.
I call what I came up with SDRIO. It's a C API, LGPL licensed. I currently support RTL-SDR, Funcube Dongle, and bladeRF (of course, only bladeRF has TX support). It is currently Windows-only, though the API is OS-agnostic and it should not be difficult to port to other systems.
The code and a binary build is available here:
https://github.com/spcutler/SDRIO
I have worked with the RTL-SDR developers to ensure that the library may legally be used by non-GPL programs. The SDRIO library as a whole is LGPL licensed, but certain parts (specifically the SDRIO_RTLSDR module) must be considered true GPL since it references GPL code. The SDRIO_RTLSDR module must therefore not be bundled with non-GPL software (or even auto-downloaded), though as long as SDRIO is installed separately there is no problem. The SDRIO_bladeRF and SDRIO_FUNcube modules do not have this problem.
Let me know if you have questions! I plan on adding additional HW support as soon as I get my hands on more devices.
SDRIO: A hardware abstraction layer for SDR devices
-
- Posts: 28
- Joined: Fri Mar 01, 2013 3:12 am
-
- Posts: 11
- Joined: Sat Mar 15, 2014 4:52 pm
Re: SDRIO: A hardware abstraction layer for SDR devices
Are there any programs which currently support this API?
Chris Wiener N2CR
Morris Plains, NJ
Morris Plains, NJ
-
- Posts: 28
- Joined: Fri Mar 01, 2013 3:12 am
Re: SDRIO: A hardware abstraction layer for SDR devices
Just one, so far: my program SeeDeR, still in beta, which you can get here.
I've recently added Mirics MSi3103 chipset support.
I've recently added Mirics MSi3103 chipset support.