unixpunk / PlutoWeb

PlutoWeb
73 stars 19 forks source link

v2.9.1 #39

Closed unixpunk closed 5 years ago

unixpunk commented 5 years ago

Upgrade to 0.29 hard float and full recompile - previously compiled pluto bins will NOT run here!

BUT - compiling software to run on the pluto just got easier because of this. You can compile natively on a Raspberry Pi3 using some or all of these compiler options: -mfloat-abi=hard -march=armv7-a -mtune=cortex-a9 -mfpu=neon -mvectorize-with-neon-quad -Wformat=0 -DNEON_OPTS -funsafe-math-optimizations

unixpunk commented 5 years ago

https://github.com/unixpunk/PlutoWeb/commit/6d824135b305b13d4d546f92d1c1975e3b6a044a

unixpunk commented 5 years ago

@glangsto If you flash the latest image here of PlutoWeb it will not only have retrogram-plutosdr on it, but also python and some other things. If you have suggestions for other interesting software, please create a new issue for the request and I'll see what I can do.

Sorry for the back and forth on the binary stuff, I didn't realize that they hadn't switched the firmware over to hard float yet even though the buildroot config file suggests otherwise, missed that its for .30... We're just ahead of the game. :)

glangsto commented 5 years ago

HI again, I'm really looking forward to using PlutoWeb. Unfortunately I must still be missing something. I keep getting v0.29 of the firmware, no matter what I try to install.

A simple question. When using the dfu mode, via device_reboot sf Do I need to reboot after each dfu-util -a execution.

I've been doing them all at once

1994 dfu-util -a uboot-env.dfu -D uboot-env.dfu 1996 dfu-util -a boot.dfu -D boot.dfu 1997 dfu-util -l 1998 dfu-util -a firmware.dfu -D pluto.dfu 1999 dfu-util -l

Then using the ubuntu gui unmount. The blue light does flash fast as if programming is happening, however I never seem to get a different version. Always v0.29 when I login.

This is true if I'm trying to load v0.28 of the firmware also Suggestions?

Thanks Glen

unixpunk commented 5 years ago

Well, first, PlutoWeb is .29 as well. The way you could tell if you're running PlutoWeb is that there will be other details appended to the motd you see at SSH login and also if you're able to reach http://192.168.2.1

I've not see the issue you described though. I don't have dfu-util handy to check, but I've never used -l after a flash, I use -e to eject the device and cause it to reboot. Otherwise the !1998 line is right. AFAIK you don't need to reboot after each image flash, but if you're already .29, then you don't need to flash anything more than the pluto.frm or dfu file to get on to PlutoWeb. Hope that helps!

glangsto commented 5 years ago

Hi Unixpunk, Thanks your new version seems to be working properly now. I think that during installation I got the dfu file upload wrong and it corrupted my PlutoSDR. However using the reset button to go into dfu mode fixed the problem.

PlutoWeb seems to be working properly now, so far as initial tests are going. Thanks!

glangsto commented 5 years ago

Hi Unixpunk, I've started more testing of your latest version. I'm having a bit of an issue with retrogram-plutosdr.sh I rebooted to make sure nothing on my computer was using the PlutoSDR.

Glen

reboot

packet_write_wait: Connection to 192.168.2.1 port 22: Broken pipe

odroid@odroid:~/Desktop/Research/PlutoWeb/plutoweb/images$ ssh root@192.168.2.1 The authenticity of host '192.168.2.1 (192.168.2.1)' can't be established. ECDSA key fingerprint is SHA256:nBHEpPsnlQTyPQEGn9g1ywhF2vTTo6krFPInwVW/SMc. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.2.1' (ECDSA) to the list of known hosts. root@192.168.2.1's password: Welcome to:


| \ | | | / | _ \ \ | |/ / | | | \ --.| | | | |_/ / | __/| | | | | __/ _ \--. \ | | | / | | | | || | || () /_/ / |/ /| |\ \ _| ||_,|__/__/|__/ _| _|

v0.29-20-g756c-dirty http://wiki.analog.com/university/tools/pluto

PlutoWeb v3.0

http://pluto.local/

Run settings.sh to see available options.

Dual-core enabled 70-6000Mhz range enabled

Auto-reboot disabled Auto-updates disabled

cd /bin

ls ret*

retrogram-plutosdr.sh

./retrogram-plutosdr.sh

retrogram~plutosdr - ASCII Art Spectrum Analysis for PlutoSDR

Creating the pluto device with options: ip:192.168.2.1...

Setting RX Rate: 10.000000 Msps... >> Actual RX Rate: 9.999999 Msps...

Setting RX Freq: 100.000000 MHz... >> Actual RX Freq: 100.000000 MHz...

Setting RX Gain: 73.000000 dB... >> Actual RX Gain: 73 ...

Setting RX Bandwidth: 56.000000 MHz... >> Actual RX Bandwidth: 56.000000 MHz ...

Could not create RX buffer: Device or resource busy

glangsto commented 5 years ago

Just found that if I did a top on the PlutoSDR, after reboot, that rx_sdr was running, as was python openwebrx.py These were preventing retrogram from running.

Maybe add kill $(pidof rx_sdr) kill $(pidof python) To the beginning of retrogram-plutosdr.sh ? retrogram-plutosdr.sh Is running fine after killing the processes

Thanks -- Glen

glangsto commented 5 years ago

This is a question, not an issue. I find that the PlutoWeb kernal does work fine with GnuRadio with the PlutoSDR Source block of Gnuradio companion. Is it also accessible via Osmosdr or SoapySdr interfaces?

Thanks.

unixpunk commented 5 years ago

You're doing it the hard way :) You could use the webUI on port 80, the leantrx button at the bottom stops all radio-related processes and retrogram works then. You could also run settings.sh -r none and to make it the default in nvram, settings.sh -r none -W y OR edit config.txt on the mass-storage and change the first value in plutoweb section from openwebrx to none, save and eject the device. services are then stopped.

unixpunk commented 5 years ago

RE Osmo, I think there was something different that @lamableu did to make his image support the osmo stuff, or maybe I'm mis-remembering his release notes and he didn't. Unless it does out of the box, I didn't do anything that I'm aware of that would add this support.

LamaBleu commented 5 years ago

HI, osmocom is running with Pluto support, and SoapySDR as well. However you have to compile it. ` osmocom_fft

gr-osmosdr 1c978463 (0.1.5git) gnuradio 3.7.10

built-in source types: file osmosdr fcd rtl rtl_tcp plutosdr rfspace airspy soapy redpitaya spyserver

Using PlutoSDR URI = ip:pluto.local `

You have to compile osmocom with plutosdr support (soapySDR is included in all osmocom versions) from here : https://github.com/csete/gr-osmosdr-gqrx (choose plutosdr branch)
I have my own directory which includes the classic osmocom drivers + plutosdr + spyserver client (to use on GQRX and GNUradio).
Take care when compiling to the destination path (classic issue for gnuradio) at the cmake step, replace by : cmake -DCMAKE_INSTALL_PREFIX=/usr ../

You can also use SoapySDR without osmocom.
Hope this can help

glangsto commented 5 years ago

Hi
I confirm that Lamableu's gr-osmosdr version is compatible with the PlutoSDR. I could run an AIRSPY-mini with the same gr-osmosdr code and then easily switch to the PlutoSDR. The only thing to remember is to first stop PlutoWeb's "rx_sdr" program, which auto-starts after each PlutoSDR reboot.

Otherwise in gnuradio you get an error message, something like "FMComms2, cannot create buffer", which actually means software is already running on PlutoSDR.

One issue that persists is: With the AIRSPY-mini I can almost get every bit of data with 6 MHz bandwidth. With the PlutoSDR a little more than half the data are dropped at 6 MHz bandwidth. At around 3 MHz bandwidth no data are dropped with the PlutoSDR and gnuradio. (This is on an Odroid XU4)

The many additional features in the Unixpunk/PlutoWeb kernal are great. The kernel seems to provide a good basis for custom software develoment.

unixpunk commented 5 years ago

As mentioned, you can set the startup program to none and write that to nvram so nothing starts on boot. Also, I've made no changes to the kernel, this is the same kernel used by all firmware unless its specifically built during the firmware compilation.

unixpunk commented 5 years ago

Calling this tested. Please open separate issues for each addition request to the image.

glangsto commented 5 years ago

Thanks Great work!