1

My IDE shows "Adafruit Radio - Si4713 Test", but without "RDS on!", which is supposed to show up. The radio I use (Inscabin M60) shows static. Am I doing something wrong?

Adafruit Radio - Si4713 Test Couldn't find radio? Adafruit Radio - Si4713 Test Couldn't find radio? Adafruit Radio - Si4713 Test Couldn't find radio? Adafruit Radio - Si4713 Test Couldn't find radio Adafruit Radio - Si4713 Test The italic represents where I made a mistake. This is the code, where I only changed the error message. I previously changed the #define FMSTATION to 9670, but KTCK has taken that signal, so I changed it back. /*************************************************** This is an example for the Si4713 FM Radio Transmitter with RDS

Designed specifically to work with the Si4713 breakout in the adafruit shop ----> https://www.adafruit.com/products/1958

These transmitters use I2C to communicate, plus reset pin. 3 pins are required to interface Adafruit invests time and resources providing this open source code, please support Adafruit and open-source hardware by purchasing products from Adafruit!

Written by Limor Fried/Ladyada for Adafruit Industries.
BSD license, all text above must be included in any redistribution

Many thx to https://github.com/phrm/fmtx/blob/master/firmware/firmware.ino !

****************************************************/

#include <Wire.h>
#include <Adafruit_Si4713.h>
#define _BV(n) (1 << n)

#define RESETPIN 12

#define FMSTATION 10230 // 10230 == 102.30 MHz

Adafruit_Si4713 radio = Adafruit_Si4713(RESETPIN);

void setup() { Serial.begin(9600); Serial.println("Adafruit Radio - Si4713 Test");

if (! radio.begin()) { // begin with address 0x63 (CS high default) Serial.println("Couldn't find radio"); while (1); }

// Uncomment to scan power of entire range from 87.5 to 108.0 MHz /* for (uint16_t f = 8750; f<10800; f+=10) { radio.readTuneMeasure(f); Serial.print("Measuring "); Serial.print(f); Serial.print("..."); radio.readTuneStatus(); Serial.println(radio.currNoiseLevel); } */

Serial.print("\nSet TX power"); radio.setTXpower(115); // dBuV, 88-115 max

Serial.print("\nTuning into "); Serial.print(FMSTATION/100); Serial.print('.'); Serial.println(FMSTATION % 100); radio.tuneFM(FMSTATION); // 102.3 mhz

// This will tell you the status in case you want to read it from the chip radio.readTuneStatus(); Serial.print("\tCurr freq: "); Serial.println(radio.currFreq); Serial.print("\tCurr freqdBuV:"); Serial.println(radio.currdBuV); Serial.print("\tCurr ANTcap:"); Serial.println(radio.currAntCap);

// begin the RDS/RDBS transmission radio.beginRDS(); radio.setRDSstation("AdaRadio"); radio.setRDSbuffer( "Adafruit g0th Radio!");

Serial.println("RDS on!");

radio.setGPIOctrl(_BV(1) | _BV(2)); // set GP1 and GP2 to output }

void loop() { radio.readASQ(); Serial.print("\tCurr ASQ: 0x"); Serial.println(radio.currASQ, HEX); Serial.print("\tCurr InLevel:"); Serial.println(radio.currInLevel); // toggle GPO1 and GPO2 radio.setGPIO(_BV(1)); delay(500); radio.setGPIO(_BV(2)); delay(500); }

sempaiscuba
  • 1,032
  • 8
  • 20
  • 32
  • 1
    Your Arduino using this code obviously fails to communicate with the radio. Please show how you've connected the board to your Arduino. – StarCat Jun 03 '23 at 12:10

0 Answers0