Si4713 FM Transmitter is not detecting

Hello,

I am trying to use an Si4713 FM transmitter with an Arduino Nano, but the I²C scanner cannot detect the device. Occasionally, the connection is established and I can receive an FM signal for a short moment after I:

  • switch the power wire between 5V and 3.3V (and back),
  • briefly short(!) GND to Vin.

However, after reconnecting the Arduino to USB, the connection to the FM transmitter is lost again. As I understand it, there may be several possible reasons for this issue:

  • poor electrical contact (although I have tested the connections with a multimeter),
  • a faulty Si4713 module (so far I have tested two non-original FM modules and two Arduino boards),
  • thermal damage to the module during soldering (but it works occasionally).

Could you suggest what else I could try in this situation?

(assembly photo)

Try connecting the FM xmtr rst pin to a nano pin and hold it low for 100ms in setup()

1 Like

Have you taken the time to read the data sheet? https://www.digikey.com/en/htmldatasheets/production/1800204/0/0/1/si4713-fm-radio-trans-with-rds-rdbs-support
Directly from the data sheet:
All the interface input pins are 5V friendly, and can be used with 3-5V logic

RST - This is the Reset pin. You must have this pin toggle before starting to communicate with the chip. When at logic 0, the chip is in reset.

1 Like

Never ever change the circuit while things are powered up. It is one of the best ways of damaging your board.

Ok, thank’s!

Unfortunately, it not works.

Even a code like this (continuous on and off in case of a problem):

void setup() {

  Serial.begin(9600);

  pinMode(13, OUTPUT);

  digitalWrite(VINPIN, HIGH);

  while (true) {

    Serial.print("Si4713 Test: ");

    if (radio.begin()) {

      Serial.println("FOUND");

      break;

    } else {

      Serial.println("isn't found");

      digitalWrite(VINPIN, LOW);

      delay(500);

      digitalWrite(VINPIN, HIGH);

      digitalWrite(RESETPIN, LOW);

      delay(250);

    }

    delay(1000);

  }

Did you try the reset pin like I asked in post #2

Of cource, as it is reset pin 12.

      digitalWrite(RESETPIN, LOW);

      delay(250);

You need to set it HIGH again

digitalWrite(RESETPIN, LOW);
delay(250);
digitalWrite(RESETPIN, HIGH);
void setup() {

  Serial.begin(9600);

  while (true) {

    Serial.print("Si4713 Test: ");

    digitalWrite(RESETPIN, LOW);

    delay(250);

    digitalWrite(RESETPIN, HIGH);

    if (radio.begin()) {

      Serial.println("FOUND");

      break;

    } else {

      Serial.println("isn't found");

    }

    delay(1000);

  }

Unfortunately, result of this code is the same.

Can you please post the entire code.
Which library are you using?

This is my code (based on adafruit example):

fmTransmitter.ino (2,6 KB)

1 Like

It is interesting, however, that sometimes it turns on and works properly.

The adafruit begin() does reset so you do not need to do it.
Have you tried the Adafruit example exactly as it is, without any modifications?

Exactly, I did, without any modifications… I suppose, as I use non-original module (even 2 pcs.), it will cause described issue.

Maybe or your solder connections are not real good.
Sometimes those breadboard connections are loose and don't make good contact.

1 Like

Thank you very much for helping!

Wish I could do more.