# LimeSDR-USB - Implement custom USB Commands

**URL:** <https://discourse.myriadrf.org/t/limesdr-usb-implement-custom-usb-commands/6201>\
**Category:** LimeSDR\
**Created:** [12 June 2020 14:16 UTC](https://discourse.myriadrf.org/t/limesdr-usb-implement-custom-usb-commands/6201 "2020-06-12T14:16:39Z")\
**Posts on this page:** 1\
**Showing post:** 7

<div class="post-metadata">

**Author:** ![JTAG](https://avatars.discourse-cdn.com/v4/letter/j/22d042/32.png) [@JTAG](https://discourse.myriadrf.org/u/JTAG)\
**Post date:** [9 July 2020 13:45 UTC](https://discourse.myriadrf.org/t/limesdr-usb-implement-custom-usb-commands/6201/7 "2020-07-09T13:45:04Z")

</div>

Hey @tomlib,

> [@tomlib](#):
>
> I am planning on adding custom blocks to the design and I need USB communication to configure some of the registers of my new blocks.

you can easily use the internal SPI bus to add your own configuration registers. Maybe this helps you:

> [@Building a simple command line app for the LimeSDR](https://discourse.myriadrf.org/t/building-a-simple-command-line-app-for-the-limesdr/2853/2):
>
> Hey Ed, unless you share some code it will be quite difficult to help you. Also you could mabye add a bit on your plans to use the LimeSDR as a periphal. Is it just GPIO access? Then probably you don’t even need to change gateware or LimeSuite, as GPIO accesses can handeled through the APIs. Maybe you could have a quick look at my current project. I am implementaing a small DDS core inside the LimeSDR written in VHDL. The configuration is also done using registers accesed by the NIOS. One can …

I use this to control my custom DDS/CIC decimator core inside the FPGA. By using the SPI configuration registers (see link) you do not need to modify any firmware/driver. The entire configuration can then be done in the user application using the “write register” functions, already existing in the Lime/Soapy API 🙂

---

_[View the full topic](https://discourse.myriadrf.org/t/limesdr-usb-implement-custom-usb-commands/6201)._
