Receive DRM Radio on Linux with Gqrx and Dream

 Author:   Posted on:   Comments
DRM (Digital Radio Mondiale) is the universal, openly standardised digital broadcasting system for all broadcasting frequencies, including the AM bands, as well as VHF Bands. The great flexibility of DRM supports all types of coverage needs – from local, regional, nation-wide to international. If you want to listen to DRM broadcasts, you need a dedicated receiver or a software radio. This post will focus on the cheaper method, the software defined radio (SDR).

SDR performs demodulation in software. The RF signal is sampled by a high speed ADC (analog-digital converter) and sent to a computer which does the filtering, amplification, demodulation and decoding of the signal. The cheapest hardware for SDR is the popular RTL2832U based DVB-T stick.

Most DRM broadcast can be found in SW bands. Here comes an important issue. The tuner from the DVB-T stick can't receive this band. One of the solution is to add a frequency downconverter. Or you can simply disable the tuner and feed RF straight to the ADC. I wrote about RTL2832U direct sampling in this post. This method has some limitations, but nevertheless it should provide satisfactory results.

Dream decoding a DRM broadcast
Dream decoding a DRM broadcast

Script to compile and install PulseView on Ubuntu

 Author:   Posted on:   Comments
PulseView is an opensource GUI for sigrok. It displays recorded waveforms from logic analyzers and oscilloscopes and it can perform various signal measurements and digital protocol decoding. Being opensource and Qt based, it is also cross platform. You can find it in the Ubuntu repositories, but the version is rather old and you'll be missing some new features and protocol decoders.

You will find in this post a script based on building instructions from official sigrok/PulseView wiki that automatically downloads, builds and installs all required dependencies and PulseView itself. The script has been written and tested on Ubuntu 17.10 but it should work on other apt based distros.

Script to compile and install PulseView on Ubuntu

Light or dark activated switch using Arduino

 Author:   Posted on:   Comments
Light or dark activated relays are useful devices when you need to automatically turn on lights or activate some other electric device when lighting decreases or increases above a threshold. Usually, to build such a device, you would use a LDR (photoresistor), some resistors to make voltage dividers, an opamp as comparator, a transistor and a relay that will be driven by the transistor.

Using a microcontroller we can design a smarter device. One that does not activate the relay at every instant change of light (flash). The same device can turn from a dark activated relay into a light activated relay at a push of a button.

The following project uses an ATmega328 board with some modules which are part of a popular Arduino sensor kit. Don't worry if you don't have that modules. They are simple circuits for which I provided schematic.
Light or dark activated switch using Arduino

Homemade PCB with toner transfer method

 Author:   Posted on:   Comments
The toner transfer method is a cheap and easy way to make your own printed circuit boards (PCBs) at home. A laser printer is used to print the design on paper. Not all paper types are suitable for this kind of usage. The paper is placed with the printed side over the copper side of the circuit board and then the whole thing is heated. Most people use with good results a common iron, but if you have a laminator, use it instead of the iron. When heated, toner melts and sticks to the surfaces. The idea is to make it stick to the copper layer. After heating, cold water is used to soften the paper which should be easily peeled off from the circuit board. A good transfer means no toner remains on the paper. Once this is done, the board can be etched using whatever method you want (ferric chloride for example).

This method is widespread among hobbyists because is cheap and easy. However, for some, the results are unsatisfactory and variable. I will share some of my experiences with this method.
Homemade PCB with toner transfer method incl. silkscreen
Homemade PCB with silkscreen

Virtual Audio Cable in Linux Ubuntu

 Author:   Posted on:   Comments
If you ever wanted to pipe an audio stream from an application to another, you probably know that there are some virtual sound card drivers available for Windows. But what about Linux? Well, there are a lot of options, some being more complicated than others.

You probably need to do audio piping to record an audio output or to use SDR tools which only support audio input. You don't have to use a real cable to wire the sound card output into line in. The software approach is better. There is more than one way to do this in Linux. We'll look into Pulseaudio and ALSA, the sound servers used by Ubuntu. Depending on what application you use, you may need to configure the virtual connection on one or the other server.
Virtual Audio Cable in Linux Ubuntu

PonyProg release 3.0 comes with modern UI

 Author:   Posted on:   Comments
PonyProg is a software application that can read, write and program various memory chips and microcontrollers using the simplest possible interface: a serial port adapter. This adapter consist of only some resistors and some voltage limiting zener diodes. However, this approach has a big downside nowadays. It doesn't work with USB to serial converters. And computers with a real serial port are becoming very rare.

If you still have an older computer with a motherboard serial port, you may take into consideration building the serial adapter used by PonyProg, because it is easy to build and probably the cheapest programmer possible. The schematic of the interface can be found at the author's page (SI-Prog by Claudio Lanconelli).

Currently, PonyProg only support SI-Prog or other serial based programmers and some parallel port programmers. With serial port, it communicates by bit-banging various protocols to the signaling lines contained in the RS232 interface (RTS, CTR and DTR). It would be nice if a future version would support the modern USB based programmers (like the CH341A MiniProgrammer) which lack a good software.

PonyProg release 3.0 comes with modern UI
PonyProg 3.0 main window after reading an I2C EEPROM