I found WebSDR a while back and was fascinated by it, however I was surprised to find out the author, an EE/CS prof[1], has a very closed source view of both the client-side JavaScript code as well as the server-side code. I wanted to poke around the JavaScript and see what I could learn but that's explicitly disallowed by the license[2]:
> Since the intended use of this code involves sending a copy to the client computer, I (PA3FWM) hereby allow making it available unmodified, via my original WebSDR server software, to original WebSDR clients. Other use, including distribution in part or entirety or as part of other software, or reverse engineering, is not allowed without my explicit prior permission.
The server-side code is only available if you email him with plausible reasons you will use it[3]:
> Q: Where can I download the server software?
> A: Nowhere. However, I distribute it (without cost) via e-mail to people who are setting up a publicly accessible server ...
He's well within his rights of course to share his code however he pleases. But it did kill off a fun little idea I had for a Twitter bot pretty quickly since I can't touch the code.
I've noticed that the amateur radio community tends to gravitate towards developing closed source software.
It really confuses me, given both the FCC rules about keeping the airwaves open and unobfuscated, as well as amateur radio being exclusively a community of hobbyists.
There are exceptions of course... The MD-380 firmware, FreeDV, and GNU Radio all being some good examples of open source projects. But it's far from universal, and less common than I'd expect.
1. People who make profit and don't want to lose it to the FOSS crowd
2. People who are ashamed of their code
3. It's status symbol and they
4. They don't realize open source exists
5. They're a corporation which reuses hardware/software/IP from their commercial line of gear (such as D-STAR, Yaesu System Fusion, etc)
N1MM logger [0] fits 3.) - it's the most popular contest logger, it's totally free, absolutely packed with features, and worked on by volunteers, but it's closed source because Tom (N1MM) doesn't want to lose control, but it really seems he enjoys the limelight.
WB8ELK fits into 1.) with regards to his round-the-world high altitude balloon tracker packages [1] He sells his kit for $150, with a BOM cost of $20 and no more than 1000 SLOC. I spoke to him and all he had to say was "he has no plans of open sourcing." I assume it's because it's a good income.
I'm not sure where the WebSDR fits in, but I feel like there's a good reason.
I think in general it's because the ham community sees software more like hardware and less like information - it's something that you work on and make a working thing, not something you share. So closed source, and often non-free, software is common.
I was surprised by the the lack of source as well. OpenWebRX[1] appears to be a competent alternative that is AGPL. I wonder if either of them support the HackRF One...
I work for the CubeSat program at my university, and I emailed him personally asking about why licensing was so strict, and if it would be possible to use the SDRs systemically with some API so I can downlink over other ground stations.
People have tried scraping broadcasts from his service without permission, and most of the places running software don't have the best internet. Scraping data from the station depends on who is running it at that side, although he did tell me he can't imagine why people wouldn't be okay with it (given it's for a university and not a private corporation).
Creating an open sourced API, although would increase popularity and satisfy use cases, would saturate the host internet and tap the physical limits of the hardware. I would really want some SDR network to exist that is open sourced, but physical limits would be reached pretty soon.
maybe not specifically relevant to your use case, but one excellent open source program for ham radio sdr stuff that i have found is linrad. it's got a bit of a learning curve, and is pretty fun once you get the hang of it. the author is very interesting, and has a youtube channel with lots of info on linrad and other ham radio projects.
I experienced the exact same thing. I wanted to record/stream the audio but I found it surprisingly difficult. The Java app is easy to use but much lower audio quality. The client side js heavily relies on the audio api of browsers and I couldn't get it working in nodejs. I don't know why this guy decided on his own audio codec for broadcasting amateur radio over the web. The only viable solution I found to be using an actual browser which is a pain in the ass. This guy is very weird. He wants to share amateur radio but makes it impossible to build off of.
Last time this was posted to HN I spent an entire 6 hours listening to Numbers Stations, international broadcasts, and wrote a DTMF decoder in Java. I don't recommend visiting this if you have actual work to get done.
Cute. So now from your laptop with audio piped into a rec-room amplifier via Bluetooth you can have a Euro-based SW receiver complete with 'waterfall' display and U/LSB (moderate sensitivity) plus with the Google 'Radio Garden' web site you can listen to American pop music in stereo live from Petropavlovsk on the Russian Kamchatka peninsula, an area of significance during the cold war.
This reminds me... I've been wanting to write two apps: one to scan SDR looking for CW, RTTY, and other digital(ish) modes and then send an alert to me (SMS, email, or push notification) that QSOs were found, along with a separate alert type when it finds a CQ call. I don't suppose anyone has done an app like that, have they?
SDRSharp has a bunch of plugins to scan bands and stroll through bands. You could pipe that to CW Skimmer and figure out how to get the data out of CW Skimmer (telnet server, log file, etc).
Could you use something similar to detect digital / data radio transmissions?
Motivation: here in Linz we have electronic signs at bus and tram stops that display how many minutes until the next bus/tram arrives. I believe those signs somehow get their data via radio (they have antennas). I know nothing about the technology used, but since they were installed more than 15 years ago they probably don't use the cellular network.
The company also offers an API with live data, but for some reason the estimates from the API are not as precise as those on the signs. So I'd love to somehow intercept the data sent to the signs.
Does anybody have an idea how to go about that? I know nothing about how radio works.
It's probably something on the VHF frequency which you can pick up via a cheap $15-20 RTL-SDR. If it was installed that long ago there's a good chance it runs on something really simple like DTMF tones.
Something like the 433Mhz ISM band parsing can give you an idea of what's possible[1].
This is a great project; unfortunately the guy who writes and maintains it (regardless of his talent) is kind of a dick. Notice how there is only one "wideband" receiver despite the simplicity of the hardware? There is a reason, and it doesn't mesh well with the hacker ethos that we are all so fond of around here.
Anyway as a basic rundown, the implementation does a very large FFT on the high samplerate data coming in from the ADC and then individual receivers can be constructed by filtering and decimating in the frequency domain followed by doing an IFFT which makes the prospect of running many hundreds of receivers achievable on commodity hardware without having to process the full ~1+gbps dataset for each Rx. The specifics are a bit more complicated, but that is the general idea.
I would encourage anyone who is deeply interested in this technique to please follow the work of Phil Harman VK6PH and Warren Pratt NR0V who are implementing the same type of processing which they term "Direct Fourier Conversion Receivers" on top of the OpenHPSDR hardware platforms. The code including the software and verilog is all open, and there are open OpenHPSDR hardware designs as well.
Also, the neat thing about this particular instance of WebSDR is has a custom SDR receiver that covers ~30MHz of spectrum, whereas most of the ones listed on http://websdr.org/ are much narrower.
With enough of these set up around the world, it would be a great way to test skip conditions and channel noise floor levels. The US military does this with ChirpSounder. I would love to see a civilian version that just listens all around the world.
If it's propagation you're interested in then RBN[1] does a good job of that by parsing morse code and callsigns. Sadly the map no longer exists due to the changes in Google's Map API pricing.
> Since the intended use of this code involves sending a copy to the client computer, I (PA3FWM) hereby allow making it available unmodified, via my original WebSDR server software, to original WebSDR clients. Other use, including distribution in part or entirety or as part of other software, or reverse engineering, is not allowed without my explicit prior permission.
The server-side code is only available if you email him with plausible reasons you will use it[3]:
> Q: Where can I download the server software?
> A: Nowhere. However, I distribute it (without cost) via e-mail to people who are setting up a publicly accessible server ...
He's well within his rights of course to share his code however he pleases. But it did kill off a fun little idea I had for a Twitter bot pretty quickly since I can't touch the code.
[1]: http://wwwhome.ewi.utwente.nl/~ptdeboer/
[2]: http://websdr.ewi.utwente.nl:8901/websdr-sound.js
[3]: http://websdr.org/faq.html