Skip to content
Toolbox for the LimeSDR / LimeSDR-Mini
C C++ CMake Shell Makefile
Branch: master
Clone or download
Pull request Compare This branch is 36 commits ahead of emvivre:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
limesdr_util.h Fill buffer when underflow Mar 15, 2019


The limesdr_toolbox is a set of the tools to play with the LimeSDR / LimeSDR-Mini. No external dependancy is need other than official module ( for unix-like operating system, see

The toolbox contains the following tools:

  • limesdr_dump : dump I/Q signals on arbitrary frequencies
  • limesdr_send : send generated or dumped I/Q signals
  • limesdr_forward : relay of both digital and analog signals : forward input I/Q signals of a RX channel (inputs frequencies) to a TX channel (output frequencies).
  • limesdr_stopchannel : stop all RX/TX channels (debug purpose)


limesdr_dump allows to dump I/Q signals on arbitrary frequencies with 16-bits resolution (highest precision of the hardware).

$ ./limesdr_dump
Usage: ./limesdr_dump <OPTIONS>
  -b <BANDWIDTH_CALIBRATING> (default: 200e3)
  -s <SAMPLE_RATE> (default: 2e6)
  -g <GAIN_NORMALIZED> (default: 1)
  -l <BUFFER_SIZE>  (default: 1024*1024)
  -d <DEVICE_INDEX> (default: 0)
  -c <CHANNEL_INDEX> (default: 0)
  -a <ANTENNA> (LNAL | LNAH | LNAW) (default: LNAW)
  -o <OUTPUT_FILENAME> (default: stdout)

Most of the parameters have a default value. Only the central frequency and optionally the output capture file need to be set. Ctrl-c command can used to stop the capture.

E.g. dumping of station radio :

$ ./limesdr_dump -f 100.1e6 -o out.dat

The output capture file contains a set of 16-bits I/Q signals.


limesdr_send allows to send any I/Q signals.

$ ./limesdr_send
Usage: limesdr_send <OPTIONS>
  -b <BANDWIDTH_CALIBRATING> (default: 200e3)
  -s <SAMPLE_RATE> (default: 2e6)
  -g <GAIN_NORMALIZED> (default: 1)
  -l <BUFFER_SIZE> (default: 1024*1024)
  -p <POSTPONE_EMITTING_SEC> (default: 3)
  -d <DEVICE_INDEX> (default: 0)
  -c <CHANNEL_INDEX> (default: 0)
  -a <ANTENNA> (BAND1 | BAND2) (default: BAND1)
  -i <INPUT_FILENAME> (default: stdin)

E.g. send of previous caputured I/Q signals

$ ./limesdr_send -f 100.1e6 -i out.dat

Because we are handling I/Q signals from Intermediate Frequencies (IF), we can output I/Q signals on frequencies different than input frequencies

$ ./limesdr_dump -f 100.1e6 -o out.dat
$ ./limesdr_send -f 234.5e6 -i out.dat


limesdr_forward allows to forward I/Q signals captured around input frequencies on others frequencies on a real time. This is like a kind of streaming but on arbitrary radio frequencies, and can be use as a relay of both digital and analog signals.

$ ./limesdr_forward
Usage: ./limesdr_forward <OPTIONS>
  -b <BANDWIDTH_CALIBRATING> (default: 200e3)
  -s <SAMPLE_RATE> (default: 2e6)
  -g <INPUT_GAIN_NORMALIZED> (default: unused)
  -G <OUTPUT_GAIN_NORMALIZED> (default: 1)
  -l <BUFFER_SIZE> (default: 1024*1024)
  -d <DEVICE_INDEX> (default: 0)
  -c <INPUT_CHANNEL_INDEX> (default: 0)
  -C <OUTPUT_CHANNEL_INDEX> (default: 0)
  -a <INPUT_ANTENNA> (LNAL | LNAH | LNAW) (default: LNAW)
  -A <OUTPUT_ANTENNA> (BAND1 | BAND2) (default: BAND1)

E.g. forwarding of a radio station

$ ./limesdr_forward -f 100.1e6 -F 234.5e6


limesdr_stopchannel allows to stop all channels on RX/TX.

$ ./limesdr_stopchannel
You can’t perform that action at this time.