$2 FM Transmitter for Raspberry Pi

We love re-purposed consumer gear. [Tobias] sent us the link to his project to that uses a cheap, discontinued cellphone gadget to create a Raspberry Pi controlled FM radio transmitter.

The Sony-Ericsson MMR-70 radio transmitter apparently used to connect to a cell phone and broadcast music. But the Walkman cellphones in question are a little bit old in the tooth, so one can buy the transmitter units for cheap on the resale market. What makes the transmitters even more interesting is that you can activate and deactivate the radio, change frequency or output power, and even send RDS station and song information.

It turns out (link in German) that the radios have an AVR ATMega32 microcontroller and a NS73 radio transmitter module, which can be entirely controlled over I2C. (Schematic here as PDF.) The units also have handy test points strewn all around. Once the test points were mapped out, one could completely ignore the on-board AVR microcontroller and control the FM transmitter module directly using the Raspberry Pi’s I2C outputs.

And that’s where [Tobias] stepped in. He wrote an I2C daemon for the Raspberry Pi that lets you control the FM transmitter via simple commands. All you have to do is solder up a bunch of test points, install [Tobias]’s software, write a batch script, and you’re on the air. For instance, this makes building a FM radio retransmitter for online streamed audio a one-day project. You can see his working example on youtube. Of course, you’ll want a web-based remote control interface to go with that.

If you’re interested in hacking along, and don’t have a Raspberry Pi application in mind, Sparkfun used to sell the NS73 radio transmitter so you can find lots of good information about the chip. We’d love to see a stand-alone broadcasting gizmo that actually utilizes the onboard AVR chip, but our hats are off to [Tobias] for making the Raspberry Pi version so accessible.

36 thoughts on “$2 FM Transmitter for Raspberry Pi

        1. That’s why I like this hack so much. The transmitter in the Walkman module is already type accepted, has a clean signal, and is trivial to wire up. The pifm project is a good educational tool but not very practical.

  1. I love it when people repurpose consumer electronics for something else.. Sure beats landfill waste otherwise.
    1 up vote from me for more of these types of articles, they always interest me.
    On a side note, I think you meant to say BASH script instead of batch script, but its all good.

  2. From the schematic, it would seem that SCK, MISO, and MOSI are brought out to test points as well. These are the ICSP pins (plus power and ground), so it’s likely that the micro can be reprogrammed.

    The schematic calls out a TSM 1-6 transmitter chip, while the article text says it’s an NS73 transmitter. Are these the same?

    I couldn’t find a datasheet for the TSM 1-6 anywhere after 1/2 hour of looking. The NS73 datasheet is here:https://www.sparkfun.com/datasheets/Wireless/General/NS73_Datasheet.pdf

    This might be an interesting unit to purchase: a $3 programmable atmega system controlling an FM transmitter.

    Or, it might rely on an obscure chip with no public documentation.

    Does anyone have more info?

    (P.S. to Brian: yes, the titles “shout” at the reader.)

    1. Hi,

      yes, the mega32 can be reprogrammed. I did so, and I also have some sample code laying around.
      Andrey Chilikin did an excellent job labeling all the test points in his blog: http://3.bp.blogspot.com/-n_ohkJBPz-Y/U4kBKn4AZ4I/AAAAAAAAASc/p6EYkGonyuY/s1600/mmr-070-1024.jpg

      The transmitter is a NS731 (!). The 731 supports RDS as opposed to the 73.

      I do have datasheets for the transmitter as well as some .c code. Send me a mail ;)

    1. Sure, the “traditional” phrase is long in the tooth, but a long tooth is an old tooth, unless maybe it’s a sabre toothed tiger tooth, in which case the whole saying is suspect.

      1. That is correct, it’s an Alps integrated module. I “know someone” who did the firmware dev on this ol’ baby, fun times.

        It should be noted that probably 80% of the original firmware in the mega32 went to handle the SonyEricson mobile phone UI/menus and notifications. These were AT-commands sent over a half-duplex, 1-pin UART (shared rx/tx) link, with some custom SW transfer protocol layer. Quite messy, thanks to numerous issues in various phone models that needed a great deal of different workarounds.

        Scrapping all that, there’s great headroom in the AVR for more efficient firmware :-).
        As someone else noted, all ISP-pins are available on test points.

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