Raspberry Pi + RTL Dongle

Een universele breedbandontvanger ontvanger.

De experimenten met de Raspberry Pi en RTL Dongle gaat verder. Had ik in een eerder blog al verteld dat het mogelijk is om de combinatie RPi en Dongle als remote ontvanger te gebruiken, nu een blog over een desktop versie met andere software en een heus display.

Voor dit experiment gebruik ik een Raspberry Pi type A board. Dus geen LAN aansluiting. Ik heb een monitor aangesloten en een toetsenbord en muis, dus kan alle kanten op. Overigens via WiFi ben ik op het huisnetwerk (en dus internet) aangesloten. Verder is op de gevoede USB 2.0 Hub een RTL Dongle aangesloten die op een buitenantenne is geplugt!

Werkt het? Jein. Het koste me wel wat moeite en knutselen (met software en parameters dan) maar ik ben eigenlijk wel tevreden over het resultaat en hoop dat er nog betere software komt. Een beschrijving van de situatie.

Wij amateurs zijn verwent met de SDR# software op Windows of krachtiger Linux systemen. Hiermee is werkelijk alles te bedienen, besturen en met name de selectiviteit is prima. Op een RPi werkt dit echter niet 123. Althans ik ben nog geen dergelijke software tegengekomen die op een Raspberry Pi stand houd.

Wel ben ik tegen een andere oplossing gestoten. Daarvoor moet je allereerst de software installeren zoals beschreven in mijn vorige post: http://pa3ang.nl/wp/archives/3405
Na de installatie heb je dan de volgende software: rtl_ftp, rtl_test, rtl_adsb, rtl_sdr en rtl_fm. Deze laatste is nu voor ons van belang. Dit is namelijk zoals de ontwerper zegt:

Rtl_fm is a little utility I wrote for the rtl-sdr project. The program was made to fill a gap in software defined radio: all the computers weaker than a Pentium 4. Basically, an Atom processor processor does not have enough oomph to demodulate something as simple as narrow band FM using the standard tools. (Recently a high performance FM demodulator was released, Simple FM but it works only possibly on newer Atoms.) So rtl_fm was written with one goal, efficiency, in mind.

Het is dus een lichtgewicht programmaatje om FM (en AM) te demoduleren. Nou en dat doet het. Je kunt de bandbreedte (van de demodulator) instellen en omdat het programma ook geschikt is voor WideBand FM is er aan de ‘voorkant’ weinig narrowband selectiviteit. Sterk nabuursignalen hoor je dus doorbreken. Dit is een belangrijke tekortkoming en maken het programma feitelijk ongeschikt voor onze radioamateur toepassingen. Echter op een ‘rustige’ 2 meter band komt PI3UTR prima binnen in Zwolle en breekt Apeldoorn op 145.725 (100 kHz hoger) niet door maar PI3MEP in Meppel op 25kHz hoger wel.

Je kunt veel instellen bij rtl_fm. In feite alles wat belangrijk is. O ja, je moet een geschikte player hebben om het ruwe signaal naar te pipe-en. aplay zit standaard in Wheezy, maar er wordt ook gebruik gemaakt van play. Dit is een player programma welke onderdeel is van het Sox pakket. Dus $: sudo apt-get install sox Als je dan toch bezig bent installeer dan ook even het multimon programma waarmee je allerlei digitale signalen kunt decoderen (nee geen D-STAR en C2000). $: sudo apt-get install multimon

Ondertussen heb ik een klein schriptje geschreven om snel de mode, frequentie, squelch en decoder bandbreedte te kunnen veranderen. Het is verre van af!

#!/bin/bash
#
# Radio station script for rtl_fm met play
# by <pa3ang@xs4all.nl>
#
# Version 1.0
# 2013-04-30
# http://www.pa3ang.nl
#

# Copy/redirect output to stderr
function StdErr () {
cat – 1>&2
}

# Help
# 1st argument is a mode, 2nd is frequency in MHz, 3rd is squelch (optional), 4th is bandwidth
# mode AM, NFM, WFM
# freq in MHz with decimal .
# squelch  value 0 – 255
# bandwidth  in kHz without k

if [[ $1 == “AM” ]]; then
# mostly VHF aircomms 118 – 136 MHz
killall -9 rtl_fm
if [ -z “$3″ ]; then
sq=”120″
else
sq=$3
fi
gn=”A”
ppm=”62″
if [ -z “$4″ ]; then
bw=”8k”
else
bw=$4
fi
rtl_fm -M -f $2M -l $sq -s $bw -p $ppm | play -r $bw -t raw -e signed-integer -b 16 -c 1 -V1 – -q &
fi

if [[ $1 == “NFM” ]]; then
killall -9 rtl_fm
if [ -z “$3″ ]; then
sq=”120″
else
sq=$3
fi
gn=”A”
# ppm checked for VHF
ppm=”90″
if [ -z “$4″ ]; then
bw=”16k”
else
bw=$4
fi
rtl_fm -N -E -f $2M -l $sq -o 1 -s $bw -p $ppm | play -r $bw -t raw -e signed-integer -b 16 -c 1 -V1 – -q &
fi

if [[ $1 == “WFM” ]]; then
# FM Band 88 – 108 MHz, WBFM only
killall -9 rtl_fm
sq=”0″
gn=”A”
bw=”170″
# aplay player !
rtl_fm -W -f $2M -l 0 -p 0 -o 4 | aplay -r 32K -f S16_LE -t raw -c 1 -q &
fi

# info on BitWizard RPI-UI
sudo bw_tool -a 94 -C -r 17 -v 0 -t “$2” MHz, “$1”
sudo bw_tool -a 94 -r 17 -v 32 -t “s$sq|g$gn|p$ppm|b$bw”

exit $ERR_OK

Een simple script met de naam radiofm wat je aanmaakt in je /home/pi directory en maak hem dan executable met $:  sudo chmod +x radiofm

De mogelijke command’s:
./radiofm WFM 99.4  (FM ontvangst in mono!)
./radiofm NFM 145.625 120 12   (mode, frequentie in MHz, squelch nivo en bandbreedte)
./radiofm AM 126.2 120  (AM ontvangst)
etc.

Het script schrijft ook info naar het BitWizard display. Het volgende projectje is een Python script met uitlezing van de knopjes en misschien een draaischakelaar (encoder) aansluiten.

Ik wilde in elk geval weten of het project kans van slagen heeft en met de eerder gemelde probleem van de selectiviteit lijkt het toch de inspanning waard om nog even verder te programmeren.

Nuttige linkjes met veel info:
http://superkuh.com/rtlsdr.html
http://dekar.wc3edit.net/2012/05/24/multimonng
http://kmkeen.com/rtl-demod-guide/index.html
http://sdr.osmocom.org/trac/wiki/rtl-sdr

VHF Airband Receiver (w/ EPROM data)

!! WE HAVE GOT THE CONTENT OF THE EPROM ON FILE. SEE BOTTOM OF THE PAGE !!

NOTE: I DO NOT HAVE READY TO BUILD KITS, PCBS OR EPROMS AVAILABLE. THIS PAGE JUST SHOWS HOW YOU CAN BUILD SUCH A RECEIVER. THIS PROJECT WAS 15 YEARS AGO!

Introduction

Listening to airplanes is and has always been a fascinating hobby. To do so, you need a good receiver. I decided to design and build a high performance and dedicated VHF-AM receiver. (we are talking 1994)

When I was working as a professional engineer at one of the biggest telecom companies in the world, I had the opportunity to design an build several synthesised receivers covering 118 to 136 MHz with an AM de-modulation method. Using the possibility to measure the design with high standard equipment and playing with several VCO and PLL circuitry, I ended up in with this design of a high performance AM receiver with an excellent dynamic range needed for ‘near by’ operations (listening at the field) and outstanding sensitivity to receive far away ground stations. (when listening at home)

Design

The receiver is build around a TDA 1072 AM Receiver Circuit and the used frequency synthesiser is a NJ8820 CMOS Controller. All components are general available on the market. The design is from 1994 and has not been taken further in designing a PCB or Kit to reproduce.


Click on the image to enlarge

The conserve power, during portable operations, this receiver has no digital display. In stead ‘avaialble’ BCD switches are used. Thes switches act as adress lines for the EPROM. During switching (or actually some milliseconds after the adress is stable) the corresponding data is latched into the PLL. Thereafter the EPROM circuitry is switched again to conserve power and to lower the risk of internal interference with the RF circuitry.


3235 means that the receiver is tuned to 132.350 MHz

The EPROM does contain also 80 adresses with preset frequencies. In that case the first and last digit are 0 (zero).
Furtermore, only 0, 2, 5 and 7 are valid for the 4th digit as they represent 00, 25, 50 and 75 kHz.
For example: ‘0340‘ means memory channel 34 and ‘1832‘ stands for 118.325 Mhz.

Hereunder you find the list with memory channels as they are programmed into the EPROM and valid in 1994.

Note that some of the programmed frequency are changed or no longer in use.

Specifications

Frequency range 118 – 136 Mhz
Channel steps 25 KHz
Memories in EPROM (fixed)
Mode A3
Circuit type Double Conversion
Intermediate freq. 21.4 MHz and 455 KHz
Sensitivity 1uV @ 10dB S/N
Squelch sensitivity .7uV
Selectivity(-6/-60dB) 6 KHz/20KHz
Image Rejection 40 dB
Supply Voltage 13.8 Volt (9.0 – 16.0 V)
Accu NiCad 8x AAA Cells
Current Consumption 250mA (Approx.)
Size (w,h,d) 100 x 43 x 130 mm
Housing Metal
Antenna receptor BNC

The circuitry is build on a versatile PCB used for experimenting with RF grounding grid toplayer. The antenna is a VHF helical and the casing a modified ‘everywhere’ to buy casing. (I made it a little smaller)
The 8 ‘AAA’ NiCad cells are underneath the PCB. The EEPROM holds the data for the PLL and is controlled by the BCD switches.

To finish off the description a last picture of the receiver detailing out the frontpanel connections and components build up.

Block Diagram

As already outlined, I have never brought the design to maturity and to transform it into a re-buildable design or kit. Nevertheless you are free off course to use the design and create yours. The block diagram and schematics can help you in choosing the right components.

Band-pass filter
HF Amplifier
Mixer SCM1 or SBL1 type
MF Amplifier 21.4 MHz
MF stage 455 KHz and De-modulation
Squelch circuit
LF amplifier
VCO, Synthesiser and LPF
ROM and BCD switches
Power supply

Schematics

Download the complete schematic by clicking here.

EPROM content

We finally found a partner to read and copy the content of the EPROM. The 27512 EPROM contains the devider setting for the PLL. The data is now available in HEX or Motorola S1F format.
You can download it by clicking one of the links: hex  s1f

Future

Flying this airplane?

PMSDR-PowerSDR-Logger32

Een sterk trio: PMSDR + PowerSDR-IQ + Logger32

Ik heb dus nu al een tijdje een PMSDR ontvanger in gebruik en maak daarbij gebruik van een IQ variant van PowerSDR, het SDR programma van Flex Radio. Niet alleen heeft PowerSDR-IQ de juiste HAM Radio look en feel, maar het is ook alvast een goede mogelijkheid om ervaring op te doen als mijn Flex 1500 arriveert begin 2010.  (IQ staat voor ExtIQ, of te wel aansturing van IQ SDR toestellen zoals de SDR-IQ van RF Space en de PMSDR van IW3AUT.

Sinds jaar en dag maak ik voor het loggen van mijn QSO’s gebruik van Logger32. Dit programma heeft naast een prima log functionaliteit ook een zeer gebruikersvriendelijke userinterface voorzien van DX Cluuster en CAT control. Je kunt dus een station spotten op het cluster, dat station aanklikken met de muis en vervolgens staat de set meteen op de juiste frequentie en in de jusite mode. Eventueel kun je nog automatisch van antenna wisselen en desnoods van set. Daarnaast heeft Logger32 ook nog een boel andere leuke functionaliteit. Maar daar wil ik het in dit blog verder niet over hebben. Kijk maar op Logger32.net voor details.

Waar het nu om gaat is het koppelen van Logger32 aan de PMSDR of beter gezegd aan PowerSDR-IQ.  Hoe doe je dat?

Je hebt daar voor nodig een virtuele COM poort naar COM poort connector. Je houdt beide programma’s een beetje voor de gek door als het ware twee COM poorten aan elkaar te knopen en de programma’s ieder met één van die COM poorten te laten praten. Je krijgt dan dus een zogeheten virtueel NULMODEM. Ik gebruik daarvoor het gratis com0com programma.

Vervolgens zoek je op de PC de nog vrije COM poorten op.  (Ik heb op mijn laptop nogal wat poorten in gebruik voor een UMTS modem en Bluetooth dus moet erg hoog zoeken voor een vrije poort.)  De combinatie welke ik kan maken is COM16 met COM2. COM16 is de hoogste poort welke nog door Logger32 kan worden gebruikt!

Vervolgens moet je zowel Logger32 als PowerSDR-IQ vertellen op welke poort er gecommuniceerd moet worden. In de onderstaande figuren is e.e.a. terug te vinden.

Het resultaat is dat je nu vanuit Logger32 de SDR ontvanger kunt bedienen en het snel scannen van de verschillende frequenties op basis van cluster spots mogelijk wordt.

Veel succes met het uitproberen.

Hieronder nog een totaalplaatje van het scherm. Het is echter nu aan te bevelen om met twee schermen te gaan werken, zodat de PowerSDR mooi op een tweede scherm kan worden getoond en Logger32 op het ‘werkscherm’ aanwezig is.

Uiteraard zijn er met de het virtuele nulmodem nog meer leuke dingen te doen, maar voorlopig lijkt me deze toepassing wel erg handig.

vy 73 de Johan, PA3ANG

PMSDR | Receiver 100 kHz – 55 MHz

Eindelijk een betaalbaar General Coverage SDR alternatief.

This article has subtitles in English but is mainly for dutch readers.

Sinds de laatst gehouden DvdRA in Apeldoorn ben ik in het bezit van een PM-SDR. Deze Software Defined Radio heeft een bereik van 100 kHz to 55 MHz en kan met behulp van een computerprogramma gebruikt worden als hoogwaardige HF ontvanger.

De ontvanger wordt als bouwpakket geleverd, maar je hoeft slechts 10 componenten te solderen om vervolgens de print in een voorgeboorde  kant en klare behuizing te schuiven. Het pakket bevat naast de PCB ook het optionele display en de twee kabels (USB2.0 en 3,5mm stereo Audio). De ontvanger is een ontwerp van de Italiaanse radioamateur IW3AUT en wordt geproduceerd door RF System. In Nederland wordt de ontvanger geleverd door Parma Communications.

Ger heeft sinds kort een speciale website met forum in de lucht gebracht. Hier kun je alles over de PMSDR ontvanger te weten komen en je ervaringen delen met andere gebruikers van dit fantastische ontvangertje.

Tot zover de commerciële bla bla, nu de werkelijkheid met eerst een aantal aanklikbare foto’s om een indruk te krijgen.

Recently I bought a PM-SDR receiver. This professional designed and produced Software Defined Radio product is created by IW3AUT and produced by RF System in Italy. This blog describes my first experiences with this General Coverage HF receiver.

We beginnen met het openmaken van de doos om te constateren dat alles aanwezig is en keurig netjes ESD veilig verpakt. Er zit in de doos een CD waarop, naast de nodige software, ook een Duitstalige bouwbeschrijving staat. Je kunt hem hier alvast downloaden.

Er hoeven zoals gezegd slechts 10 à 15 componenten geplaatst te worden. (De pinheaders zijn niet allemaal nodig).  Binnen 30 minuten was de soldeerklus geklaard en kon het achterpaneel gemonteerd en het geheel in het bodemgedeelte van het kastje geschoven worden.

De PCB is 10 bij 8 centimeter klein en bevat ca. 175 voorgemonteerde smd componenten. Alleen de ‘through hole’ componenten moeten gesoldeerd worden.

The kit has been packed securly and after unwrapping about 10 to 15 components have to be soldered. The CD (part of the kit) has all the necessary documentation to succesfully build the receiver. No special tooling is needed. I finished this part in less then 30 minutes.

Meteen een eerst test!. De USB kabel aan de PC en ja het groene ledje gaat branden. De PC wil vervolgens een USB device driver installeren. Dit gaat moeiteloos door de juiste directory MCHPUSB Driver op de meegeleverde  CD te kiezen.

Nu Winrad installeren (staat ook op de CD: Winrad_133b01_setupXP) en vervolgens in de Winrad directory (meestal C:\Program Files\Winrad) de 3 specifieke PMSDR DLL’s kopiëren. (cc3260.dll, ExtIO_PMSDR.dll en mpusbapi.dll) Je kunt ook op de site van IW3AUT de laatste versies downloaden.

Winrad

Installing the software is simple. First the USB driver to control the Microchip PIC controller and to power the receiver. Then Winrad to decode the IQ signals. In conjunction you need to copy some files into the Winrad directory. These DLL files then control the PMSDR out of the decoding program. (called extIO)

We zijn dus na nog geen uurtje knutselen qrv met onze nieuwe aanwinst. Nu nog een wat moeilijkere operatie: het aansolderen van de flatcable op het display module. De Duitstalige handleiding help opnieuw hierbij en na een secure werkje kan het display gemonteerd worden op het frontpaneel en ook aan het kastje bevestigd worden.

Een beetje prutten is het wel. Mooi contrastrijk display.
LET OP: Je moet een klein potmetertje (R7)  afregelen voor de juiste werking van het display.

Sluit het display aan en vervolgens weer de USB kabel tussen de PC en de ontvanger. Neem nu een keramische of plastic schroevendraaier en draai tot je de tekst ziet zoals getoond op de foto hierboven. Er is namelijk een tweede afstelpunt maar dan zie alleen twee regels met matrix blokjes en geen karakters.

Soldering the flatcable to the display module took me some more time. But it’s fool proof as long as you follow the guidlines in the documentation. After connecting the display to the receiver, you have to adjust a variable resistor to get the right contrast. Make sure you have the right spot and see characters in stead of matrix lines!

Tja dat was het dus. Nu kan het luisterfeest beginnen. O ja de souncard van mijn laptop heeft geen stereo ingang, dus ik heb daarvoor een USB geluidskaart tijdelijk in gebruik. Een Sitecom dingetje met verrassende resultaten. Ik denk dat met een Sound Blaster Audigy 24-bit / 96kHz kaart het dynamische bereik nog beter te maken is, maar voorlopig red ik me wel even.

Nog wat plaatjes om dit artikel compleet te maken.

Nu, naar een aantal dagen oefenen met de software en het testen van de verschillende configuraties (software) ben ik erg tevreden met de prijs / kwaliteit verhouding. Als vergelijk heb ik een Elecraft K2 ter beschikking en een TenTec RX320. Het dynamische bereik en de uitstekende HF bandbreedte maken deze ontvanger tot een serieuze kandidaat naast de SDR-IQ en de wat duurdere jongens zoals de Perseus en de SDR-14.

Having used the receiver now for a couple of day’s I must say that the price / quality ratio is very good. This receiver is a serious competitor of the SDR-IQ and the bigger ones like Perseus and SDR-14.

Luciferdoos ontvanger

Een miniatuur AM ontvanger.

 

Grappig

Recentelijk kwam ik het radiootje weer tegen. Hij zat in een bakje met ‘SPECIALS’ erop geschreven. Het is een bouwsel wat ik gemaakt heb rond 1981. Ik zat in het groene pak (dienstplicht) en was regelmatig op bivak.
Nou had je in die tijd nog nooit gehoord van een walkman, laat staan van een iPod of een portabele radio die je in ongezien ergens in je kleding kon verbergen. In die tijd was ik abonnee op het blad Elektuur, een blad waar altijd leuke eenvoudige en praktijkgerichte ontwerpjes in stonden. Zo ook een beschrijving van een eenvoudig AM ontvangertje met behulp van een ZN414 IC. (datasheet) Met nog 6 componeneten een knoopcel batterij en een oortelefoontje zou het de ontvangst van sterke AM zenders moeten geranderen. Enfin, ik dat ding bouwen en ziedaar een perfecte portabele en onzichtbare radio. Ik kon hem prima in de borstzak van mijn gevechtspak opbergen en als we de geluidbeschermers ophadden bleef het oordopje perfect en onzichtbaar in je oor zitten. Het gebeurde zelfs een keer dat een hoge pief me bezocht op de schietbaan en met mij babbelde terwijl ik naar Hilversum 3 luisterde! Hij had niks in de gaten :-). Kortom een leuk radiootje, misschien het nabouwen waard. O ja het lijkt niet eens op een radio, maar op de doosje lucifers.

Het ontwerp

 

Zoals gezegd komt het ontwerp uit Elektuur alleen heb ik daar geen copy meer van. Vandaar deze schets uit mijn scrapbook. De onderdelen zijn:

  • ZN414.
  • R 100k.
  • R 150ohm.
  • C 22nF.
  • C 150nF.
  • L = ferrit antenna 100wdn.
  • Cadj = 2 x 120pf.
  • Dynamisch oortelefoontje.
  • Lithium knoopcel 1,5 Volt
  • De afstemcondensator en ferrietantenne zou je uit een oud (of nieuw) AM radiootje kunnen slopen! Er kan eventueel een audio versterkertje worden toegevoegd. Maar ja dan wordt het al weer een heel apparaat met het nodige volume aan batterijen.

    De uitvoering

    De foto’s geven een goed overzicht hoe je de ontvanger kunt opbouwen. Een spinnenweb constructie dus. Klik op de foto’s voor een vergroting.


    Ferrietantenne.

    Spinnenweb.

    Lithum batterij.

    De behuizing.

    Gebruik

    Zoals gezegd een echte stealth ontvanger. Onzichtbaar en werkt altijd. Je zoekt een zender op en die blijft gewoon doorspelen. Stukken makkelijker dan je iPod en de ontvanger speelt makkelijk 10 jaar op dezelfde batterij! Het exemplaar wat ik gebouwd heb in 1981 heeft natuurlijk een paar jaar in de doos ‘SPECIALS’ gelegen maar speelt nog gewoon op de originele knoopcel! Nabouwen is eenvoudig en ik wens je veel luisterplezier. Hieronder kun je naar een fragmentje luisteren wat ontvangen is met deze luciferdoosontvanger.

    Je hoort Radio Big-L en daarna draai ik wat over de band van boven naar beneden 1595kHz >> 600kHz waar je een duits station hoort om vervolgens via Radio5 en GrootNieuwsRadio1008 terug te komen op 1600kHz waar de locale piraat ook nog goed doorkomt!