I installed from source (master branch) gr-limesdr to get support for my RFE board on GNU Radio 3.10. GRC shows LimeSuite Sink and LimeSuite Rx but LimeRFE Controler is missing.
On older GNU Radio versions, the block was available.
Help to solve this issue will be appreciated
Hi, when configuring gr-limesdr cmake, you have to specify option to enable RFE support
cmake .. -DENABLE_RFE=on
@hb9dug2026 please don’t create duplicate posts, I’ve just deleted the other.
thanks for the help but still no success.
on fresh installation of ubuntu 24.04, I have installed GNU Radio 3.10.9 with apt, and from source LimeSuite v23.11. With LimeSuiteGUI, I can control the LimeRF.
I’m not succesful to install from source gr-limesdr V3.0.1:
if I use the master branch, cmake error tell me to use an older version of GNU Radio < “3.8.3”
if I use the gr-3.10 branch, cmake is ok but make shows a lot of errors… a few examples below:
usr/include/gnuradio/logger.h:277: note: macro “GR_LOG_INFO” defined here
277 | #define GR_LOG_INFO(log, msg)
|
/home/hb9dug/data/gr-limesdr/lib/rfe_impl.cc: In constructor ‘gr::limesdr::rfe::rfe(int, std::string, std::string, char, char, char, char, char, char, char)’:
/home/hb9dug/data/gr-limesdr/lib/rfe_impl.cc:85:9: error: ‘GR_LOG_INFO’ was not declared in this scope
85 | GR_LOG_INFO(d_logger, “LimeSuite version: {}”, LMS_GetLibraryVersion());
| ^~~~~~~~~~~
/home/hb9dug/data/gr-limesdr/lib/rfe_impl.cc:101:5: error: ‘GR_LOG_INFO’ was not declared in this scope
101 | GR_LOG_INFO(d_logger, “FW: {} HW: {}”, (int)info[0], (int)info[1]);
| ^~~~~~~~~~~
/home/hb9dug/data/gr-limesdr/lib/rfe_impl.cc: In member function ‘int gr::limesdr::rfe::change_mode(int)’:
/home/hb9dug/data/gr-limesdr/lib/rfe_impl.cc:141:13: error: ‘GR_LOG_ERROR’ was not declared in this scope
141 | GR_LOG_ERROR(d_logger, “Invalid mode {}”, mode);
What am I doing wrong ?
Thank you in advance for your help.
I’ve fixed the errors for gr-3.10 branch, you should be able to built it now.
progress but still no success. Made a basic GRC graph with LimeSDR Source, QT GUI Frequency Sink and LimeRFE Control. When running, I get runtime error: LimeRFE:failed to open. See GRC log below.
I have seen a difference from the past, I have now LimeSDR Sink and Source under LimeSDR and LimeRFE Control under LimeSuite directory, before the 3 blocks were on same directory.
I have control of the RFE with LimeSuiteGUI.
<<< Welcome to GNU Radio Companion 3.10.9.2 >>>
Block paths:
/usr/share/gnuradio/grc/blocks
Generating: “/home/hb9dug/data/grc-files/rfe_test.py”
Generating: “/home/hb9dug/data/grc-files/rfe_test.py”
Executing: /usr/bin/python3 -u /home/hb9dug/data/grc-files/rfe_test.py
device_handler :info: ##################
device_handler :info: LimeSuite version: 23.11.0+dfsg-2build2
device_handler :info: gr-limesdr version: 3.0.2.0
device_handler :info: ##################
device_handler :info: Device list:
device_handler :info: Device 0: LimeSDR Mini, media=USB 2.0, module=FT601, addr=24607:1027, serial=1D587F6825F1D9
device_handler :info: ##################
device_handler :info: device_handler::open_device(): no serial number. Using first device in the list.
device_handler :info: Use “LimeUtil --find” in terminal to find preferred device serial.
LimeSuite :info: Reference clock 40.00 MHz
device_handler :info: Using device: LimeSDR-Mini (1D587F6825F1D9) GW: 1.30 FW: 6
device_handler :info: ##################
device_handler :info: SISO CH0 set for device number 0.
device_handler :info: Set sampling rate: 4.000000 MS/s.
LimeSuite :info: Selected RX path: LNAW
device_handler :info: RF frequency set [RX]: 740.999994 MHz.
LimeSuite :info: RX LPF configured
LimeSuite
GFIR LPF cannot be set to the requested bandwidth
device_handler :info: Digital filter CH0 [RX] set: 4.000000
device_handler :info: CH0 gain set [RX]: 50.
device_handler :info: CH0 antenna set [RX]: LNAW.
LimeSuite :info: Rx calibration finished
LimeRFE :info: ---------------------------------------------------------------
LimeRFE :info: LimeSuite RFE Info
LimeRFE :info: ##################
LimeRFE :info: LimeSuite version: 23.11.0+dfsg-2build2
LimeRFE :info: gr-limesdr version: 3.0.2.0
LimeRFE :info: ##################
LimeRFE :info: Opening
Traceback (most recent call last):
File “/home/hb9dug/data/grc-files/rfe_test.py”, line 197, in
main()
File “/home/hb9dug/data/grc-files/rfe_test.py”, line 175, in main
tb = top_block_cls()
^^^^^^^^^^^^^^^
File “/home/hb9dug/data/grc-files/rfe_test.py”, line 132, in init
self.limesdr_rfe_0 = limesdr.rfe(0,
^^^^^^^^^^^^^^
RuntimeError: LimeRFE: failed to open
device_handler :info: ##################
device_handler :info: device_handler::close_device(): disconnected from device number 0.
device_handler :info: ##################
Only a single application can use a USB device at a time. So if you are connected to it using LimeSuiteGUI, then GNURadio won’t be able to connect to it, and the other way around, while GNURadio would be using the device, LimeSuiteGUI wouldn’t be able to connect to it.
Also check the device permissions, whether you need elevated privileges to use it.
Also your LimeSDR Mini is connected as USB2.0, that severely limits the data transfer bandwidth. Make sure it’s connected as USB3.0 for it to be able to work in full performance.
First, the issue of the LimiSDR Mini connecting as USB2.0. My ACER laptop as only USB3.x ports. I have no issue with my Ettus B200, USB3.0 Flash drive and two old LimeSDR Mini which are installed in my DATV stations. The two with the problem have a case with the ESA logo. Perhaps they coundn’t withstand the solar flux… 
Second, I believe I have found the issue with the LimeRFE Controler. I did a flowgraph with just the LimeRFE Controler and submitted the python file to ChatGPT.
It found that the line:
self.limesdr_rfe_0 = limesdr.rfe(0, ‘’, ‘’, 1, 1, 1, 1, 0, 0, 0)
contains not /dev/tty* path
I updated the line in the python file:
self.limesdr_rfe_0 = limesdr.rfe(0, “/dev/ttyUSB0,”’, 1, 1, 1, 1, 0, 0, 0)
and the script run.
My knowledge ends here… how to fix it
Cordialement,
Michel
You have to specify the USB COM port path in the RFE block’s parameters.
#!/usr/bin/env python3
-- coding: utf-8 --
SPDX-License-Identifier: GPL-3.0
GNU Radio Python Flow Graph
Title: Not titled yet
GNU Radio version: 3.10.9.2
from PyQt5 import Qt
from gnuradio import qtgui
from gnuradio import gr
from gnuradio.filter import firdes
from gnuradio.fft import window
import sys
import signal
from PyQt5 import Qt
from argparse import ArgumentParser
from gnuradio.eng_arg import eng_float, intx
from gnuradio import eng_notation
import limesdr
class test_rfe(gr.top_block, Qt.QWidget):
def __init__(self):
gr.top_block.__init__(self, "Not titled yet", catch_exceptions=True)
Qt.QWidget.__init__(self)
self.setWindowTitle("Not titled yet")
qtgui.util.check_set_qss()
try:
self.setWindowIcon(Qt.QIcon.fromTheme('gnuradio-grc'))
except BaseException as exc:
print(f"Qt GUI: Could not set Icon: {str(exc)}", file=sys.stderr)
self.top_scroll_layout = Qt.QVBoxLayout()
self.setLayout(self.top_scroll_layout)
self.top_scroll = Qt.QScrollArea()
self.top_scroll.setFrameStyle(Qt.QFrame.NoFrame)
self.top_scroll_layout.addWidget(self.top_scroll)
self.top_scroll.setWidgetResizable(True)
self.top_widget = Qt.QWidget()
self.top_scroll.setWidget(self.top_widget)
self.top_layout = Qt.QVBoxLayout(self.top_widget)
self.top_grid_layout = Qt.QGridLayout()
self.top_layout.addLayout(self.top_grid_layout)
self.settings = Qt.QSettings("GNU Radio", "test_rfe")
try:
geometry = self.settings.value("geometry")
if geometry:
self.restoreGeometry(geometry)
except BaseException as exc:
print(f"Qt GUI: Could not restore geometry: {str(exc)}", file=sys.stderr)
##################################################
# Blocks
##################################################
self.limesdr_rfe_0 = limesdr.rfe(0,
'',
'', 1, 1, 1, 1, 0, 0, 0)
def closeEvent(self, event):
self.settings = Qt.QSettings("GNU Radio", "test_rfe")
self.settings.setValue("geometry", self.saveGeometry())
self.stop()
self.wait()
event.accept()
def main(top_block_cls=test_rfe, options=None):
qapp = Qt.QApplication(sys.argv)
tb = top_block_cls()
tb.start()
tb.show()
def sig_handler(sig=None, frame=None):
tb.stop()
tb.wait()
Qt.QApplication.quit()
signal.signal(signal.SIGINT, sig_handler)
signal.signal(signal.SIGTERM, sig_handler)
timer = Qt.QTimer()
timer.start(500)
timer.timeout.connect(lambda: None)
qapp.exec_()
if name == ‘main’:
main()
Communication type parsing was incorrect, resulting in wrong field value for device path, should be good now. Fix RFE block communication type comparison · myriadrf/gr-limesdr@79b4c2e · GitHub
Issue resolved !
Thank you very much for your efficient support 
Bon week-end
Michel