Arduino and Si4713 RDS Buffer Transmitter

Hello,

I need help extending the RDS message transmission from a 5 bit value (32 char buffer) to 6/8/10/12 bit.

  • For my application it is not suitable to send 2 separate messages, it needs to be one long message to be displayed at once.

I will highly appreciate help. Code can be based upon the proivded code by Adafruit.
https://learn.adafruit.com/adafruit-si4 … t?view=all

.
.
.
.
.
Inside the .cpp file for the si4713 library is the function for the RDS buffer - this is the function which transmits 32 chars? I’m unsure what to modify
void Adafruit_Si4713::setRDSbuffer(const char *s) {
uint8_t i, len = strlen(s);
uint8_t slots = (len+3) / 4;
char slot[5];

for (uint8_t i=0; i<slots; i++) {
memset(_i2ccommand, ’ ', 8); // clear it with ’ ’
memcpy(_i2ccommand+4, s, min(4, strlen(s)));
s+=4;
_i2ccommand[8] = 0;
//Serial.print(“Set buff #”); Serial.print(i);
//char *slot = (char *)( _i2ccommand+4);
//Serial.print(" to ‘"); Serial.print(slot); Serial.println("’");
_i2ccommand[0] = SI4710_CMD_TX_RDS_BUFF;
if (i == 0)
_i2ccommand[1] = 0x06;
else
_i2ccommand[1] = 0x04;

_i2ccommand[2] = 0x20;
_i2ccommand[3] = i;
sendCommand(8);
}

Much appreciated