We are just nine months in.
- The Granita and Lime RF daughterboards are here. More importantly, they work!
- We can reliably stream 122.88 MHz of 12-bit real-time bandwidth to a computer.
- Our new Soapy SDR driver gives us compatibility with a large body of existing SDR software.
- Our website has a new documentation section.
- As I write this, I’m traveling to Arizona for the 2023 GnuRadio Conference, ready to demo it all!
- Our crowdfunding campaign is launching next week (with a gradual rollout).
Granita and Lime
After the successful motherboard bringup, our two RF daughterboards accidentally named after summer specials are also working. With those, the hardware can be proven end to end!
It’s hard to recount the process, but in a nutshell, the LMS7002M was a pleasure to work with. Well documented, great software, available demo board. This was up and running within a few hours. The Granita from Actric Semi on the other hand took many emails and eventually needed brute forcing some addresses during the initialisation process to get booting (you read that right).
We are happy with the performance of the Lime chip, not so much with the Granita. Hopefully it’s just a growing pain, because Granita does come with what seems to be a much lower noise PLL than the Lime.
Streaming 122.88 MHz of real time bandwidth
As we learned, USB 3.0’s 5 Gbps bandwidth is a marketing lie. 8/10b encoding lowers that to 4 Gbps, and when going through hubs or having any overhead, the limit to what can be had reliably is closer to 3.5 Gbps (430 MBps). Add in a buffer for slower computers and a good guess is that 400 MBps is the number you can design your system against.
12-bit ADC data is usually stored into four bytes (32 bits vs the required 24), so we are packing it down to three bytes per sample for the USB stream and transparently repackaging it before feeding it out of the driver.
Using the numbers above, our 12-bit, 122.88 MHz stream is 368 MBps, which unpacks to 491 MBps (983 MBps on the CF32 format).
To stream the full 153.6 MHz the LA9310 is capable of, we need 460 MBps @ 12 bit, 422 MBps @ 11 bit or 384 MBps @ 10 bit. We could split the stream over multiple USB connections (the i.MX has two USB ports), or USB and ethernet, but it’s probably more reasonable to just use those options for a second stream.
Soapy SDR Driver
This is a simple design that requires no (USB) driver install over Windows and works using libusb on Linux/MacOS. Thanks to our Discord user Mixaill, it’s also nicely refactored code that compiles on all three platforms with a single command.
libiio and the Linux Industrial IO subsystem
Before going down the Soapy route, we tried our luck with libiio. On paper, it’s a fantastic library from Analog Devices that interfaces with the linux IIO subsystem, abstracting away both the hardware and the communication method (like USB vs Ethernet), unifying everything under a single host-side cli. Unfortunately, it’s slow, and even with version two being released shortly, there doesn’t seem to be a clear path to the data rates we need. We will give libiio a better look in the future, as we think it’s promising.
We have a documentation section online! It’s still in its infancy, but you should check it out.
What better way to launch a new SDR than the conference for its most powerful software? Timing aligned perfectly!
We are sponsoring the GnuRadio 2023 conference and will be in Tempe, AZ, demoing our product in the exhibition hall (Sept 5th to 9th). If you are around, come take a look at both Granita and Lime feeding data to gr-fosphor, or get one of our excess barebone PCBs we are giving away in place of business cards.
The Crowdfunding Campaign
We will be rolling out this slowly over the next month to everyone that joined our waitlist. As we are approximately 100% over-subscribed, the conversion rate needs to be above 50% before anyone is left empty-handed.
There is no rush, but if you can, please support us in bringing this great new product to market.