element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Moto Mods
  • Products
  • Manufacturers
  • Moto Mods
  • More
  • Cancel
Moto Mods
Forum FM Transmitter Mod
  • Blog
  • Forum
  • Documents
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Moto Mods to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 31 replies
  • Subscribers 58 subscribers
  • Views 3377 views
  • Users 0 members are here
  • rapsberry-pi
  • audio
  • fm radio
  • gpio
  • moto mod
  • raspberry pi io
  • pifm
  • moto mdk
  • moto mods
  • raspberrypi_pifm_pitx_pisoftware
Related

FM Transmitter Mod

krobar14
krobar14 over 7 years ago

Hello,

 

I am currently undertaking a project on my own. To develop a mod for my Moto Z Play.

 

Just to give you some background into this. I tried implementing the PiFM GPIO project with the band pass filter feature recently on a raspberry pi. I expreienced great success with this endeavor, and thought that I would be able to do something similar for my Moto Z Play. I currently have all of the development tools, and the hardware, but I am just doing research, having implemented the Blinky Project already.

 

I am currently reading through some of the Nuttx instructions, and purposes. The information given seems to show that the firmware contains the possibility for Audio signals being processed.

 

What advice would you have for an Engineering student getting into this. I would like to have some input at where I should go from the Blinky project. I want to have a mod that takes my phone's audio, and sends it out over different FM frequencies. Is this even possible?

 

Thanks!

David

  • Sign in to reply
  • Cancel

Top Replies

  • motomodsdev
    motomodsdev over 7 years ago +1
    Very possible, I recommend starting with the Audio Personality Card example. This uses i2s to transfer digital audio from the Moto Z, and plays out a tiny mono speaker. It should be extremely easy to rip…
  • motomodsdev
    motomodsdev over 7 years ago in reply to krobar14 +1
    The MDK does generate clock and PWM outputs, so it appears it would be feasible to use the MuC in the same manner that they used the Pi. In this case the audio would be an analog signal out of the TFA…
  • motomodsdev
    motomodsdev over 7 years ago in reply to krobar14 +1
    Sorry for missing this update, I guess the TFA9890 is mono audio only, which the reason for the i2s stereo decoder. Did you look to see if there was anything in the TFA family that might make your firmware…
Parents
  • krobar14
    krobar14 over 7 years ago

    Will do. Thanks for your help. I'll post updates on this thread.

     

    Would another possibility be, building a GPIO board that would connect to the mod, and send out audio, the same way I did on the raspberry pi?

    I'm more specifically referring to the PiFM Project on the raspberry pi.

     

    David

    Raspberry Pi Radio Transmitter: 4 Steps

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • motomodsdev
    motomodsdev over 7 years ago in reply to krobar14

    The MDK does generate clock and PWM outputs, so it appears it would be feasible to use the MuC in the same manner that they used the Pi.  In this case the audio would be an analog signal out of the TFA still, correct?  You would probably need to flywire a new circuit on the Perforated board, since the Audio card doesn't provide easy access to extra GPIO.

     

    If you run into issue configuring any MuC outputs, we're here to help.  As for how the user tunes the transmitter, than can be easily done with an Android app and pass the information to your Moto Mod using the Raw protocol.

     

    There's an interesting comment that this isn't really a good way to do FM since you "splash" out over other channels.  I thought your FM transmitter was a separate chip, controlled by i2c like the TFA is.  Pretty interesting just modulating a GPIO signal; not sure if that is easier or harder than a transmitter IC.

     

    Great documentation so far, really interesting to see this evolving!  But you confused me when you mentioned 2 knobs next to the speaker.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • krobar14
    krobar14 over 7 years ago in reply to motomodsdev

    I mean, why re-invent the wheel, right?

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • krobar14
    krobar14 over 7 years ago in reply to motomodsdev

    Could this be something more easily done with an ADA Fruit Playground express. If so, is there a resource on how to set this up maybe?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • motomodsdev
    motomodsdev over 7 years ago in reply to krobar14

    At that point are you doing much more than handling power from the MDK to the adafruit?  You'll end up with 2 development environments on two different processors, but at the moment cost isn't really a factor.  How do you plan on splitting responsibilities between the Playground and the MuC?

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • krobar14
    krobar14 over 7 years ago in reply to motomodsdev

    Actually it won't be necessary. The FM Xmitter and the Stereo decoder I think are the two main components in this equation. I need to figure out how to get the correct data outputs to the Stereo Decoder as well as the FM Xmitter. I know the I2S outputs from the MuC to the Stereo Decoder and the I2C outputs to the FM Xmitter. I need to check on How these are going to work. It's just a matter of studying NuttX backwards and front and figuring out how to write the software properly. I also need to figure out how to write a small Android app that can call functions specified in AdaFruit's interface for the two components.

     

    https://learn.adafruit.com/adafruit-i2s-stereo-decoder-uda1334a/arduino-wiring-test

    https://learn.adafruit.com/adafruit-si4713-fm-radio-transmitter-with-rds-rdbs-support/test-and-usage

     

    So maybe if you could give me a hint as to how to implement this. I have completed the Blinky app by the way. So I am not a NuttX virgin. I have implemented that project successfully.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • krobar14
    krobar14 over 7 years ago in reply to motomodsdev

    Just a very quick question I have about some of the pins.

     

    I have the following pin outs to connect to the Stereo decoder.

                                                                                      

    BTB Pin IDIdentificationCorresponding pin (UDA1334A)
    3P3Regulated 3.3-volt, 500mA power source (see note 1)Vin
    GNDSystem GroundGND
    PC15Master_I2S_WSWSEL
    PC14Master_I2S_BCLKBCLK
    PD7Master_I2S_SDODin
    GNDSystem GroundAnalog Ground

     

    I don't think that any of the SysCLK, Mute, DEEM, or PLL since they all have default values that are used.

    However, the SP0, SP1 signals may need to be altered. They are automatically drawn low for I2S but may need to be altered for LSB Signals. I doubt that I will need this though.

     

    I have the following pin outs to connect to the FM Transmitter:

     

    BTB Pin IDIdentificationCorresponding pin (Si4713)
    Lout from Stereo DecoderNo Identification. Passing a wire from the stereo decoder to the FM transmitter.Lin
    Rout from Stereo DecoderNo Identification. Passing a wire from the stereo decoder to the FM transmitter.Rin
    3P3Regulated 3.3-volt, 500mA power sourceVin
    GNDSystem GroundGND
    PA9MuC_GPIORST (Reset toggle)
    PA4MuC_SPI1_CS0 (ONLY if I have to wind up going the SPI route.)CS
    MuC_PB11MuC_I2C2_SDASDA
    PB10MuC_I2C2_SCLSCL

     

    This is my Current idea. I have looked at this in many ways, and I'm now trying to configure nuttx to work with the given ships on the board.

    If you have any observations about this design, especially with regards to feasibility, PLEASE let me know.

     

    Here are my sources for the information above.

     

    https://learn.adafruit.com/adafruit-si4713-fm-radio-transmitter-with-rds-rdbs-support/pinouts

    https://learn.adafruit.com/adafruit-i2s-stereo-decoder-uda1334a/pinouts

    https://developer.motorola.com/documentation/mdk-overview

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • motomodsdev
    motomodsdev over 7 years ago in reply to krobar14

    To be clear, you aren't routing the i2s signals to the MuC.  So you're not actually going to PC14, PC15, or PD7 on the MuC but instead are pretty much raw i2s lines that the Moto High Speed Bridge combines, and then expands back out on the Moto Z side.  That said, your pin selection makes sense, although the UDA1334A spec implies that SYSCLK is necessary.  Please note that pin 36 on the 80-pin connector can be used as a 19.2MHz output.  Not entirely sure what you're referring to with the SP0 and SP1.

     

    PB10 and PB11 seem like good choices for talking i2c to the FM transmitter, it should be very easy to configure those pins as well as your reset output.

     

    One final note would be that the MuC runs at 1.8V logic level.  You'll either need level shifters to bring it up to 3.3V, or you can use the Pi HAT Adapter which contains shifters to the 3.3V level.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • krobar14
    krobar14 over 7 years ago in reply to motomodsdev

    So, from my understanding, the whole purpose of the stereo decoder is to receive I2S signals from the MuC. Not the other way around. For that reason, I thought those were the pins that allowed for Word Select, and the Back Clock, and The SDO to get the audio from the phone. Is it true that these pins are outputting this information for the process of decoding it into Left out and Right out for the FM Transmitter?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • krobar14
    krobar14 over 7 years ago in reply to motomodsdev

    My goal is to take I2S to the Stereo Decoder.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • shabaz
    shabaz over 7 years ago in reply to krobar14

    This seems like the most complicated way ever to get FM transmission. You could just take an analog audio output (headphone jack?) and send it to an FM transmitter circuit. I2S may offer higher quality for a small portion of the system, but by the time it has been transmitted and received, and bear in mind most modern FM receivers are awful, the sound quality will be pretty average anyway. Analog input FM transmitters are available all over the place, unless I'm missing something..

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • krobar14
    krobar14 over 7 years ago in reply to shabaz

    Yes, I understand I can do that. I just wanted to build something that would work as a mod. This is just a project to get to know everything a little better.

    You're very right. Just plugging into, or Bluetooth to an FM transmitter would be a lot easier. I am purposefully trying to do something more challenging.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • krobar14
    krobar14 over 7 years ago in reply to shabaz

    Yes, I understand I can do that. I just wanted to build something that would work as a mod. This is just a project to get to know everything a little better.

    You're very right. Just plugging into, or Bluetooth to an FM transmitter would be a lot easier. I am purposefully trying to do something more challenging.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
Children
No Data
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube