Code Monkey home page Code Monkey logo

plutoweb's Introduction

PlutoWeb

*** This repo is huge, I don't suggest you clone it but rather grab the latest tagged release source code bundle. https://github.com/unixpunk/PlutoWeb/releases/latest

Use latest plutoweb image for most flexibility going forward. All other single-program images moved to legacy.

Suggested method of flashing the FIRST TIME is dfu: uboot-env.dfu, boot.dfu, pluto.dfu

From then on you just need to flash the pluto.dfu or drop the pluto.frm in the USB mass storage device and eject, you don't need to reflash the others until the next plutosdr-fw update.

Suggested method of configuration is config.txt in the USB mass storage device.

If you don't want to flash these images to test, tar up the overlay folder from legacy/dump1090 or legacy/SoapyRemote, scp tarball [email protected]:./ then ssh [email protected] cd / && tar xf root/tarball && ls /bin.

Create new issues with suggestions for other software to package into images for the PlutoSDR and I'll see what I can do.

Notice

The PlutoSDR was designed to be hacked...its a learning tool. There is NO security on it. It should NEVER be presented to the internet publicly. Any remote access should be done via VPN or other secure tunnel like SSH. This ESPECIALLY includes PlutoWeb itself!

Features

PlutoWeb interface up and running thanks to ImDroided
PlutoWeb has the ability to select which program to auto-start at boot
SoapyRemote automatically allows both normal PlutoSDR via USB and remotely via OTG Ethernet/Wifi
OpenWebRX supports persistent settings - change them via USB config.txt file, via SSH settings.sh command or via the PlutoWeb interface
Persistent sdr.hu settings allowing the pluto+ethernet adapter to be listed on sdr.hu (search pluto to find any online)
LeanTRX (and leansdr) - Until there is a leantrx button on PlutoWeb, select SoapyRemote instead. Then visit the /leantrx/ URL on your pluto.

Known Issues

Wifi doesn't work at all? Anyone have it working? Please open an issue with details on the device and any steps taken to get it working.

Install

There are 2 ways to flash the PlutoSDR the first is:

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.

The other way to flash the PlutoSDR is with the dfu utility. From the plutoweb/images directory run

sudo dfu-util -a firmware.dfu -D pluto.dfu

If you have issues after and it wont come back up you will need to flash boot.dfu

sudo dfu-util -a boot.dfu -D boot.dfu

plutoweb's People

Contributors

imdroided avatar unixpunk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

plutoweb's Issues

Update settings.sh so options omitted are not overwritten with defaults

Right now if you leave any option off the settings.sh command line, it will reset to the defaults at the top of readsettings.sh. (As expected) Need to update settings.sh to sed the /root/temp-settings file instead of recreating it each time. Then we can change only specific items and not wipe previous settings.

Implement a streaming option for in-browser listening

This would mostly be for WBFM but could be used with anything that plays audio. WBFM is the biggest use-case since its not supported by OpenWebRx.

Current idea = Icecast + ices2
This would allow the output from rx_fm or rx_sdr to be piped into ices2 and then played via the web browser through Icecast.

Its a bit heavy-handed, but not finding any other real solutions to be able present an audio "file" to the browser for easy playback. (I say "file" because it can't be a real file, there's no space, it has to act solely as a stream when fetched.)

Update plutosdr-fw to v.29

Summary

Minor Linux driver bug fixing see full log below.
Update to libIIO Version 0.15
Add firmware update script
Some license file updates
Update HDL to hdl_2018_r1 branch
**_Use Vivado 2017.4_**

Changelog:

d8766c7 Merge pull request # 22 from analogdevicesinc/readme-fix
9ae5054 Matching SDK and HDL compiler versions in readme setup steps
81cb640 Merge pull request # 21 from af7ss/master
81b5679 Updated README.md to added instructions for the case where a build fails due to an issue with eclipse & GTK3 on Ubuntu 16.04LTS.
10179f4 build: remove ADI_LEGAL var and use TARGET var for legal info
fb9d384 scripts/legal_info_html.sh: close omitted div
76aa80a 53-adi-plutosdr-usb.rules: add SidekiqZ2 entries for udev
8c60099 build: clean the build dir on each run
36fbc8f build: parametrize ADI legal info for Written Offer
e155453 build: parametrize the build artifacts for Pluto & SidekiqZ2
b0ab360 build: add sidekiqz2.its file
23dd81d .gitignore: add vim swap files
c5d3453 Merge pull request # 17 from analogdevicesinc/tweak-license
5b332c2 LICENSE.md : Update with some wording tweaks, move the WARRANTY section to 80 chars
57d7e3e legal_info_html.sh : Add BSD license, and tweak output to make it look like the other files on the mass storage device.
9bd17f1 LICENCE.md : fix spelling
Changelog buildroot:

analogdevicesinc/buildroot@04dceb2 board/pluto/update_frm: Add update firmware script
analogdevicesinc/buildroot@2bf8687 board/sidekiqz2/S23udc: Use proper EpiqSolutions USB VID 0x2FA2
analogdevicesinc/buildroot@bb73d01 Revert "sidekiqz2: use Pluto's msd data"
analogdevicesinc/buildroot@2bc57fb Merge pull request # 5 from analogdevicesinc/sidekiqz2-symlink-pluto-msd
analogdevicesinc/buildroot@afaeee8 sidekiqz2: include LICENSE.html file in msd image
analogdevicesinc/buildroot@ba88a2d .gitignore: add vim swap files and ignore all VERSIONS files
analogdevicesinc/buildroot@69bff7d sidekiqz2: use Pluto's msd data
analogdevicesinc/buildroot@6bf90df board/sidekiqz2/device_config: Fix FIRMWARE name
analogdevicesinc/buildroot@f87e89f html doc pages: Add placeholders & requests for translations which don't exist yet
analogdevicesinc/buildroot@e159889 html doc pages: add link to license at top, and fix locations of files which don't have translations yet.
analogdevicesinc/buildroot@c1275f0 style.css: Add a box with a border around it for the license
analogdevicesinc/buildroot@9615fbc Merge pull request # 4 from analogdevicesinc/buildroot-mtools
analogdevicesinc/buildroot@e1ba07a html doc pages: Add placeholders & requests for translations which don't exist yet
analogdevicesinc/buildroot@7335fbc html doc pages: add link to license at top, and fix locations of files which don't have translations yet.
analogdevicesinc/buildroot@eb10071 style.css: Add a box with a border around it for the license
analogdevicesinc/buildroot@bf182c6 package/libiio: Bump to Version 0.15
analogdevicesinc/buildroot@529fc34 pluto,m2k,sidekiqz2: fix post-build scripts
analogdevicesinc/buildroot@980d892 host-genimage: add host-mtools to dependency list
analogdevicesinc/buildroot@b5fd2f3 pluto,m2k,sidekiqz2: add set -e specifier to post-build script
analogdevicesinc/buildroot@31713e5 Merge pull request # 3 from analogdevicesinc/sidekiq-z2-support
analogdevicesinc/buildroot@33f2ba4 sidekiqz2: add support for new board
Changelog Linux: (only related commits)

analogdevicesinc/linux@56cfbfa arch/arm/boot/dts/zynq-e310: Add EttusResearch E310 IIO Linux support
analogdevicesinc/linux@0c8d461 arch: arm: sidekiqz2: adjust min rx/tx frequencies for filters
analogdevicesinc/linux@7ff28d4 arch: arm: sidekiqz2: remove unreachable filterbanks setting
analogdevicesinc/linux@36f57dd dt-bindings: adi,ad9361.txt: fix typo in doc for filter-banks control
analogdevicesinc/linux@68047cd arch/arm/boot/dts/zynq-e310: Add EttusResearch E310 IIO Linux support
analogdevicesinc/linux@11bd0f5 arch: arm: sidekiqz2: adjust min rx/tx frequencies for filters
analogdevicesinc/linux@8375ccf arch: arm: sidekiqz2: remove unreachable filterbanks setting
analogdevicesinc/linux@575eaae dt-bindings: adi,ad9361.txt: fix typo in doc for filter-banks control
analogdevicesinc/linux@1d889d7 arch: arm: sidekiqz2: add sequencing for RX/TX band switching
analogdevicesinc/linux@59bf8f4 iio: adc: ad9361: adjust RX/TX port selection based on during band settings
analogdevicesinc/linux@dedf3e3 iio: adc: ad9361: add support for pre/post setting sequences
analogdevicesinc/linux@049ddd2 arch: arm: sidekiqz2: define hooks for init/uninit
analogdevicesinc/linux@476d565 iio: adc: ad9361: add hooks for init/uninit states of the system
analogdevicesinc/linux@9aa3649 arch: arm: sidekiqz2: define GPIO settings for external band control
analogdevicesinc/linux@84774e6 iio: adc: ad9361: add basic support for external band control
analogdevicesinc/linux@ce60f09 devicetree: add AD9361 dt-bindings documentation
analogdevicesinc/linux@6e5df94 arch: arm: sidekiqz2: update dt to use AD9364 chip
analogdevicesinc/linux@2221ff8 arch: arm: sidekiqz2: define gpio-line-names for GPIO expanders
analogdevicesinc/linux@880ef57 arch: arm: sidekiqz2: add LNA_SW gpio as hog in the U21 expander
analogdevicesinc/linux@5f79e44 iio: adc: ad9361: use gpiod_set_value_cansleep() when resetting chip
analogdevicesinc/linux@be03583 arch: arm: zynq-sidekiqz2-revb: rename reset-gpio to reset-gpios
analogdevicesinc/linux@a0fe005 arch: arm: zynq-sidekiqz2-revb: rename from zynq-sidekiqz2-reva
analogdevicesinc/linux@48167d4 iio: adc: ad9361: move RX/TX port selection on state struct
analogdevicesinc/linux@0c33f80 iio: cf_axi_dds: Prevent out-of-bounds debug register access
analogdevicesinc/linux@a1dba55 iio: cf_axi_adc: Prevent out-of-bounds debug register access
analogdevicesinc/linux@9b924ae iio: adc: ad9361_conv: Fix skipped TX tune regression
analogdevicesinc/linux@b4b067a iio: adc: ad9361: use proper MAX_BASEBAND_RATE define
analogdevicesinc/linux@715ce15 iio: adc: ad9361: Validate MAX Half Band filter rates
analogdevicesinc/linux@1bd4cde drivers: iio: frequency: cf_axi_dds: Fix function return path
analogdevicesinc/linux@55757f6 drivers: iio: frequency: cf_axi_dds: Fix driver remove path
analogdevicesinc/linux@a93f3c9 .travis.yml: add Sidekiq Z2 to build
analogdevicesinc/linux@e53a308 iio: adc: ad9361: consolidate state struct init/clear
analogdevicesinc/linux@69d898c iio: adc: ad9361: add header guard in private header
analogdevicesinc/linux@434f747 iio: adc: ad9361: opaque-ify some drv structs and split state struct
analogdevicesinc/linux@47d1de9 iio: adc: ad9361: add ad9361_uses_lvds_mode() accessor
analogdevicesinc/linux@e5607f5 iio: adc: ad9361: wrap tx/rx clock data delay functions
analogdevicesinc/linux@dec20d2 iio: adc: ad9361: add accessor for getting device's digital tune data
analogdevicesinc/linux@8d30532 iio: adc: ad9631: add ad9361_uses_rx2tx2() accessor
analogdevicesinc/linux@e0f37fc iio: adc: ad9361: hide ENSM mode pinctrl logic
analogdevicesinc/linux@5387132 iio: adc: ad9361: add ad9361_set_trx_clock_chain_default() wrapper
analogdevicesinc/linux@d2589ec iio: adc: ad9361: move register definitions to separate header file
analogdevicesinc/linux@ebe67ca iio: adc: ad9361: replace printk with pr_err
analogdevicesinc/linux@53a1878 iio: adc: ad9361: whitespaces fixes
Changelog u-boot:

analogdevicesinc/u-boot-xlnx@f5f001e configs/zynq_sidekiqz2_defconfig: Use USB PID 0x5A32 in DFU mode
analogdevicesinc/u-boot-xlnx@720a4c7 sidekiqz2: update u-boot env settings with manufacturer specs
analogdevicesinc/u-boot-xlnx@c43e333 zynq-pluto-sdr.dts: correct file header and update copyright
analogdevicesinc/u-boot-xlnx@abc63df zynq-pluto-sdr: remove xlnx,zynq-picozed-sdr2 compat string
analogdevicesinc/u-boot-xlnx@d8cf117 spi_flash: do not return error code for unsupported flash lock/unlock ops
analogdevicesinc/u-boot-xlnx@ffa45f0 spi: spi_flash: add support for ISSI IS25WP256D flash
analogdevicesinc/u-boot-xlnx@658ace0 arch: arm: add support for Sidekiq Z2 board
Changelog hdl: (only related commits)

analogdevicesinc/hdl@3cf33db axi_dmac: Fix bus resize block reset
analogdevicesinc/hdl@f3102ee axi_dmac: Limit MAX_BYTES_PER_BURST to maximum supported value
analogdevicesinc/hdl@5418dfe axi_dmac: axi_dmac_hw.tcl: Fix indention
analogdevicesinc/hdl@e609c7f axi_dmac: Prevent destination AXI burst length truncation
analogdevicesinc/hdl@bfac561 axi_dmac: adding missing dependency for Intel flow
analogdevicesinc/hdl@c42ed7d axi_dmac: removed harmful SDC constraint
analogdevicesinc/hdl@ad05a5e axi_dmac: AXI3 support on Intel qsys
analogdevicesinc/hdl@2c4d81a axi_dmac: Disable 2D transfer support by default
analogdevicesinc/hdl@05e8604 axi_dmac: Remove unused pause signal from address generator
analogdevicesinc/hdl@2b2c1f6 axi_dmac: Fix some indentation errors
analogdevicesinc/hdl@1ea3ad2 Add quiet mode to the Makefile system
analogdevicesinc/hdl@d8916e6 axi_ad9144: Infer clock signal
analogdevicesinc/hdl@3dac544 axi_dmac_ip.tcl: Add include files to file list
analogdevicesinc/hdl@0f443f4 project-.mk Update CLEAN targets
analogdevicesinc/hdl@89ad5f7 Makefile: Change IP component dependency to component definition file
analogdevicesinc/hdl@0048cc3 Makefile: Don't create invalid sub-project targets
analogdevicesinc/hdl@685f2ea Makefile: Simplify sub-project target generation
analogdevicesinc/hdl@d5040d8 Makefile: Update outdated example
analogdevicesinc/hdl@35a39ba Regenerate library Makefiles using the new shared Makefile include
analogdevicesinc/hdl@2b108c6 Add common library Makefile
analogdevicesinc/hdl@b20714b Regenerate project top-level Makefiles
analogdevicesinc/hdl@297940d Add shared project top-level Makefile
analogdevicesinc/hdl@377247a Regenerate project Makefiles using the new shared Makefile includes
analogdevicesinc/hdl@5272ed4 Add common project Makefile for Xilinx projects
analogdevicesinc/hdl@ec6128d Add common project Makefile for Altera projects
analogdevicesinc/hdl@8a2a394 Remove unused projects/common/Makefile
analogdevicesinc/hdl@8c96438 sidekiqz2: Initial commit
analogdevicesinc/hdl@09a6eb5 up_dac_common: Explicitly define boolean parameter as a 1 bit value
analogdevicesinc/hdl@425e803 license: Fix a spelling mistake
analogdevicesinc/hdl@3499422 license: Update old license headers
analogdevicesinc/hdl@a540770 util_adxcvr: Don't show reset ports for disabled lanes
analogdevicesinc/hdl@0d01c08 util_[c|u]pack_dsf: clear syntehsis warnings
analogdevicesinc/hdl@bce0cf8 util_[w|r]fifo: Reduce synthesis warnings
analogdevicesinc/hdl@eedd8ed up_delay_cntrl: Fix synthesis warnings, no functional changes
analogdevicesinc/hdl@b4ab639 up_[adc|dac]common: Define the DPR registers only when the interface is enabled
analogdevicesinc/hdl@5cba461 axi_dmac: fix synthesis warnings
analogdevicesinc/hdl@4bcf45a common: clean up synthesis warnings
analogdevicesinc/hdl@b6d2def axi_ad9361: clear synthesis warnings
analogdevicesinc/hdl@5bfc585 axi_dmac: Added MAX_BYTES_PER_BURST and DISABLE_DEBUG_REGISTERS parameters to Intel IP
analogdevicesinc/hdl@d13ff8d axi_dmac: In SDP mode REGCEB is connected to GND
analogdevicesinc/hdl@a7b98c3 ad_tdd_control: Fix the tdd_burst_counter implementation
analogdevicesinc/hdl@017dcae up[adc|dac]common: DRP_DISABLE should be boolean
analogdevicesinc/hdl@493fc1d axi: Fix instantiation of up_[adc|dac][common|channel]
analogdevicesinc/hdl@74b922f axi: Infer clock and reset signals of an IP
analogdevicesinc/hdl@758c617 common/up_ : Make up_rstn synchronous to up_clk
analogdevicesinc/hdl@57a61f0 scripts:adi_project: Update ZCU102 device package and board files
analogdevicesinc/hdl@0026617 scripts:adi_project: Use default strategies for synth and impl
analogdevicesinc/hdl@8234ba1 scripts:adi_ip: Update web address format
analogdevicesinc/hdl@7c04e36 scripts: Message severity changes on Vivado
analogdevicesinc/hdl@47e95fc scripts: Update tools for the next release
analogdevicesinc/hdl@43a0695 axi_ad9361: Altera fix lvds interface
analogdevicesinc/hdl@75409ee util_fir_int: Shifted data so that the amplitude at the output of the filter is the same with the input
analogdevicesinc/hdl@096aadb util_fir_dec: Changed output rounding mode to Symmetric rounding to Zero
analogdevicesinc/hdl@53033a9 axi_dmac: Fix tlast generation on AXI stream master
analogdevicesinc/hdl@6cd0d8a axi_dmac: Don't add CDC constraints when all clocks are synchronous

Add ssh terminal to web site

Looking to add a ssh terminal to the site but having trouble finding a basic non over bloated option. We need to find something that requires no install on the pluto just using java or something.

Web page updates

  1. Does the settings popup pull the current settings or just use some pre-defined defaults? Can you make it pull the current settings each time if it doesn't already? Not sure how you want to do that, you could cat /root/temp-settings and pull out the values or run /bin/readsettings.sh and pull them from the output. I can help where needed using awk or whatever to strip out the unnecessary stuff.

  2. The auto-reboot was changed from 24 hours to 12 hours since I still see if randomly going dark. I need to hook back up the UART to see what the deal is when OTG goes dark. For now, take out the '24h' from the settings page for the reboot and just leave it without a time range for now.

Change updatewatch.sh unzip command options

Issue is that unzip on the pluto doesn't support chmod, so if you change perms on an existing file on a pluto, they don't apply unless the files are deleted before running the update. Should be able to change unzip flag, if not, then consider changing to tgz. Latter might be best since its likely tar and gzip will always be part of the image, unlike unzip, which I had to add to the image. (Changing to tgz could save a tiny bit of precious space though.)

Reported by @LamaBleu (Thanks)

SoapyRemote?

Hi,

I cannot get the SoapyRemote to get working on the latest PlutoWeb (v2.7)

Something weird is that the local SoapySDRUtil reports a somewhat unexpected path:

# /bin/SoapySDRUtil --info
######################################################
##     Soapy SDR -- the SDR abstraction library     ##
######################################################

Lib Version: v0.7.0-gd79a09d3
API Version: v0.7.0
ABI Version: v0.7
Install root: /home/steve/Desktop/SDR/Pluto/staging
Search path:  /home/steve/Desktop/SDR/Pluto/staging/lib/SoapySDR/modules0.7 (missing)
No modules found!
Available factories... No factories found!
Available converters...

It seems the paths matches the build environment, not the installed one.

The actual search path would rather be: /lib/SoapySDR/modules0.7

Soapy tools are rather terse about debugging option switches or even configuration option switches.

Is there any FAQ/HOWTO about SoapySDR remote with PlutoWeb, I guess I'm missing something.

v2.9.1

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

  • Added retrogram-plutosdr as /bin/retrogram-plutosdr.sh Accepts command line options just the same, simply wrapped it so you don't need the export TERM step.
  • Added morfues_tool
  • Added gnuplot and libpng
  • PlutoWeb UI now has LeanTRX button and top tab/link (button just stops all services so radio is free'd up)
  • Updated all SoapySDR components and switched to pathos SoapyPlutoSDR module
  • Updated leansdr components
  • Updated multimon-ng
  • Updated rx_tools

Leantrx power

Lean TRX has a power parameter (--power) but it isn't available on the DATV TX web settings.

Optimize nvram r/w scripts and integrate with config.txt

Edit readsettings.sh and savenow.sh so that we create and use a "fw_setenv -s"-compatible /root/temp-settings file instead of writing each variable individually. We also need to use the LED status during nvram saves/erases. Use scripts from buildroot/boards/pluto/update.sh.

Then to integrate with config.txt, piggy-back on buildroot/boards/pluto/S40network and during the creation of config.txt, append the PlutoWeb variables in there as well. Then to support changing them in config.txt and ejecting the device, we'll need to edit buildroot/boards/pluto/update.sh process_ini() function to include the PlutoWeb variables.

edit settings script

Can you edit your script to include a no flag for all yes or no options i.e write to nvram, autoupdate....... This will make the web CGI script work for everything. Currently it wants a flag for all settings and this would be the easiest fix.

Auto-updates on startup don't extract right

For some reason every time I extract the update.zip on the pluto the /lib/libSoapSDR library comes out wrong/almost empty..I can unzip fine on my desktop though...strange...this means openwebrx and soapyremote won't work. Maybe there's an 'only update older files' option on unzip on the pluto?

Make a nicer README.md?

Want to pretty-up the main README.md file? Maybe with some screenshots and/or better instructions on usage? Really needs some better structure I guess.

settings.txt integration

  1. You don't need to include a default settings.txt you created, /bin/readsettings.sh gets called at boot and will create it from the settings it got from nvram.

  2. Can we redo the order in your settings.txt file because I'm already using a certain order in several places and keeping this the same would be easier since the order actually matters here. Also, all values will always be lowercase unless its SoapyRemote in which case it will have caps in it. This is because this variable is used to know which program to start so it has to match the name exactly. Also, I use a lowercase y for the autoupdate and autoreboot is now configurable in the number of hours.
    (The list below is just to show order, settings.txt will only contain the actual values.)
    autostart=openwebrx
    autoreboot=12
    autoupdate=y
    center_freq=460250000
    start_freq=460102200
    samp_rate=600000
    start_mod=nfm
    rf_gain=89
    ppm=0

Post the change here once you redo the order, then I'll finish the script.

add LearnTRX option to settings.sh

maybe add a LearnTRX flag to settings.sh so in the future if we can ever pass stuff along to it might make things a bit easier. then I can call that with the CGI file instead of the none flag

Question: Will the latest PlutoWeb kernel work with IIO?

This is more of a question than an issue. I've successfully run some python on the early January 2019 PlutoWeb kernel. The new capabilities are great.

However I'm having some trouble running some of the interfaces with PlutoSDR and Gnuradio companion graphs. Which, if any, of the Gnuradio-companion source and sink blocks
work with this version of the PlutoSDR kernel?

Thanks for all your effort.

Best regards
Glen

[enhancement] interfacing Pluto to embedded system e.g. STM32

Hi unixpunk,
glad that I have located your GitHub and see how much nice work you already have done. Maybe there is an interesting feature wish which is easily to do by you but not by me... I am working at a SDR standalone TRX project which uses STM32H7 (or F7) MCU. It is working already very nice using Tayloe mixer front for lower frequencies < 50MHz. But with upcoming Es'Hail it would be very nice to do much more than 50MHz.... Here you can find the project: https://github.com/df8oe/UHSDR Pluto has the capability of covering the "missing frequency range". But it does not have a simple possibility to adapt it to an embedded systems MCU with low RAM, low horse power (comparing to PCs or Raspberry Pis). What is needed is a communication via SPI. I am not sure SPI bus is present on the GPIO headers - that would be nice. Then a simple protocol which allows setting of samplerate (which is coming back to outside) and middle frequency via SPI and get out IQ data stream would allow to drive Pluto with our standalone TRX solution ;) Can you imagine to implement such a SPI interface?

EDIT:
I have investigated: we do have SPI1 bus of Zync on external connections! It is PS_MIO10 (MOSI), PS_MIO11 (MISO), PS_MIO12 (CLK) and PS_MIO13 (CS). 12 is named as UART_TX and 13 as UART_RX at the connectors header of Pluto. So everything would be "ready to go" at hardware side...

73
Andreas, DF8OE

SoapySDRServer dies

I'm not yet sure whether it is due to a comm issue from a client, or if may die while being idle, but SoapySDRServer dies sometimes (2 times in a 2 hour timeframe for now).

I think it could be useful to restart it automatically.

Possible enhancement for PlutoWeb

I've been trying to write a custom bit of C-code to detect events in the PlutoSDR data stream.
This would run in the PlutoSDR and write sequences of samples centered on detected
events, time tagged.

For radio astronomy, and particularly cosmic ray detection, it would be fantastic to have
a bit of code watching the PlutoSDR data stream, at wide bandwidth (60 MHz), and would record
rare radio flash events. The duty cycle would not be large, not more than about 1 event a minute,
so the data rate would not be too high. The detection would be based on setting a
threshold number of "sigma" of an event, which would be large, say 10 sigma, so would
never happen for Gaussian distributed noise.

This would also be useful for other Radio research, like detecting 1 PPS pulses, or other
equipment glitches.

Our group of researchers is building a high-school level radio astronomy system, that
would also have a really important key science project, which is very timely,
understanding the cosmic ray background of extreme high energy events. The flashed are created
when extremely high energy cosmic rays hit the earth's atmosphere. The reason
this would be a great project for high schools is that these cosmic ray flashes only cover
a small area, about the size of a football field. So each set of a few telescopes
would be making a unique contribution. These flashes are rare, a few per year, but
with energies thousands of times higher than can be created in the biggest particle
accelerator.

More info is at: https://opensourceradiotelescopes.org/wk

I'm working on a prototype to run inside gnuradio, but the data rate must be
much smaller in Gnuradio.

Our telescope software is at: https://www.github.com/glangsto/gr-nsf

Thanks again for your time and consideration. PlutoWeb is a great advance.

Upgrade to .30

https://github.com/analogdevicesinc/plutosdr-fw/releases/tag/v0.30

Summary

Switched to the arm-linux-gnueabihf-gcc hard-float toolchain.  (this is already complete for v2.9.1)
Implemented workaround for broken write sysdef.
Update HDL to hdl_2018_r2 branch
Use Vivado 2018.2  (this is already complete for v2.9.1, except we're using 2018.3)
Switched to Linux kernel 4.14
Enabled ext4 filesystem support
Minor Linux driver bug fixing see full log below
libiio Version 0.17
libad9361-iio Version 0.2

14a6611 PlutoSDR: Prepare for v0.30 release
e7622c2 plutosdr-fw: Update to 2018_R2 release and move to Vivado 2018.2
2e943aa README.md: Add note about gcc toolchains

Enhance PlutoWebUI

Some suggestions for the PlutoWebUI are:

  1. List out all current settings somewhere on the screen or in an overlay from a link, just the text like plutoweb.conf (except without the 'export')

  2. The defaults filled in for the settings on the UI should always be the current active settings when you refresh the page, this way if you change only one, it never resets any others.

  3. Have the status of (either) which daemon is currently running OR a running/stopped flag next to each daemon (I can help with commands to identify this one or I can make a script that will tell you certain things about the running daemon if you want, like pid and maybe port number?)

  4. We should also add a LeanTRX daemon button, but instead of it setting the program to SoapyRemote, it can set it to none instead. (The word none) It can have a link to /leantrx there too.

Create OpenWebRx "Pre-sets"

Create pre-sets for different settings in OpenWebRx.

Last used pre-set will be retained if written to nvram.

It will act as an override to plutoweb.conf during run-time only and will not actually modify the variables or nvram.

Will need a new variable created that can be written to nvram, "openwebrx_override". It will always have an integer 0-4 with 0 being default.

Will need a drop-down menu on the main page and settings screen with 5 options:
0- Pre-set Overrides Off
1- 100ksps - 15 Users Max
2- 300ksps - 7 Users Max
3- 900ksps - 2 Users Max
4- 1.5msps - 1 User Only

The change will take effect when clicking start on the main page or save settings on the settings page.

The $openwebrx_override value will be on line 26 in settings.txt.

Create auto-update script

We'll only be building a new image for new releases instead of for every change. An auto-update script can keep older images up to date with the git repo until the next image is out or until its flashed.

  • Script should run at boot during S90-S94
  • Should be on by default
  • Should be able to be disabled w/persistence via settings.sh
  • Likely also means adjusting S94pluto-mods to have an earlier start so mods are done and rebooted before the auto-update script fires

Optimize for size

Remove...?

Buildroot:
libini
unzip --> #34
compare py sources to py compiled
file

Overlay:
www/putty.zip

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.