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.

36 comments

  1. 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.

  2. 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.

            • 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

                    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.

  3. 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.

    • 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

  4. 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.

    • 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.

    • 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!

  5. 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.

Post a comment

You may use the following HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

This site uses Akismet to reduce spam. Learn how your comment data is processed.