WBFM Transmit with HackRF & GNURadio
Radio transmissions with HackRF
Today I was transmitting a ‘Wide Band Frequency Modulation’ (WBFM) encoded radio in a carrier wave with Michael Ossmann’s Software Defined Radio (SDR) peripheral, HackRF.
I leave my experience here as breadcrumbs for others who follow in the path of learning Digital Signal Processing (DSP)
GNURadio Companion file:
WBFM Transmit with HackRF & GNURadio: HackRF-FM-Transmit.grc
Using a named pipe as a way to control the sample rate of our broadcast source (in this case) of a streaming internet radio station.
$ mkfifo stream_32k.fifo
$ mpg123 -r32000 -m -s http://maxxima.mine.nu:8000 > stream_32k.fifo
$ mpg123 You made some mistake in program usage... let me briefly remind you: High Performance MPEG 1.0/2.0/2.5 Audio Player for Layers 1, 2 and 3 version 1.22.4; written and copyright by Michael Hipp and others free software (LGPL) without any warranty but with best wishes usage: mpg123 [option(s)] [file(s) | URL(s) | -] supported options [defaults in brackets]: -v increase verbosity level -q quiet (don't print title) -t testmode (no output) -s write to stdout -w f write output as WAV file -k n skip first n frames  -n n decode only n frames [all] -c check range violations -y DISABLE resync on errors -b n output buffer: n Kbytes  -f n change scalefactor  -r n set/force samplerate [auto] -o m select output module -a d set audio device -2 downsample 1:2 (22 kHz) -4 downsample 1:4 (11 kHz) -d n play every n'th frame only -h n play every frame n times -0 decode channel 0 (left) only -1 decode channel 1 (right) only -m mix both channels (mono) -p p use HTTP proxy p [$HTTP_PROXY] -@ f read filenames/URLs from f -z shuffle play (with wildcards) -Z random play -u a HTTP authentication string -E f Equalizer, data from file -C enable control keys --no-gapless not skip junk/padding in mp3s -? this help --version print name + version See the manpage mpg123(1) or call mpg123 with --longhelp for more parameters and information.