Giter VIP home page Giter VIP logo

libsddc's Introduction

libsddc - A low level library for wideband SDR receivers

A library and a few simple applications for wideband SDR receivers like BBRF103, RX-666, RX888, HF103, etc. (experimental support for RX888MKII added by JI3GAB)

IMPORTANT: the development of this library has now become part of Oscar's ExtIO_sddc project: https://github.com/ik1xpv/ExtIO_sddc - since the Linux code in that repository is not yet fully functional, I am keeping this version around for now in order to provide an option for Linux users to be able to stream samples from the RX888

These SDR receivers and this library wouldn't be possible without all the excellent work by Oscar Steila, IK1XPV - a great deal of useful information about them is at http://www.steila.com/blog/ and at https://sdr-prototypes.blogspot.com/.

This library is similar in concept to librtlsdr (see https://osmocom.org/projects/rtl-sdr/wiki and https://github.com/librtlsdr/librtlsdr).

I wrote this library and the example applications from scratch (i.e. any bug in this code is exclusively my fault). Many parts of the code use Oscar's ExtIO dll driver for Windows (https://github.com/ik1xpv/ExtIO_sddc) as a reference, and I want to really thank him for this wonderful project!

NOTICE: this library expects the SDR to be running firmware 1.01 or above; for firmware versions 0.X (0.4, 0.5, etc), please see the 'rf103' project here: https://github.com/fventuri/RF103

The firmware directory contains Oscar Steila's firmware for convenience. The source code for the firmware is here: https://github.com/ik1xpv/ExtIO_sddc/tree/master/SDDC_FX3

Credits

  • Oscar Steila, IK1XPV for the BBRF103 and HF103 projects
  • Hayati Aygün for many improvements and bug fixes to the code, adding useful examples, and many useful suggestions
  • Jakob Ketterl, DD5JFK for many hours and days spent troubleshooting the code and fixing my bugs, and for his ideas on how to improve the library
  • Howard Su and Justin Peng for all their work and experimentation on the RX888 hardware, improving the firmware and teamwork for the Windows ExtIO dll driver
  • Takafumi JI3GAB for the latest set of fixes to be able to run using the provided firmware

How to build

cd libsddc
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig

udev rules

On Linux usually only root has full access to the USB devices. In order to be able to run these programs and other programs that use this library as a regular user, you may want to add some exception rules for these USB devices. A simple and effective way to create persistent rules (which will last even after a reboot) is to add the file <misc/99-sddc.rules> to your udev rule directory '/etc/udev/rules.d' and tell 'udev' to reload its rules.

These are the commands that need to be run only once using sudo to grant access to these SDRs to a regular user:

sudo cp misc/99-sddc.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules

For some distributions (like Linux Mint), you may also need this command (thanks to Jon Fear for finding out):

sudo udevadm trigger

Copyright

(C) 2020 Franco Venturi - Licensed under the GNU GPL V3 (see )

Firmware: Copyright (c) 2017-2020 Oscar Steila ik1xpvgmail.com

libsddc's People

Contributors

fventuri avatar jketterl avatar ji3gab avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.