We moeten nog onze dongle blacklisten.
Dit is ook reeds meerdere malen beschreven
Hiervoor gaan we naar
cd /etc/modprobe.d
en starten de configfile op met sudo nano blacklist-rtl8xxxu.conf
en voegen erbij
blacklist dvb_usb_rtl28xxu
Bewaren met <CTRL> O en eruit gaan met <CTRL> X en enter
Nogmaals rebooten !
In de rpi zero w starten we via Putty de tcp server op :
rtl_tcp -a " hier uw statisch ip adres "
bv rtl_tcp -a xxx.xxx.xxx.xxx (xxx vervangen door uw statisch ip adres)
de poort is automatisch 1234
Daarna start ge op uw remote laptop uw programma op dat als client zal dienst doen . Bij mij is dit Gqrx , linksboven in het beeld
Waar ge op moet letten is de configuratie van de I/O
U moet hier kiezen zoals in de afbeelding
Dus Other als "Device" en dan in de " Device string" uw ipadres van de rpi zero w
dit wordt dan rtl_tcp=xxx.xxx.xxx.xxx
Hiermee connecteer je dan als client op de rpi zero w .
De rest is instellingen en uitproberen .
Werkt het ?
Ja en nee .
Er is verbinding en ge kunt luisteren maar het komt in " snokskes" . Dit is om twee redenen :
1. de rpi heeft maar één core in de CPU
2. de overdracht via wifi is niet altijd superdeluxe.
Ik heb het doen werken op een rpi 2 en een rpi4 met vaste internetverbinding en daar loopt het soepel.
Heeft het nog zin om de rpi zero w te proberen met een lite versie van een sdr ontvanger ipv van de Gqrx?
Eerlijk gezegd denk ik het niet , omdat de problemen zich in het frontend ( de rpi zero w) zich voordoen en in de "lucht"
Het was al met al een goede leerschool. Ik rond dit projectje dan ook hier af.
vrijdag 27 maart 2020
donderdag 26 maart 2020
Een nieuwe lente, een nieuw geluid [RPI zero w met SDR : setup ]
De setup
We vertrekken dus van een klaargestoomde rpi zero w waar buster lite op staat , de ssh is vrijgegeven en die met een statisch ip adres ingesteld staat.U weet hoe u met Putty moet werken ( kijk anders eens verderop in de blog)
Vanuit Putty:
Vooreerst zoals altijd en vanuit de home directory /home/pi
sudo apt-get update
en daarna
sudo apt-get upgrade
Het volgend dat komt heb ik samengevat in een 10 stappen plan .
Elk in te typen commando is in het blauw.
*********************************
1. libusb
sudo apt-get install libusb-1.0-0 of
sudo apt install libusb-1.0-0 mag ook
U ziet dat ik zelf de syntax verkeerd had ( libusb-1.0.0 ipv libusb-1.0-0 ) maar hij heeft dit zelf gecorrigeerd !
*********************************
2. build essential
Bij mij zat deze er al in , nl V12.6
sudo apt-get install build-essential
*********************************
3. Git installeren , met git kan je software ergens op het internet " clonen" of overhalen uit een grote bibliotheek , repository genoemd.
sudo apt-get install git
Dit is wat er gebeurt als je op voorhand geen update hebt gedaan . Hij heeft zelf wel aan dat je dit eerst moet doen ( gele kader)
*********************************
4. Cmake installeren .
sudo apt-get install cmake
*********************************
Vanaf nu zijn we klaar om osmocom rtl-sdr codebase te installeren
5. rtl-sdr codebase clonen (internet moet aanwezig zijn !)
git clone git://git.osmocom.org/rtl-sdr.git
Laat hem gewoon zijn werk doen , kijk of er geen foutmeldingen zijn.
Kijk na of ge volgende inhoud in de map hebt met commando
ls -al
Ge ziet dat er een map bijgemaakt is , nl rtl-sdr
Ga naar die map met
cd rtl-sdr
maak een nieuwe map aan met
mkdir build
ga naar die map met
cd build
en nu komt het grote werk : de software die daar net is overgehaald dat zijn enkel de bronbestanden . Die moeten nog gecompileerd worden en op de juiste plaats gezet worden .
*********************************
6. Compileren
Dit gaan we nu doen met het volgende commando.
cmake ../ -DINSTALL_UDEV_RULES=ON
Ik heb nooit geweten wat die regel in de hoofdletters betekende maar nu weet ik het wel . Dankzij die regel kan men de dongle ook als gewone user ( dus hier pi ) en moet men niet deze aanroepen als root
*********************************
Volgende commando in de rij is make
7. make
Deze twee laatste commando's ( cmake en make) dat kan een tijdje duren
*********************************
Installeren van de soft
8. sudo make install
Ook hier gewoon zijn werk laten doen
en als laatste alles nog configureren
*********************************
9. sudo ldconfig
Gewoon alles op zijn plaats zetten
*********************************
10.rules kopiëren
Ga naar map rtl-sdr met cd .. ( in de veronderstelling dat je nog altijd in map build staat)
kopieer de rules naar de map waar het behoort.
sudo cp rtl-sdr.rules /etc/udev/rules.d/
Dit bestand is trouwens gewoon een tekstbestand waar de vid en pid in vermeld staan .
vid = vendor ID
pid = produkt ID
Hier een extract eruit met onze rtl2832u
*********************************
Het is nu tijd om te rebooten . Sluit de rpi zero w af door de spanning uit te schakelen , steek de sdr dongle in de usb poort via kabeltje en zet de rpi terug onder spanning . De verbinding met Putty zal verbroken zijn , ook deze moet je terug opstarten en daar inloggen .
Na dit tienstappenplan is het al mogelijk om een test te doen .
Typ het volgende in Putty in nadat je weer bent ingelogd:
rtl_test
Dit zal je te zien krijgen :
Goed en niet goed !
Goed , hij herkent de dongle via de usb poort ( found 1 device ....)
Niet goed : er is een interface error , maar dat gaan we oplossen in de volgende aflevering
We vertrekken dus van een klaargestoomde rpi zero w waar buster lite op staat , de ssh is vrijgegeven en die met een statisch ip adres ingesteld staat.U weet hoe u met Putty moet werken ( kijk anders eens verderop in de blog)
Vanuit Putty:
Vooreerst zoals altijd en vanuit de home directory /home/pi
sudo apt-get update
en daarna
sudo apt-get upgrade
Het volgend dat komt heb ik samengevat in een 10 stappen plan .
Elk in te typen commando is in het blauw.
- libusb installeren
- build-essential installeren
- git installeren
- cmake installeren
- rtl-sdr codebase clonen en map nakijken
- compileren met cmake
- make
- make install
- ldconfig
- rules kopiëren
*********************************
1. libusb
sudo apt-get install libusb-1.0-0 of
sudo apt install libusb-1.0-0 mag ook
U ziet dat ik zelf de syntax verkeerd had ( libusb-1.0.0 ipv libusb-1.0-0 ) maar hij heeft dit zelf gecorrigeerd !
*********************************
2. build essential
Bij mij zat deze er al in , nl V12.6
sudo apt-get install build-essential
*********************************
3. Git installeren , met git kan je software ergens op het internet " clonen" of overhalen uit een grote bibliotheek , repository genoemd.
sudo apt-get install git
Dit is wat er gebeurt als je op voorhand geen update hebt gedaan . Hij heeft zelf wel aan dat je dit eerst moet doen ( gele kader)
*********************************
4. Cmake installeren .
sudo apt-get install cmake
Dit hebben we straks nodig om de software te maken
*********************************
Vanaf nu zijn we klaar om osmocom rtl-sdr codebase te installeren
5. rtl-sdr codebase clonen (internet moet aanwezig zijn !)
git clone git://git.osmocom.org/rtl-sdr.git
Laat hem gewoon zijn werk doen , kijk of er geen foutmeldingen zijn.
Kijk na of ge volgende inhoud in de map hebt met commando
ls -al
Ge ziet dat er een map bijgemaakt is , nl rtl-sdr
Ga naar die map met
cd rtl-sdr
maak een nieuwe map aan met
mkdir build
ga naar die map met
cd build
en nu komt het grote werk : de software die daar net is overgehaald dat zijn enkel de bronbestanden . Die moeten nog gecompileerd worden en op de juiste plaats gezet worden .
*********************************
6. Compileren
Dit gaan we nu doen met het volgende commando.
cmake ../ -DINSTALL_UDEV_RULES=ON
Ik heb nooit geweten wat die regel in de hoofdletters betekende maar nu weet ik het wel . Dankzij die regel kan men de dongle ook als gewone user ( dus hier pi ) en moet men niet deze aanroepen als root
*********************************
Volgende commando in de rij is make
7. make
Deze twee laatste commando's ( cmake en make) dat kan een tijdje duren
*********************************
Installeren van de soft
8. sudo make install
Ook hier gewoon zijn werk laten doen
en als laatste alles nog configureren
*********************************
9. sudo ldconfig
Gewoon alles op zijn plaats zetten
*********************************
10.rules kopiëren
Ga naar map rtl-sdr met cd .. ( in de veronderstelling dat je nog altijd in map build staat)
kopieer de rules naar de map waar het behoort.
sudo cp rtl-sdr.rules /etc/udev/rules.d/
Dit bestand is trouwens gewoon een tekstbestand waar de vid en pid in vermeld staan .
vid = vendor ID
pid = produkt ID
Hier een extract eruit met onze rtl2832u
*********************************
Het is nu tijd om te rebooten . Sluit de rpi zero w af door de spanning uit te schakelen , steek de sdr dongle in de usb poort via kabeltje en zet de rpi terug onder spanning . De verbinding met Putty zal verbroken zijn , ook deze moet je terug opstarten en daar inloggen .
Na dit tienstappenplan is het al mogelijk om een test te doen .
Typ het volgende in Putty in nadat je weer bent ingelogd:
rtl_test
Dit zal je te zien krijgen :
Goed en niet goed !
Goed , hij herkent de dongle via de usb poort ( found 1 device ....)
Niet goed : er is een interface error , maar dat gaan we oplossen in de volgende aflevering
woensdag 25 maart 2020
Een nieuwe lente, een nieuw geluid [RPI zero w met SDR : de droom ]
Een nieuwe lente , een nieuw geluid !
Wat als ?
We een rpi zero w konden voorzien van een basis SDR uitrusting , de data over wifi konden versturen en de decoding op afstand zouden doen ?
Maw , we maken een compact geheel met de ontvanger " ergens" en sturen deze aan vanuit een laptop.
We kunnen dan ook kiezen wat we willen ontvangen / decoderen door gewoon een andere toepassing te starten.Misschien kunnen we ons zelf eens wagen aan GNU radio !
GNU radio
Dit concept zal wel ergens al bestaan , maar ik doe het zoals ik het wil.
Lopen we tegen de muur , dan is het zo maar .
We vertrekken van de osmocom rtl-sdr codebase en we zien wel verder.
Link naar osmocom
osmocom.org
De rtl-sdr codebase omvat :
1. librtlsdr : deze bibliotheek voorziet dat op de uitgang van de dongle raw I/Q date ter beschikking staat.
2. Enkele commandolijn tools :
De librtlsdr is zelf nog afhankelijk van een andere bibliotheek en dit is
Dit kaartje is al volledig ingesteld wat de configuratie betreft , zoals wifi en is bereikbaar via Putty. dit is al meermaals beschreven overal , zelfs op deze blog.
Eerste vragen die in me opkomen : Waar knippen we in de dataflow ?
Wat sturen we over de wifi en hoe doen we dat ?
Wat als ?
We een rpi zero w konden voorzien van een basis SDR uitrusting , de data over wifi konden versturen en de decoding op afstand zouden doen ?
Maw , we maken een compact geheel met de ontvanger " ergens" en sturen deze aan vanuit een laptop.
We kunnen dan ook kiezen wat we willen ontvangen / decoderen door gewoon een andere toepassing te starten.Misschien kunnen we ons zelf eens wagen aan GNU radio !
GNU radio
Dit concept zal wel ergens al bestaan , maar ik doe het zoals ik het wil.
Lopen we tegen de muur , dan is het zo maar .
We vertrekken van de osmocom rtl-sdr codebase en we zien wel verder.
Link naar osmocom
osmocom.org
De rtl-sdr codebase omvat :
1. librtlsdr : deze bibliotheek voorziet dat op de uitgang van de dongle raw I/Q date ter beschikking staat.
2. Enkele commandolijn tools :
- rtl_test : hiermee kun je testen of de dongle werkt
- rtl_fm : een kleinde fm decoder , parametreerbaar . Op de uitgang heb je pcm audio direkt beschikbaar voor een audiospeler zoals aplay
- rtl-sdr zelf : een I/Q recorder , een soort gateway tussen dongle en achterkomende software
- rtl_tcp : een I/Q spectrum server : ook dit neemt de data van de dongle en geeft zelf I/Q af en dit over TCP/IP
De librtlsdr is zelf nog afhankelijk van een andere bibliotheek en dit is
- libusb : Omdat de dongle via een usb poort is verbonden is deze nodig.
Dit kaartje is al volledig ingesteld wat de configuratie betreft , zoals wifi en is bereikbaar via Putty. dit is al meermaals beschreven overal , zelfs op deze blog.
Eerste vragen die in me opkomen : Waar knippen we in de dataflow ?
Wat sturen we over de wifi en hoe doen we dat ?
dinsdag 24 maart 2020
WXbalonnen [debugverhaal episode 6 : Nu ook op Radiosondy.info ]
Als uitsmijter nog het feit dat mijn waarnemingen ook op de website van SQ6KXY terecht komt en verder doorgesluist wordt naar aprs.fi
link : radiosondy.info
Ik heb besloten om dit te doen en geen lokale map te gebruiken omdat ten eerste de download van openstreetmap niet meer ging en ik geen goesting heb om dit uit te vlooien en ten tweede , iedereen heeft tegenwoordig een internetverbinding.
Hiervoor moest er nog één applicatie bijgevoegd worden , namelijk udpgate4.
Dit is dan ook voorzien van de juiste parameters en bijgevoegd in het shell script
Ik heb nu twee shell scripten :
1. startsonde.sh link google drive
2. stopsonde.sh link google drive
en ook nog de sdrcfg configuratie link google drive
Vergeet niet in netbeacon.txt uw GPS coördinaten te steken !
Maak dit bestand aan met nano netbeacon.txt en zet deze onder de aprs map
Zoiets als
!51xx.xxN/004xx.xxE`Igate
Let goed op de juiste leestekens en vervang de xx door uw eigen coördinaten
Hier hoeft geen verdere uitleg bij dacht ik
Enkele snapshots met de bewijzen:
En het gewijzigde blokschema van de dataflow
link : radiosondy.info
Ik heb besloten om dit te doen en geen lokale map te gebruiken omdat ten eerste de download van openstreetmap niet meer ging en ik geen goesting heb om dit uit te vlooien en ten tweede , iedereen heeft tegenwoordig een internetverbinding.
Hiervoor moest er nog één applicatie bijgevoegd worden , namelijk udpgate4.
Dit is dan ook voorzien van de juiste parameters en bijgevoegd in het shell script
Ik heb nu twee shell scripten :
1. startsonde.sh link google drive
2. stopsonde.sh link google drive
en ook nog de sdrcfg configuratie link google drive
Vergeet niet in netbeacon.txt uw GPS coördinaten te steken !
Maak dit bestand aan met nano netbeacon.txt en zet deze onder de aprs map
Zoiets als
!51xx.xxN/004xx.xxE`Igate
Let goed op de juiste leestekens en vervang de xx door uw eigen coördinaten
Hier hoeft geen verdere uitleg bij dacht ik
Enkele snapshots met de bewijzen:
En het gewijzigde blokschema van de dataflow
Labels:
APRS,
dataflow,
debug,
radiosondy,
weerballon,
wettersonde,
wxbalonnen
zondag 22 maart 2020
WXbalonnen [debugverhaal episode 6 : Het werkt weer ! ]
Alles terug aan elkaar " geknoopt" maar elke blok apart gestart .
Men moet héél goed opletten wat de argumenten betreft.
Enfin , het werkt terug .
Doordat ik nu ook audio heb tijdens decoding hoor ik wel wat er wel en niet goed gaat , dat gaat voornamelijk over de samplerates.
Als er twee stations in de configfile zitten halveert de samplerate om de één of andere reden . De audio wordt " traag" net zoals vroeger ge een singeltje afspeelde op 33 toeren ipv van 45 !
Ik had dat ook al vastgesteld bij de testen met de dubbele audiospeler.
Misschien test ik ook nog eens de mapprojectie , maar voorlopig hou ik dit nog even opzij.
23/03/2020 . Deze morgen het bash script herschreven. Nu kan ik opstarten met één commando ipv van alles één voor één te starten , ook de aplay doet nu mee.
Men moet héél goed opletten wat de argumenten betreft.
Enfin , het werkt terug .
Doordat ik nu ook audio heb tijdens decoding hoor ik wel wat er wel en niet goed gaat , dat gaat voornamelijk over de samplerates.
Als er twee stations in de configfile zitten halveert de samplerate om de één of andere reden . De audio wordt " traag" net zoals vroeger ge een singeltje afspeelde op 33 toeren ipv van 45 !
Ik had dat ook al vastgesteld bij de testen met de dubbele audiospeler.
Misschien test ik ook nog eens de mapprojectie , maar voorlopig hou ik dit nog even opzij.
23/03/2020 . Deze morgen het bash script herschreven. Nu kan ik opstarten met één commando ipv van alles één voor één te starten , ook de aplay doet nu mee.
Labels:
aplay,
debug,
pipe deleten,
rtl_tcp,
rtltst,
sdrcfg.txt,
weerballon,
wettersonde,
wxbalonnen
SDR : [ verdere testen]
Nadat dit alles eens is bezonken komen er verdere vragen te voorschijn , wat als ....
1. Wat gebeurt er als ik twee instanties van rtl_fm wil opendoen zodat ik twee stations tergelijkerijd wil beluisteren ?
Dit is het antwoord:
Het is niet mogelijk !
2. Maar wat als we via de server/client configuratie werken ?
Wel een klein beetje wel .
U kunt geen twee instanties oproepen ( lukt mij nu toch niet) maar ge kunt wel twee of meerdere frequenties in de configfile meegeven, zolang je maar in een bandbreedte blijft van 2 MHz
Zie afdruk.
Je kunt wel beide kanalen opmixen in één audiokanaal ( - m2) , maar ik slaag er niet in ze apart te beluisteren . Zie de stereo vumeter.
Dit is dus via de audiostream . Naar wat ik nog weet van vroeger is dat via de tcp verbinding wel meerdere decoders kunnen werken . dit was toch zo bij de weerballonnen .
Misschien voor laters .
1. Wat gebeurt er als ik twee instanties van rtl_fm wil opendoen zodat ik twee stations tergelijkerijd wil beluisteren ?
Dit is het antwoord:
Het is niet mogelijk !
2. Maar wat als we via de server/client configuratie werken ?
Wel een klein beetje wel .
U kunt geen twee instanties oproepen ( lukt mij nu toch niet) maar ge kunt wel twee of meerdere frequenties in de configfile meegeven, zolang je maar in een bandbreedte blijft van 2 MHz
Zie afdruk.
Je kunt wel beide kanalen opmixen in één audiokanaal ( - m2) , maar ik slaag er niet in ze apart te beluisteren . Zie de stereo vumeter.
Dit is dus via de audiostream . Naar wat ik nog weet van vroeger is dat via de tcp verbinding wel meerdere decoders kunnen werken . dit was toch zo bij de weerballonnen .
Misschien voor laters .
zaterdag 21 maart 2020
WXbalonnen [debugverhaal episode 5]
Nu dat de opstelling getest is met de standaard bouwstenen komen we uiteindelijk toe aan de configuratie zoals het bedoeld was , nl met rtl_tcp , sdrtst en sdrcfg.txt
Dit is een herwerkt blokschema van de linkerkant van het vorig schema.
Tenslotte sdrtst met sdrcfg.txt
U krijgt de instellingen te zien die zijn opgestuurd naar de rtl_tcp server .
parm1 enz...
Dit werkt dus als een client, want zie hoe rtl_tcp reageert hierop:
Het enige dat misschien nog uitleg behoeft is " allocating 15 zero-copy buffers."
Dit zijn inderdaad buffers die NIET onder bestuur van de CPU vallen maar rechtsreeks geschreven en gelezen worden voor tijdswinst.
Nu dat de server en client loopt zal ook de audiospeler in gang schieten want nu pas wordt de pipe gevuld met data.
Besluit :
Met deze config is bewezen dat het rx gedeelte ook werkt . Ik kan , in tegenstelling tot vroeger , ook het geluid laten horen .
Nu zouden we alles aan elkaar moeten koppelen om een volledig werkende weerballonontvanger/decoder te hebben .
Door te experimenteren heb ik geen tijd verloren , meer nog , ik begrijp nu beter de afzonderlijke blokken en zie dat deze ook bruikbaar zijn voor andere doeleinden waarvan ik er al één in mijn hoofd heb om uit te proberen .
De sdrtst is namelijk ook te gebruiken voor AM en SSB ontvangst .
Dit wordt mijn volgend experiment .
Nog een laatste opmerking .
Ik kon meerdere pipes niet wissen en kreeg zelfs gevulde pipes die bleven staan .
Per ongeluk heb ik gevonden dat met dit commando :
sudo rm -r *pipe*
toch alles gewist wordt .Waarom mij dit eerder niet is gelukt weet ik niet.
Dit is een herwerkt blokschema van de linkerkant van het vorig schema.
In de rode kader ziet men de volgorde van opstarten van de verschillende bouwstenen .Dit is belangrijk omdat de pipe de mogelijkheid moet hebben om op zijn uitgang ( wat de ingang van de audiospeler is) de data te dumpen , anders gaat het mis. Dus aplay starten vóór sdrtst. !
Dus
Eerst rtltcp
dan Aplay
en pas dan sdrtst, met sdrcfg.txt
Korte uitleg welke bouwsteen wat doet:
rtl_tcp : Start de dongle op , verwijdert de kernel en neemt zelf de controle over.
Luister op tcp niveau naar inkomende berichten .
Dit gebeurt er als je weer afsluit met bv <CTRL> C ( ^ C op de foto))
De originele kernel wordt weer ingeladen .
Aplay :
Start de audiospeler met de juiste argumenten en krijgt via een omleiding ( redirection, piping ) de data binnen van de voorzien pipe , hier ook pipe genoemd maar dat kan elke geldige naam zijn.
Tenslotte sdrtst met sdrcfg.txt
sdrcfg.txt wordt meegenomen als argument en is online te veranderen !
U krijgt de instellingen te zien die zijn opgestuurd naar de rtl_tcp server .
parm1 enz...
Dit werkt dus als een client, want zie hoe rtl_tcp reageert hierop:
Het enige dat misschien nog uitleg behoeft is " allocating 15 zero-copy buffers."
Dit zijn inderdaad buffers die NIET onder bestuur van de CPU vallen maar rechtsreeks geschreven en gelezen worden voor tijdswinst.
Nu dat de server en client loopt zal ook de audiospeler in gang schieten want nu pas wordt de pipe gevuld met data.
De ######## + | 79% is de vumeter .
De underrun is normaal bij de opstart en geeft verder geen problemen.
Besluit :
Met deze config is bewezen dat het rx gedeelte ook werkt . Ik kan , in tegenstelling tot vroeger , ook het geluid laten horen .
Nu zouden we alles aan elkaar moeten koppelen om een volledig werkende weerballonontvanger/decoder te hebben .
Door te experimenteren heb ik geen tijd verloren , meer nog , ik begrijp nu beter de afzonderlijke blokken en zie dat deze ook bruikbaar zijn voor andere doeleinden waarvan ik er al één in mijn hoofd heb om uit te proberen .
De sdrtst is namelijk ook te gebruiken voor AM en SSB ontvangst .
Dit wordt mijn volgend experiment .
Nog een laatste opmerking .
Ik kon meerdere pipes niet wissen en kreeg zelfs gevulde pipes die bleven staan .
Per ongeluk heb ik gevonden dat met dit commando :
sudo rm -r *pipe*
toch alles gewist wordt .Waarom mij dit eerder niet is gelukt weet ik niet.
Labels:
aplay,
debug,
pipe deleten,
rtl_tcp,
rtltst,
sdrcfg.txt,
weerballon,
wettersonde,
wxbalonnen
vrijdag 20 maart 2020
WXbalonnen [debugverhaal episode 4]
We pikken terug de draad op en fileren verder mijn oude opstelling.
Dit wordt dan de "linkerkant" of maw het ontvangstgedeelte.
Hiervoor heb ik eerst wat gespeeld met de sdr dongle zelf met eigen commando's om toch nog eens te zien wat er allemaal gebeurt.
Dus nog geen rtl_tcp en nog geen sdrtst met sdrcfg.txt
We hebben oa de volgende " ingebakken" commando's ter onze beschikking.
Deze hebben we omdat we de osmocom driver en librtlsdr bibliotheek gebruiken
rtl_fm ; rtl_sdr ; rtl_tcp ; rtl_test enz ...
Hier wat meer info daarover:
osmocom
Kort samengevat :
1. rtl_fm is een basic fm decoder waarvan de output audio is ( waarschijnlijk in het PCM S16_LE formaat ) . De frequentie en ander parameters worden als argumenten bij het commando meegegeven .
Bijv:
Frequentie is hier 96.3 Mhz (-f)
Mode is hier wideband FM , zeg maar de gewonde FM band ( -M )
Samplerate is hier 200000 ( -s) dit komt overeen met de bandbreedte van één FM uitzending, 200kHz
Resamplerate is hier 48000 ( -r) dit is een 48kHz samplerate waardoor tot max een signaal van iets meer dan 20 kHz in audiogebied kan worden weergegeven ( zie Nyquist)
| is het pijpteken , de uitgang van de decoder wordt via een pipe doorgegeven naar de Linux ( of andere ) audiospeler , hier dus aplay
-r 48 k : op zijn beurt moet de speler weten met welke samplerate het audio binnenkomt. Dit moet gelijk zijn aan de uitgang van de decoder , anders is het geluid niet op " afspeelsnelheid" of kun je helemaal niets horen .
-f S16_LE : is het formaat hoe de digitale weergave van het geluid wordt gepresenteerd . S staat voor signed ( dus met + of - teken ) 16 staat voor het aantal bits waarmee de amplitude van het audiosignaal is bemonsterd, hier dus 16 en LE staat voor Little Endian , een werkwijze of ze eerst de LSB -bit doorsturen of eerst de MSB -bit .Hier dus eerst de LSB.
Met bovenstaande code kan men dus naar een FM station luisteren op je PC.
2. rtl_sdr geeft op zijn uitgang de ruwe ( raw) I/Q formaat uit . Daardoor is het mogelijk om andere bewerkingen te doen om te decoderen /demoduleren. Wil je in deze mode toch audio verkrijgen zoals bij rtl_fm dan moet je nog zelf een decoder achterna schakelen . Ook rtl_sdr kan men parametreren .
De lijst is vrij lang maar kan altijd opgevraagd worden in Linux met volgend commando, op voorwaarde natuurlijk dat deze is geïnstalleerd:
man rtl_sdr
Verlaat de manual met q
3. rtl_sdr werkt samen met rtl_tcp:
Zoals de naam al verraadt is dit een methode om gegevens zoals parameters ( dit zijn instelgegevens) door te geven naar de SDR dongle.Dit wordt gedaan via het interne netwerk van de computer , ook wel localhost genoemd .
Elk netwerk heeft zijn adres en lokaal is dat 127.0.0.1. Daarbij hoort nog een poortnummer ( port) en voor de dongle is dat als standaard waarde op 1234 gezet , gemakkelijk om te onthouden .Wil je deze poort veranderen , dat kan , zie de manual :
man rtl_tcp
Verlaat de manual met q
rtl_tcp is een server , dit wil zeggen dat hij luistert op poort 1234 voor eventuele berichten . Onthoudt dit goed.
Langs deze weg kan dan ook de freq en al andere parameters doorgestuurd worden zoals ook de -P parameter . Met deze parameter stelt men de afwijking in die uw dongle heeft , uitgedrukt in ppm . Bij mij is dat 52 .
Dit ziet ge als ge rtl_tcp opstart als ge niets meegeeft.
Dit was het voor nu.
Dit wordt dan de "linkerkant" of maw het ontvangstgedeelte.
Hiervoor heb ik eerst wat gespeeld met de sdr dongle zelf met eigen commando's om toch nog eens te zien wat er allemaal gebeurt.
Dus nog geen rtl_tcp en nog geen sdrtst met sdrcfg.txt
We hebben oa de volgende " ingebakken" commando's ter onze beschikking.
Deze hebben we omdat we de osmocom driver en librtlsdr bibliotheek gebruiken
rtl_fm ; rtl_sdr ; rtl_tcp ; rtl_test enz ...
Hier wat meer info daarover:
osmocom
Kort samengevat :
1. rtl_fm is een basic fm decoder waarvan de output audio is ( waarschijnlijk in het PCM S16_LE formaat ) . De frequentie en ander parameters worden als argumenten bij het commando meegegeven .
Bijv:
rtl_fm -f 96.3e6 -M wbfm -s 200000 -r 48000 - | aplay -r 48000 -f S16_LE
Een beetje uitleg
Frequentie is hier 96.3 Mhz (-f)
Mode is hier wideband FM , zeg maar de gewonde FM band ( -M )
Samplerate is hier 200000 ( -s) dit komt overeen met de bandbreedte van één FM uitzending, 200kHz
Resamplerate is hier 48000 ( -r) dit is een 48kHz samplerate waardoor tot max een signaal van iets meer dan 20 kHz in audiogebied kan worden weergegeven ( zie Nyquist)
| is het pijpteken , de uitgang van de decoder wordt via een pipe doorgegeven naar de Linux ( of andere ) audiospeler , hier dus aplay
-r 48 k : op zijn beurt moet de speler weten met welke samplerate het audio binnenkomt. Dit moet gelijk zijn aan de uitgang van de decoder , anders is het geluid niet op " afspeelsnelheid" of kun je helemaal niets horen .
-f S16_LE : is het formaat hoe de digitale weergave van het geluid wordt gepresenteerd . S staat voor signed ( dus met + of - teken ) 16 staat voor het aantal bits waarmee de amplitude van het audiosignaal is bemonsterd, hier dus 16 en LE staat voor Little Endian , een werkwijze of ze eerst de LSB -bit doorsturen of eerst de MSB -bit .Hier dus eerst de LSB.
Met bovenstaande code kan men dus naar een FM station luisteren op je PC.
2. rtl_sdr geeft op zijn uitgang de ruwe ( raw) I/Q formaat uit . Daardoor is het mogelijk om andere bewerkingen te doen om te decoderen /demoduleren. Wil je in deze mode toch audio verkrijgen zoals bij rtl_fm dan moet je nog zelf een decoder achterna schakelen . Ook rtl_sdr kan men parametreren .
De lijst is vrij lang maar kan altijd opgevraagd worden in Linux met volgend commando, op voorwaarde natuurlijk dat deze is geïnstalleerd:
man rtl_sdr
Verlaat de manual met q
3. rtl_sdr werkt samen met rtl_tcp:
Zoals de naam al verraadt is dit een methode om gegevens zoals parameters ( dit zijn instelgegevens) door te geven naar de SDR dongle.Dit wordt gedaan via het interne netwerk van de computer , ook wel localhost genoemd .
Elk netwerk heeft zijn adres en lokaal is dat 127.0.0.1. Daarbij hoort nog een poortnummer ( port) en voor de dongle is dat als standaard waarde op 1234 gezet , gemakkelijk om te onthouden .Wil je deze poort veranderen , dat kan , zie de manual :
man rtl_tcp
Verlaat de manual met q
rtl_tcp is een server , dit wil zeggen dat hij luistert op poort 1234 voor eventuele berichten . Onthoudt dit goed.
Langs deze weg kan dan ook de freq en al andere parameters doorgestuurd worden zoals ook de -P parameter . Met deze parameter stelt men de afwijking in die uw dongle heeft , uitgedrukt in ppm . Bij mij is dat 52 .
Dit ziet ge als ge rtl_tcp opstart als ge niets meegeeft.
Dit was het voor nu.
Labels:
aplay,
debug,
rtl_fm,
rtl_sdr,
rtl_tcp,
weerballon,
wettersonde,
wxbalonnen
donderdag 19 maart 2020
Radiosondes op HabHub [ deel 2 ]
Op aanvraag van de QRP heb ik ook eens tussendoor getest of je een radiosonde/wxballon decoder kunt installeren in een zogenaamde docker omgeving.
Ik kende dat niet maar dankzij de QRP en wat opzoekwerk op internet was het vrij simpel dit te installeren .
Ge kunt dit op veel OS-en . bij de QRP loopt dit op een NAS en bij mij natuurlijk in Linux.
Docker is een systeem dat , op mijn manier uitgelegd, een afgeschermde omgeving creëert waar de soft en alle bibliotheken samenzitten en op " zijn eigen" draait .
Ge haalt via een pull een image over die je daar parkeert en van die image maake je één of meerdere containers waarmee uiteindelijk je applicatie draait .
De communicatie loopt in dit geval over een lokale verbinding tussen twee gekoppelde poorten op je localhost.
In feite kun je het een beetje zien als een instantie ( container) van een klasse (class)( image) in een hoger programmeertaal maar dan uitgebreider.
Enfin , ik bespaar je de installatie maar laat je wel het resultaat zien .
Dit was de ballon van Ukkel op woe 18 mrt 2020 en het laatste contact toen hij terugviel en nog 1201 m hoogte had.
En dit is er links te zien tijdens de vlucht. De ontvangsstations worden ook meegegeven.
Hier nog de link naar pull voor radiosonde in docker
pmta/radiosonde
Ik kende dat niet maar dankzij de QRP en wat opzoekwerk op internet was het vrij simpel dit te installeren .
Ge kunt dit op veel OS-en . bij de QRP loopt dit op een NAS en bij mij natuurlijk in Linux.
Docker is een systeem dat , op mijn manier uitgelegd, een afgeschermde omgeving creëert waar de soft en alle bibliotheken samenzitten en op " zijn eigen" draait .
Ge haalt via een pull een image over die je daar parkeert en van die image maake je één of meerdere containers waarmee uiteindelijk je applicatie draait .
De communicatie loopt in dit geval over een lokale verbinding tussen twee gekoppelde poorten op je localhost.
In feite kun je het een beetje zien als een instantie ( container) van een klasse (class)( image) in een hoger programmeertaal maar dan uitgebreider.
Enfin , ik bespaar je de installatie maar laat je wel het resultaat zien .
Dit is op localhost |
En dit is via de link op Habhub. Ge ziet de groene lijn dat bewijst dat ik de data doorstuur naar Habhub.
Dit was de ballon van Ukkel op woe 18 mrt 2020 en het laatste contact toen hij terugviel en nog 1201 m hoogte had.
En dit is er links te zien tijdens de vlucht. De ontvangsstations worden ook meegegeven.
Hier nog de link naar pull voor radiosonde in docker
pmta/radiosonde
Radiosondes op HabHub [ deel 1 ]
Ter info :
Radiosondes ( weerballonnen) zijn ook te volgen op de HabHub tracker .
Ik was mij daar niet van bewust , maar een link in een ander programma ( zie volgende post) bracht mij er naar toe .
Als je in de linkerbovenhoek het zoekveld invult met RS* en daarna op S klikt komen alle weerballonnen te voorschijn met hun blauwe radiohorizoncirkel .
Als je daarin valt kun je ze in principe ontvangen .De groen cirkel is mij niet meer bekend .Ik dacht eerst dat in die cirkel hij visueel zou te zien zijn , maar ik gok nu eerder op de opp waar hij zou neerkomen mocht hij op dat moment neervallen .Wie weet er hier meer over ?
23/03/2020
Dankzij Patrick ON4CDJ weten we nu meer !
De groene cirkel is wanneer de ballon 5° boven de horizon is .
Hoe ik tot hier kwam lees je in een volgende post.
Radiosondes ( weerballonnen) zijn ook te volgen op de HabHub tracker .
Ik was mij daar niet van bewust , maar een link in een ander programma ( zie volgende post) bracht mij er naar toe .
Als je in de linkerbovenhoek het zoekveld invult met RS* en daarna op S klikt komen alle weerballonnen te voorschijn met hun blauwe radiohorizoncirkel .
Als je daarin valt kun je ze in principe ontvangen .De groen cirkel is mij niet meer bekend .Ik dacht eerst dat in die cirkel hij visueel zou te zien zijn , maar ik gok nu eerder op de opp waar hij zou neerkomen mocht hij op dat moment neervallen .Wie weet er hier meer over ?
23/03/2020
Dankzij Patrick ON4CDJ weten we nu meer !
De groene cirkel is wanneer de ballon 5° boven de horizon is .
Hoe ik tot hier kwam lees je in een volgende post.
zondag 15 maart 2020
WXbalonnen [debugverhaal episode 3]
De test.
We gaan dus verschillende terminals moeten openen . Dit kan via muisklik maar ook via <CTRL> < ALT> + T.
Eerst nog een verduidelijking op het blokschema.
Hier is de audioweg ingetekend in het blauw . Door een pipe te voorzien en door het argument -D te gebruiken in de syntax , wordt de audio naar de audiospeler ( Aplay) uitgegeven en kunnen we dit beluisteren .
Het is ook dit dat we als eerste starten omdat we moeten maken dat de pipe zijn inhoud kan dumpen aan zijn uitgang en hier is dat aplay. Let op dat ge in de juiste directory staat.
Onderaan ziet men een soort VU meter
Bij voldoende uitsturing ziet men iets zoals
##############+ | 50 %
Dan starten we in een volgende terminal sondemod. Voor de juiste syntax , zie episode 2. U hoeft nog geen data te zien .
Daarna is het de beurt aan sondeudp , in dit geval ons shell scriptje dat we geschreven om te testen : udpaudiodec.sh
starten met
./udpaudiodec.sh
Dit is het resultaat zonder de verbose ( -v)
Dit is het resultaat met verbose , u ziet direct de data verschijnen die zich in ons audiobestand bevindt , echter op voorwaarde dat aplay loopt. Gelijktijdig komt ook de data op enigzins andere wijze te voorschijn in het terminalvenster van sondemod.
Om nog te kijken of er iets op udp vlak doorgestuurd wordt , openen we opnieuw een terminal en vullen daar de juiste syntax in.
Eerst kijken we op poort 4000 , dat is de uitgang van sondeudp
syntax :
sudo tcpdump -i lo port 4000 -v
en dan kunnen we ook eens kijken op poort 9100 , dat is de uitgang van sondemod.
sudo tcpdump -i lo port 9100 -v
Er is wel één maar :
In feite moet ge eerst tcpdump opstarten en pas dan sondemod / sondeudp anders loopt de verbinding niet .
Dus algemeen , dit is de volgorde van opstarten als je alles wilt bekijken .
1. Aplay
2. tcpdump
3. sondemod
4. sondeudp , hier via udpaudiodec.sh
5. eventueel uw geluidsmengpaneel
Opm , als je aplay niet loopt , dan zal er ook geen data te zien zijn in sondeudp en sondemod als deze het argument -v in de syntax hebben .
Nog een opmerking:
Bij het snifferen met tcpdump op poort 9100 , zal je vaststellen dat er slechts om de 20 sec of om de 6 sec iets wordt weggeschreven . Dit is omdat dit zo voorzien is bij de syntax van sondemod
./sondemod -o 4000 -I ON4AOL-12 -r 127.0.0.1:9100 -b 20 -B 6 -A 1500 \
-x e.txt -T 360 -R 240 -d -p 2 -t sondecom.txt -v &
-b 20 , om de 20 sec wegschrijven bij hoge hoogte
-B 6 , om de 6 seconden wegschrijven bij lage hoogte.
Dit is mooi , omdat dan bij het landen van de ballon er sneller datagegevens ( oa van de GPS) te zien zal zijn om de ballon eventueel te gaan zoeken.
Deze gegevens worden uiteindelijk gebruikt om oa op een map te plotten.
Besluit van dit alles :
Het rechtergedeelte in mijn blokschema werkt dus . Ik zal de fout in het linkergedeelte moeten zoeken , maar dat wordt een andere opstelling en dus ook een ander verhaal .
We gaan dus verschillende terminals moeten openen . Dit kan via muisklik maar ook via <CTRL> < ALT> + T.
Eerst nog een verduidelijking op het blokschema.
Hier is de audioweg ingetekend in het blauw . Door een pipe te voorzien en door het argument -D te gebruiken in de syntax , wordt de audio naar de audiospeler ( Aplay) uitgegeven en kunnen we dit beluisteren .
Bij voldoende uitsturing ziet men iets zoals
##############+ | 50 %
Dan starten we in een volgende terminal sondemod. Voor de juiste syntax , zie episode 2. U hoeft nog geen data te zien .
Daarna is het de beurt aan sondeudp , in dit geval ons shell scriptje dat we geschreven om te testen : udpaudiodec.sh
starten met
./udpaudiodec.sh
Dit is het resultaat zonder de verbose ( -v)
uitgang sondeudp opgestart met udpaudiodec.sh |
Dit is het resultaat met verbose , u ziet direct de data verschijnen die zich in ons audiobestand bevindt , echter op voorwaarde dat aplay loopt. Gelijktijdig komt ook de data op enigzins andere wijze te voorschijn in het terminalvenster van sondemod.
data in sondemod |
Om nog te kijken of er iets op udp vlak doorgestuurd wordt , openen we opnieuw een terminal en vullen daar de juiste syntax in.
Eerst kijken we op poort 4000 , dat is de uitgang van sondeudp
poort 4000 |
syntax :
sudo tcpdump -i lo port 4000 -v
en dan kunnen we ook eens kijken op poort 9100 , dat is de uitgang van sondemod.
sudo tcpdump -i lo port 9100 -v
poort 9100 |
In feite moet ge eerst tcpdump opstarten en pas dan sondemod / sondeudp anders loopt de verbinding niet .
Dus algemeen , dit is de volgorde van opstarten als je alles wilt bekijken .
1. Aplay
2. tcpdump
3. sondemod
4. sondeudp , hier via udpaudiodec.sh
5. eventueel uw geluidsmengpaneel
Opm , als je aplay niet loopt , dan zal er ook geen data te zien zijn in sondeudp en sondemod als deze het argument -v in de syntax hebben .
Nog een opmerking:
Bij het snifferen met tcpdump op poort 9100 , zal je vaststellen dat er slechts om de 20 sec of om de 6 sec iets wordt weggeschreven . Dit is omdat dit zo voorzien is bij de syntax van sondemod
./sondemod -o 4000 -I ON4AOL-12 -r 127.0.0.1:9100 -b 20 -B 6 -A 1500 \
-x e.txt -T 360 -R 240 -d -p 2 -t sondecom.txt -v &
-b 20 , om de 20 sec wegschrijven bij hoge hoogte
-B 6 , om de 6 seconden wegschrijven bij lage hoogte.
Dit is mooi , omdat dan bij het landen van de ballon er sneller datagegevens ( oa van de GPS) te zien zal zijn om de ballon eventueel te gaan zoeken.
Deze gegevens worden uiteindelijk gebruikt om oa op een map te plotten.
Besluit van dit alles :
Het rechtergedeelte in mijn blokschema werkt dus . Ik zal de fout in het linkergedeelte moeten zoeken , maar dat wordt een andere opstelling en dus ook een ander verhaal .
Labels:
debug,
weerballon,
wettersonde,
wxbalonnen
zaterdag 14 maart 2020
WXbalonnen [debugverhaal episode 2]
Wat hebben we nodig ?
1. Audiobestand in S16 LE mode en 8000 Hz rate.
2. Een klein shell bestandje om sondeudp op te starten
3. Een pipe bestand
4. Een audiospeler , we gebruiken de Aplay van Linux.
5. Eventueel iets om te snifferen op de UDP stream : --> tcpdump
6. Veel open terminal vensters om dit allemaal te kunnen ingeven .
Zoiets dus !
Voorbereiding.
Eerst een shellbestandje aanmaken ( script)
Ik heb dit udpaudiodec.sh genoemd . Maak dit aan met nano .
en geef nadien rechten aan dit bestand met :
sudo chmod +x udpaudiodec.sh
Het komt dan in de lijst als groen te staan , dwz : het is uitvoerbaar.
De naam van het audiobestand is hier UkkelAudio.wav maar dat kan natuurlijk uw bestandsnaam zijn. Let ook op de & op het einde , dit betekent dat dit als daemon zal draaien ( op de achtergrond) zoiets als een TSR bij DOS vroeger
( Terminate and Stay Resident). U kunt het ook weglaten , dat vergemakkelijkt het afsluiten bij problemen.
Dan maken we een pipe aan met :
sudo mknod audiopipe p
Vergeet het p niet op het einde en gebruik NIET mkfifo , dit geeft een bestand waar de inhoud blijft instaan , we moeten echt streamen.
Dan nog een commandoregel dat we zullen openen in één van de terminals .
Let op het einde van de eerste regel , de \ wil zeggen dat de regel afbreekt en verdergaat op de tweede lijn . Probeer echter alles op één lijn in de terminal te kopiëren, dan zonder de \ natuurlijk
./sondemod -o 4000 -I ON4AOL-12 -r 127.0.0.1:9100 -b 20 -B 6 -A 1500 \
-x e.txt -T 360 -R 240 -d -p 2 -t sondecom.txt -v &
Hiermee starten we sondemod op , zie daarvoor het blokschema.
Commando om de audiospeler te starten :
aplay -f S16_LE -r 8000 -c 1 --vumeter=mono < audiopipe
Dit is een wat uitgebreidere syntax , en geeft onderaan een soort van VU meter weer.
En dan voor de liefhebbers een commando om te snifferen op de UDP uitgang van sondemod.
sudo tcpdump -i lo port 9100 -v
Al deze losse commando's komen in een aparte terminal te staan .
hierbij is het ook aangewezen om het geluidsmengpaneel te openen , zo zie je of de aplay wel werkt .
Nog twee overzichten van mijn mappen aprs en dxlAPRS.
Dit om de eigenaars te zien van de bestanden . Maw met deze config werkt het.
U ziet dat bijna alles op mijn naam staat en niet op root.
Dit is een geheugensteuntje voor mezelf , misschien mogen er ook andere rechten zijn maar zo werkt het ( althans voor de audio-injectie).er zijn ook enkele pipes die in grijze tekst staan . Dit zijn gemaakte fouten en ik krijg ze niet weg , ook niet met een force argument bij het rm commando.
Volgende keer starten we alles op.
1. Audiobestand in S16 LE mode en 8000 Hz rate.
2. Een klein shell bestandje om sondeudp op te starten
3. Een pipe bestand
4. Een audiospeler , we gebruiken de Aplay van Linux.
5. Eventueel iets om te snifferen op de UDP stream : --> tcpdump
6. Veel open terminal vensters om dit allemaal te kunnen ingeven .
Zoiets dus !
Voorbereiding.
Eerst een shellbestandje aanmaken ( script)
Ik heb dit udpaudiodec.sh genoemd . Maak dit aan met nano .
en geef nadien rechten aan dit bestand met :
sudo chmod +x udpaudiodec.sh
Het komt dan in de lijst als groen te staan , dwz : het is uitvoerbaar.
De naam van het audiobestand is hier UkkelAudio.wav maar dat kan natuurlijk uw bestandsnaam zijn. Let ook op de & op het einde , dit betekent dat dit als daemon zal draaien ( op de achtergrond) zoiets als een TSR bij DOS vroeger
( Terminate and Stay Resident). U kunt het ook weglaten , dat vergemakkelijkt het afsluiten bij problemen.
Dan maken we een pipe aan met :
sudo mknod audiopipe p
Vergeet het p niet op het einde en gebruik NIET mkfifo , dit geeft een bestand waar de inhoud blijft instaan , we moeten echt streamen.
Dan nog een commandoregel dat we zullen openen in één van de terminals .
Let op het einde van de eerste regel , de \ wil zeggen dat de regel afbreekt en verdergaat op de tweede lijn . Probeer echter alles op één lijn in de terminal te kopiëren, dan zonder de \ natuurlijk
./sondemod -o 4000 -I ON4AOL-12 -r 127.0.0.1:9100 -b 20 -B 6 -A 1500 \
-x e.txt -T 360 -R 240 -d -p 2 -t sondecom.txt -v &
Hiermee starten we sondemod op , zie daarvoor het blokschema.
Commando om de audiospeler te starten :
aplay -f S16_LE -r 8000 -c 1 --vumeter=mono < audiopipe
Dit is een wat uitgebreidere syntax , en geeft onderaan een soort van VU meter weer.
En dan voor de liefhebbers een commando om te snifferen op de UDP uitgang van sondemod.
sudo tcpdump -i lo port 9100 -v
Al deze losse commando's komen in een aparte terminal te staan .
hierbij is het ook aangewezen om het geluidsmengpaneel te openen , zo zie je of de aplay wel werkt .
Nog twee overzichten van mijn mappen aprs en dxlAPRS.
Dit om de eigenaars te zien van de bestanden . Maw met deze config werkt het.
U ziet dat bijna alles op mijn naam staat en niet op root.
Dit is een geheugensteuntje voor mezelf , misschien mogen er ook andere rechten zijn maar zo werkt het ( althans voor de audio-injectie).er zijn ook enkele pipes die in grijze tekst staan . Dit zijn gemaakte fouten en ik krijg ze niet weg , ook niet met een force argument bij het rm commando.
Volgende keer starten we alles op.
Labels:
debug,
weerballon,
wettersonde,
wxbalonnen
WXbalonnen [debugverhaal episode 1]
Ik had weer eens de decodersoft geïnstalleerd om de wx balonnen te volgen , maar helaas het spul werkt niet meer ??
Ik hoop hier het debug verhaal te schrijven om dit tot een goed einde te brengen . De opzet is terug identiek als voorheen ( zie andere afleveringen in 2018) en ook het blokschema blijft hetzelfde .
Ergens in de keten liep het mis , maar ik kon niet direct achterhalen waar precies .
Na verschillende pogingen met allerhande shell bestandjes heb ik uiteindelijk besloten om ded dataflow in tweeën te splitsen en kijken wat wel en niet werkte.
Dit is te zien door het audiobestand eens af te spelen met VLC . Dit programma is zekers de moeite waard om in het bezit te hebben .
Bij tools kies je voor codec information
U ziet dat hier is gesampled met 48 kHz , dit moeten aanpassen.
Hoe je dat doet zou ons hier te ver brengen , er zijn YT filmpjes genoeg maar ik geef hier wel de uiteindelijke settings mee
Het is dit nieuwe bestand ( dat ook veel kleiner is) dat we gaan injecteren zoals hieronder is weergegeven.
Dit is voor een volgende aflevering.
Ik hoop hier het debug verhaal te schrijven om dit tot een goed einde te brengen . De opzet is terug identiek als voorheen ( zie andere afleveringen in 2018) en ook het blokschema blijft hetzelfde .
Ergens in de keten liep het mis , maar ik kon niet direct achterhalen waar precies .
Na verschillende pogingen met allerhande shell bestandjes heb ik uiteindelijk besloten om ded dataflow in tweeën te splitsen en kijken wat wel en niet werkte.
origineel |
Na de verschillende programma's hun help file en/of man pages uit te printen om te achterhalen wat de argumenten precies doen , zag ik dat het niet speciaal de audiopipe nodig was als input van sondeudp maar deze ook een "gewoon" bestand kon inlezen .
Hiervoor moet je audiobestand aan de volgende codec voldoen :
PCM
S16LE
8 nov 2022 :Errata: Bovenstaande lijkt niet (meer) te lukken ! Door een opmerking van Vigor (Fr) heb ik het nog eens bekeken. Alhoewel in de help van sondeudp dit staat :
geeft hij bij het aanbieden van een wav file deze error
Dus enkel een pipe of oss kan werken .
De oplossing is dus een pipe maken , de wav file redirecten en de uitgang van de pipe naar sondeudp . De pipe hier noemt audiopipe
Starten van sondeudp in terminal 1 :
./sondeudp -f 16000 -o audiopipe -I ON4AOL-12 -u 127.0.0.1:4000 -c 1 -v
Starten van wav file in terminal 2 :
more UkkelAudio.wav > audiopipe , je kan ipv more ook cat gebruiken
Resultaat:
einde errata
***********************************************************************************
Tijdens een vlucht van een ballon uit Ukkel ( lekker sterk) heb ik een opname gemaakt met GQRX en de dongle
Dit kan je door volgende velden in te stellen
Het resultaat is een audiobestand maar wel met een verkeerde samplerate
Bij tools kies je voor codec information
U ziet dat hier is gesampled met 48 kHz , dit moeten aanpassen.
Hoe je dat doet zou ons hier te ver brengen , er zijn YT filmpjes genoeg maar ik geef hier wel de uiteindelijke settings mee
Het is dit nieuwe bestand ( dat ook veel kleiner is) dat we gaan injecteren zoals hieronder is weergegeven.
debug |
Dit is voor een volgende aflevering.
Abonneren op:
Posts (Atom)