unixpunk / PlutoWeb

PlutoWeb
73 stars 19 forks source link

Possible enhancement for PlutoWeb #42

Open glangsto opened 5 years ago

glangsto commented 5 years ago

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.

unixpunk commented 5 years ago

This all is a bit beyond my ability, though if you have a workable solution I can probably add it to the firmware without much effort.

ImDroided commented 5 years ago

This would be cool. I'd like to see this.

On Sat, Jan 12, 2019, 12:22 PM unixpunk <notifications@github.com wrote:

This all is a bit beyond my ability, though if you have a workable solution I can probably add it to the firmware without much effort.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/unixpunk/PlutoWeb/issues/42#issuecomment-453769985, or mute the thread https://github.com/notifications/unsubscribe-auth/ANVzaWb3yOQPb17dMgo_LMVx5bIBwCOFks5vCifxgaJpZM4Z8bFa .

glangsto commented 5 years ago

I've created the Python version of event detection for gnuradio and gnuradio-companion.
This event detection code is available at git clone http://www.github.com/glangsto/gr-nsf

A demo graph, eventdemo.grc, shows how the detection is expected to work.

To run at a the full 60 MHz rate on the PlutoSDR this would need to be implemented in C. The event detection needs to run in parallel to PlutoSDR responding to gnuradio requests. I've checked the PlutoSDR cpu usage with "top" while gnuradio is requesting data. The PlutoSDR has plenty of cpu cycles remaining, so event detection should work fine

unixpunk commented 5 years ago

Nice. Does the compiled C code need any outside tools/deps like gnuradio? In short, could I compile it and put just the bin and the other few files directly on the pi and execute it via ssh cli without any other interfacing involved?