Si4703 FM radio receiver breakout with ESP32

Supply 3.3 V Bus I2C I2C address 0x10
GND3.3VSDIOSCLKSENRSTGPIO1GPIO2

Pins and ESP32 wiring

PinRoleESP32 pinNotes
GNDGroundGND
3.3VPower3V33.3 V only
SDIOI2C data (SDA)D21I2C data. Must be LOW when RST goes HIGH to choose I2C mode
SCLKI2C clock (SCL)D22
SENNot wired to the ESP32—Tie HIGH for I2C mode
RSTInput (the ESP32 drives it)D25Reset, active LOW. Needed to start I2C mode
GPIO1Not wired to the ESP32—Optional
GPIO2InterruptD35Seek/tune complete interrupt, optional

Suggested wiring for the 30-pin ESP32 DevKit, avoiding flash, input-only and strapping pins. BoardPilot checks it for you as you wire.

Starter code (Arduino)

#include <Wire.h>

void setup() {
  Serial.begin(115200);
  Wire.begin(21, 22);  // SDA = GPIO 21, SCL = GPIO 22
  Wire.beginTransmission(0x10);
  bool found = Wire.endTransmission() == 0;
  Serial.println(found ? "Si4703 FM radio receiver breakout found at 0x10" : "Not found: check power, GND and SDA/SCL");
}

void loop() {}

Sources

Try it in 3D in BoardPilot

BoardPilot Part data (JSON)

Related parts

Part data: CC BY 4.0, free to reuse with credit to BoardPilot.