N5DUX Raspberry Pi WebSDR Receiver Project

Description

I created my first Raspberry Pi WebSDR receiver in the Fall 2014. I had long intended to setup a WebSDR station, but grad school and work can really keep you busy. The first receiver on the air worked well until a suprise electrical storm popped up while I was away at work and fried my poor little SoftRock. A replacement kit was ordered, built and on the air in less than a week.
I hope the wider ham community enjoys listening to my little WebSDR receiver or that it inspires others to build their own. I have also built a Raspberry Pi APRS iGate for the ISS and I’m working on a 20m WebSDR receiver as well as an amateur radio satellite tracker. Click here for a list of my other amateur radio related Raspberry Pi projects.

N5DUX Raspberry Pi WebSDR Receiver Project

You can listen to this WebSDR here: http://n5dux.2y.net

Parts Used

My 40m WebSDR receiver hardware consists of:

Software

Perhaps the most asked question other than what sound card I’m using (see above) is how to get the drivers for the Wolfson to work. After several nights of trying to cross compile the drivers for my Pi’s kernel, I decided to use the “official” Wolfson OS image.

Software

  • Wolfson 3.10 Master SD Card image (link) – This OS includes the drivers for the Wolfson Card.
  • WebSDR software by Pieter, PA3FWM. He is a busy man. Have everything in place before contacting him for the software and be patient. There’s one of him and thousands of us.
  • I have tweaked the default WebSDR webpage on my Pi to give it a little better appearance (IMHO).
  • I also created a script to configure the Wolfson soundcard channels and then run the WebSDR scripts (see below)
  • I use screen to allow me to disconnect from my Raspi and still allow the WebSDR daemon to run.

To initiate the Wolfson sound card and launch WebSDR, I created the following script:

#runWebSDR.sh - N5DUX, 2014
#!/bin/bash

#Record from onboard Line Input to AP
# +9dB input PGA gain
amixer -Dhw:0 cset name='IN3L Volume' 8
amixer -Dhw:0 cset name='IN3R Volume' 8

# better THD in normal mode vs lower noise floor in high performance
amixer -Dhw:0 cset name='IN3 High Performance Switch' on

cd /home/pi/dist11/
sudo ./websdr-rpi

Networking

My shack is detached from my house and I do not (at present) have wired network capability in the shack. Consequently I have my Pi connected to my home cable internet connection via wireless. My home router passes webtraffic to the Pi. I use DynDNS to give me a domain name that is easy to remember (n5dux.2y.net). When my ISP changes my IP address, the router informs DynDNS of the switch and traffic is directed to my new ISP.
At present, I have the Raspberry Pi WebSDR client restricted to 4 concurrent users. The reason for this is two-fold. 1) Not to overload the scarce system resources of a Raspi 2) Not overload my internet connection upload to the point I can no longer watch movies, play games or use my internet connection for my every day silliness and nonsense.

Future Expansion/Refinement

I hope to tweak/modify my setup in the future. A couple ideas I have:

  • Filter my noisey power source
  • T/R switch so you can still listen in while I’m using my Butternut antenna (my main antenna)
  • Switch SDR over to dipole

Presentation

Here is the PowerPoint presentation I used when I presenting this project at HamCom 2015 and the Shreveport Hamfest 2015.

  • RaspiWebSDR.pptx

    About me

    I am an ARRL ETP instructor for the ARRL Teachers’ Institute and an Instructional Designer and faculty at LeTourneau University, W5LET, in Longview, TX. I am also a doctoral candidate from the University of Texas at Brownsville. My current research interests include epistemology and the efficacy of education technology.
    I became an ARRL Life Member at the ARRL Centinnial Convention in Hartford, CT, in 2014. Here is my QRZ page. In addition to amateur radio and electronics tinkering, I enjoy webscripting and computer gaming.

 

Scroll to Top