Programming of LimeSDR USB Microcontroller

Hi All,
I’m new to the Lime SDR ecosystem and would like to know if the on board microcontroller unit is capable of being programmed in a procedural language such as C. And also is it able output data (such as when a wireless device communicates with the LimeSDR) via USB to a PC.
I’m hoping to use Open Air Interface with the LimeSDR to turn it into an eNode B.

There are 3 processors on the LimeSDR board:

  1. a 8051 MCU in IC1 the LMS7002M
  2. a NIOS II softcore CPU in IC8 the FGPA gateware ( To be regated as a RISC V )
  3. a 200-MHz ARM926EJ-S in IC13 the EZ-USB FX3 (16KiB instructions, 8KiB TCM,512KiB SRAM )

(if you deleted some of the current gateware, you could implement more CPU’s in the FPGA. Always remember everything in a FPGA happens in parallel - or everything happens at once not sequentially like a traditional CPU. Or, you are designing hardware not programming software, and everything takes ten times longer to design and implement [without destroying and having to bin a hell of a lot of hardware]).

(well there are probably a few others, but they are inaccessible unless you are part if Unit 8200/GCHQ/NSA)

  1. flash wear level controller (typically a 8051) in the IC10 FLASH 16MBIT 75MHZ 8SO
  2. flash wear level controller (typically a 8051) in the IC15 FLASH 4MBIT 75MHZ 8SO
  3. maybe possibly a wear level controller (if present possibly a 8051) in the IC2 EEPROM 128KBIT 1MHZ 8TSSOP
  4. maybe possibly a wear level controller (if present possibly a 8051) in the IC18 EEPROM 128KBIT 1MHZ 8TSSOP
  5. maybe possibly a wear level controller (if present possibly a 8051) in the IC3 EEPROM 512KBIT 1MHZ 8TSSOP

Anyhow the first MCU does not have direct access to the datastream, scratch that (and it is extremely low performance)
The second CPU does not have access either (it could be regated for access, but far better use could be made of the gates by hardwiring the function directly into the FPGA, or at least a very large chunk of it).
Now we get to the 3rd CPU the 200MHz ARM in the USB 3.0 controller, alone it does not have enough processing power, but just maybe with a high end guru level programmer using the FPGA and the CPU in USB controller together, maybe they could just get it to work.

But my gut is screaming at me that, that maybe is just a little bit too far on the optimistic side. I’m not saying it is impossible, but that it is is at the high end of very hard, right beside impossible, but not standing directly on impossible’s toes.

1 Like

Thanks for your input.
What about the GPIO pins? Do they have access to the data streams?

Did you check page 1 of the schematic ?