LimeSDR Mini limeSNA Browser-Based Scalar Network Analyser (SNA)

"The open software/hardware helps me to understand and utilise all the features that [the LimeSDR Mini] has," explains Kis. "The development time for the limeSNA was about 8-16 hours thanks to the examples and the open source libraries."

“I’m working as an Android/back-end developer, but I studied microelectronics,” explains Peter Kis of his professional background. “One of my hobbies is to track HAM/Cubesats and build automated systems for that. In the old times I designed and built a simple soundcard-based software defined radio (SDR) that used a TV tuner module to receive VHF/UHF satellites.

“I decided to search for a good alternative that I can also use for simple RF measurements and reverse engineering/debugging. I found the LimeSDR Mini that has a good price, frequency range, and also supports full duplex. I bought this radio 3 months ago, and my first project that I used it for is to create an alternative radio firmware for the EMAX Tinyhawk drone that does not supported my FlySky radio transmitter as is a different brand and protocol than the original.


“It uses a different RF transceiver IC which has no hardware support for the preamble size/error correction/CRC algorithm that used in the FlySky AFHDS protocol. The LimeSDR Mini helped a lot to decode and reverse engineer the packets and the frequency hopping system.”

Bringing an SNA to the Web Browser

Following the success of the FlySky project, Kis moved on to a project which has broad appeal: the implementation of a scalar network analyser (SNA) for the LimeSDR Mini which can run in a user’s web browser. Designed to measure the scalar response of a network to a given input signal, the SNA is a popular tool for measuring the response of various antenna types when designing an RF system.

Peter Kis' limeSNA

Kis’ implementation wasn’t built in a vacuum: the limeSNA project builds on the pyLMS7002Soapy example code provided under the permissive Apache Licence 2.0. This provision of software and firmware under permissive licensing, Kis explains, was key to getting the project off the ground: “It was a big reason why I bought this radio. The open software/hardware helps me to understand and utilise all the features that this product has. The development time for the limeSNA was about 8-16 hours thanks to the examples and the open source libraries.”

The project’s biggest challenge? “To reduce the sweep time,” Kis explains. “I think this is the most important feature to use this tool for real-time measurements, like filter and antenna tuning. Its much faster than the original example but I think with some low level modification in the SoapySDR code or direct register settings it can be improved more.”

Future Developments

“I have lots of ideas for how i can improve the tool,” Kis continues. “I have a plan to add sample rate configuration (higher sample rate can improve the sweep time, now only 5 MHz is used but it can changed in the Python code), a spectrum analyser mode that can be faster then the SNA mode, manual scaling mode for the X axis, automatic gain adjustment to improve the dynamic range, and most importantly reduce the sweep time more if its possible.

“Yesterday I released a new version that improved the controls. Now the GUI is more understandable and better suited for the widescreen monitors, I added the adjustable cut-off point for the filter measurement display, and also CSV/Image export features. It depends on the user feedback’s and my own needs.”

Peter Kis' limeSNA

The browser-based SNA won’t be the last project Kis works on for the LimeSDR family, either. “I’d like to do more with the LimeSDR,” he explains. “I’m thinking about making a tool for easy demodulation/packet decoding which can help in reverse engineering/debugging. The LimeSDR Mini is a great tool. The open documentation, libraries, and the software support (SDRConsole, GNU Radio, etc.) make it a very versatile product.”

Kis’ limeSNA software can be downloaded from his GitHub repository now, under the Apache Licence 2.0.

See also: