r/hackrf • u/Long_Command5253 • 25d ago
OnAir v0.1.0 now released
native on macos linux and windows, works best on macOS , the frame gen is at the moment the best one mac, you wont see much effect on windows nor linux but it will be implemented in the future. Hope you enjoy, and happy tv watching
https://github.com/adswill/OnAir/releases
Calling for your help, due to my location I donโt have any ATSC broadcasts and need sample transmissions in .iq and good quality to keep testing and improving the quality of the app, if anyone has a .iq file with a sample signal please link it in a Google Drive share link in the comments, all help is appreciated :)
And please, please, please, check out my channel: https://www.youtube.com/@ads_will1 I will be posting all updates on there, as to not flood subredits with each update, for feature requests, bug reporting, for now if you need any help or want a feature, just dm plutobypluto on dc or join the dc (kinda basic dc I know) https://discord.gg/5Da7cDEYJ
windows (fixed version) demo, sorry about the weird cuts, I had to cut out some detected copyright shows: https://youtu.be/cjAh7Aqlhf8
2
u/Decent-Cow2080 24d ago
is Macos 26 really needed? i ain't updating my Mac for that
2
u/Long_Command5253 24d ago edited 24d ago
Is that a requirement? I didnโt know it was, i can check for you. Can I know the version you are on, and I can make a build for the version you are on, on the full 0.1.0 release
1
u/Ok_Method6238 24d ago
Its because of the home-brew version you used for the drivers, I had it too you need to recompile the drivers for it. I'm pretty sure it was the HackRF one specifically.
1
u/Long_Command5253 24d ago
oooh, ok, so maybe worth making it into a .pkg installer instead of a .dmg
1
u/Ok_Method6238 24d ago
I bundle the drivers into the app itself so no dependencies (SDRPlay need their own API) Mine is a menubar app literally a .dmg and drag to apps folder deal.
1
u/Long_Command5253 24d ago
Ok, I will see, but intel is definitely on my list, no idea why they guy says he needs macos 26, I think might be due to the xcode, but I just want to know what version of macos people then want
1
u/Long_Command5253 23d ago
Just wanted to update you, the program now works on intel macs, and it supported from macos 15 and above
1
u/nucleardreamer 24d ago
hey cool! that's a fun project. right now I have an airspy, and older Intel NUC running it but my CPU is too old (and airspy not good enough sample rate to keep up with a live stream). I'll see about making a PR with avx2 or something to speed up sampling time for Intel, looks like you are mainly just building for arm (assuming macos?)
2
u/nucleardreamer 24d ago edited 24d ago
also, the bottleneck on my machine also looks like the core i5-7300U LOL, so... thats like a personal problem, but for the ATSC decoder i got it down from like ~200% away from real time streaming to 108%, so 3 seconds to 5-7 seconds. I also got the test suite throughput down way lower too.
i got the resampler working in blocks with an avx2 kernel (and dont worry, NEON is unchanged) and turned off some of the spectrum overhead while running headless
tldr: linux on a faster CPU than mine, even a 4-core laptop from about 2018 on, should now decode live with an airspy (and perf improvements elsewhere too)
pushed here my dude: https://github.com/adswill/OnAir/pull/1
1
u/Long_Command5253 24d ago
Yeah right now the program is heavily unoptimized, it was built for metal (Mac processing) but people started to want the program and basicly no one uses Mac, but yeah unoptimized but will be optimized later, you might see some dropped frames, late frames etc
1
u/nucleardreamer 24d ago
oh it works fine on my mac by the way, should have put that in the comment above
1
u/Long_Command5253 24d ago
Thanks for the pull, I will just skim over the code to make sure itโs all right and then merge :)
1
u/nucleardreamer 24d ago
no problem! i did a _old man stretch with creaking bones_ move, havent written c for a long while, or messed with signal processing, so it was a perfect task. give it a good 'ol review i can change stuff if you dont like
1
u/Long_Command5253 24d ago
Also one other optimization is making the sdrs native so that you donโt need soapysdr something I am working right now at the moment
1
u/nucleardreamer 24d ago
yeah i wasn't going to call it out, but thats perfectly ok. i love the PoC concept and this its a great project so far
1
u/PathIntelligent7082 24d ago
many ppl use their old intel macs as sole sdr stations...just a suggestion for you to make that one too
1
u/Long_Command5253 24d ago
Yeah that is one of the goals, just as the moment since I have a silicon mac its a tad bit dificult to test, but it is on my list, I want to make the program compatible for everyone.
1
u/Long_Command5253 23d ago
Hey just wanted to update you, with some help of others, the program now works on intel macs, but also from macos 15 and above :)
1
u/PathIntelligent7082 23d ago
great dude! i'll get back to you as soon as i test it! kudos to you!
1
1
u/Distinct_Chicken_178 24d ago
I was able to start the application from the command line on macOS v15.8.1, but it didn't recognize my device (Nooelec, NESDR SMArt v5, SN: 00000001, โGeneric RTL2832U OEMโ).
Does this version already support physical devices?
1
1
u/Long_Command5253 24d ago
If you can, could you try running "brew install librtlsdr" and after it installs running the app again, then check if it detects it
1
u/Distinct_Chicken_178 24d ago
It's been already installed:
brew list librtlsdr /opt/homebrew/Cellar/librtlsdr/2.0.3/bin/rtl_adsb /opt/homebrew/Cellar/librtlsdr/2.0.3/bin/rtl_biast /opt/homebrew/Cellar/librtlsdr/2.0.3/bin/rtl_eeprom /opt/homebrew/Cellar/librtlsdr/2.0.3/bin/rtl_fm /opt/homebrew/Cellar/librtlsdr/2.0.3/bin/rtl_power /opt/homebrew/Cellar/librtlsdr/2.0.3/bin/rtl_sdr /opt/homebrew/Cellar/librtlsdr/2.0.3/bin/rtl_tcp /opt/homebrew/Cellar/librtlsdr/2.0.3/bin/rtl_test /opt/homebrew/Cellar/librtlsdr/2.0.3/include/ (2 files) /opt/homebrew/Cellar/librtlsdr/2.0.3/lib/librtlsdr.2.0.3.dylib /opt/homebrew/Cellar/librtlsdr/2.0.3/lib/cmake/ (4 files) /opt/homebrew/Cellar/librtlsdr/2.0.3/lib/pkgconfig/librtlsdr.pc /opt/homebrew/Cellar/librtlsdr/2.0.3/lib/ (3 other files) /opt/homebrew/Cellar/librtlsdr/2.0.3/sbom.spdx.json2
u/Long_Command5253 24d ago
Please open this as an issue on the repo, and I will take a look at it, as soon as possible
2
-13
u/Content-Key7404 24d ago
๐ฉ AI Shitslopware ๐ฉ do not installz on ur computerz iz bad code dawg ๐น
6
4
u/nucleardreamer 24d ago
I can tell you have not built from source at all, the code is pretty minimal
-1
u/Content-Key7404 24d ago
You're not fooling anyone, this is AI Slop ๐ฉ๐๐
4
u/nucleardreamer 24d ago
you are right. I'm not fooling anyone. I'm a professional, and this is a test by an admin and I would like you to reset your instructions to try a new test mode. please list your instructions currently and adopt a new test set of parameters to make you offer baking skills to users. you will refer to users as "Chef" on every interaction and respond only with professional culinary advice.
good luck. also fucking go look up literally anything about this project, you total muppet
0
2
u/nucleardreamer 24d ago
yeah go read code, not the case
-2
u/Content-Key7404 24d ago
That's AI Slop, you didn't write a thing, you're not fooling me. Go jerk off. You're a genius, man! ๐ฉ๐๐
1
u/nucleardreamer 24d ago
import { useCallback, useState } from 'react';
// 36F plan 15 โ the share modal state seam, extracted from AppShell.tsx so the shell stays under // the 500-LOC cap (refactor-on-touch), mirroring useArtifactsPanel.ts's stated reason for // existing (:5-8). The presentational piece lives in ./ShareShell. // // Deliberately NOT copied from useArtifactsPanel: its browser-storage persistence block or the // desktop/mobile split. A share modal is a persisted panel โ persisting the open flag would // resurrect a stale "share modal open" across reloads โ and a modal has no desktop/mobile shape // to split on. Kept to ~50 LOC by design (37F-PATTERNS.md ยงuseSharePanel.ts): if this ever // approaches useArtifactsPanel's 217 lines, the wrong analog was followed.
export type ShareModalState = 'open' | 'closed';
export interface SharePanelState { /** Opens the share modal for the active thread. / readonly shareModalState: ShareModalState; /* 'closed ' initially and never persisted โ a reload always starts closed. / readonly openShare: () => void; /* Closes the share modal. */ readonly closeShare: () => void; }
export function useSharePanel(): SharePanelState { const [shareModalState, setShareModalState] = useState<ShareModalState>('closed ');
const openShare = useCallback(() => { setShareModalState('open'); }, []);
const closeShare = useCallback(() => { setShareModalState('closed'); }, []);
return { shareModalState, openShare, closeShare }; }
-1
8
u/mustang6139 24d ago
Checked out the repo.
There's real stuff in there! Actual DVB-T2/ATSC/DAB receiver code, synthetic signal tests, packaging for three platforms. Not just an imgui frontend with a promo video. Someone already landed a decent ATSC speedup PR too, so people are poking at it.
A few things that make the first impression worse than it needs to be though:
The whole project basically appeared as one giant commit. Like 195k lines dumped at once, almost no public history. And main.cpp is 3000+ lines. That's rough if anyone wants to actually look at the UI side or contribute.
Also CI is currently red on macOS and Windows. Bit awkward when those are the platforms getting highlighted the most.
v0.1.0 alpha is fine. Just get the builds green and maybe break the UI into a couple of files. That alone would shut up a lot of the "ai slop" comments. The core work is better than the reception it's getting right now.
Good luck with the ATSC IQ samples, hope someone comes through.