80 comments

[ 2.9 ms ] story [ 137 ms ] thread
Very cool! makes me wonder what the Pi can do with all that data being stuffed into it; I had no idea there was any chance of that much I/O to them.
I am guessing that the Lattice ICE40LP FPGA would help a lot with data processing.
I doubt that FGPA will do anything else than interfacing between the AT86RF215 and the Raspberry Pi. It is pretty small in terms of the number of gates - but also cheap (around $3 at quantity).
You have ~20 GFlops videocore + 4 ARM cores (around Core2 performance)
Cortex SMALL (A57) cores are nowhere near core2 performance. Comparable to first generation Atom possibly. In-order simple cores.
pi4 is around Core 2 Duo E4300 single thread, maybe even faster than E6700 in multicore. This is ~ N3350/Z8350 performance.
Had no idea about this:

> CaribouLite utilizes the SMI (Secondary Memory Interface) present on all the 40-pin RPI versions. This interface is not thoroughly documented by both Raspberry-Pi documentation and Broadcomm's reference manuals. . . . The SMI interface allows exchanging up to ~500Mbit/s between the RPI and the HAT, and yet, the results vary between the different versions of RPI.

Way cool that the rpi has a high bandwidth interface! From the write-up, sounds like it's been quite the adventure from numerous parties to explore & make use of this capability. But oh how fruitful! Half a Gbit in some cases, sweet!

The compute module version of the RPI exposes PCI Express. If I'm reading the specs correctly it should be able to do 500 MB/s so 8x this interface.
This interface is simple enough that a cheapo fpga like Lattice can speak it without needing to support PCIe.

I have to say the noise floor on that spectrum analyzer sat on top of a cpu + ddr like that is going to be pretty nasty.

The noise issue is something that hadn't occurred to me; It would be interesting to hear some first hand experience from the developer.
Indeed and it doesn't even have any shielding cans on it in the design they show on crowdsupply.
This is a cool hack, but seems to have been built on a pretty fragile foundation. Why not use one of the existing dedicated SDR boards on the market?
Price probably, those are all in the several hundred dollars range especially with 6ghz and tx.
"Turn any raspberry pi into an SDR"

... by adding hardware to it. The headline made me at least think it somehow uses the pins as antennae, also because people have done this sort of thing in the past.

The interface having enough bandwidth to do this is interesting
Ah, I did not know that. I've always worked with USB SDRs, is a regular USB3 higher bandwidth than these pins?
USB 3 can provide orders of magnitude (how much depends on which rev) more bandwidth. This device provides slightly more bandwidth than an RTL-SDR stick over USB 2.
USB2 can do 10MSPS easy, but in my experience small SBCs like the Raspberry Pi struggle to keep up with this rate at the CPU. Might be more practical with the newer models, but I gave up on an RPi 3 with a 10MSPS SDR because it was excessively dropping samples at around the 5MSPS point... so it's possible that 4MSPS is approaching the limit of the CPU, at least for a given level of optimization of the software tools (I was mostly just sending out I/Q samples over the network).
It seems to only support 4 Mega-samples/second, which isn't much bandwidth.

EDIT: Its a fair bit of bandwidth for an embedded system like Rasp. Pi, so I'm not trying to undersell the project. But we're looking at 32-bit samples at 4MSPS, or ~16MB/s bandwidths here.

32-bit samples is a lot for an SDR though!
It’s one or two 13 bits samples from the ADC padded out to 32 bits. True 32 bit ADCs do not exist.
From article “each ADC sample contains 13 bit (I) and 13 bit (Q), that are streamed with a maximal sample rate of 4 MSPS from the AT86RF215 IC. This channel requires 4 bytes (samples padded to 32-bit) per sample (and I/Q pair) => 16 MBytes/sec which are 128 MBits/sec. In addition to the 13 bit for each of I/Q, the Tx/Rx streams of data contain flow control and configuration bits.”
Same. Here's a Pi-based FM transmitter that uses no additional hardware except for an antenna:

http://www.icrobotics.co.uk/wiki/index.php/Turning_the_Raspb...

Note: do not use this. The carrier wave is a square wave which means you spill ungodly amounts of RF into harmonic sidebands. If you dare to plug this into an amplifier - at least without a lowpass filter - expect a firm knock on your door.
Isn’t the point that you use this without an amp though
It's still illegal (and possibly dangerous) even without the amp - you're just much less likely to actually interfere with anything because the range is short. But you still shouldn't use it.
Out of curiosity, what laws does it violate?
All manner of jamming and FCC broadcast rules.
Yeah but specifically, I just don’t know anything about these laws and it seems fine to be doing it at low power
Low power means nobody is going to notice.
Lolz. Low power in the wrong place can be a problem.
For the most part, transmitting radio in the US is only allowed in a few frequency bands, referred to as the ISM band. These have pretty strict transmit power and duty cycle limits. If you get a ham radio license, then many more bands open up to you.
Title 47, part 15, holds the relevant regulations. Subparts 5, 15, and 23 are probably where you should start.

TBH, if you keep your radiated power low and make a reasonable attempt not to interfere with other users (be aware of bands' uses and where your harmonics and spurs are falling), you'll be completely fine, the worst you'll get is an official notice from the FCC telling you to stop.

I'd also suggest seeking out some ham radio experimenter groups to learn from, even if you don't want a ham license, there's a lot of practical knowledge to be shared.

Could you elaborate? As someone who has been interested in hacking SDRs for a while (but with zero prior knowledge outside of programming), I'm often worried that I have a poor barometer for what is legally dangerous. This stuff seems innocuous enough, but isn't always.

I don't know what I don't know, so any additional context is welcome.

Generally speaking:

- Listening is typically OK (with some exceptions).

- Transmitting is a minefield, and you could interfere with critical systems, cause outages, and get in trouble. Imagine interfering with aircraft communication systems on accident because there’s an airport nearby. Things can get pretty serious pretty quickly.

What are exceptions to listening? I'm pretty sure you can listen wherever and however you want.
You're not strictly allowed to decode and read pager messages.
(comment deleted)
It depends on the country you're in. In the UK for example, you're only allowed to listen to broadcast, amateur radio, or transmissions to which you are the intended recipient
Thanks! Say I wanted to transmit, what’s the general process for navigating the minefield?

One of the things I’d like to do is build a software-defined radio (using an rpi, for example) and use it to send something like Ethernet packets over the air.

> what’s the general process for navigating the minefield?

Let me start with, I am very ignorant of the pitfalls. If you can get a HAM license, they will teach you all the rules and you'll get to play in more RF space.

Otherwise, if you limit your transmissions to the WiFi bands at 1mWatt or less, you'll be fine (those are open). However, it is very difficult to do well because you are likely to generate noise on a band you are not trying to transmit on. Then the FCC will get mad at you, because you are responsible for all transmissions. Step into the wrong frequency range and you're looking at a 5 figure fine.

If you just want to play with radio hardware, so are a few other bands like 433Mhz where you can buy transmitter/receiver boards that the manufacturer certifies will not transmit outside freq. range. That's tested, so they should work well and you won't get in trouble with the FCC (the manufacturer limits the boards), the manufacturer would.

Realistically, how likely is one to get caught for such "leaky" transmissions, assuming one is not continuously broadcasting? It's not that I intend to do it -- I'm trying to get a bead on the extent to which this is playing with fire.

Your point about the HAM license is well-taken. That's probably a sensible next step.

You're rapidly leaving the limits of my knowledge, so going forward this is based on half-remembered things told to me. Huge grain of salt time.

I believe "leaky" transmissions are a result of the circuit design/construction (which could also be exacerbated or mitigated at the antenna level) and power being sent through the circuit and are not dependent on continuous/sporadic broadcasting. It may make it less likely to get caught, as triangulation requires an active signal. But if you bleed into ranges people care about (say HAM operators or police/military/aviation) the resources devoted to stopping you might get impressive (HAM operators because it's their hobby, the others have real government resources). Keep in mind, leaking isn't just illegal, it's also annoying whoever's transmission range you are leaking into.

Again, I would lean towards a $10 433Mhz board or a $20 ~900MHz board shipped from any electronics manufacturer before I started building my own transmitters. Or, if you're interested in transmitting using SDR and have ~$350 look into the HackRF or LimeSDR. AFAIK, they aren't FCC certified, but the HackRF in particular seems to have a wide amount of open-source use already and is probably safer than rolling your own.

This is very helpful. Thanks for taking the time to answer :)
Problem is, the kinds of people who are interested in this kind of thing don't care if it's illegal or not.
They'll start to care pretty quickly when they get a visit from a 3-letter agency (just one example [0]).

- [0] https://www.jdsupra.com/legalnews/fcc-enforcement-bureau-tar...

Realistically, that's not going to happen unless a harmonic lands within the ATC band or a GPS subband.

The trouble is, that's entirely possible. This sort of thing needs a good enclosure, or at least some board-level shielding.

99.999999999% not going to happen. On the remote chance does, expect a simple educational talk.
You're pretty damn likely to be inside the part 15 mask which is hundreds of microvolts/meter (30m away) up at UHF+. The total energy inside a single GPIO squarewave is on the order of 30mW; harmonics are a tiny fraction of this, and most will not be radiated efficiently. (Not to mention that edge rates/stray capacitance will limit their energy in the first place).

The big question is whether the fundamental frequency is compliant. A perfect squarewave has ~81% of its energy in the fundamental frequency.

I wrote that code. It's mostly broken nowadays because newer pi's use different hardware and new Linux distributions lock down the ability to poke random memory without the kernel having a proper driver.

There are other pifm projects which use the same general idea and work properly though.

Amazing, thanks! Would you have a links to those other projects or their names? Would love to read more.
Funny, in last weekend I was playing with various projects [0][1][2] based on the idea from this article. It was impressive how long range Raspberry Pi achieved even without the cable antenna.

They do work - transmit audio over the FM waves, but sadly the quality (buzzing noise) is far from expectations. Initially, I thought it is just my Raspi 3B, but when dived into the issues section on GitHub, I noticed more people were claiming they had similar problems. Do you know what could cause such degradation? Is there any better solution to transmit FM in a home?

Worrying fact is it also spams close ranges making them unable to listen. Have you applied any filter making it more stricter about the wave range it will take?

[0]: https://github.com/ChristopheJacquet/PiFmRds

[1]: https://github.com/markondej/fm_transmitter

[2]: https://github.com/miegl/PiFmAdv

It's pretty tightly integrated so I give it a pass. I like the design a lot.
They are doing 500Mbit/s over these pin headers, don't worry they are a freaking antenna all right.
Super cool! I like the block diagram [0] they have on their crowdsupply page [1]. It's a really clear illustration of how the board is set up with just a handful of high-level components. SDR schematics are usually pretty hard to parse without background in RF (which I certainly don't have) so I appreciated the system-level breakdown. Definitely a project to follow!

[0] - https://www.crowdsupply.com/img/64f0/cariboulite-block-diagr...

[1] - https://www.crowdsupply.com/cariboulabs/cariboulite

This project certainly seems to have the documentation on a higher level than what I'm used to. It's rare to see such a readable schematic with extensive comments on specific parts (FPGA programming, RF path, ...).
Sounds awesome! Anyone tried this?
How does it compare to RTL-SDR specs-wise?
The biggest difference is the rtl-str (DVB-T) dongles are receive-only while this is a transmit-capable SDR.
Also how hot does it get? Those dongles get crazy hot.
RTL-SDR can't transmit (only RX)

RTL-SDR can only go up to around 1.7 GHz which is a big issue if you want to analyze most modern RC stuff for example.

Is it possible to talk to cell towers with this?
Possible? Maybe at the cellular 3.84MS rate. Legal, no.
It in theory could do GSM, though you might need two, depending on if it can tune from the tower->handset and handset->tower frequencies fast enough.
There are plenty of relatively inexpensive chips that support LTE and are legal if you're actually interested in this.
It looks to be half duplex, so probably not. At least not with a single board.
Anybody have a guess at the price point for this board once it launches? Competition is stuff like the HackRF One at $120, although this is less capable.
The three main parts (Modem + Mixer + FPGA) cost on the order of ~$18 in medium volumes throw in other required components, PCB, and assembly and I'd guess their cost all in is just under $30 when made in quantities of 1,000+. Add in profit margin and I'd guess they will offer it in the $40-$60 range.
That's pretty reasonable. Call it $100 once you add in the Pi and SD card for a useful SDR platform. Have to add whatever antenna you are using too I guess.
I'm eager to see if it is more stable than SoapySDR, OsmoSDP, CubicSDR. I find that all three tend to be fickle cross OS.

I use a HackRF One, and I can scan up to 5GHz, but it is painful: the bandwidth depends a lot on the hardware. You need ~$20k in radio hardware to effectively scan a usable part of that domain, and by that point it is better to just invest in a RTSA.

Or use better engineered hardware. HackRF One had some very weird hardware designs that don't perform well for the price.
Do you like any of the lower cost options, or do you think folks should be looking at, say, Ettus Research?
? HackRF is a $100 SDR with TX capability, there is nothing below its price with comparable capability.
Is there lot of use for <4Mhz bandwidth channel at 6GHz? Seems pretty narrow/imbalanced spec to me, but then I don't know that much about SDR.
What's special about these frequencies to exclude them? 2398.5-2400 MHz and 2483.5-2485 MHz

Unless that was meant to be 2483.5-2495 which is something called "Globalstar".

They're using a transceiver that only operates in the 2.4GHz ISM band, and putting a mixer in front of it to upconvert/downconvert frequencies beyond that. These ranges are probably the gaps between what the AT86RF215 can handle on its own and the frequencies at which the mixer kicks in.
The key missing RF specification is sensitivity.

Without knowing this number it is probably better to classify this board as an oscilloscope + signal generator.

It does give the noise figure though.
(comment deleted)