ARM Radio mounted

June 2019 QST cover    Software Defined Radio: The June 2019 issue of QST magazine includes a one-page note about an SDR designed by Alberto Di Bene (I2PHD).1 A couple of things intrigued me about the article. First, I was unfamiliar with the ST Microelectronics ‘Discovery Kit’, which includes a powerful MCU and 2.4 inch touch screen, and was curious to learn more about this development kit. Also of interest to me was the receiver’s unusual frequency range: 8 KHz to 900 KHz. The lower part of this range would be considered ‘VLF’ (Very Low Frequency).2 After reading the QST article I knew that I would at least explore the STM32F4 Discovery Kit and, if it were not forbiddingly difficult, I might also attempt to construct Mr. Di Bene’s SDR.

    I ordered an STMF429 Evaluation Board from Digi-Key ($29.90 plus shipping) and began to read the extended on-line ARM Radio paper, a detailed technical account of Mr. Di Bene’s project. Parts of the theoretical description were beyond my knowledge or immediate understanding, but the anti-alias and ‘reconstruction’ filter circuits seemed straightforward. While waiting for the Discovery Kit to ship and be delivered, I began to transcribe Mr. Di Bene’s schematics into Autodesk Eagle (the free version), with a view to laying out a printed circuit board (PCB) for these two circuits. It would have been possible to construct them on a breadboard or generic circuit board, but I thought the filter circuits would make good practice examples for learning to use Eagle.
 Discovery Kit
   Discovery Kit: The kit came pre-loaded with demonstration software (photo right). This presented a dilemma of sorts, in that I was hesitant to load anything onto the board that might ‘break it’. I had downloaded and installed the free STM32 ST-LINK Utility with the intent to upload the ARM Radio (SDR) firmware to the board.3 I had also played a little with development tools, and had created a ‘Hello, world!’ exercise, but was not confident enough to try loading anything at this point. The development environment for this kit is considerably richer than others I had used, such as the Arduino IDE.

    To get past my perhaps irrational concern about hosing the demonstration software, I searched for a reloadable binary or hex file that could be used to restore the demo. Eventually, after navigating seemingly circuitous links, I located the same demo that came on the board from Digi-Key. (There appear to be many variants of this kit and related software.) Armed with a backup plan, so-to-speak, I took a chance and loaded the ARM Radio binary file. Shock and awe—The load succeeded! The screen display was the same as illustrated in the QST article. Pressing the blue ‘user’ button on the Discovery board stepped the application through a list of pre-stored European stations. Virtual controls (TFT GUI components) including frequency ‘up-down’ buttons, modulation mode, volume slider, and mute toggle all responded visually to being touched. Of course, without the filter circuits it was not possible at this point to test the SDR itself, only its user interface.

Firmware Update    I ordered prototype PCB’s from JLCPCB early on a Friday morning.4 The boards were manufactured, shipped, and delivered (Hong Kong to Eastern US) by Monday afternoon! In the meantime a problem had popped up. The ARM Radio software worked when the Discovery board was plugged into the computer’s USB port, but would not run when the board was powered from a wall brick. This turned out to be a known bug in the board’s firmware—The answer was found here. The illustration (left) shows how to select a firmware update in the ST-Link utility. This option automatically detects the board type, then downloads and installs the latest update. It is not necessary to search for and download firmware revisions separately. After this update ARM Radio started normally, regardless of how the board was powered.

InductorVariable resistor   Filters: Allowing for minor value substitutions, all components that were needed to construct the filters were already on-hand: resistors, capacitors, and transistors, etc., except for the two wire-wound inductors, about which I was unsure. Actually, a couple of things were unclear in my mind. I didn’t know whether the primary and secondary of the RF transformer should have a common ground, so I installed a header/jumper to connect the grounds (It doesn’t appear to matter). Similarly I installed female headers for the two toroids, and for a temporary variable resistor (potentiometer) that would be used to ascertain a value for R10 in the anti-alias filter. The latter worked out to be 2275 ohms so I soldered a 2200 ohm and 75 ohm resistor in series (photo right) for 1.8 volts on the collector.

    I thought that 4.5 mH would be problematic to construct, and for initial testing substituted a lesser-valued molded inductor in the reconstruction filter. However, later I experimented with various toroids and hit upon one that yielded the desired 4.5 mH inductance with 28 turns of magnet wire. Although it is color-coded (darkish green—photo left) I have not been able to identify what type it is. The RF transformer was a similar trial-and-error process. Mr. Di Bene’s paper specifies a number of turns for the windings, 6 and 30, and ‘high permeability’ core. I had a couple of very small ferrite toroids and several iron powder cores (scrounged from discarded UPS’s), and ended up using one of these, but with a greater number of turns. I may fiddle with the RF transformer again later, although I don’t anticipate using a 50 ohm antenna with this receiver.

    After populating the circuit board, but before connecting the GPIO pins (ADC-in and DAC-out), I tested voltages at key points in the filter circuits, and examined the anti-alias filter’s output on the oscilloscope (at the midpoint of the level-shifting circuit). Everything looked good.

Transmit Antenna    Preliminary testing: I connected a ferrite loop ‘antenna’ (photo left) to the output of a function generator (AKA signal generator) but did not attach an antenna to the receiver. The latter was situated about 25 cm from the loop on the same bench. In other words, the receiver was ‘loosely coupled’ to the test signal.

    Using this configuration I tested at multiple frequencies, as low as the SDR’s cutoff 8 KHz. At 30 KHz the received signal was loud and clear with a milliwatt or so output from the signal generator, and could be heard above noise with the test power less than 1/10 milliwatt. I realize this mode of describing receiver sensitivity is not particularly informative, given the non-standard setup, but it’s the best I can do. Using my body as an antenna (i.e. touching the antenna input) I could pick up the strongest local AM (medium wave) station at 560 KHz, but not very well. A small loop antenna fared no better, maybe worse.

Random wire antenna

   Antenna: From time to time I had thought of erecting some sort of all-band listening antenna. We have trees—it would be possible to shoot one end of a wire 60 feet or more in the air. The trouble is there are too many trees, without a clear run between any otherwise suitable pair of them. Well, long waves are ground waves so maybe a wire that is not far above ground would work. I dismissed constructing a beverage antenna because the bearing toward the back of the lot would be wrong. The over-the-fence random wire shown above is 210 feet of straight run plus another 30+ feet of lead-in. It was easy to erect, less than two hours effort, and picks up lots of stations in the medium and short waves. Unfortunately I am not able to quantify this assessment.

   Trying it out: We are plagued with significant power line noise at our location. The utility company has promised to investigate the cause(s) and take whatever steps are necessary to remedy or improve the situation, but have not said when they will do this. This line noise is strongest during daylight hours, and especially in dry weather, and from the US AM broadcast band down into the long-wave spectrum. Conditions are better at night and in damp weather.

    ARM Radio picks up lower-end AM broadcast stations clearly (its top frequency is 900 KHz). There are no longwave broadcast stations in the United States, only special services. In the evening I have heard very weak voice and music on two of the pre-stored European longwave broadcast station frequencies. Monte Carlo and Radio Europe-1 both have very high-power transmitters. However, I don’t know whether it is even possible to receive European longwave stations in the southeastern US where I am located. This seems doubtful, and in any case the signals I have heard are too weak to identify. They could be spurious images of higher frequency US stations, although they were heard only on the two named frequencies, not in-between, so maybe...5

    Currently the filter amplifiers draw power from the Discovery Kit’s power supply. In other words the same wall wart supplies both the MCU board and the filters.  At very low frequencies ARM Radio responds to electrical activity that originates from the MCU board, for example its LEDs. This is not surprising, and may be unavoidable. I can identify some but not all such artificial sources.

    Demo: ARM Radio
    Follow the ARM Radio link at for impressive audio recordings (MP3 files) by Mr. Di Bene.


1. Page 66 — QST magazine is a publication of the American Radio Relay League.
2. The lower cutoff frequency (8 KHz) corresponds to a wavelength of 37.5 km.
3. The QST article also presents links to software and additional documentation.
4. Eagle (free version) supports 2-layer PCB’s up to 800 mm2 in size. After drawing a schematic and creating its corresponding circuit board layout, there is an option to generate manufacturing files for the PCB.
5. This was wishful thinking. I coupled a hi-Q tuned loop to the random wire antenna, which improved reception but did not reduce unwanted noise. With this configuration it was possible to identify one weak signal as an AM-band broadcast station located about 100 miles distant. Intense noise continues to blanket the long wave broadcast band at my location, making genuine DX signal reception a lost cause.

Projects Home

Project descriptions on this page are intended for entertainment only. The author makes no claim as to the accuracy or completeness of the information presented. In no event will the author be liable for any damages, lost effort, inability to carry out a similar project, or to reproduce a claimed result, or anything else relating to a decision to use the information on this page.