Raspberry Pi Hat Adds SDR With High Speed Memory Access

An SDR add-on for the Raspberry Pi isn’t a new idea, but the open source cariboulite project looks like a great entry into the field. Even if you aren’t interested in radio, you might find the project’s use of a special high-bandwidth memory interface to the Pi interesting.

The interface in question is the poorly-documented SMI or Secondary Memory Interface. [Caribou Labs] helpfully provides links to others that did the work to figure out the interface along with code and a white paper. The result? Depending on the Pi, the SDR can exchange data at up to 500 Mbps with the processor. The SDR actually uses less than that, at about 128 Mbps. Still, it would be hard to ship that much data across using conventional means.

On the radio side, the SDR covers 389.5 to 510 MHz and 779 to 1,020 MHz. There’s also a wide tuning channel from 30 MHz to 6 GHz, with some exclusions. The board can transmit at about 14 dBm, depending on frequency and the receive noise figure is under 4.5 dB for the lower bands and less than 8 dB above 3,500 MHz. Of course, some Pis already have a radio, but not with this kind of capability. We’ve also seen SMI used to drive many LEDs.

57 thoughts on “Raspberry Pi Hat Adds SDR With High Speed Memory Access

  1. Does anyone know why the rPi team would have been so quiet about this? Unless I’m missing something it’s not as though there’s a lot of sensitive Broadcom secret sauce required to make use of the interface; and having a low-overhead interface that fast is massive in terms of what peripherals become practical.

    I can understand why the primary GPIO functions would be the ones that go into the intro tutorials; but this looks like it allows an entire class of more demanding peripherals/coprocessor type applications and I’ve never heard a whisper about it before.

    1. Because their documentation is largely shit when you try to dig down into the nitty-gritty required for seriously engineering something around a raspberry pi? It’s a great product. For hobbyists. And even then, there are some serious caveats buried within the hardware that makes it frustrating to use.

    2. It’s very likely that they know about the peripheral, but don’t have the documentation about it. Quite a few chip vendors provide only the bare minimum and just tell people to “explore stuff” themselves.

  2. “the SDR covers 389.5 to 510 MHz and 779 to 1,020 MHz”

    Any plans to cover the NOAA weather satellite ranges? Interesting solution, all the same. Deserves wider recognition, IMHO.

    Kind regards.

    1. The fact that it’s an odd range suggests the hardware carries limitations.And a glance at the page shows it’s using an IC intended for some specific application, hence likely that hardware limits it.

      A “perfect” SDR directly converts radio to digital. But that’s going to be a problem higher up.in frequency. So often there is a conversion to a lower frequency, where the conversion can be done cheaper. But that means it’s no universal solution (neither is a fast ADC that works to 30MHz).

      People treat SDR as a black box universal solution, but it’s really about what you do with the digitized signal.

  3. They mention the problem in the section “Avoiding bus conflicts” “…but for high speeds we have to use SMI read cycles. This is potentially a major problem; when the read cycles are complete, the SMI controller and the ADC will both try to drive the data bus at the same time,…” and add resistors to limit current during the conflict, but didn’t find a way to avoid it in SMI mode.

      1. Didn’t HaD post about a RasPi co-processor timer not that long ago? If I recall it was ARM and had an independent clock that allowed accurate arduinio like timing on the Pi. Perhaps that could be used a bit like a watch dog timer and used to effectively implement your own predictable parallel processing. Basically giving the Pi a duty cycle. It can do whatever it wants, but at this time it must do what you want.

  4. I was going to ask if the RF chip used could operate the sub-1GHz and 2.4GHz transceiver simultaneous.
    But I dug into the details and the block diagram in the datasheet for AT86RF215 has a “Baseband Core0” for sub-1GHz TX/RX and a separate “Baseband Core1” for the 2.4 GHz TX/RX, each BBC has a 2KiB RX and 2KiB TX frame buffer, so in theory with the right FPGA gateware and software it should be possible to operate both transceivers at once.

    Each transceiver is half-duplex but a pair of devices together should be able to form a full duplex link. So one device uses one transceiver to TX ACK’s and data, and the other device uses the the other transceiver to TX ACK’s and data. And both are receiving on the opposite transceiver. But the maximum sample rate is limited to 4MSPS IQ, so each transceiver would be limited to a maximum of 2MHz bandwidth. Or I suppose they could negotiate an asymmetric link say 400 kHz and 3600 kHz if one side is transferring more data than the other.

    The RF chip used is in smart-meters, so due to the economics of scale, the price is much lower than it would be otherwise, it is definitely an interesting chip.

      1. It’s the Nerd kilobyte. As “kilo” suggests a factor of 1000 it’s not ‘correct’ for bytes as the factor really is 1024.
        Although everyone does know this, some are quite dogmatic about it.

        I blame harddisk manufacturer marketing douches for this, as the slap the literal “kilo” bytes on their products, which makes them appear a smidge bigger…

          1. Except hard drives have 512byte sectors and 4096 byte blocks. Everything is a power of 2, except for marketing reasons, using 10^3 instead of 2^10 means they can put larger numbers on the package.

          2. William: I can find tons of instances showing advertized capacities measured in powers-of-1000 ever since the time that hard drives could report their own geometry. (Or even worse: as theoretical unformatted capacity which you couldn’t practically achieve, such as the ST125A). The only disks I can find where the capacity could be thought as meaning powers-of-1024 are the original 5/10/15/20/25 MiB MFM or ST412 HDDs.

            Chris Fairhall: There is literally nothing in a disk that cares about powers of two other than the sector size itself. It’s completely unreasonable to expect that just because the smallest quantum is 2^9 that we should measure all the larger multiples also as powers of 2.

            Even sector size is an arbitrary choice. Hackaday recently had an article where a commenter mentioned a system with 1280 byte sectors.

      2. KiB is the international unit defined in IEC ISO80000 (Clause 4 of the Standard) that is 1024 bytes.
        KB which was common computer literature could be 1000 bytes (storage) or 1024 bytes(RAM).

        1. News to me. kb and kB yes, caps or not. Back in the 70’s and 80’s, when that was a lot of memory, it was assumed that being bytes or bits was enough to indicate 2**10.

          From what I can see, the KiB is a “kibibyte” and KB with capital K is 1024. And who would count bytes in units of decimal 1000 ( 1111101000 in binary)?

          1. I think it’s companies wanting to cheat the customers.I

            What doesn’t make sense is that because of binary, ram might be described as 1K by 1, but it couldn’t be an even 1000, it had to be 1024.

            So now, how can ram or harddrives be measured in even amounts?

      3. But beware sometimes manufacturers and retailers are sneaky and will change the case to indicate kilobits per second instead of kilobytes per second. It’s the whole quarter pounder, verses, a third of a pound burger, all over again.

      1. Correct, but if the chip can only accept 4 MSPS IQ in total and you want to send IQ and receive to/from both transceivers at once then you need to split the bandwidth between the two somehow. The end result might even be less if there is a large latency in flipping the the data flow direction on the SMI bus.

          1. Did you read the second last paragraph where I said “Or I suppose they could negotiate an asymmetric link say 400 kHz and 3600 kHz if one side is transferring more data than the other.” But to be honest I’ve not dug into the datasheet enough to know for sure nor studied the SMI bus to see how bad the latency is to flip the data direction. The 2KiB RX and 2KiB TX onboard buffer RAM on both BBC’s may help a lot.

  5. Please take the time to expand an acronym the first time you use it. It keeps us old-timers from going bonkers trying to figure out which acronym you mean.

    FYI here’s a list of defInitions for SDR

    SDR Sales Development Representative (various companies)
    SDR Special Drawing Rights (of the International Monetary Fund)
    SDR State Department of Rehabilitation (various locations)
    SDR Standard Dynamic Range (video)
    SDR Secret Decoder Ring
    SDR Single Data Rate (semiconductors/memory/RAM)
    SDR Sustainable Development Report (various companies)
    SDR Sveriges Dövas Riksförbund (Swedish: Swedish Association of the Deaf)
    SDR Swap Data Repository (finance)
    SDR Sara Delano Roosevelt
    SDR Software Defined Radar
    SDR Synchronous Dynamic Ram
    SDR Special Drawing Rights
    SDR Sensor Data Records
    SDR Session Director
    SDR Storage Descriptor Register
    SDR Software Drivers
    SDR Single Data Rate
    SDR Software Defined Radio
    SDR Strategic Defence Review (British government report)
    SDR Standard Dimension Ratio (pipe specification; ratio of diameter to wall thickness)
    SDR Süddeutscher Rundfunk (now defunct Southern German Radio Station; merged with SWF to SWR)
    SDR System Design Review
    SDR Student Disciplinary Regulations (conduct code; various schools)
    SDR Selective Dorsal Rhizotomy
    SDR Supply Discrepancy Report
    SDR System Definition Review
    SDR Scalable Data Reduction (various companies)
    SDR Session Directory
    SDR Speaker Dependent Recognition (speech recognition)
    SDR Service Difficulty Report
    SDR Sensor Data Record
    SDR Satellite Digital Radio (ETSI standard)
    SDR Spoken Document Retrieval
    SDR Sony Dream Robot
    SDR Sediment Delivery Ratio
    SDR System Design Responsibility
    SDR Super Desperation Radio (Internet radio)
    SDR Secretaría de Desarrollo Rural (Spanish: Ministry of Rural Development; Mexico)
    SDR Société de Développement Régional (French: regional development company)
    SDR Subcommittee on Disaster Reduction (MCEER)
    SDR Space Division Regulation (US Air Force)
    SDR Software Design Review
    SDR Streaming Data Request
    SDR Stop Drop and Roll
    SDR Signal-to-Distortion Ratio
    SDR Sum Difference Ratio (imaging)
    SDR Standard Data Release (Long-Term Pavement Performance)
    SDR Short Direct Repeat
    SDR System of Distinct Representatives
    SDR Santander, Spain – Santander (Airport Code)
    SDR Standardized Death Rate (cancer)
    SDR Standard Drawing Rights
    SDR Standard Direct Receiver
    SDR Sustainable Design Resources (California)
    SDR State-Dependent Routing
    SDR Service Desk Request (computer support; various organizations)
    SDR Service Delivery Router (Zeugma)
    SDR Supplier Deviation Request (various companies)
    SDR Supplier Document Requirement
    SDR System Development Requirement
    SDR Standard Diameter Ratio (pipe)
    SDR Special Dietary Requirement (nutrition)
    SDR Spec Deviation Request (construction)
    SDR Sign-Difference Ratio
    SDR Software Discrepancy Report
    SDR System Deviation Report (inspections)
    SDR System Dynamic Range
    SDR Statistical Data Recorder
    SDR Storage Data Register
    SDR Student Dining Room (Moody Bible Institute)
    SDR Surveillance Detection Route
    SDR Subeconomic Demonstrated Resources (Australian mining)
    SDR Strategic Data Retention (document management; Atlanta, GA)
    SDR Surrogate Digital Radio
    SDR Session Detail Record
    SDR Surveillance Detection Run
    SDR Supply Demand Review
    SDR Splash Detection Radar
    SDR Small Development Requirement
    SDR Software Development Review (Microsoft)
    SDR Sex, Drugs, and Rock and Roll
    SDR Subsystem Design Review
    SDR Sequence Determined Redundancy
    SDR Software Development Request
    SDR Source Directed Requirement
    SDR Single Design Review
    SDR Systolic Diastolic Ratio
    SDR Subsystem Design Requirement
    SDR Software Deficiency Report
    SDR Schedule Delete Request
    SDR Systems Data Resources (University of Texas Health Science Center at Houston)
    SDR Spatial Data Repository
    SDR Signal Data Recorder
    SDR Service Defect Rate
    SDR Shared Data Repository (data warehousing concept)
    SDR Surrogate Data Radio
    SDR Service Driven Routing
    SDR Standard Distribution of Resistance
    SDR Sample Discrepancy Report
    SDR Shipping Destination Room
    SDR Staged Data Repository
    SDR Super Data Rate
    SDR Sonar Data Recorder
    SDR Strange Dave Rosenberg (Long Island, New York band)
    SDR Surface Duct Receiver
    SDR State Department Request
    SDR Supplemental Definition of Requirement
    SDR Surveillance, Data Recording and Reprographics (Kodak)
    SDR Subcontractor Disposition Request
    SDR Stress/Design Report
    SDR Single Donation Record (records kept with each volunteer blood donation)
    SDR Same Day Resolution
    SDR Signal Data Reproducer
    SDR Spatial Diversity Receiver
    SDR Service Discrepancy Report (replaced Report of Deficiency, ROD)
    SDR Slam Dunk Records (Lusaka, Zambia)
    SDR Software Defined Radio (interoperable cellular technology)

    1. There has been enough software-defined radio stuff on HAD over the years that the readers are expected to be crafty enough to figure it out based on context. Consider it an expectation of intelligence, despite the contrary action here.

      1. d. You don’t know me nor do you have any knowledge of my level of intelligence or as you put it “expectation of intelligence, despite the contrary action here”. I have all kind of interests and Software Defined Radio (SDR) sits on the periphery. All I asked for was the simple courtesy of parsing out the acronym to make it easier for those of us that don’t deal with SDR on a regular basis, to be able to see at a glance, whether the article is of interest to us.

        Being a child of the 60’s my first thought was Sex, Drugs and Rock & Roll (SDR) and was wondering how a Raspberry Pi HAT was going to add that “with high speed memory access”

        Just be nice.

        President of AAE*
        PB

        *Abolish Acronyms Everywhere

      2. Intelligence has nothing to do with it. HackADay would be wise to adopt the Associated Press stylebook, which offers a handy set of guidelines for communicating effectively. Typically, acronyms are spelled out the first time they appear in an article, with the abbreviated version appearing in subsequent references. Hundreds of millions of people are already familiar with this approach, the tech community is a frustrating outlier in this regard.

  6. What is the “wide tuning channel” and how does it differ from the other, more limited ranges that are given?
    I read the linked to GitHub page and Googled it but missed the answer if it is there.

    1. My advise would be to look at the block diagram of the cariboulite that I already posted above ( https://www.crowdsupply.com/img/64f0/cariboulite-block-diagram.png *) and the AT86RF215 Block Diagram in the datasheet of the RF chip used ( On page 5 of the full datasheet https://www.microchip.com/wwwproducts/en/AT86RF215 ) and also a closed issue on the github page may help ( https://github.com/cariboulabs/cariboulite/issues/5 ). Basically there are two RF ports on the chip one for 2.4 GHz and one for some ISM bands below 1GHz.

      * They have cloned some of the circuit from a HackRF, there are 3 fundamental signal paths: a bypass signal path where the mixer, filters and LNA’s are all bypassed ; a 2200 MHz Low pass filter signal path with the mixer and a LNA (low noise amplifier); and a 2450 MHz High pass filter signal path with the mixer and a LNA. And because the 2.4 GHz transceiver in the AT86RF215 is half-duplex any of the three paths can be configured by the six RF switches to be RX or TX.

      So if the band of interest is between 2400 MHz and 2483.5MHz then the bypass path is selected. If band of interest is below 2400 then the signal path with the 2200 MHz Low pass filter is selected. And if the band of interest is above 2483.5MHz then the path with the 2450 MHz High pass filter is selected. And then depending on the correct switches being selected the signal path will be either TX or RX.

      With what they have implemented it should be able to tune from 30MHz to 6GHz utilising the 2.4 GHz transceiver port in the AT86RF215 chip. Everything else is just a bonus that they were able to add cheaply, so they did.

    2. I wrote a longer reply, but the site filter has delayed or blocked it (probably for including URL’s).

      See page 5 of the datasheet for the AT86RF215 RF chip used and look at the block diagram image of the receiver that I have linked to in a post above. One transceiver using the 2.4 GHz antenna port on the chip is the “wide tuning channel”, it is the fundamental important bit of the receiver/transmitter. And the second transceiver using the other antenna port, the ISM bands below 1GHz, they probably thought could added to the board for very little extra expense so they added it.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.