I have an I2C FM transmitter for the pi; it has a 3.5mm stereo jack for input.

Everything works great -- I attached a short dipole antennae and get clear reception for at least 25'. However, if I use the same model B pi to provide the input, there's a slight steady noise; sometimes this rises and falls in pitch/intensity. I've heard it do this at precise one second intervals, presumably synced with another device on the same I2C bus that receives updates at that rate. However, usually there's no such correspondence. The noise is there whether or not the pi is actually playing sound, although it is not very noticeable if it is (i.e. the relative volume is very low).

If I use two pis, one powering the transmitter and one providing the input (or just use some other device for input), it's crystal clear. I've tried various power supplies, which did not make any difference.

Is there anything I can do to filter or correct this? What's it caused by?

1 Answer 1


The noise is probably caused by a 1 second interrupt on the Pi. If you used an Arduino, without the complex multitasking it may not be a problem.

It is VERY difficult to separate low level audio from the other circuitry. The conventional solution would be to use an isolating transformer. As the device is unlikely to have a wide bandwidth this wouldn't be too difficult.

As a simpler solution you could try disconnecting the earth at one end of the audio connection.

The Pi generates a lot of interference. This is not an issue for most purposes, but once you connect any external wires it is likely to propagate. There are ways around this, but most involve external filters (simple bypass capacitors don't help much).

  • Realized (doh!) that I do have another device on the same bus that gets updates at 1 second intervals. Can you be more specific specific about what you mean by disconnecting earth at one end? Do you mean unground the actual jack?
    – goldilocks
    Commented Nov 15, 2014 at 10:10
  • 2
    You have a GND connection between the boards. The audio cable provides another, introducing an earth loop. Cutting the earth on the audio at either end removes the loop (stops any power or data from inducing current in the shield), but keeps the audio shielded. It doesn't matter how you do this, but normally you would remove the connection at the source (Pi) end of the cable.
    – Milliways
    Commented Nov 15, 2014 at 10:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.