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)
jim-p
February 7, 2026, 4:07pm
2
Try connecting the FM xmtr rst pin to a nano pin and hold it low for 100ms in setup()
1 Like
mihasia:
Si4713 module
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
mihasia:
switch the power wire between 5V and 3.3V (and back),
briefly short(!) GND to Vin.
Never ever change the circuit while things are powered up. It is one of the best ways of damaging your board.
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);
}
jim-p
February 8, 2026, 3:32pm
7
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);
jim-p
February 8, 2026, 3:46pm
9
You need to set it HIGH again
digitalWrite(RESETPIN, LOW);
delay(250);
digitalWrite(RESETPIN, HIGH);
mihasia
February 8, 2026, 4:43pm
10
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.
jim-p
February 8, 2026, 4:51pm
11
Can you please post the entire code.
Which library are you using?
mihasia
February 8, 2026, 5:02pm
12
This is my code (based on adafruit example):
fmTransmitter.ino (2,6 KB)
1 Like
mihasia
February 8, 2026, 5:06pm
13
It is interesting, however, that sometimes it turns on and works properly.
jim-p
February 8, 2026, 5:15pm
14
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?
mihasia
February 8, 2026, 5:19pm
15
Exactly, I did, without any modifications… I suppose, as I use non-original module (even 2 pcs.), it will cause described issue.
jim-p
February 8, 2026, 5:22pm
16
Maybe or your solder connections are not real good.
Sometimes those breadboard connections are loose and don't make good contact.
1 Like
mihasia
February 8, 2026, 5:38pm
17
Thank you very much for helping!