Skip to main content

DSP Receiver

Although there are several DSP receiver models on the market (AliExpress, eBay, Shopee etc.), some of them fail to meet the requirements of good HF or even FM (broadcast) listening. In those cases it becomes interesting to build projects with distinctive features, such as SSB reception support, bandwidth adjustment, AGC control etc.

The idea for this article initially came from the release of Ricardo (PU2CLR)'s library for the Si4735 integrated circuit, at the end of 2019. Several YouTube videos showed excellent reception and the big differentiator of demodulating SSB signals through a firmware patch, on top of an extremely simple circuit.

Another module worth highlighting is NXP's TEF6686, widely used in car radios, published by Sjef Verhoeven (PE5PVB). Although it has characteristics comparable to the Silicon Labs Si473x, it unfortunately does not support SSB demodulation. Many videos of this project can also be found under the name Receptor DSP Pro 3 (Thiago Lima).

Si473x (Si4735/Si4732) and Si4825

In the initial tests an Arduino Nano was used with a 5 V to 3.3 V logic converter, because this IC, although it accepts 5 V on the supply pins, does not accept that voltage on the I2C bus pins. Besides the Arduino, STM32 and ESP8266/ESP32 microcontrollers can be used, as long as they provide an I2C communication interface and Arduino IDE support to use the library. As a proof of concept, the SI4735_03_POC_SSB example shipped with the library was used, with the Serial Monitor sending commands.

Several HF tests were carried out with a magnetic loop antenna, showing that sensitivity and selectivity are very close to those of commercial equipment, and even superior when using SSB demodulation. In the initial tests, the antenna was connected directly to the AMI pin through a 0.47 µF capacitor. FM (broadcast) reception tests were also performed using a 10 cm piece of wire connected to the FMI pin, demonstrating good sensitivity for more distant stations, although this band was not the focus of this project. The same tests, carried out by friends Cláudio (PP5CFL), Guilherme (PU5KNB), Pacheco (PP5AMP) and Rodrigo (PP5NW), also showed excellent results receiving broadcast stations and ham radio operators on HF.

Several commercial radios from manufacturers such as Tecsun, XHDATA and Degen use the Si4735. There is also the Si4825, which does not support SSB and does not require an external microcontroller — widely used in Motobras radios, delivering the same sensitivity and selectivity — and the SI4732-A10, an equivalent part number that also supports the SSB reception patch, in a package that is easier to work with. All of these part numbers internally use an LNA and a DSP processor to demodulate the radio signals sampled by an ADC.

Si473x circuit

Building this DSP receiver involves no complexity compared to analog designs based on ICs like the NE602, TA7358 or double balanced mixer circuits, where several inductors are needed and capacitors must be trimmed to avoid frequency drift due to temperature variations. The DSP processor clock comes from a 32.768 kHz crystal and two 22 pF capacitors — nothing critical, and without a single inductor. L1 is a ferrite antenna, only for Medium Wave (MW) and Long Wave (LW) reception.

Complete receiver schematic

The BPF published by Ricardo (PU2CLR) covers the entire HF band, with switching done through an FST3253 electronic switch controlled by the Arduino.

To simplify testing, a single-band 4 MHz – 8 MHz BPF was built using a blank copper-clad board as a base and some components from the scrap bin. The main difference noticed when using the BPF was improved reception of weaker signals and a partial reduction of reception noise. Since I did not have the Amidon toroids on hand, RF chokes with inductance close to the specified values were used.

Single-band test BPF (4-8 MHz)

For the audio amplifier there are several alternatives, such as the TDA2822, LM386, KA2209, 8002D, TPA301 etc., and the LM386 was chosen for its great simplicity. The Si4735 has a stereo audio output for FM reception, so the two channels (L+R) had to be joined to use a single mono audio amplifier.

The audio amplifier is powered directly from the input voltage, since it works fine with voltages between 6 and 12 V, with considerable volume for a loudspeaker.

Audio amplifier circuit (LM386)

Builds

A few modifications were added to the original schematic, but nothing complex, and they can be checked in the following image:

HF antenna input modification

In the complete circuit it is possible to check all the Si4735 connections and other peripherals. The Arduino circuit is not shown, since it can be connected directly to a development board, without modifications, using only the necessary GPIOs.

Here are some build photos of this Si4735-based receiver, initially using a universal PCB and the dead bug method:

Later, the RADIO DSP PRO PCB was acquired, developed by colleague Thiago Lima, based on the project developed by Ricardo (PU2CLR) and Gert Baak.

Firmware

After countless firmware version tests for the touch version based on the ESP32 and Si4732, and adjustments by Mateus (PP5FMM), we reached a stable version with some very interesting features, available on GitHub.

Firmware for SI473x based receiver – QEX Team

Acknowledgements

I could not fail to thank Ricardo (PU2CLR) for making the Arduino library for the Si4735 available along with all his extensive documentation, and Mikael (PU5FON) for sourcing the Si4735 ICs and delivering them to our group of friends. I also cannot leave out all the experiences and exchanges of ideas with Cláudio (PP5CFL), Guilherme (PU5KNB), Mateus (PP5FMM), Pacheco (PP5AMP) and Rodrigo (PP5NW) during the development of the project, and Thiago Lima, for providing the PCB for the build based on the ESP32 and touch TFT.

References