Giter Site home page Giter Site logo

sodaradio's Introduction

SoDa -- A Software Defined Radio for the Ettus Research USRP

SoDaRadio is a multi-mode VHF/UHF/Microwave radio transciever
that runs on Linux.   It has been tested on several Ettus
USRP models including the N200/WBX, N210/WBX, N210/SBX, N200/UBX,
and the B210. 

PREREQUISITES

---- 

SoDaRadio now uses the CMake build system.  You will need
a version of cmake that is newer than 3.0.

SoDaRadio is built on the Ettus libuhd library, the FFTW library,
ALSA linux sound support, and the wxWidgets toolset.


Boost version 1.33 or later -- current builds are against boost 1.60 
wxWidgets -- current build is against version 2.8 -- version 3.x is a train wreck.
libuhd -- builds against version 003.010.001
fftw3 -- builds against version 3.4.4
libasound

There may be information on building SoDaRadio for your
particular system.  Take a look at the SoDaRadio wiki at
https://sourceforge.net/p/sodaradio/wiki/Building%20SoDa%20Radio/

----

INSTALL Quick Start

(X.X.X is the version that you just downloaded, 
e.g. SoDaRadio-X.X.X.tar.gz might be SoDaRadio-4.0.0.tar.gz...)

# unpack SoDaRadio-X.X.X.tar.gz 
tar xzvf SoDaRadio-X.X.X.tar.gz
cd SoDaRadio-X.X.X
mkdir build
cd build
cmake ../
make
make install

----

HOWTO 

To start the radio, connect your Ettus USRP N2xx to 
the host computer. (I'm assuming that your USRP has a
WBX module.)  Connect an antenna to the TX/RX port.


Then execute SoDaRadio

(If you haven't installed SoDaRadio, but have built it, 
you can start SoDaRadio from the build directory like this: 

gui/SoDaRadio --server=src/SoDaRadio 

)

It should come up tuned to something like 162.55 or nearby. 

Poke buttons.  Try things.  Don't hit the "TX" button unless
you have something connected and the necessary license to operate
in that band. 

---- 

Version 4.1.1

	Fixed a typo in CWGenerator that caused the letter 'y' to
	get sent incorrectly. (!) How did that get by for so long?
	
Version 4.1.0

    Added TX Audio config pulldown in GUI
          a) This allows selection of either the microphone input
                 or a NOISE source (uniform random numbers in the range
         -0.5 to 0.5 -- looks pretty flat
          b) Added a button to enable/disable TX audio channel filtering
                 (the filter has a passband from 150 to 2300 Hz) for USB/LSB/NBFM/WBFM/AM
          c) Leaving the TX Audio config dialog turns the noise source off, and
                 connects the TX audio to the MIC input.
    
    Added TX_AUDIO_FILT_ENA command (turns on/off the transmit audio filter)
    to the BaseBandTX module.
    
    Added TX_AUDIO_IN command (set 0 selects MIC, 1 selects NOISE) to the
    BaseBandTX module.
    
    This has been tested by looking at the resulting spectrum on a B200
    panadapter display.  Without the audio filter, the transmitted USB/SSB
    bandwidth is about 20kHz (about 1/2 the 48kHz sample rate for the TX
    audio channel).  With the audio filter, the bandwidth is a little more
    than 2kHz on USB/SSB.


Version 4.0.1

* Migration to cmake
* Improvements to daughter card detection for LFTX/LFRX and other
non WBX/UBX daughter cards.
* New RX Antenna selection button (look in lower right corner)
* Fix for screwed up band configuration menu reported by an Ubuntu 14.04
  user -- likely a problem for all builds against wxWidgets 3.0...
* Beginning of refactoring to support digital modems.


Version 3.6

* Addition of arduino sketches for hardware to do TR and bandswitching.
* Added "serverargs" command line switch to gui -- argument is passed through to the SoDaServer program.
* Added "audio" switch to gui -- select the audio device for ALSA.
* Added hardware schematic and layout files (eagle) for a B2xx TR switch module
* Added hardware schematic and layout files (eagle) for a serial controlled TR and bandswitch that talks to the N200 through the GPS serial port.
* Fixed audio gain problem where the original (up to 3.5) slider control would go from silent to ear-splitting in the first 1/4 of the range.
* Added B200 and N200 TR switch control modules -- called by USRPCtrl
* Added -intN and -fracN (force integer-N or fractional-N synthesis in the front-end) to the SoDaServer command line switches.
* Changed tuning scheme in USRPCtrl to better avoid reference multiple spurs.
* Cleaned up some of the sloppier code in USRPCtrl.
* Started refactoring the front-end tuner code... not in use yet.
* Fixed some problems in USRPCtrl that would likely crash on USRPs that have no front-end local oscillators (LFRX/LFTX/BASICRX/BASICTX). This code is as yet untested on such modules....  


Version 3.5


    Extensive work to implement B200 TR control via J400.
    
    This code also contains the new (initial) TR control for the N200 series,
    where TR commands and band switching information can be sent
    through the GPS serial port to an arduino sketch that wiggles
    external relays for PTT, and other uses.
    
    WBX gpio TR switching is supported as well, and will be active
    on any WBX unit.
    
    The code MAY have trouble with N200 widgets that have installed
    a GPS.  It should not, however.  Please report any problems.
    
    The B200 and B210 TR control requires a special FPGA binary image.
    Contact [email protected] for a pointer to the binary image.




Version 3.4

Fixed a bug in the way the GUI started up.  Original code used
fork/execv which confused GTK and wxWidgets and other components.
Switched to the "official" wxExecute scheme.

Fixed a bug in the build process where configure did not find the
boost libraries on Ubuntu 14.x systems. 

Version 3.3

Fixed a problem with the antenna selection.  TX/RX can only 
be used for the RX stream if there is no extant tx_streamer. 
See the USRPusers list Thu Oct 23 20:32:53 EDT 2014

Now the antenna choice in the band configuration dialog actually
works. 


Version 3.2

Fixed a problem with startup failing because of a thread
safety issue in wx.  

Added FM modulation, courtesy of changes submitted by 
Aaron Yankey Antwi.  

Minor changes to ensure build compatibility with wx widgets
version 3.x <and> version 2.8...  

Modified (improved, I hope) behavior from waterfall plots
and periodogram plots.  MB2 click on the plot window to bring
up the settings dialog.  You can now change the speed of the
waterfall update, and average over 1 to 40 or so spectrum samples.

Added markers to waterfall plot showing passband of RX chain. (more or less). 

Added the Debug base class to improve debug trace reporting. 

Worked on problem with waterfall going "out of range" as the tuning
changed. 

Added "Track Frequency" button for the waterfall/periodogram

Note that using WX version 3.0 fixes the problem with saving logs
or the config file to a directory that starts with '.'. 

Tested on B210, N200/WBX, Ubuntu, wx2.8.12 and wx3.0.1


---------------

Version 3.1

fixed an unitialized variable that caused intermittent
failure with units that were not B200 or B210.  URSPCtl
would throw an exception complaining about the unavailability
of a second transmit channel. 

Note that there is STILL a problem with any of the File->Save...
dialog boxes under Fedora... working on this.


---------------

Version 3.0

See the blog entry for the B210 10GHz transverter. 

Major changes to USRP server and GUI to support a minimal cost
10GHz rig using the B210 and an external mixer. 

Other changes for debugging (added Debug class and debugMsg). 
Fixed a load configuration bug.

--------------

Version 2.2

Minor updates to fix problems with unitialized data in 
the USRPCtrl object. 

Also fixed thread scheduling warning -- the program now works
for users that don't have RTPRIO privs. 

Thanks to an alert user for these reports. 

Note that some UBUNTU users have found that they must set
the UBUNTU_MENUPROXY to something in order to get pulldowns
to display.  UBUNTU is getting a little annoying. 
I do this (Ubuntu 12.04.4 LTS) with 
export UBUNTU_MENUPROXY=libappmenu.so
Others running Ubuntu 14.04 do this:
export UBUNTU_MENUPROXY=0

--------------

Version 2.1

This package builds two programs: 

SoDaServer -- a multithreaded program that implements a software
defined multimode VHF/UHF transciever.  

SoDaRadio -- a GUI that offers a user interface to the controls
for SoDaServer

There are several improvements over versions 1.1 and 1.2. 
Chief among these is a "band select" scheme that allows the
user to define band segments, and transverter settings. 

Before running this version, you should remove the file ~/.SoDaRadio/SoDa.soda_cfg as it is no longer compatible with version 2.0.  I really ought to fix that.



PROBLEMS?

If you have problems building, post a note in the forum 
at https://sourceforge.net/p/sodaradio/discussion/general/

If you find a bug, post a ticket at 
https://sourceforge.net/p/sodaradio/tickets/

If it works, post a note in the discussion forum.  

73 -- es gl. 

---------------------------------------

Installing on Ubuntu 16.04

(From a raw Ubuntu installation)

sudo apt install git
sudo apt install curl
sudo apt install libgtk-3-dev libgtk2.0-dev
sudo apt install python-mako python-requests
sudo apt install libgps-dev libudev-dev
cd ~
mkdir SoDa
cd SoDa

mkdir wxbuild
cd wxbuild
wget https://github.com/wxWidgets/wxWidgets/releases/download/v2.8.12/wxGTK-2.8.12.tar.gz
tar wxGTK-2.8.12.tar.gz
cd wxGTK-2.8.12
mkdir buildit
cd buildit
../configure
make 2>&1 | tee make.log
sudo make install

cd ~/SoDa
sudo apt install cmake libusb-1.0-0-dev libboost-all-dev python-cheetah doxygen libasound2-dev libfftw3-dev 

git clone git://github.com/EttusResearch/uhd.git
cd uhd.git
git tag
# Now pick one of the latest releases.. When I wrote this it was
git checkout release_003_010_001_001
cd host
mkdir build
cd build
cmake ../
make 2>&1 | tee make.log
sudo make install
sudo ldconfig

sudo /usr/local/lib/uhd/utils/uhd_images_downloader.py
cd ../../../
sudo cp uhd/host/utils/uhd-usrp.rules /etc/udev/rules.d/10-usrp.rules

git clone https://git.code.sf.net/p/sodaradio/SoDaRadio SoDaRadio
cd SoDaRadio
mkdir build
cd build
cmake ../
make 2>&1 | tee make.log
sudo make install


------------------

Now you can run SoDaRadio

SoDaRadio

sodaradio's People

Contributors

kb1vc avatar

Watchers

skyformat99 avatar  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.