Project #26 – Radio Frequency – SI4713 FM – Mk28
Web
https://www.donluc.com/?p=5014
https://www.facebook.com/share/v/1EZQLzpxsC/
YouTube
https://youtu.be/gJJ0xKjIeTU
#DonLucElectronics #DonLuc #Si4730FM #RadioFrequency #SparkFunESP32WROOM #Display #IoT #Project #Fritzing #Programming #Electronics #Microcontrollers #Consultant



Si4713 FM Radio Transmitter (LW, MW, SW, FM)
When you mention Arduino radio, you always think of modern FM radio (88-108 MHz in Europe). The LW, MW and SW band cover the range from 0.2 to 30 MHz. SW is especially interesting. Radio waves in the shortwave band can be reflected or refracted from a layer of electrically charged atoms in the atmosphere called the ionosphere. Thus shortwave radio can be used for very long distance communication, sometimes entire continents or beyond.
Below I will present to you the development of a radio that covers all the bands mentioned above. The "Heart" of this radio is Si4713 IC from Silicon Labs.
DL2610Mk02
1 x SparkFun Thing Plus - ESP32 WROOM (Micro-B)
1 x Assembled Terminal Block Breakout FeatherWing
1 x Adafruit SSD1306
1 x SI4713 FM Transmitter Module
1 x Lithium Ion Battery - 1000mAh
1 x USB Micro-B Cable
DL2610Mk02p
DL2610Mk02p.ino
/****** Don Luc Electronics © ******
Software Version Information
Project #26 – Radio Frequency – SI4713 FM – Mk28
26-28
DL2610Mk02p.ino
DL2610Mk02
1 x SparkFun Thing Plus - ESP32 WROOM (Micro-B}
1 x Assembled Terminal Block Breakout FeatherWing
1 x Adafruit SSD1306
1 x SI4713 FM Transmitter Module
1 x Lithium Ion Battery - 1000mAh
1 x USB Micro-B Cable
*/
// Include the Library Code
// Wire
#include "Wire.h"
// Adafruit SSD1306
#include <Adafruit_SSD1306.h>
// SI4713 FM Transmitter
#include <Adafruit_Si4713.h>
// SI4713 FM Transmitter
// _BV
#define _BV(n) (1 << n)
// RESET PIN
#define RESETPIN 12
// FM STATION
// 10230 == 102.30 MHz
#define FMSTATION 10230
// SI4713 FM Transmitter
Adafruit_Si4713 radio = Adafruit_Si4713(RESETPIN);
// Adafruit SSD1306
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
// Software Version Information
String sver = "26-28";
void loop() {
// is SI4713FM
isSI4713FM();
}getDisplay.ino
// Adafruit SSD1306
// isDisplayUID
void isDisplayUID(){
// Intentar ambas direcciones
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
//Serial.println("Error con 0x3C, probando 0x3D...");
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3D)) {
//Serial.println("Error OLED en ambas direcciones");
return;
}
}
// Clear Display
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
// Don Luc Electronics
display.setCursor(0,0);
display.println("Don Luc Electronics");
// Motor Drive
display.setCursor(0,10);
display.print("Radio FM");
// Version
display.setCursor(0,20);
display.print("Version");
display.setCursor(0,30);
display.print( sver );
// Display
display.display();
}
// isDisplay FM
void isDisplayFM(){
// Clear Display
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
// Don Luc Electronics
display.setCursor(0,0);
display.println("Don Luc Electronics");
// FM
display.setCursor(0,20);
display.print("Radio FM");
// 102.3 MHz
display.setCursor(0,40);
display.print( "102.3 MHz" );
// Display
display.display();
}getRadio.ino
// SI4713 FM Transmitter\
// Setup SI4713 FM
void isSetupSI4713FM(){
// Begin with address 0x63 (CS high default)
if (! radio.begin()) {
Serial.println("Couldn't find radio?");
while (1);
}
// dBuV, 88-115 max
radio.setTXpower(115);
// 102.3 MHz
radio.tuneFM(FMSTATION);
// This will tell you the status in case you want to read it from the chip
radio.readTuneStatus();
// Current Frequency
radio.currFreq;
// Current Frequency dBuV
radio.currdBuV;
// Current Frequency Antenna Capacitor
radio.currAntCap;
// Begin the RDS/RDBS transmission
radio.beginRDS();
// DON-LUC
radio.setRDSstation("DON-LUC");
// "Don Lucito Radio!
radio.setRDSbuffer( "Don Lucito Radio!");
// Set GP1 and GP2 to output
radio.setGPIOctrl(_BV(1) | _BV(2));
}
// is SI4713FM
void isSI4713FM(){
// Read ASQ
radio.readASQ();
// Current Frequency ASQ: 0x
Serial.println(radio.currASQ, HEX);
// Current Entry-Level
Serial.println(radio.currInLevel);
// Toggle GPO1
radio.setGPIO(_BV(1));
// Delay
delay(500);
// Toggle GPO2
radio.setGPIO(_BV(2));
// Delay
delay(500);
}setup.ino
// Setup
void setup()
{
// Delay
delay( 100 );
// Serial Begin
Serial.begin(9600);
// Delay
delay(100);
// Delay
delay( 100 );
// Adafruit SSD1306 - UID
// Don Luc Electronics
// Versioc
isDisplayUID();
// Delay
delay( 5000 );
// isDisplay FM
isDisplayFM();
// Delay
delay( 1000 );
// Setup SI4713 FM
isSetupSI4713FM();
// Delay
delay( 1000 );
}People can contact us: http://www.donluc.com/?page_id=1927
Consultant, R&D, Electronics, IoT, Teacher and Instructor
-Programming Language
-Microcontrollers (PIC, Arduino, Raspberry Pi, Arm, Silicon Labs, Espressif, Etc...)
-IoT
-Wireless (Radio Frequency, Bluetooth, WiFi, Etc...)
-Robotics
-Automation
-Camera and Video Capture Receiver Stationary, Wheel/Tank , Underwater and UAV Vehicle
-Unmanned Vehicles Terrestrial, Marine and UAV
-Machine Learning
-Artificial Intelligence (AI)
-RTOS
-Sensors, eHealth Sensors, Biosensor, and Biometric
-Research & Development (R & D)
-Consulting
-Etc...
Follow Us
Luc Paquin – Curriculum Vitae - 2026
https://www.donluc.com/luc/LucPaquinCVEng2026Mk01.pdf
https://www.donluc.com/luc/
Web: https://www.donluc.com/
Web: https://www.jlpconsultants.com/
Facebook: https://www.facebook.com/neosteam.labs.9/
YouTube: https://www.youtube.com/@thesass2063
DFRobot: https://learn.dfrobot.com/user-10186.html
TikTok: https://www.tiktok.com/@luc.paquin
Hackster: https://www.hackster.io/luc-paquin
LinkedIn: https://www.linkedin.com/in/jlucpaquin/
Don Luc









