-
Notifications
You must be signed in to change notification settings - Fork 479
Setting up OpenWebRX on a Raspberry Pi 2
OpenWebRX should work out of the box on your RPi, if you set it up by going through this guide.
You will need at least a Raspberry Pi 2.
Raspberry Pi 1 won't work as its CPU just doesn't have enough processing capability to make it.
(csdr
can make use of both NEON and the multiple cores on the RPi2).
As noted by Zsolt, HG2ECZ the Raspberry Pi 3 can limit the CPU frequency if the maximum available current of the power supply is too low, which may result in decreased signal processing speed. Having a correct power supply is required for running OpenWebRX. An 5V, 2A unit (or better) should do.
It is not sure that you will run into any of these, but anyway:
- Audio underruns and
csdr flowcontrol
issue - Port 8888 is already in use on your system:
- Edit
config_rtl.py
andconfig_webrx.py
and replace this port number with another).
- Edit
- The Pi doesn't start with RTL-SDR is plugged in / restarts when plugging in RTL-SDR / fails to recongize RTL-SDR:
- Maybe your power supply cannot provide enough current. You should try a dedicated 5V / 2A power supply like this. I wasn't able to use the RPi from a laptop USB port, needed a dedicated PSU.
The Raspberry Pi 2 should be able to handle about 5-10 clients simultaneously at the sampling rate of 250 ksps.
It is quite good from an embedded ARM board, but your PC would do of course better than that.
I'm constantly working on getting OpenWebRX faster on the Pi (in the dev
branch I've already done some manual assembly optimizations for NEON).
You will have to set the max_clients
and the samp_rate
correctly.
If you allow too much clients to connect, audio will lag for all of them (will get audio underruns), as the CPU just can't make it.
The higher the sampling rate is:
- the higher bandwidth will be seen on the waterfall diagram,
- the higher the CPU usage gets (per client as well),
- the less clients can connect without lags.
You should try to open many browser windows and see at how many clients will the audio start to lag.
If you don't want to learn iptables
, you can use ufw
on Debian/Ubuntu based systems. ufw
stands for Uncomplicated Firewall. After ufw
has been started, it will block any incoming TCP connections / UDP packets unless specifically enabled.
(This part is to be finished.)
(This part is to be done.)
If you just pull the plug from your Raspberry without properly shutting it down, it may or may not boot the next time.
Use the proper command to halt the operating system:
sudo halt
You will see one of the LEDs blinking at a given time interval, and then both LEDs switch off.
In my article about pi-rw you will find advice on doing that.
fsck
is a Linux tool meant for repairing corrupted file systems.
You can:
- Run
fsck
from a laptop running Linux, having the SD card attached. - Run
fsck
from a Ubuntu Live CD. - Run
fsck
from the shell over the RPi serial port (but you will need a serial adapter). - Run
fsck
with a keyboard and HDMI screen attached to the RPi.
You cannot however run fsck
from ssh
remotely, as the OS hasn't booted properly yet.
First take a look at which device corresponds to your SD card. You can list the block devices with lsblk
:
ha7ilm@pc ~ $ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 123,4G 0 disk
├─sda1 8:1 0 120,0G 0 part /
└─sda2 8:2 0 3,4G 0 part [SWAP]
mmcblk0 179:0 0 7,4G 0 disk
├─mmcblk0p1 179:1 0 56M 0 part /media/ha7ilm/boot
└─mmcblk0p2 179:2 0 7,4G 0 part /media/ha7ilm/18b2d310-8421-01f9-a0e0-1001b0d00173
Over here, the corresponding device is mmcblk0p2
. To run fsck
on it:
sudo fsck /dev/mmcblk0p2