[Sprite_tm]‘s three-component FM transmitter

When the Regency TR-1 transistor radio came out onto the market in the 1950s, it was hailed as a modern marvel of microelectronics. With only four transistors and a handful of other components, the TR-1 was a wonder of modern engineering. [Sprite_tm] may have those old-timers beat, though. He built an FM transmitter with the lowest parts count of any transmitter ever.

Like most of [Sprite_tm]‘s builds, it’s an unimaginably clever piece of work. [Sprite] overclocked the internal RC oscillator of an ATtiny45 to 24 MHz. After realizing the PLL running at four times the frequency of the oscillator was right in the middle of the FM band, he set about designing a tiny FM transmitter.

[Sprite_tm] remembered his work on MONOTONE and made a short song for hit ATtiny. The firmware for the build takes the notes from his song and varies the 96 MHz PLL frequency a tiny bit, thereby serving as a tiny FM transmitter.

Does it work? Well, if you want to compare it to a Mister Microphone, the range is incredibly limited. That being said it works. It’s an FM transmitter built out of a microcontroller and a battery, and that’s very impressive. Check out [Sprite_tm]‘s demo after the break.


  1. HackJack says:



  2. DanJ says:

    Cool. Good observation about a use of the PLL.

    One might argue however (only for the fun of it) that there are an awful lot of components in this FM transmitter. They’re just encapsulated in one package.

  3. isama says:

    damn, Sprite’s hacks get me every time. the next time I say I live in a country of stupid people could someone please remind me of Sprite’s work?

    Go netherlands!:P

    @DanJ: how about “the 3 package fm transmitter”?

  4. Sprite_tm says:

    Actually, the song isn’t mine. It was distributed with Monotone; I think Trixter mentioned somewhere who tracked it. Hmm, I think I’m gonna look the name up and edit my article, I hate taking credit where it isn’t due.

  5. That’s pretty cleaver! If only AVR had a CLK_OUT pin outputting PLL output. You could then attach an antenna to it and get better range :)

  6. Bob D says:

    Probably the single geekiest rickroll in history. Nicely done.

  7. YS says:


  8. Zmaster says:

    OMG, sprite_tm is the man! A CPU that makes music by overclocking itself and broadcasts it at the same time. Such an amazing contraption, it made my day!

    • Dax says:

      That’s actually one of the first things they did with the Altar 8000 personal computer. Someone noticed it produced radio interference, and they programmed it to play tunes through the radio.

      • Justin Case says:

        This SO reminds me of one of my favorite(!!) TRS-80 video games, “ROBOT-ATTACK!!”.
        It was found that the program generated RF noise and the audio for the game could be heard by tuning a radio to the right spot.

        Would like to play that again but I never bought a TRaSh-80, school “computer lab” had them and of course endless hours spent at Rat-Shack.

        Not sure how you can over-clock something where the parts (time-base crystal) is built in, and software set.

        I have seen PLL modulation tricks when “MagicBoxes.com” was making Jerrold “test-cubes”. Very entertaining… while it lasted.
        Wish someone was “testing” on /\/\otorola cft’s.

      • Greenaum says:

        Actually it goes back to the old IBM mainframes in the 60s(tho they probably used AM radios!).

        It might go back even further. I wrote a program on my 8-bit computer in the 80s that made RF interference music just using FOR loops in BASIC. Of course, it sounded terrible.

  9. Damn… just got Rick Rolled! ;-)

    • Black Soap says:

      but it was so well done, I don’t even mind.

      The only way to do better than this would be to publish instructions so that lots of other people build it themselves, (not knowing what it would play).

  10. ino says:

    that’s totally awesome !!!!
    Kudos !

  11. voodoo says:

    Holy s**t that’s clever! Hats off to you, sprite! Excellent work!

  12. Travis says:

    Here’s a similar AM morse code transmitter


    It’s hosted on the Arduino site, but also runs on a standalone attiny + battery + wire.

  13. bty says:

    very nice, clever find.

  14. dattaway says:

    Microphone into an analog input. Single part bug.

  15. Kerm says:

    …I made an FM trans with a dual JK flipflop and a battery when I was seven, be it a mistake – It can be done in a bunch of ways!

  16. Bogdan says:

    Brilliant! Add signal through ADC and you can broadcast music. Also, what about setting a pin HIGH/LOW and a load resistor to increase the current consumption and then longer power wires/inductor to increase range?

    • Greenaum says:

      Don’t think you’d be able to toggle a pin at clock frequency, tho you could probably use some strong harmonics. Possibly adding a wire to the +v line would do as an aerial. It doesn’t really matter though, nobody really needs a long-range software-based FM Rick Astley transmitter.

      • …nobody really needs a long-range software-based FM Rick Astley transmitter.

        Oh really? I beg to differ!

        You know those people that put up synchronized-to-music xmas lights, and a sign that says TUNE TO 88.5 FM TO HEAR THE MUSIC…

        Well, how about just a sign that says TUNE TO 88.5 FM TO HEAR THE MUSIC and the sign itself has the RICK ROLL device on it. The sign could be placed anywhere. Curious tuners would get a nice surprise!

  17. draeath says:

    “Unlicensed broadcasts on the FM broadcast band (88 to 108 MHz) are limited to a field strength of 250 µV/m at a distance of 3 meters from the antenna. This is equivalent to 0.01 microwatts.”

    There you go. Source:


  18. Clandestine says:


  19. anonymous says:

    Well, this is pretty interesting. Instead of blasting out a song, you could transmit a short message in morse, maybe a URL? There are other popular ways to do this – the amateur radio guys are currently using the hell out of PSK-31. A small device like this could provide news or other information in a novel way, kind of like the USB dead drops. “Go to starbucks on main st, and tune to 88.3″

  20. Satiagraha says:

    Lol I have a 1 component one, it’s called an FM transmitter.

    Just because it’s in a few packages, doesn’t make it few components.

  21. Ken Quast says:

    Hack or build really is just semantics. It is observation and creativity and that is what HAD should be. Hats off to you sir!

  22. ferdinand says:

    mmm 3 parts i think macgyver is stil alive

  23. jimmythecow says:

    thats just bad ass, I love the roll. I love the hack, i love it.

    more of this, less of that.

  24. Lugaw says:

    The Russians are still the greatest hack on my list :P



  25. MS3FGX says:

    Sprite_tm’s work is some of the most consistently excellent stuff I’ve ever seen. Always love to see what he’s been working on.

  26. Alex Rossie says:

    This is excellent though I contest that just putting everything in a one package means a low parts count. If I epoxied my entire PC it’d be pretty hard to claim is a computer made of a single part!

  27. kabukicho2001 says:

    all devices produce rf interferences, so you can alter the firmware to get a sound or music.

  28. AlexS says:

    Clever, clever stuff

  29. jopo says:

    OMG, i got rick rolled .____.

  30. MikeK says:

    The output is a square wave that’ll likely cause interference to other devices. A simple low-pass filter can get it closer to a sine wave, but making it useful is going to require additional parts. Good trick FM’ing the frequency through the oscillator tuning register, though. We need more hacks like this.

  31. Roel says:

    I’ve never been rick rolled in such a nice way :D

  32. Henk says:

    I became an electronics engineer because radio was magical. This HACK brings back the magic. I’ve just ordered 3 ATtiny85’s! Sprite_tm is king.

  33. Torrid says:


    How far can we push this frequency up?
    Would be nice to have a low power/mini package gps jammer, so it wouldnt affect further away than your fone

  34. gizmoguyar says:

    This is cool, but I’m a little disappointed by the mistakes in this post. I know it’s probably just an oversight but this matters to some of us, Brian Benchoff. [Sprite] didn’t over-clock “the internal RC oscillator of an ATtiny45 to 24 MHz.”!! “After realizing the PLL running at four times the frequency of the oscillator” this is wrong. The PLL runs at 8 times. If you read his post you’ll see that he clocked the 8MHz internal oscillator to 12MHz which (with the 8x PLL) gives him a 96MHz timer (which IS right in the middle of the FM band) and which gives him (with the internal 4x division) a 24MHz system clock (4MHz higher than the rated speed).

  35. static says:

    A web search for something else brought me back to this older post. With respect to sprite mod’s cleverness here, I no see why I didn’t bookmark either this HAD post or the sprite mod page for this. There are better solutions for low power FM transmitters that have more flexibility. I do think this would make a more interesting introduction creating code for these sort of μprocessors after the blinking LED after the baby step has been taken.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


Get every new post delivered to your Inbox.

Join 96,401 other followers