WSPR with the LimeRFE

A few days ago, I received a LimeRFE from Andrew Back of Lime Microsystems. He was kind enough to send me a unit so that I can test it and make some usage demos during the ongoing crowdfunding campaign at Crowd Supply.

The LimeRFE is intended to work as an RF frontend for the LimeSDR family, although it can work coupled with any other SDR or conventional radio. As such, it has power amplifiers, filters and LNAs designed to cover the huge frequency range of these SDRs. It is designed to cover all the Amateur radio bands from HF up to 9cm, and a few cellular bands.

As anyone will know, designing broadband RF hardware is often quite difficult or expensive (Amateur radio amplifiers and LNAs are usually designed for a single band), so packing all this into a single unit is a considerable feat. The output power on most bands is around a couple watts, which is already enough for many experiments and applications. The block diagram of the LimeRFE can be seen below.

LimeRFE block diagram

In this post I show a brief overview of the LimeRFE and demonstrate its HF transmission capabilities by showing a WSPR transmitter in the 10m band, using a LimeSDR as the transmitter.

The block diagram shown above refers to the LimeRFE 0v3 prototype that I got, so it doesn’t have specific hardware for the 6m, 4m, 1.25m and 33cm Amateur bands. Version 1v0, which is what the crowdfunding campaign backers will get, includes additional hardware for these bands. Support for these bands was added due to feedback from the community.

The schematics for 1v0 can be found here. Regarding the Amateur radio bands, for the receive side the work is split between two LNAs, an ADL5611 for the bands above 1GHz, and a GALI-74+ for the bands below 1GHz. There are specific bandpass filters for HF, 2m, 70cm, 23cm, 13cm and 9cm. For the transmit side there are individual PAs with lowpass filter for HF (RD16HHF1), 2m (AFT09MS007N), 1.25m (AFT09MS007N), 70cm (AFT09MS007N), 33cm (RFM04U6P), 23cm (RD01MUS2B), 13cm (QPA9426) and 9cm (MAAM-009560). The 6m and 4m bands use the HF PA and a 70MHz lowpass filter. There are also broadband PAs covering 1MHz-1GHz (RD01MUS2B) and 1GHz-4GHz (MAAM-009286), but these have somewhat lower power and no filtering. I haven’t found what MMICs are used as LNAs

The control of the LimeRFE is done either through USB from a host computer or through I2C from a LimeSDR. So far I only have used USB, as it is easier to set up. The control functions are integrated in the LimeSuite drivers (in the LimeRFE branch) and all the functionality can be controlled through the LimeSuiteGUI software, which is a quick and simple way to get the LimeRFE up and running. There are also some examples in C++ and Python that show how to use the drivers directly to control the LimeRFE.

The LimeRFE needs 12V DC power. This should be supplied through a 5.5mm OD, 2.5mm ID barrel jack connector. I thought that I had several of these lying around, but it turns out that all of them are for 2.1mm ID, and don’t fit the LimeRFE. The 2.5mm ID connector is also used in the LimeNET Micro, so they have kept the same connector for consistency. Fortunately, it is also possible to supply 12V through a pin header, which is what I’m doing.

It is recommended to have some SMA 50 Ohm terminations to prevent damage to the unit by having un-terminated ports (keep in mind that due to the presence of both PAs and LNAs, almost all the SMA connectors of the LimeSDR are a potential output). Up to 5 SMA terminations might be needed, but in many cases it is possible to get by with two or three terminations, since some of the LimeRFE ports will already be connected to a 50 Ohm load, such as an SDR or an antenna. In any case, terminating the ports is not completely mandatory. It is just useful to prevent damage due to configuration mistakes.

To test the LimeRFE as an HF transmitter, I have used a LimeSDR to generate the signal and the SDRangel software to drive the LimeSDR. Since the LimeRFE only has a 30MHz lowpass filter for HF, I have decided to work in the 10m band. For the lower bands, an external lowpass filter is needed to attenuate harmonics.

I have decided to use WSPR because it is a nice unattended mode that works well with low power.

The figure below shows the voltage at the LimeRFE output when connected to a 50 Ohm load. The RMS voltage is around 4.1V, which corresponds to 25dBm. This is significantly less than the 33dBm that the unit is supposed to deliver. I don’t know what the problem is. According to the engineers at Lime Microsystems, they get 33dBm with a LimeSDR mini, so this is surely a hardware problem that I will start debugging soon (either the output power of my LimeSDR in HF is too low or the LimeRFE was damaged on transport).

LimeRFE 10m WSPR output

The antenna I am using is a long wire (approximately 15m long) in a urban location. This is my usual HF antenna at home and I have used it in most of my other HF experiments.

The nontrivial part about getting the WSPR transmitter running is controlling the PTT of the LimeRFE, or in other words, switching the LimeRFE between transmit and receive. I am using WSJT-X to generate the WSPR signal and send it by Pulseaudio to SDRangel. However, none of these programs knows how to control the LimeRFE.

Since this is was intended as a quick test, I have made a rather hackish solution: WSJT-X is configured to transmit with a 100% duty cycle, and the LimeRFE PTT is controlled through a standalone Python script that implements the desired duty cycle. For simplicity, a 50% duty cycle has been used.

The Python script gets the UTC time every second, decides whether the PTT should be enabled or not according to the duty cycle (2 minutes on, 2 minutes off, etc.), and sends a command to the LimeRFE accordingly. The Python script, which is based in the LimeRFE driver Python example can be seen here. It shows how easy it is to use the LimeRFE through Python. Note that, for simplicity, the initial settings of the LimeRFE (i.e., setting the band to HF) have been done with LimeSuiteGUI, but it would be quite easy to include this also in the Python script.

Of course, this solution is just a hack. The good solution would be to make a Python script that behaves as a Hamlib server and controls the LimeRFE accordingly. In this way, the LimeRFE could be interfaced easily with WSJT-X and other software supporting Hamlib. The example Hamlib Python server by Jim Ahlstrom N2ADR can be used as starting point.

The heatsink gets hot (approximately 55ºC) during extended operation with a 50% WSPR duty cycle, and output power seems to drop slightly as the temperature increases, so a small fan might be helpful. The engineers at Lime Microsystems tell me that there is a connector for a fan in the LimeRFE, and that sensing and controlling the fan is supported by the hardware, although this hasn’t been implemented in the drivers yet. The LimeRFE consumes an additional current of 1.7A at 12V when it goes from RX into TX (with the power and band settings of this WSPR experiment).

The WSPR transmitter experiment started at 2019-07-29 22:00 UTC and ended at 2019-07-31 16:20. During this time, the following spots have been reported by WSRPnet. The map of spots is shown in the figure below.

Map of WSPR spots in the last 24 hours of the demo.

Besides doing some tests in HF, I have also tested the output power in the 2m and 70cm bands, also using a LimeSDR as transmitter. The results can be seen in this tweet. The transmit power is slightly above 3W, completely in line with the preliminary specifications, which give an output power of 33dBm (2m) and 32dBm (70cm) at 1dB compression. This is comparable to the 5W of a typical handheld or QRP radio, so it seems that a LimeSDR plus a LimeRFE is already able to be used for real world Amateur radio activities, and not just as lab equipment.

So far I am liking the LimeRFE and I think that the concept is a great idea. One of the reasons why I like my Yaesu FT817ND is that it is an all mode radio covering “all” the bands from HF to 70cm with 5W of power (not the 4m band, though). This is enough to perform many experiments and activities, and having all these bands inside a single unit is very convenient for the experimenter who wants to try many different things. The LimeRFE goes in the same direction: a few watts of power on “all” bands from HF to 9cm.

Besides its use below 1GHz, it is quite interesting for the microwave bands. Currently it is not so easy to become active on the microwave bands, since usually each band needs separate hardware including a PA, LNA and RF switch. The LimeRFE supports the three lower microwave bands with adequate power for many portable experiments, activations and contests. I think it can be a useful tool to encourage activity in these bands.

The only deterrent may be its price. At $600 during the crowdfunding campaign and $700 afterwards, it is something considerable, especially if you compare it with the price of a LimeSDR mini, which only costs $160. However I completely understand the reason for this price. RF hardware is usually expensive and supporting that many different bands inside one product makes it even more expensive.

I guess that if one was to purchase standalone amplifiers, LNAs and filters to achieve a similar functionality to the LimeRFE, the total cost would be much higher than $700. Therefore, I think that getting a LimeRFE can be a wise investment for many people interested in experimenting with SDRs and using them in real world scenarios, where at least a few watts of power, and perhaps some RX filtering, are often needed.


  1. Pingback: LimeRFE WSPR Tests
  2. Currently I already received a new LimeRFE after waiting almost 1 year. I hook up my new LimeSDR mini with LimeRFE and I run my python program with GNU Radio components at 144MHz, sadly I only got around 2.4dBm output from LimeRFE itself. But I noticed that my new LimeSDR mini version 2 at 144MHz, it’s can only deliver around -40dBm output. How I want to solve this problems? And what is the minimum RF input for LimeRFE in order to get the RF output power as its claim in their measurements documentation?

    1. Hi Bahari, is the -40 dBm output to be expected? I haven’t checked out the details of the LimeSDR mini v2, but -40 dBm seems an extremely low output power. If you look at the block diagram of the LimeRFE, you can see what MMICs it uses. From their datasheets you can get their gain, and so you can know how much drive you need to get the full output power. If you put in -40 dBm and got 2.4 dBm out, it looks like the gain is around 42.4 dB, which looks reasonable (most likely the gain is not going to be 77 dB, which is what you would need to get 37 dBm out with only -40 dBm in).

      1. Very thanks Daniel for your instant reply. I already test LimeRFE with my old LimeSDR mini (version 1), and surprisingly I got around 3.7W RF output from LimeRFE itself, far from previous result using LimeSDR mini (version 2), any idea? Is it because a gateware version?

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.