FSK Over FM Transceivers

While there exist numerous Software Defined Radio (SDR) devices, they are best for receive and not transmit. Many SDR’s, such as the various RTL2832U devices (RTL-SDR, etc.) and AirSpy HF, do not transmit at all, while others (HackRF, USRP, LimeSDR), transmit at rates not much higher than 10mW. As a result, many different SDR’s do not transmit at a power level sufficient to achieve decent longer-range communications. While higher-power amplifiers exist, they often suffer one of several issues with SDRs:

  1. Many amplifiers require higher input power levels than can be provided from the <10mW inputs that SDR’s provide.
  2. There isn’t enough output filtering on these broadband SDR’s, so using them at higher power levels leads to excessive out-of-band interference. As a result, output filtering is required.
  3. Many of these amplifiers are expensive, at least compared to the costs of a lot of the Chinese-brand FM transceivers.
  4. The amplifiers that do exist, often transmit at only a few watts.

There do exist, however, a large number of affordable Chinese-made FM transceivers that can transmit up to 50W. An example is the TYT TH-9800, which can transmit on 70cm, 2m, 6m, and 10m, costing around $200-$220. Such a device allows for significant power range not only on predominantly Line-of-Sight bands like 2m and 70cm, but also on 6m (popular with sporadic-E DX), and 10m (upper HF).

Currently, the main way to communicate data over FM transceivers is via AFSK, a technique which dates back at least to the 1970s, using audio tones to encode data over FM at rates of up to 1200bps. While this method has been successfully used in e.g. APRS, it’s a non-optimal way to encode data for these usages. Better modulation techniques can allow higher data rates, more sensitivity, or a combination of the two.

David Rowe performed some investigations into this. Through simulation, he observed that he could get better data rates (2400bps) using a Manchester-encoded signal received by an FM demodulator (also see https://www.rowetel.com/?p=4663 and https://www.rowetel.com/?p=5219. His observations:

  1. DC balance is essential, otherwise the DC block in the audio will block it. He used Manchester encoding to deal with this issue, although whitening might be a more efficient way to achieve the necessary DC balance.
  2. FM demodulators work best when the frequency deviation is highest. As a result, his experiments with 4-FSK showed worse Eb/N0 than 2-FSK.
  3. The Manchester-coded 2-FSK generally does work well, with sensitivity performance approaching FM when using codec2 to encode the voice.

I’d like to study this further from the perspective of using the FM radio for transmit, and a low-cost SDR for the receive. In particular, I’d like to look at:

  1. Can the “idle” FM carrier be used to encode the data (this was mentioned in one of his comments)? What kind of DC-balanced coding schemes are good here?
  2. Does data whitening work well here as a more-efficient alternative to Manchester Encoding? If yes, then the datarate could be increased to 4800bps.
  3. Can 4-FSK be made to work better if the decoding is done using an SDR?
  4. Can slow, narrow-bandwidth FSK modes be implemented somehow that still pass through the low-pass filtering/DC block of the audio input? Perhaps this involves “mirroring” low-amplitude tones between both “sides” of the FM deviation?
  5. What other sorts of constant-envelope modulations can be done (CSS, MSK, etc.)?

We’ll see. There’s some potentially-interesting uses for this, but time will tell if I ever get around to studying this.


My TAPR DCC 2018 Paper/Presentation

Since it’s not yet up on TAPR’s site, I’ll post it here as well. When they’re put up on TAPR’s site, I’ll post the links there as well. Also, there should eventually a video of the talks.


Semtech’s LoRa transceiver products, based off Chirp Spread Spectrum (CSS) modulation, provide high receive sensitivity for low-power, Internet-of-Things (IoT) devices. While Semtech’s LoRa transceivers are designed to provide Line-of-Sight (LoS) ranges of several miles with modest radio hardware (i.e., small duck antennas, and 25-100mW Tx power levels), the high receive sensitivity (up to -138dBm or more) of a LoRa transceiver allows for leveraging common VHF+ DX techniques to achieve ranges beyond radio line-of-sight. By using higher power levels (5W/37dBm or more), high gain antennas (14.8dBi base station Yagi, 12.4dBi mobile Yagi), and horizontal polarization, it is possible to achieve Beyond Line-of-Sight (BLoS) packet radio communications using LoRa on the 70cm band. This paper will discuss digital communications using the LoRa waveform, how BLoS communication is achieved at VHF+ frequencies, the experimental setup used in this paper, and the real-world test results. To the best of the author’s knowledge, the 218km LoRa ground-based LoRa communications distance discussed in this paper is the longest ground-based (ground station-to-ground station) LoRa communication on record.

Link to presentation: TAPR 2018 — Dan Fay KG5VBY

Link to paper: Dan Fay — LoRa BLoS TAPR DCC 2018


HopeRF Breakout Board

So I decided to try my hand at making a simple PCB, with the goal of eventually developing some more complicated boards. For my board, I decided to modify this Adafruit design. The original Adafruit design is a breakout board that contains a HopeRF 69/95/98 RF module, along with a 5V->3.3V regulator and 5V->3.3V level shifters. Since the LoRa design I am currently working on operates at 3.3V, I decided to modify the design to remove the level shifters and regulator so that the board is simply a “breakout board”. Having this breakout board allows me to attach header pins to the board so that I can plug it into a breadboard.

Designing (actually modifying) the Board

So…to start, I downloaded the Eagle files provided by Adafruit, and imported them into KiCAD. The project imported without issue. I removed the regulator and level shifter from the schematic to get the simplified schematic below.

Breakout SchematicIt winds up being a pretty simple schematic, which is great for me just trying to understand the process of getting a PCB made. To get the final layout, I had to simplify/redo the traces, and wound up with the below layout (the left image is the top of the board and the right image is bottom of the board).

And just for fun, KiCAD provides a 3D rendering of your board. There’s a “regular” rendering:

Non-Raytraced Rendering

and nicer-but slower ray-traced rendering:

Raytraced Rendering

Getting the Board Made

What now? PCB houses take a series of plotter files, typically called “Gerber” files, to describe the board. These plotter files describe different components of the board, such as the copper layers, the silkscreen (i.e., the printed letters and graphics), and the soldermask (where the top and bottom of the board shouldn’t have the final insulating epoxy coating). There’s also a drill file, which describes where and what size to drill the different holes in the PCB.

I decided to have PCBWay do the fabrication. The main deciding factors were cost (a run of 10 simple boards can be fabricated for $11 including shipping and payment processing fees), a site that appeared friendly to Makers/DIY/amateurs, and decent reviews for them on the Internet. Getting the board fabricated from them was fairly straightforward: I uploaded a zip file containing the Gerbers and the drill file and put in my shipping address and payment information. They claimed to do some verification of the design to make sure it met their design rules, and once that was done, they began fabricating the board.

Roughly two weeks later (I paid an extra dollar for ePacket shipping, bringing my total up to $12), I received my boards.

Looking more closely at an individual board, the results look pretty good. The traces and silkscreening are clean, and the pads/vias are well-defined. Note that, however, the pads are somewhat uneven. While this isn’t an issue for what I’m doing, it might cause issues with other designs.


Final Assembly

Now it’s time to make it into a usable breakout board! Step one: solder header pins. I find it easier to get the pins straight if I put them in a solderless breadboard first.


Step two: solder the HopeRF module to the PCB.


All done! While my castellated-hole soldering game could use some work, the connections tested out good. Now, it’s time to integrate it into my LoRa mesh network node prototype:



Below are links to the KiCAD project and the final Gerbers sent to PCBWay.

KiCAD Files

Gerbers, as sent to PCBWay

PCB Design Fun with KiCAD

So…I’ve been working on a LoRa-based mesh network using a synchronized flooded mesh protocol (I’ll go into more details about it in a future post). This is a board design I’ve been working on to implement. It’s a two-sided board that’s exactly 100mm x 100mm (this is the largest size that PCBWay will do for $5 for 10 boards). KiCAD, BTW, is a FOSS PCB design tool. So far I’ve been pretty happy with it for designing at least simple PCBs.

Key Components:

  1. STM32 “Blue Pill” board (two rows of horizontal pins) — the brains of this operation.
  2. 16×2 LCD Display — provides a basic text output while the thing’s running.
  3. 6 LEDs — Most likely will be used to provide live activity like packet Rx/Tx, and hop count.
  4. HopeRF 98W (vertical rows of pads on center-right) — the LoRa module. Only provides a maximum power output of 20dBm, but that should be adequate for mesh node testing.
  5. Linear voltage regulator (lower left) — converts 5V to 3.3V for most of the electronics.
  6. I2C EEPROM (Upper right 8-pin DIP) — nonvolatile storage of settings and statistics.

Renderings of the Board in KiCAD

A 3D rendering of the what the board would look like:


Another BLoS LoRa Test

In preparation for presenting at ARRL/TAPR’s DCC in two weeks, I did another Socorro-area run today to get some test results using the 25w transmit power and the double-stacked halo antenna. The results aren’t particularly surprising: the added link budget enabled by the higher transmit power allows for receiving from more locations.

Below are some pictures from the test run. The first picture is of my helpers:


A picture of the horizon where I believe there’s troposcatter-based propagation:


A picture of the double-stack halo antenna that was used to get the mobile results:


Is LoRa Well-Suited for Flooded Mesh Networking?

Check out this paper, because it suggests that the answer is “yes”:

Multi-Hop LoRa Networks Enabled by Concurrent Transmission

I’ve been starting to explore the idea of developing a LoRa-based synchronized, flooded mesh network. What makes a synchronized, flooded network appealing over other types of mesh networks?

  1. Flooded mesh network nodes can be “dumb” in the sense that each node needs only to re-transmit a frame it sees. There’s no need for building routing tables or even having any comprehension whatsoever of what nodes are around you. All you do is, if you hear a packet, you re-transmit it. As a result, it’s easy for stations to quickly join and leave the mesh network.
  2. Synchronized, flooded networks should be well-suited for real-time traffic, like voice. Combined with a low datarate vocoder like Codec2 (Codec2 supports bit rates as low as 700bps), a synchronized, flooded, LoRa-based mesh network using Codec2 should be possible.

If you combine #1 and #2, you can see how this might serve as a good replacement for analog VHF/UHF FM voice in amateur radio. A simple, easy-to-join/leave mesh network that’s well-suited for voice-quality audio can provide the simplicity of analog FM voice with the improved coverage that a mesh network provides. Repeaters are simpler, too: instead of needing two separated antennas or a costly, bulky cavity duplexer, the repeater can just be another ordinary radio with perhaps a better antenna and/or more transmit power.

A known problem with flooded mesh networks are collisions: when a set of “flooded” nodes re-transmits, the nodes all collide with each other and can interfere. A synchronized flooded mesh attempts to mitigate this issue by having all nodes re-transmit at exactly the same time. If synchronized precisely enough, the combined transmits look like multi-path waves. While multi-path often results in fading, in some cases techniques such as antenna diversity and advanced signal processing can use multi-path advantageously.

The above paper is exciting because it shows that LoRa is resistant to many of the issues facing synchronized flooded mesh networks. The paper shows that in general, the capture effect enjoyed by frequency-modulated signals occurs with LoRa, where the receiver naturally locks onto the strongest signal it hears. Another finding of the paper is that the re-transmitting nodes need not be closely synchronized; in fact, performance improves if the nodes do not re-transmit at exactly the same time. This fact makes implementation a lot easier, as timing inaccuracies are actually a Good Thing(TM).


Review of the BTech AMP-U25D Amplifier


The BTech AMP-U25D is an affordable amplifier for increasing the power output of both lower-power analog and digital communications. It offers good performance and reasonable efficiency (40-50%). A surprising and exciting result is that the amplifier outputs 25w with a 1w input, which enables the amplifier to amplify common 1w packet radio modules.


Starting this spring (roughly March 2018), BTech (a US company that’s a major importer of Baofeng radios) began shipping a power amplifier for 2m, 1.25m, and 70cm Handheld Transceivers (HT’s). The ostensible purpose of this amplifier is to allow an HT to function as a substitute for a mobile rig. To this effect, the amplifier provides features making it behave like a mobile rig, such as providing a microphone port and having a 4W speaker on the unit. The overall product line purports to take a 2-6w signal from an HT and amplify it to 30-40w. All of the amplifiers are designed for constant-envelope modulation schemes like analog FM and digital FSK.
There are five different variants of the BTech AMP series. Different models support different key frequency bands — 2m, 1.25m, and 70cm. Moreover, the 2m and 70cm amplifiers come in two versions, one version designed for non-TDMA frequency-based modulation standards, and another amplifier designed to support Time Division Multiple Access (TDMA)-based standards like DMR. The TDMA-friendly amplifiers are designed to rapidly switch on and off in response to the fast on/off cycling inherent to TDMA.
While these amplifiers are marketed to boost the transmit power of HT’s and make them work like a mobile rig, they also have a lot of potential for boosting the power of different IoT-oriented packet radio devices. Generally, low bitrate packet radio devices operating in the 70cm band use some sort of frequency-modulated, constant-envelope scheme like FSK or LoRa. As a result, they should be well-suited for amplification with these amplifiers. IoT packet radio systems also need to be able to switch quickly from transmitting a packet to receiving packets. As a result, the TDMA-friendly amplifier is likely the best choice for amplifying these transceivers.
Reviewed in this post is one model of the BTech AMP series, the AMP-U25D. The AMP-U25D is the 70cm model that supports TDMA. This particular model was chosen because I intend to use this amplifier to boost the transmit power of a LoRa transceiver running at 433MHz.


First, let’s start with the unboxing! First, I tried ordering it from Amazon. The first time, they sent me the 2m version, and then, when I tried to reorder the amplifier, the page no longer existed. After that, I successfully ordered it off of BTech’s website for $104.89.
There’s definitely some ambiguity as to what the actual power output of this amplifier is, as the different unboxing photos show. Besides that, the materials supplied are fairly straightforward. There’s the amplifier, at push-to-talk speaker/microphone, and some cables.

Measuring Power Output

Next, I attempt to measure the output power of the amplifier. With the medium power setting of the Baofeng F8HP HT, it’s apparently outputting around 35w.


At the F8HP’s low output (roughly 1W), the amplifier outputs approximately 25w. This is actually a really exciting result, as there are many packet radio modules made by companies such as HopeRF that can output at a maximum of 1w. As a result, this amplifier can be used by 1w RF modules to boost their output to 25w.

Power Consumption

Next, it’s time to measure the power consumption of the amplifier. For all of these tests, the amplifier is being fed 13.8V. For the low power result (roughly 1w in, roughly 25w out), the amplifier pulls 4.45A of current, or 61.41w. For the medium power result (roughly 4w in, roughly 35w out), the amplifier consumes 5.31A, or 73.28w. Efficiency-wise, the amplifier is approximately 41% efficient when 1w is fed into it, and approximately 48% efficient when 4w is fed into it. This result suggests that sub-2w inputs take the amplifier out of saturation and into a more linear region. Potentially-interesting future work would be to study this amplifier’s output when fed with sub-1w inputs, and also to characterize the amplifier’s linearity when sub-2w inputs are fed into it.

Using the AMP-U25D with Packet Radio

Fed with a 1w input, the AMP-U25D was used to set the ground-based LoRa distance record, with the AMP-U25D being used to amplify the base station’s power output. The photo on the left shows the amplifier setup inside the case. The photo on the right shows the skin temperature after a full day of transmitting while sitting on the top of the roof of the patio of my house during an Albuquerque, NM summer afternoon/evening.