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.
the links for smi explanation and github repo are broken…
not broken , just bad link (remove the extra ] at the end of the link)
Fixed…oops
Try again. First link I tried still had the “typo”.
2 links still bad 24h later.
Fixed, fixed.
Shipping time for cariboulite-rpi-hat has pasted– Has this company died?
Does this tx as well as rx?
It is in the article.
“The board can transmit at about 14 dBm, depending on frequency”
frome the GitHub link: “CaribouLite turns any 40-pin Raspberry-Pi into a Tx/Rx 6GHz SDR”
Unless it is properly shielded, isn’t any operating Pi transmitting something?
B^)
Is there any way to get the SMI to read continuously without bus contention so it can be used as a logic analyzer?
https://iosoft.blog/2020/07/16/raspberry-pi-smi/
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.
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.
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.
“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.
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.
the wide tuning channel covers 30MHz to 6GHz.
It already does through the 2400 to 2483.5 MHz transceiver via the 30MHz to 6GHz mixer.
https://www.crowdsupply.com/img/64f0/cariboulite-block-diagram.png
I should probably add that the whole middle section of the block diagram is amazingly similar to the HackRF.
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.
This was in reply to CRJEEA
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.
you might be thinking of the pio blocks on the rp2040 microcontroller
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.
What’s a KiB?
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…
Hard drives have literally always been measured in powers of 1000 bytes. It’s not their fault that Microsoft decided to use bit shifting instead of real division.
That’s simply not true. It’s a practice that seemed to develop as hard drives increased in size beyond 1GB.
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.
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.
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).
It is even used by the US National Institute of Standards and Technology ( https://physics.nist.gov/cuu/Units/binary.html ).
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)?
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?
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.
doesn’t 4 MSPS IQ throughout yield 4 MHz worth of RF bandwidth?
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.
Yes, that makes sense. This split, however, does not need to be symmetrical (or does it?).
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.
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)
Wow, I’m surprised that you found a list that includes “Strange Dave Rosenberg”, the subject of this article!
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.
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
A.C.R.O.N.Y.M: Abbreviated Coded Rendition Of Nomenclature Yielding Meaning
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.
And…turns out I’m wrong. AP style apparently says it was OK to use SDR in this case.
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.
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.
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.
I would have thought that the CSI was faster and easier to use, at least on the receive side
But then surely you are stuck with the problem what do you do for TX ? If CSI is one direction only, which I’m assuming it is, but I honestly do not know.
For TX in theory you could use the HDMI interface ? That would be fun way to even attempt to transfer data out of a raspberry pi, especially if viewed on a display!
Would you be able to use this as a single device for ground penetrating radar? Excuse my ignorance orange, when it comes to RF, I’m an idiot.
My knowledge of GPR is minimal at best. But with my very limited knowledge I’d guess that maybe the above device might possibly be used as the modulator block on page 15 of the pdf file linked to in the hackaday article on “Ground Penetrating Radar for the Masses” (ref: https://hackaday.com/tag/ground-penetrating/ ), but in my mind not as a single device for GPR.
I’m excited to announce that our crowd-funding campaign has been launched today!
See:
https://www.crowdsupply.com/cariboulabs/cariboulite-rpi-hat