AM in particular is quite intuitive as you can study the modulation visually. IMO it's the "everyone could have invented that" modulation technique.
FM is built on a simple idea, but it has more involved maths.
Analog television signals are way more complex IIRC.
Re: the lib you linked - libs used to deal with radio signals is made by people who have studied signal processing and comm systems formally so you will see lots of jargon and advanced maths like Fourier Analysis. However, you most likely can build something shittier yet working by yourself by understanding the fundamentals of how those signals are encoded, modulated and transmitted.
There's for example SDR++ (https://www.sdrpp.org/), which has lots of plugins to decode specific types of signals, or SDRangel (https://www.sdrangel.org/), which has quite some digital signal decoders built-in.
Try out gnu radio, you build flow graphs in a GUI and it executes them in real time.
You really should play with audio samples from your system to get a feel for things, before diving into the math. You can also use it with a $30 rtlsdr dongle.
For those interested in SDR, there was recently a discussion here on signals identification [1], and some months ago a discussion of NXP's new LA9310 ADC chip for radio applications [2]:
Sadly the LA9310 DSP instruction set is considered highly proprietary[1] by the manufacturer, NXP. So I'll give this one a miss, and choose a FPGA based SDR instead. Some of the FPGAs even have a completely open-source toolchain, that has been developed by reverse engineering the bitstream format.
University of Twente in the Netherlands has a great websdr[1] running some custom hardware that can tune into pretty much the entire shortwave spectrum. I've spent countless hours tuning in to various European radio stations and broadcasts (you can even pick up the odd number station if you are on the right frequency and get lucky with timing).
This link is pretty famous in some “conspiracy theorist” circles, specifically those interested in “Skyking”.
Skyking is a military radio transmission protocol, believed to be command-and-control in nature. Some believe there to be a correlation between the length of the encoded message/how many times the operator says “Skyking” and the DEFCON level/how close the US is to blowing shit up.
If you're looking for chatter, check out https://pota.app and filter by SSB. You'll hear people making contacts for the Parks On The Air program.
10m (28MHz) has great propagation right now during the day so you'll hear people talking across great distances, like California to Japan or Australia.
Randomly clicked on to a greek located site, and wondered what they were talking about so I sent a bit of the audio to openai whisper api just to find it was mostly radio etiquette and souvlaki recipes.
> 12 and a half, one. So, I eat all my food. I eat these wonderful souvlaki. There's a table next to it. I sit down. So, once again, once again. The best souvlaki in Greece. What can I tell you? That's it. Every Saturday. And outside Athens. I'm not in Athens. Somewhere outside. So, we'll talk about it. So, Dimitris. So... Yes, yes. So, yes. Ok. I'll give the microphone to Papa My Golf. Ok. And he'll give 20 more. This time. So, I'll let Victor speak. I'm listening to you, Papa My Golf. Next time you should have more signals, Papa My Golf. We're probably talking less today. So, I'm listening to you. Ready. Good, good. There's a gap. Very good. The company doesn't help to do many things on its own. Whatever it does now. I think we should go to the next recipe. Thank you, Dimitris. I have a break. I'll give the microphone to him. Good morning. Papa My Golf here. Good morning. Papa My Golf here. Good morning. I think I'll give the microphone to him. I'll give it to him. Next time. Ok.
> ![[websdr_recording_2023-10-27T05 51 46Z_7197.0kHz.wav]]
I would like to wish you a very good morning, thank you very much for your years, and you too, if you have a celebration or you are celebrating, to enjoy them, to be well. Well, I have listened to Danasis, I have listened to Christos, I have listened to my friend Petros, I have listened to my friend Giorgos, all the company here. Well, I don't know, now I will listen to you here, if there are other guys, my good morning. But I won't take it, because I have to go. Just for a good morning, I stepped here at 797 and I know bread, and I will go to my friend Danasis, my friend here. It's me, your friend, come. Come, come, good morning, good morning Dimitris, good morning. What's up, what are we doing? I'm glad to hear you, my happy years, of course, I sent you my happy years yesterday, and I saw that you received it, so since yesterday it has been a while, but even today, it doesn't hurt, and the more wishes we give, the greater is the possibility that these wishes will come true. Well, I see. Don't tell me, let's talk for a while, Dimitris, before we move on to the next one. In any case, are you ready?
Most likely Papa Mike Golf, rather than My Golf, Mike being the NATO phonetic alphabet representation of M. It's a reference to the last three characters of the operator's callsign.
Years ago I made a couple of SoftRock receivers for the 20m and 40m CW bands and put them on a couple of Raspberry Pis. I got WebSDR to run on it and it's kinda become a thing now.
> Q: My SDR can be tuned from 0 to 30 MHz (or from 25 to 1900 MHz, or whatever). Can I offer all of that tuning range to the users?
> A: No. Such an SDR does not feed the entire 0-30 or 25-1900 MHz spectrum to your computer: that would be way too much data. Instead, a small part (at most a few MHz) are filtered out in external hardware, centered around some frequency that you can tune. With the WebSDR software, users can only tune around within that small part of the spectrum. You (as the operator of the site) choose the centerfrequency
W3C WebUSB enables USB device access from JS, TypeScript, WebAssembly, and anything that emscripten emcc can compile to WASM (for use with the in-browser WASM runtimes, or the newish docker WASM runtime CLI arg). Emscripten-forge is one way to build WASM WebAssembly from e.g. C, Python.
Pipewire may now arguably be the best way to handle audio and video streams with Linux. Pipewire is not yet supported on OpenWRT ? but is probably already supported by DragonOS (Lubuntu 22.10+)?
The OpenWRT wiki lists a few different weather station apps that can retrieve, record chart, and publish weather data from various weather sensors and also from GPIO or SDR; pywws, weewx
> Citizen Astronomer Network:
The Unistellar Network is a worldwide community of Citizen Astronomers working in partnership with professional astronomers at the SETI Institute. Members use their Unistellar telescope to collect astronomical data, which is supplied to SETI Institute astronomers who then use it to develop predictions and models
Actually the instantaneous bandwidth of a ryberg antenna based receiver is only about ~4 MHz in implementation papers I've read. A good fit for a 2 MHz instantaneous banwidth $20 rtl-sdr dongle. The 0-20 GHz is the tuning range (again).
How many 4 or 2 Mhz antenna/transceivers are necessary to sufficiently cover a 0 to 1 Ghz (0 to 1000 to 1000000 Mhz) band? What about to cover 1 Thz: (terahertz) band(s)?
How should they be placed in spacetime to minimize signal loss e.g due to crosstalk and cost?
I have a pm2.5 sensor that hooks to a weather station I don’t have. I am using a cheap SDR to grab the data over the air and dump it into a mqtt topic for consumption in home assistant. Standing on the shoulders of giants and all, but it’s still pretty neat.
I use rtlamr to receive and record my natural gas usage, and I wrote some code to receive my water usage from my water meter (though I’ve since moved that code to an Adafruit Feather w/ an RFM69 module).
I run a local Fire/EMS scanner feed for my county so people can listen in without a scanner or SDR of their own. It uses a bunch of directional antennas in the attic for best reception (I can't put up a giant mast antenna) connected to a bunch of Nooelec rtl-sdr dongles.
Unlike a traditional scanner which only monitors one frequency at a time, if two things are happening simultaneously then you hear them both. This would be annoying or unlistenable in a busier area, but in my area it works fine.
I put together a VOR navigation receiver in a GNU Radio flowgraph. It was cool driving around the local beacon and having it point the right way as I moved.
I never tested it, I was just happy to get it working.
If I were to do it over, I'd likely want to optimize things quite a bit to get the sensitivity up.
The amazing thing is, though the RTL-SDR dongles are only 8 bit devices, when you're down-sampling 2Mhz of them to audio frequencies, you gain quite a few bits of resolution. I routinely pick up signals below the quantization threshold.
I wonder what the lower bandwidth limit truly is, assuming a stable reference clock.
Oh cool. I suppose since they have locations too, it should be possible to profile aggregated mains power fingerprints from these for video time and location fingerprints. Though that said, there are probably a few ways to collect that info. If you know the frequencies to profile you could probably store the mains hum for all of them and have a good go at geo-locating video and audio content for many places.
Is there any good open source software for WebSDR? I am living in a very noisy area from RF standpoint, but my parents are living in a better position. So I was thinking to install a SDR and a Raspberry and use them as remote SDR
If you don't need the web interface and your usual desktop SDR software supports rtl-sdr tcp mode, you can easily set up a small board that calls rtl-sdr with the appropriate parameters so that it will wait for a remote connection from the above software, not unlike what happens with WebSDR, but you would be using your usual desktop SDR application which would be native and much more snappy than a web browser. Here's an example using gqrx.
this is pretty neat. i remember some old guy on youtube showing cool things you could do with a cheap sdr dongle. and i remember some guy using gnu radio to hack into a car
Can also demodulate digital modes (DMR, YSF, etC) and it have nice, modern UI.
WebSDR have a weird list of requirements if you want to get install file - should open instance to public, provide lots of info, etc etc etc. It's not just closed-source.
You definitely can, but legality of such procedure is questionable. DMR uses AMBE codec, which require licensing from DVSI, but you can find open-source implementation on github (mdelib, jMBE). Projects such as DSD-FME[1], which allows you to decode much more than just DMR (P25, NXDN or SDRTrunk[2], which allows you to listen to trunking systems (p25, dmr tier 3 and much more) uses software implementation. OpenWebRX users software decoder too https://github.com/jketterl/digiham
> but you need to hunt down EMI sources, before you can properly use it.
Do you have any recommendations for doing this? I have some source that interferes every 11 seconds for a second or so. It causes packet loss with my wifi (2.5 and 5GHz), and makes my bluetooth game controllers really frustrating to use, since input are missed every time it does it. I assume it's in the microwave range.
I'm familiar with RF test equipment, and I've thought about renting a spectrum analyzer, but I assume there's maybe some cheaper way.
You can also use high-Q antennae, if you have a frequency of interest. For instance, on HF (shortwave) a tunable small loop antenna does a whole lot better than a wire antenna in a high-random noise environment. You may still end up chasing down various bogies, but a lot of them can be blocked with the directionality of the antenna or the filtering properties of the antenna (higher Q antennas are more narrowband).
The limited availability of KiwiSDR's have made it crazy high priced. I've been trying to get one for a year now but they're up to like $600 on aliexpress. KiwiSDR2 has been announced, but that's a ways off from being sold.
WebSDR on other hardware is a better alternative-ish.
It is closed. There is a lot of ham radio software that isn't open source. And a lot of open source isn't developed openly. You would think that all of it would be open source but I think a lot of hams didn't come from software world.
To add color to this. The reason being is because a lot of the old C++ libraries and code no longer function so pushing for .NET applications helps bring them into the 21st century. Also, I think it’s more because of the fact that C# is very familiar to C/C++ developers. However, I believe the true target architecture should be Linux and there’s some work in this area. GNU Radio, Gqrx, Qradiolink.
It just depends on where you are looking. There’s plenty of OSS for SDR (it’s in the kernel, btw) on Linux. Windows you’re going to get closed source 80% of the time. Mac, forget about it.
What would people want this to look like? Is there a backlog anywhere of stuff people would want?
Edit: I was thinking maybe something that reads from an rtl or airspy, or maybe soapy? Then takes requests for channels over websockets from a wasm front end, then have the demod wasm side? And a waterfall streamed as a video to aid in making the channel selection? It would save bw to put demod server side, but this way clients could use custom demods if they want.
The perceived stagnation in the field is because you can’t multiplex an SDR stream. One user can control the radio at a time. You can not listen on more bands than your radio can receive at once. Capping out at 192hz band audio sampling on most hardware. Which means you can read a wide signal but you can only read one area of the spectrum at a time.
You would need more radios. If you added more radios you would need antenna that worked across the various bands people would want to listen in on. Those can create “cross-talk” to other antenna close-by. There’s not a simple solution to this. Nor does the novelty of it warrant solving this problem.
I think something like FlightAware where users sample their own radios at frequencies and submit them to a service that can aggregate the spectrum in real-time is the only real way to provide a web-based “tune to any radio frequency” SDR.
An airspy can digitize 12MHz of bandwidth at once. Even without a gpu you can spit out easily over a dozen digitally subtuned channels. The bandwidth for all that raw signal data going out would be the problem. Only one person can control where that 12MHz is centred, but people can pick where in it they want to listen just like they do with websdr now.
Even a $30 RTL-SDR dongle can record 2Mhz of bandwidth reliably. I've recorded hours of signals just in case it sometime later becomes interesting, and it all lives in a little corner of my hard drive.
Damn! Yes, you would need to have one user center the spectrum read and you can mux the output to users wanting specific bands but I had no idea an airspy had such a wide audio capture.
Edit: I looked it up. You are indeed correct. 10MSPS IQ output. 10Mhz panorama spectrum view. That’s ridiculous! I just bought one.
I think the boxy one, the r2 not the mini, had some hacky way to get 80msps but it didn't specify how that made it over usb or why that wasn't the normal operational mode.
Is something like an AM radio signal decoding relatively easy to understand? What about FM? And NTSC?
Is the python code clear-ish? Complicated? Full of math I’m not appreciating?
Thanks!
Ok… it’s not exactly trivial: https://pysdr.org/content/rds.html#fm-demodulation