PlutoWeb: Custom firmware for the PlutoSDR that enables you to Run OpenWebRX, dump1090 etc directly on the device

GitHub user unixpunk has been working on a custom firmware image for the PlutoSDR called 'PlutoWeb' (more info available on their website as well). The firmware allows you to run a web interface on the PlutoSDR and this allows you to run server programs such as OpenWebRX, Dump1090 and streaming servers like SoapyRemote. Because the PlutoSDR has a built in processor, this firmware can turn the SDR into a fully standalone device.

The PlutoSDR is an Analog Devices $99 RX/TX capable SDR with 20 MHz of bandwidth and a 325 MHz to 3.8 GHz frequency range that is software hackable to 56 Mhz of bandwidth and a 70 MHz to 6000 MHz frequency. It has an on board Xilinx Zynq Z-7010 FPGA, which has a built in dual core ARM Cortex-A9 processor as well. It has been out of stock for a while, but was recently restocked and can be purchased directly from Analog Devices, or via Arrow, DigiKey or Mouser.

If you're interested we previously did a review on the PlutoSDR, and have notes on enabling the software hack and setup available on this blog.

PlutoWeb Web Interface Running on the PlutoSDR.
PlutoWeb Web Interface Running on the PlutoSDR.
Subscribe
Notify of
guest

40 Comments
Inline Feedbacks
View all comments
Glen Langston

Thanks to everyone for all their work in getting OpenWebRx PlutoWeb and the firmware
online and documented.

I did get the OpenWebRx to run, but only by using ip address 192.168.2.1
other links give me errors.
I could see the FM signal I was interested in, but there does not seem to be a normal “wideband” FM mode for audio output, only narrow band which is no good for radio stations.
Any suggestions?
THanks
Glne

unixpunk

Ya, OpenWebRx doesn’t have a broadcast FM demodulator. I’d say to use LeanTRX but that’s also unusable to broadcast FM, not enough CPU power on the pluto.

I’m open to suggestions, but they would have to be existing solutions outside of OpenWebRx, unless its added there in the future.

As of now, you could install SoapySDR, SoapyRemote if using ethernet or SoapyPlutoSDR for USB, CubicSDR (or other) and put PlutoWeb into SoapyRemote mode and use CubicSDR as the front-end. It supports broadcast FM. Keep the sample rate low, will get choppy if too high.

radiomaniac

Great, I just bought a pluto sdr, currently waiting for it to arrive. I think I will learn a lot with this. I need to read a lot to understand how it works and how to operate it etc.

Anonymous

Anyone having a how-to-do-it for newcomers? I put the dfu file on the mass storage but no love showed to me….
And whats the local name to access the websdr?

unixpunk

Sorry, no, at least not yet. First put the boot.frm on the mass storage and eject it, then wait. Once its done and back up, put the pluto.frm on the mass storage and eject it. Then it should boot, reboot once and be ready to go. If using USB, just enter the 192.168.2.1 IP into your browser. HTH

Mike

Perhaps you could as a minimum indicate what to install, in what order, and put a pointer to the online advice? Had a look at Github and noted firmware 22 days old but newer files, before I try this is it likely you will build an update?

unixpunk

The post you just replied to has the info..those files are in the plutoweb/images directory. Beyond that you’ll need to learn to fish and find a guide about how to flash those files. Either you’ll flash all 3 dfu files boot, pluto, u-boot (in order) with dfu-util OR you’ll drag and drop the 2 frm files into the pluto’s USB mass storage device, boot first, then pluto, ejecting the device between each.

As for an update to the image, yes likely will be within a week. Hoping for Twitch to make some changes to the webui to show some of the new settings I’ve added to the config.txt for openwebrx / sdr.hu and possibly also an initial install of leansdr / leantrx as someone has already requested. The newer files aren’t major changes, the current image works fine, as always, submit bugs via github Issues page. 🙂

Mike

Thanks – will try that on my spare pluto. How do I know when it’s done I wonder. When it re-appears in file manager I assume.

Mike

Wow – it worked. WBFM would be nice…. currently receiving ADS-B with no problems at all apart from the “for development purposes only” in google maps. One bug? Whenever I start the web server and click the kink, I get socket error and advised to refresh the page, then it works perfectly.

unixpunk

Just as an FYI, none of the software running on here was written or is maintained by me. If you’re interested in submitted a feature request for OpenWebRx, check sdr.hu/openwebrx.

The only version of dump1090 ported to the pluto radio uses google maps. Google decided recently to start charging for API key, hence the message. I’ll give you credit if you figure out how to get dump1090 to use a different map system… 🙂

Not sure what you mean by start the web server. You mean openwebrx? Again, not my software. Maybe just need to wait another second or two before clicking the :8073 link.

Jon F
unixpunk

Thx, will see if I can make that happen!

Twitch

I will be working on this this coming week. I will also make a how to install section on GitHub and rfoverride.com.

Anonymous

Hello out there
that will be more than welcomed and highly appreciated.
Thanks for you time

Mike

I tried 2.7 but I get an unresponsive device after a very long flash time. I can recover it with the update.bat utility. Tired twice. I see there is an update. Maybe an issue with the latest firmware version? I have one of the early batch of Plutos.

Twitch

Flash boot.dfu from the GitHub repo and that should fix this. Look at the install instructions on GitHub

Mike

I was using the mass storage method. Does this not work for this image?

Twitch

Just copy the boot.frm file to mass storage eject let it do it’s thing then flash the Pluto.frm and it should work. If not then you may have to use dfu-util to flash.

Mike

That is exactly what I did in the first place. It doesn’t work via mass storage, at least not for my Pluto.

LamaBleu

HI, flashing is less than 4 minutes, LED quick blinking . It works, no problem.
Flashing NEVER worked for me copying the boot.frm/pluto.frm to the mass storage. Pluto switching to DFU mode at reboot.
But the good new is flashing ALWAYS worked using DFU files. ( ‘sudo dfu-util -a firmware.dfu -D pluto.dfu’ from Linux) .
Hope this can help.

Twitch

Yeah for some reason the mass storage doesn’t work all the time. I even have this issue with their official firmware. If you are going from a lower firmware it fails almost 100 percent of the time for me. If you don’t have dfu utility installed you should because this will allow you to recover your device upon a bad flash and not end up with a brick

Mike

I booted into Ubuntu and wrote the firmware – interesting that it worked this way and not the normal way. The previous version was fine in mass storage.

Mike

Updated to latest firmware just now. Tried to run the Leantrx DATV beacon. Got this:

Running /cgi-bin/leantrx/dvbtx.cgi?action=run&standard=DVB-S&cr=1/2&cstln=QPSK&symbrate=333e3&interp=2&rrc_rej=10&destination=leaniiotx&devindex=0&bufsize=65536&nbufs=32&freq=2449e6&autorun=off
leantsgen | leandvbtx –cr 1/2 –const QPSK -f 2 –s16 –power -4 –rrc-rej 10 -v | leaniiotx –bufsize 65536 –nbufs 32 -f 2449e6 -s 666000 –bw 333e3 -v
Using AD936x FIR interpolator x4
Setting RF bandwidth 333 kHz
Interpolation: ratio 2/1, rolloff 0.350000, 21 coeffs
** IIO: out_voltage_filter_fir_en failed with Unknown error -22

unixpunk

Have you made sure that openwebrx or dump1090 isn’t running? You need to set the PlutoWeb to use ‘none’ or ‘SoapyRemote’ for the running program first. Aside from that, you’d have to ask the author of leansdr.

Mike

Bit odd – I wasn’t running either but it seems I have to run SoapyRemote for it to work – then it doesn’t work very well, maybe because the signal is so weak. Not sure but the constellation received is quite poor and does not lock. Any way of allowing us to set the TX power parameter?

unixpunk

If you mean that leantrx should have a field for TX power, you can ask them to add it, but that’s not something I could do. If you know what option on the command is TX power, I can edit the cgi to force specific values, I think. Open an issue on github if you have specifics.

Val

Great to see some progress on PlutoSDR projects. It’s an awesome SDR (I own both Pluto and HackRF so I can compare sensitivity and stuff like that) which desperately needs more software. It has a lot of potential for sure.

Bernd

I flashed the image and now have a bootloop.
im on latest firmware.

unixpunk

There are resources online to help with flashing the pluto, that’s beyond the scope of the project and I suspect these comments. Flash all the files in order and you should be set then. You should still be able to get to DFU mode again by holding the reset button and applying power.

Bernd

DFU restore works fine.
But i cant get that firmware to work. i tried DFU and Mass Storage. DFU flash works, but bootloop again.
Something is wrong with your image.

unixpunk

Have it running on several units. All i can suggest is you flash boot.dfu, pluto.dfu and then uboot-env.dfu. That should work. Sometimes the bootloader is not up to date and once you flash it, then you can flash pluto.dfu on its own next time and it will work. HTH

Bernd

ok after i flashed all dfu files its working now, thanks.

unixpunk

Also, thanks  admin for the post! I’m looking to add a how-to of exactly how I cross-compiled software and built the firmware in a post to rfoverride.com soon as well. I’ll drop you a note then if you’re interested.

me

Still looking for a way to transmit ATSC with a windows box using this SDR..

Timmy

On paper it should be possible, but it would not my direction of choice. FYI: I don’t own a PlutoSDR.
1 install the Analog Devices windows IIO driver (PlutoSDR-M2k-USB-Drivers)
2 Install gnuradio on windows (can be done via the PothosSDR binaries for windows which include it with Soapy)
3 configure Soapy to see the PlutoSDR (SoapySDRUtil –find or SoapySDRUtil –probe=”driver=plutosdr”)
4 Use all the preexisting gnuradio “Digital Television/ATSC” blocks to do whatever you want with ATSC, but you will probably need a ts file (search for “transport stream test patterns” in your search engine of choice) for an easy beginning.

Hint: access it with soapy via: driver=plutosdr,hostname=192.168.2.1 or just driver=plutosdr if it is at the default IP address.

DC8GY

Great project, but only for Linux i think.

Timmy

I’m curious, what OS do you think should be running on the 667 MHz Cortex-A9 CPU inside the Xilinx Zynq Z-7010 FPGA on the PlutoSDR, which only has 512 MiB of RAM and 32MiB of flash.

unixpunk

It is based around and runs on Linux, however Twitch (aka ImDroided) created the webUI to aid those who do not know Linux, this way you don’t need to SSH in and use the settings.sh file to change things around. You can also edit the config.txt on the USB mass storage device to change settings. In addition, there are ways in Windows to flash the PlutoSDR with a new firmware, so you could flash it and never use Linux while still using the features on the firmware.

Hope that helps!

EA8DGL

Great project, thank you very much!

Twitch

Awesome our project made it here. We’re looking for more software that will work with the Pluto so we can include it in the image. If you know anything with plutosdr support please head over to GitHub and let us know.