The LMS7002M is Lime Microsystem’s second-generation field programmable RF (FPRF) transceiver IC, with extended functionality to cover a greater range of frequencies and applications.

Driver functionality

This project contains a C driver for control of the LMS7002M transceiver. The driver provides user APIs for tuning frequencies, setting gains, setting filters, setting sample rates, setting stream modes, configuring switches, and calibration. Although this driver can select the streaming mode of the LMS7002M, it does not directly interact with receive or transmit baseband data.

Hardware independent

End applications may access the SPI bus for the LMS7002M in a variety of ways. To ensure that the driver can talk to the LMS7002M independent of the hardware, the caller provides the driver instance with SPI access callback functions. These functions implement the hardware-dependent SPI register access routines.

Project layout

  • regs/ – LMS7002M register map and register header generator
  • include/ – LMS7002M C driver interface and implementation
  • interfaces/ – example SPI interfaces for use in LMS7002M
  • evb7/ – example SoapySDR wrapper using the LMS7002M C driver
  • test/ – simple register access test using the LMS7002M C driver


Development is led by Josh Blum, and sponsored jointly by Fairwaves, Inc. and Rice University.

Blog Posts

LMS Suite driver discussion

Lets talks about drivers! Drivers exist to create a high-level interface for low-level hardware. Drivers are the intermediaries between hardware and applications. When they work well, you probably don’t notice them very much. And when they don’t, it can be a challenge to to figure out what went wrong. Recently,…
Myriad RF Placeholder Image

Introducing the LMS7002M Control Driver

The LMS7002M is a dual transceiver containing just about everything you would want in a radio. Programmable clocking and synthesizers, built-in ADCs and DACs, highly configurable signal processing chains with interpolation and decimation. Capturing this into a higher-level user driver means taking on an intimate…