We’ve done a lot of posts on how to use the Lattice iCEstick ranging from FPGA tutorials to how to use one as a logic analyzer. If you picked up one of these inexpensive boards here’s a fun little experiment. [T4D10N] saw a project [Hamster] put together to send SOS on the FM radio band using nothing but an FPGA. [Hamster used a Spartan], so he decided to do the same trick using an iCEstick with the open source IceStorm tools.
You might be surprised that the whole thing only takes 53 lines of Verilog — less if you cut out comments and whitespace. That’s because it uses the FPGA’s built-in PLL to generate a fast clock and then uses a phase accumulator divider to produce three frequencies on the FM radio band; one for a carrier and two for a tone, spaced 150 Hz apart. The result is really frequency shift keying but you can hear the results on an FM radio.
We know, we know. It is probably illegal to broadcast on the FM radio band in some places. however, unless you amplify the signal and use an antenna, this is basically radio frequency interference. The other thing is we couldn’t bear to send SOS no matter how faintly, so we changed the message string from:
reg [33:0] message = 34'b1010100011101110111000101010000000;
to
reg [33:0] message = 34'b1010100011111111111000101010000000;
That makes it send “S long dash S” which, in some circles might be S0S (a long dash is sometimes used informally as a zero by straight key operators). The FPGA starts at the right and shift message over one spot each time beep_counter rolls over.
You can clearly hear the signal on 100 MHz, although the square wave is noisy sounding as you might expect. However, we bumped it down to 25 MHz and took a spectrum of it and it was better than we expected (see image above; the center line is 25 MHz and the scale is 5 MHz/division). Of course, that was admittedly a low bar to clear.
[Hamster’s] original code was in VHDL and for a Spartan 6. We’ve seen digital electronics generate RF before, of course. We’ve even seen it in color.
Please don’t send “SOS” on any radio transmitter unless you actually have an emergency! Send your name, or CQ, etc. It’s grossly illegal with big penalties to make a false distress call, it makes us look bad and invites more regulation, and you have no idea just how far a low-power radio transmitter can be heard sometimes.
If you read it says they didn’t actually send sos, they modified it before transmitting.
They modified it to something that could STILL be taken as an SOS!. There is NO reason to do so.
Well I was making a little joke. It is possible to interpret it as S ZERO S and even then only if you subscribe to the colloquial use of a long dash as a zero which is out of favor now that most people don’t use straight keys. I don’t think anyone would confuse it and I don’t know of any automated system that would interpret the long dash as a zero, either.
Yes, sending SOS when there is an emergency is always a terrible idea! Just pick your favorite thing and send a plug for it instead. Myself, I like sending a continuous string of the letters “OSS”!
HaD is lowering the bar for the bright young kids that may someday become interested in legit homebrewing.
That’s the plan…
Well, that and we dig radio stuff ourselves.
That’s right! Get those kids’ solder smoking!
Is it that terrible? I found it fairly good, doesn’t you?
We’ll be flooded here with ESPish jammers soon…
With great power comes great responsibility.
But honestly, if people aren’t already jamming everything with their user-friendly Raspberry Pis, I’m guessing that an FPGA implementation isn’t going to bring the radio apocalypse.
“We shouldn’t send an SOS, so we sent S-S which could be an SOS.”
Why not just… I dunno, NOT send an SOS? Lots of choices available.
lol sending “CDQ” in a land-locked location ought to be a safe-enough one, then again, is CDQ only for boats? this brings me to my final point, send some crap that doesnt mean anything simillar to “help” such as “joe is a looser” … not that joe is a looser, but if joe heard it, he would probably not call emergency response andor rescue. make sure to check if joe has a weapon first…