Transmit ggwave encoded messages with an SDR and receive them with an FM radio.
Here is a demo with HackRF transmitting messages on 145.650MHz. Messages are received with Baofeng FM radio and decoded with the Waver mobile app:
Build and install ggwave first. Then:
$ export LDFLAGS=-L<GGWAVE_LIBDIR>
$ make
The program takes a text message (specified with -m
) and outputs a complex sampled IQ file which is suitable for transmission with an SDR. The output sample format is specified with -f
and can be either 32bit float or 8bit signed integer. The output sample rate is 2400000.
For example to transmit "Hello, world" on 145.650MHz with HackRF:
$ ggwave-fm -m 'Hello, world' -o hello.s8 -f s8
$ hackrf_transfer -s 2400000 -f 145650000 -t hello.s8 -a 1 -x 20
You can also pipe the output of ggwave-fm
to hackrf_transfer
:
$ ggwave-fm -m 'Hello, world' -f s8 | hackrf_transfer -s 2400000 -f 145650000 -t - -a 1 -x 20
Transmitting with USRP B200:
$ ggwave-fm -m 'Hello, world' -o hello.cfile -f f32
$ tx_samples_from_file --file hello.cfile --rate 2400000 --freq 145650000 --type float --gain 40
The -p
option specifies the ggwave protocol: normal (default), fast, fastest
ggwave
is licensed under MIT.
Some parts of dsp.cpp
are borrowed from GNU Radio which is licensed under GPL version 3.
ringbuffer.hpp
is licensed under CC0 License.