[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.


54 thoughts on “[Sprite_tm]’s Three-component FM Transmitter

    1. LOL :) I know hack could have as many definitions as there are persons defining it. AFAIK this used new off the shelf components, IMO it’s build. Not that I would ever say builds don’t have a place on Hackaday. Even novelty builds.

  1. 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.

  2. 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”?

  3. 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.

      1. I guess this wouldn’t work.. found this in the datasheet:
        6.4 Clock Output Buffer
        The device can output the system clock on the CLKO pin (when not used as XTAL2 pin). To enable the output, the
        CKOUT Fuse has to be programmed. (…) Internal RC Oscillator, WDT Oscillator, PLL, and external clock (CLKI)
        can be selected when the clock is output on CLKO. (..). If the System Clock Prescaler is used, it is the divided system clock that is output.

    1. 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.

      1. 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.

      2. 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.

    1. 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).

  4. 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?

    1. 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.

      1. …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!

  5. 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”

  6. 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!

  7. 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.

  8. 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).

  9. 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

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.