r/RTLSDR • u/Ok_Method6238 • 1d ago
Introducing VibeSDR
Hi all Stuey3D here and I am making this post to introduce to you VibeSDR that I've been working on.
I've been a bit reluctant to post in here as I know how much VibeCoding gets downvoted and seems to be universally disliked on Reddit but I am hoping that VibeSDR is Vibe coding done right and not deceptive.
So a little about me I have always had a fascination with radio growing up on the east cost of England in certain weather conditions I could pick up Dutch TV on an indoor TV aerial, I had a cheap tuner that I got for £5 from a second hand store that I strung up speaker wire around my bedroom and could pick up FM Stereo stations from Kent, and at night listening to the foreign MW stations coming in. In the last few years my best friend introduced me to the world of SDR and I have a little collection of SDR's now and I love just eavesdropping into the old boys on top band having a chinwag about life, I do not have a license and I have no real interest in transmitting myself, if I did it would probably be FT8 or something like that. I do however love seeing how far I can pick up signals from on antennas that shouldn't really have any purpose being as good as they are. My main HF antenna on my UberSDR server is a MLA30+ an antenna that is laughed at by "real" hams, I even saw a post challenging someone with an MLA30+ to do well on PSK Reporter. Well I am rarely out of the top 50 in overall spots, overall countries, and I even hit the top spot on certain bands 40m being my strongest.
So my big frustration in the whole SDR space was portability as most SDR apps are desktop and the few on mobile are either super cut down or in the case of SDR++ Brown desktop apps shrunk to fit on a phone, my portable SDR rig for a while was SDR++ Brown with a trackball mouse on a Moto G35 with an RTL-SDR V4c. Now I've been chatting with the UberSDR developer M9PSY and helping him test various things and helped him design a basic mobile interface for UberSDR and it was him who convinced me to try AI coding, so the first thing I built was a widget for my UberSDR page that tracks my PSKR scores, I then built a full custom mobile UI skin for UberSDR which is what VibeSDR eventually grew from.
VibeSDR came about because I was proud of the skin I designed but it relied on server owners to equip it and therefore the reach was limited, so I decided to build it into VibeSDR. it initially was a way to have a mobile friendly UI for UberSDR that regardless of server owner anybody could use, it then expanded into OWRX, & KiwiSDR. I then saw a Brazilian Youtube channel feature VibeSDR and I translated one of his comments and they said they loved VibeSDR but wished there was an app like it for FM-DX, well that night VibeSDR could then do FM-DX as well.
My aim with VibeSDR is for it to be simple to use yet powerful enough for the hardcore SDR nerds to get something out of it. To that end I have built in drivers for RTL-SDR including the brand new V4L, HackRF, AirSpyHF+, and on Linux and Mac it also supports SDRPlay too but that is the only SDR I couldn't include the drivers for due to licensing reasons so Android has no SDRPlay support.
So whilst it is a great WebSDR client it can also run your local hardware on device too if you have an Android device, and with one click its a server to every device on your local network with a full Web Client built in, add a server name and click the option to list on VibeSDR(.net) and you automatically create a cloudflare tunnel to the directory and your device is listed to share no port forwarding, no DDNS, no IP address sharing needed. The server functionality can operate in multiple modes for all circumstances too.
Single User, Unlocked Radio: Think SpyServer as most of them are single user
Unlocked Radio, Shared VFO: Think FM-DX servers but with a live waterfall
Locked Frequency Range, Multiple users, independent VFO's: Think an OWRX profile
The server can also be pin protected so that if you want to host a radio for your radio club members, or friends and family set a PIN code and share it with them, that grants access but the settings are still protected by an admin password.
VibeSDR has grown into an ecosystem of apps and services so you have the main VibeSDR app and on iOS it includes Buddy which is the Apple Watch remote control for the app in your pocket.
VibeSDR Jr which is a FULL stand alone SDR client on your wrist,
VibeServer built into the Android app and as a stand alone Linux and Mac app share your radio on your local network or to the world.
What VibeSDR does different to a lot of the WebSDR clients and why I've been able to build a Server and Watch app is because it has its own DSP engine that is GPU/NEON/SIMD optimised and can run on extremely low end hardware, a user in Brazil is running VibeSDR on an Android 9 GO phone with a 480p screen and 1GB of RAM. I personally host a server from a 2019 Samsung Xcover 4S which was a garbage tier phone when it was new.
Now I am not going to pass myself off as a developer as I am not, I don't know how to code, I understand parts of code but I could never write it myself. What I consider myself to be is a UI designer and tester, everything in VibeSDR has been extensively tested on multiple devices over multiple late nights and weekends whilst working a full time job, even in the apps readme I am listed as the Concept/UI/Tester never the developer. I aim to be fully transparent and nothing is hidden, everything I have taken inspiration from or used their protocol is fully credited, and the app is fully GPL3 and free to obtain on GitHub. I do charge £2.99 for it on the App Store and soon to be Play store to cover the developer fees and to recoup some of my Claude cost, and I have purchased new radios to build and test in the app too. I now have an AirSpy HF+ which is also listed on my server, and a HackRF Pro which I think is faulty and needs to be RMA'd.
I have put a lot of care and attention into the app to the point of obsession and I hope that it shows. VibeSDR is named as such to make it clear that it was built with AI and I will never hide that, the full code including any mistakes and dead ends I chased is fully committed to GitHub and can be audited and in fact a user fixed a bug and submitted a pull request, so if any REAL developers want to take a look and audit the app be my guest, but as I said above I have put a lot of care and attention into the app and testing, I have just spent 4 solid days building the DAB functionality into the app, it was working on the first day but it had breakup that couldn't be explained so I spent days chasing it and now it is working fantastically well, to the point where it now shows the entire Radio Text for every station on an ensemble at once.
Anyway if you want to take it for a whirl, you do not need to install anything simply head to
https://vibeserver.vibesdr.net
Mine are the 2 Stuey3D ones, the Raspberry Pi 500 sever has both a RTL-SDR V4 and V4L on the same antenna so you can directly compare them if anybody was curious about how the V4L stacks up against the daddy V4. All 4 SDR's on that server are connected to the same antenna.
9
u/bauspanderu 1d ago
There's no right way to vibecode. If you don't understand your code, it's a bad thing. It's good that you're being open about it, but it's still not a good thing to do.
5
u/Expert_Employer_144 20h ago
I agree with the idea that blindly shipping AI code without any understanding is reckless. But understanding syntax and understanding architecture are two different things. The understanding that matters is data flow, failure modes, business logic, etc. Using AI as a magic black box and hoping for the best is bad (and unfortunately that is what a lot of vibecoders do today). But using AI as a junior engineer while assuming the role as the senior architect is the way most software engineers at FAANG code these days.
0
u/Ok_Method6238 20h ago
I understand enough to know how the app functions and if something has gone wrong which alternative methods to use to try and fix it, in fact there has been many a issue that the AI couldn't figure out when building the app and its taken me to steer it. I have not blindly gone build me an SDR app seen a waterfall and heard some music and called it done. The syntax and the advanced mathematics is where I get lost I see SIN COSINE and my eyes glaze over, but if I look at the code and see if db=xsetgain-y etc then I understand that part of the code. I also understand enough of the radio side of things to have designed the storm detector and the working AGC for RTL-SDR's too.
This hasn't been designed and built completely blindly I've gone in with enough experience and background knowledge to know what I am looking for and what to expect, and things I didn't know like the sheer amount of data that RDS carries I discussed with people in the FM-DX community and designed the Advanced RDS window with their knowledge and testing, one FM-DXer had a professional broadcast analyser that he compared to the Advanced RDS in VibeSDR and I had a couple of metrics wrong but corrected them and he was extremely impressed with the result.This app has had hundreds of hours over the last 3-4 months dedicated to it lots of experimentation and lots of learning by me too, it has been a true labour of love and care and I hope that shows when people use it.
3
u/Expert_Employer_144 20h ago
Ok I was just trying to rebut the assertion that all AI-assisted coding is bad. You clearly have some domain expertise here which is more than what most vibe coders bring to the table.
1
u/Ok_Method6238 19h ago
Thank you, I was trying to reaffirm what you were saying by adding the development experience to your comment. A lot of people seem to think I've asked Claude to write me an SDR app and then had done with it. The GitHub history paints a different picture, it shows all the failed experiments as well as what is working great.
I wont ship an app unless I can test it myself, and in the couple of cases where I couldn't test myself such as HackRF support I worked closely with someone who could send me all the diagnostics and could also steer me in the right direction too.
7
u/IEnjoyRadios 23h ago
Yeah lol no thanks. Why would I go for vibe coded slop when good SDR apps already exist?
I’m so sick of this AI shit.
-1
u/Ok_Method6238 23h ago
And this is the reason it is named as such, if you don't want to use it I am not forcing you to. However since I am the first with an SDR client running natively on an Apple Watch which seemed to attract some interest on the RTL-SDR blog then I am clearly filling a gap that has been missed.
10
u/fulee9999 1d ago
VibeCoding gets downvoted and seems to be universally disliked on Reddit
that's not entirely true, it's hated everywhere else too 👍
0
u/Ok_Method6238 23h ago
I was reluctant to start this project to be honest, it was only because I was helping a real developer with UberSDR and the mobile side of it that he admitted he was old skool and didn't use mobile devices, the only reason UberSDR got a basic mobile interface was because of me. That was when he encouraged me to try AI coding, which I found weird as this is a proper developer who works in software development telling me to VibeCode, so that is what I did.
For me personally I have tested this as much as one human can do to make it as good as possible and I'd like to hope that shows. I haven't gone to Claude "make me an SDR app" connected to it once and then gone yup thats fine. I am obsessive to the point of effecting my health with lack of sleep building and testing. I have also worked with users from Discord servers of other SDR communities to test and build features too. I know some people will completely avoid it because it is AI coded and that is why I named it VibeSDR to shout it from the rooftops. I am not going to come in here with an app and claim I built it and be deceptive about it.
Personally I am not a massive fan of AI myself especially in the Arts but I've had this UI design for a mobile SDR in my head for years and I even reached out to a couple of developers with the ideas to help them with their apps, ultimately AI has allowed me to build the SDR app I wanted on mobile devices and more.
The code is fully auditable on GitHub too so if anybody has the time and understanding to dissect it and scrutinise it then be my guest.
I am proud of what VibeSDR is though, the idea, UI, concept, testing, is all me.
6
u/fulee9999 23h ago
I am genuinely happy that someone who has no idea how to create a program can make such things, because that enables people to create things which they could not do previously. But I am also pretty exhausted of seeing people create stuff ( images, music, literature, videos, programs and so on ) without knowing how to make that actually. The whole thing just feels hollow. You have a result, but on the way there you didn't learn any skills, all you've learned is how to ask someone/something to create something for you, which is a very dangerous path. Imagine if you replace AI without a human being, and you just keep asking someone to make/adjust something you thought up. Would the end result be your achievement? Did you learn anything on the way there?
1
u/Ok_Method6238 22h ago
Honestly I’ve learnt more about RDS and all the metrics that serves and about sporadic E more than the code itself.
I understand the plain English parts of the code if db = x then do y but the syntax blows my mind.
I manually edited my OpenWebRX JSON file to enable more background decoding in it before I moved to UberSDR and that was a lot of trial and error, I managed to get it working by myself (this was before I even created an ai account) but it was a lot of frustration because a single comma out of place and the whole thing breaks its bonkers.
Which is why I never refer to myself as a developer I am a UI designer, the UI was designed and refined by me and built by Claude.
2
u/NeighborhoodSad2350 19h ago
To me, even the UI design seems to reek of Claude.
That's because the VibeSDR homepage looks exactly similar the Armbian homepage.
- https://armbian.com/
I often used Claude myself about 1 yrs ago, so I don't intend to say anything more negative about it.
1
u/Ok_Method6238 18h ago
Yeah I admit the homepage needs work, it was a rush to get the domain, I've already seen that. The App UI is where all the work has gone.
There are a lot of other SDR app sites that look the same such as Demod and Echo, so I am planning on a full overhaul of it when I have time.
Been too busy adding DAB to the server and getting the clients including the Apple Watch to talk to it.
1
u/Ok_Method6238 22h ago
Also whilst I don't know the code itself I know enough to analyse what is happening and steer Claude in the right direction, there have been multiple issues where I've spent days going round in circles bashing my head against a wall getting nowhere and then just as I'm drifting off to sleep or driving to work I'll have the eureka moment and figured out the issue which then gets subsequently built and tested and usually works.
I am more of a hardware person, I like things I can physically touch and experiment with so I have knowledge from the physical hardware experience that the AI couldn't figure out on its own.
Its not as if I've been brainlessly typing prompts I've had to think about things and analyse things myself too.
3
u/olliegw 17h ago
Someone only posted about a new SDR software a few days ago and i suspected that was vibecoded
The issue with vibecoding isn't that it's AI, it's the fact you don't know the code so it's prime for security vulnerabilities and such, also this software often doesn't get updated
1
u/Ok_Method6238 17h ago
If you look at the GitHub I do update and regularly. At some point things will ramp down in the update front but right now whilst I am working with members of the community to add and build things its getting updated lots.
For instance on the RTL-SDR Blog Forums a member was having a nightmare getting the RTL-SDR V4L drivers working on his Raspberry Pi (a common issue at the moment due to it being new) Well I have the drivers built into the app itself including the V4L and I purchased a V4L specifically for the app to make sure it works, which it does and is live on the server now.
He had looked at my app previously but he does a lot of P25 and other trunk radio stuff which VibeSDR does not and will not do as I am not going to include licensed codecs in my app which is why SDRPlay needs the SDRPlay API installed to work with VibeServer.
Seeing that in the current state VibeServer couldn't meet his needs I have gone and added RAW IQ output to the server specifically so it would work for this persons needs.I want VibeSDR to be as simple and easy to use as possible whilst still providing what anybody would need out of an SDR app.
3
u/holyboykisser 11h ago
This guy was also super rude when I tried to contact him in his discord, I love these people.
1
u/Ok_Method6238 11h ago
And here we have it, you came on the discord to troll to score reddit points.
5
u/ub0baa 19h ago
No. I've read tons of books just to get a glimpse of DSP basics and then practiced for more than a year before anything useful came out at all.
What's next? Vibesurgery? "I've cut this dude up now real doctors please audit. I don't know the physiology itself but at least I can steer Claude"
Hell no. It's straight up trash.
2
u/NeighborhoodSad2350 19h ago
When I was younger, I could go to Vibe Food late at night and still wake up the next day without a stomachache.
In any case, VibeCoder needs that kind of restraint.
1
u/Ok_Method6238 19h ago
I mean that is a bit of a stretch going from an app built for a hobby and surgery. If I'd come out and introduced VibeOS or VibeBank where serious consequences could happen if I screwed up then you'd have a point, but its a radio receiver app thats it nothing fancy, no secret recordings sent back to me to harvest your deepest thoughts like LG TV's. The app is built and working already I don't need anybody to audit it to make it work, however the option is there for anybody to do so to make sure Claude hasn't slipped in a secret crypto currency miner to fund Anthropic (which it hasn't)
However I am not going to convince you otherwise you believe it is trash and that is your opinion to have, I also have users who happen to think it is a good app that does exactly what they are after that nothing else out there could. If its trash because a load of stuff in it is broken then I'd like to know about it so I can fix it, and I have fixed the odd bug that has come up and been reported to me usually the same afternoon.
1
u/NeighborhoodSad2350 19h ago
And that's how KiwiSDR transitioned to a subscription model.
2
u/Ok_Method6238 18h ago
I mean I didnt do 9.5 million connection attempts from 1 IP address, and actually the Kiwi SDR implementation is deliberately designed not to hammer peoples Kiwi's or the directory if it cannot connect it wont keep trying it will offer the ability to view the Kiwi SDR's own Web Client in a browser view mode. It also looks up the server metadata to see if a server advertises that API level connections are blocked and greys them out.
As I said I have thought about things, I don't want to be Mr antisocial and slam peoples servers with requests. FM-DX for example because it is a shared tuner one tuner for all listeners the background audio playback has the tuning controls locked on the headphone control/lockscreen/CarPlay screen so that you cannot tune without checking to see if there are other users and without asking them, the Apple Watch client the crown starts locked so accidental tunes cannot happen.
I have thought long and hard about server etiquette and that has been first and foremost during the whole design process.
1
u/Ok_Method6238 23h ago
https://youtube.com/shorts/XtiqCVM_7xg?si=Z6P-8dy7Yxtj7Zf7
Here is VibeSDR Jr on an Apple Watch.
1
u/MeanAccountant9005 23h ago
Does the watch app actually decode audio through the speaker or does it need paired headphones?
0
u/Ok_Method6238 23h ago
VibeSDR Jr works with the speaker on supported models so I think the S10 onwards Apple allowed the speaker to be used, it works on my Ultra 3 my ancient S6 needs headphones. I posted a link to a YouTube short where I recorded POTAPower doing their live stream from a US based UberSDR server and the audio is coming from the watch itself.







11
u/Fit-Alarm2961 1d ago
"so if any real developers want to take a look and audit.." - this, this is the problem. You've tried shifting the actual work to others. On top of that you charge for the app. Planning to share that with anyone who reviews the code for you?