Engee documentation
Notebook

Getting Started with RHYTHM SDR USRP

This article discusses a practical example of integrating the RHYTHM SDR USRP with the Engee development environment through the library. ritm_sdr_core.jl, which is a software interface for managing the high-performance software and hardware platform RHYTHM SDR USRP. This platform is based on a combination of the Xilinx Zynq UltraScale+ SNC and the ADRV9009 RF transceiver. It supports operation in a wide range of radio frequencies (from 75 MHz to 6 GHz) with an instantaneous bandwidth of up to 450 MHz, making it an ideal tool for developing and testing modern wireless systems.

The article consistently covers the key aspects of the work:

  1. Set up a network connection with the RHYTHM SDR USRP.
  2. The mechanism of network interaction through the library [Engee.Integration](https://engee.com/helpcenter/stable/ru/engee-hardware/engee-integrations.html
  3. Comprehensive health testing of the main functions.

All interaction with the device takes place through a network interface. The architecture of connection and data exchange between key components is the Engee web environment, the Engee utility.Integration on the PC and the SDR USRP itself is shown in the diagram below. As can be seen from the diagram, in this case ritm_sdr_core.jl It is a software "layer" that allows TCP/IP communication with the SDR USRP system, which, in turn, is connected to a computer with the Engee application pre-installed.Integration.

Схема взаимодействия компонентов_ веб-среда Engee, Engee Device Manager на ПК и РИТМ SDR USRP

Connection Setup

Interaction with the RHYTHM SDR USRP is implemented through the Engee library.Integration, which provides functions for working with network connections. There are two options available for users to launch Engee.Integration. The article discusses its application in Windows OS.:

  1. Graphical interface – launch the application through an executable file engee-device-manager.exe.

Подключение.png
2. Command line – launch from the terminal with the flag -d to get detailed information about the connection: ./engee-device-manager.exe -d.

When using the command line, you must first open a terminal in the program folder or navigate to it. Flag mode -d provides advanced logging, which is useful for debugging a connection. To run, use a command-line shell of a UNIX-like environment, such as Git Bash.

image.png

To successfully connect the client to the RHYTHM SDR USRP, you must first set up a physical connection between the PC and the device. This is done in several steps:

  1. Physical connection: Use an Ethernet cable to connect the PC's network port to the PS ETH port on the debug card.
image.png
  1. Network setup on PC: Manually configure the network interface of the PC to which the card is connected by specifying the following parameters:
    • IP address: 192.168.2.1;
  • subnet mask: 255.255.255.0;
  • primary gateway: not required (can be left blank).
0170dabe-ea9f-4ebe-ae48-188963a8ddc6.png
  1. RHYTHM SDR USRP address: By default, the SDR server on RHYTHM SDR USRP waits for connections by IP address 192.168.2.70 and the port 12345. These values are set as default constants in the client.

Analysis of the main library functions for interaction with the RHYTHM SDR USRP

This test is aimed at demonstrating the operation of the library for RHYTHM SDR USRP support and uses the following set of functions: rf_switch_set_tx_fddtdd_sw1/2, is_ORX_DMA_transfer_end, receive_file_ORX_to_RAM, set_frequency, set_transceiver, set_tx_attenuation, set_ip_core, manual_calibrate_orx, agc_set_mode, get_temperatures, stop_transmission, disconnect.

In [ ]:
include("ritm_sdr_core.jl")
✓ Библиотека клиента RITM SDR USRP готова

Initialization of the connection to the SDR server at 192.168.2.70, after which a request for the server software version is executed.

In [ ]:
@log_on
client = RITMClient("192.168.2.70")
!connect(client) && (@logmsg "Connection error"; return);
Логирование включено
✓ Подключено к 192.168.2.70:12345
In [ ]:
@logmsg "Server version: $(get_version(client))"
Версия сервера: v5.1.5

RF switching testing: cyclic control of FDD(frequency separation of reception and transmission)/TDD(time separation of reception and transmission) switches, these are SW1 and SW2, respectively.

In [ ]:
rf_switch_set_tx_fddtdd_sw1(client, true)
rf_switch_set_tx_fddtdd_sw2(client, true)
Out[0]:
true
In [ ]:
rf_switch_set_tx_fddtdd_sw1(client, false)
rf_switch_set_tx_fddtdd_sw2(client, false)
Out[0]:
true

Checking feedback channels (ORX): monitoring the status of the direct memory access system for the reverse channel (DMA ORX), receiving data in RAM (SDR USRP

In [ ]:
result = is_ORX_DMA_transfer_end(client)
Out[0]:
true
In [ ]:
receive_file_ORX_to_RAM(client, 1, 100)
Out[0]:
true

Configuration of the main parameters: setting the frequency of 2400 MHz, selecting the TX1-transmitter or RX1-receiver path, setting the attenuation of the transmitter.

In [ ]:
set_frequency(client, 2400.0)
Out[0]:
true
In [ ]:
set_transceiver(client, 1, 1)
Out[0]:
true
In [ ]:
set_tx_attenuation(client, "TX1", 5.0)
Out[0]:
true

Working with the IP core: writing the test value to the register.

In [ ]:
set_ip_core(client, "0x80080114", "0x1")
Out[0]:
true

Calibrating ORX1 and configuring AGC

In [ ]:
manual_calibrate_orx(client, "ORX1")
Out[0]:
true
In [ ]:
agc_set_mode(client, 0)
Out[0]:
true

Temperature monitoring:

  • RPU (Real-Time Processing Unit) - Temperature sensor on the R5 real-time processor
  • TRX (Transmitter-receiver) - temperature sensor on the transceiver
  • PL (Programmable Logic) - temperature sensor on FPGA
In [ ]:
temps = get_temperatures(client)
for (dev, temp) in temps
    println("$dev: $(temp)°C")
end
RPU: 39.025756°C
TRX: 71.0°C
PL: 40.990248°C

Stop the transmission, close the connection.

In [ ]:
stop_transmission(client)
Out[0]:
true
In [ ]:
disconnect(client)
✓ Соединение закрыто
In [ ]:
close_log();
Лог-файл закрыт: logs/log_2026-02-27_13-48-07.log

Conclusion

This article provides an example of integrating the RHYTHM SDR USRP with the Engee development environment. In the course of the work, all key steps were consistently considered: from physically connecting the device to a PC and configuring the network interface to configuring the connection via Engee.Integration.

The end result was the successful implementation of all basic functions, which in practice confirmed the correctness of the connection, the stability of network interaction and the readiness of the client library for full-fledged management of the RHYTHM SDR USRP hardware platform. In particular, the operation of functions such as: rf_switch_set_tx_fddtdd_sw1/2, is_ORX_DMA_transfer_end, receive_file_ORX_to_RAM, set_frequency, set_transceiver, set_tx_attenuation, set_ip_core, manual_calibrate_orx, agc_set_mode, get_temperatures, stop_transmission, disconnect.

Thus, the presented material serves as a ready-made step-by-step guide that allows the engineer to quickly deploy the development environment, establish a stable connection with the device and start working with it.