Using EasyDABv2 hardware as direct sampling transmitter with GnuRadio for producing FM or DRM+ signals

 fm or drm     Introduciton

So, can EasyDABv2 be used to send GnuRadio quadrature signals to the air? For sure Yes, it can!

With simply modified firmware, with removed DAB-blocks, this hardware  is turning into the EasyQDUC (Easy Quadrature Digital Up Converter). And it can be used to send any signal with 192KHz quadratude samplerate or lower. For example, it can be used as DRM or DRM+ transmitter, FM-radio station or any other signal transmitter that fits into ~182 KHz bandwidth.

 

 

The 6 Megabit bandwifth of your ethernet connection will be used for transfer samples from PC to the board. Each sample - is 16bit interleaved signed I/Q sample.

Here is example of simple FM transmitter Gnuradio blocks:

 

The config interface sample and the output of EasyQDUC would be:
This is RTL-SDR capture of the signal. One of the hints to transmit internet-radio - is to use module snd-aloop (audio loopback). Also to feed this module, You can use mpg123 with aplay and sox application. In this case you can run compressor/compander for FM-radio to enchance audio for noisy places:

 

sudo modprobe snd-aloop
mpg123 http://192.168.2.5:8000/radio --wav - | sox -t wav - -t wav - compand 0.3,1 6:-70,-60,-20 -5 -90 0.2 | aplay -D "plughw:1,1,0" -

 Or even simpler player by using internal mp3 decoder of sox application:

 

sox -t mp3 http://192.168.2.5:8000/radio -t alsa "plughw:1,1,0" compand 0.3,1 6:-70,-60,-20 -5 -90 0.2

 

 

 The gr-drm allows to produce DRM+ signal. The GRC file is too big, but click to enlarge:

 

DRM signal, produced by EasyQDUC firmware for EasyDABv2: 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

The output DRM+ signal can be played on android with WaveSink application installed with rtl-sdr stick.

 

FPGA internal flow diagram - is presented on this image:

 Full firmware dump, web-update script and all source codes is avaliable for download:

EasyQDUC_update_script.tar.gz

EasyQDUC_full_flash.tar.gz

EasyQDUC.zip

 

If You have DAB-firmware, You can easily switc between QDUC and DAB versions just by running firmware update script. To use update script, you need to follow this steps:

Firmware update process for EasyQDUC (do all actions in shell window):

1). Download archive file.
2). Unpack archive: tar -xvzf EasyQDUC_update_script.tar.gz
3). Go into unpacked directory: cd EasyQDUC_update_script
4). Edit update_firmware.sh (it's first line) by setting correct deivce's IP and login/password pair.
5). run it: ./update_firmware.sh
6). Confirm that you want to update by pressing "y".
7). Wait for "Update has been finished." line. Update can take up to 8 minutes.
8). Reboot the board by using power cord.

 After that, go to web-interface, set your wanted frequency and amplitude and use GnuRadio to feed the board by I/Q samples.