... 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.
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.
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.
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.
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.
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.
- 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.
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.
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
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.
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?
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.
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.”
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).
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.
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!
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, ...).
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.
> 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!
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.
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.
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).
... 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.
http://www.icrobotics.co.uk/wiki/index.php/Turning_the_Raspb...
There are other pifm projects which use the same general idea and work properly though.
The big question is whether the fundamental frequency is compliant. A perfect squarewave has ~81% of its energy in the fundamental frequency.
I don't know what I don't know, so any additional context is welcome.
- 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.
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.
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.
Your point about the HAM license is well-taken. That's probably a sensible next step.
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.
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.
- [0] https://www.jdsupra.com/legalnews/fcc-enforcement-bureau-tar...
The trouble is, that's entirely possible. This sort of thing needs a good enclosure, or at least some board-level shielding.
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
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.
[0] - https://www.crowdsupply.com/img/64f0/cariboulite-block-diagr...
[1] - https://www.crowdsupply.com/cariboulabs/cariboulite
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.
> 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!
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.
Unless that was meant to be 2483.5-2495 which is something called "Globalstar".
Without knowing this number it is probably better to classify this board as an oscilloscope + signal generator.
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.