Are you talking about one scheme like this in picture?
For a moment I'm using one tape cable 4 wires, 100nf in all device and in main power 220nf and 470uf. And noise is more less, I hear noise only if there is activity on i2c bus, for example if a change frequency or set the volume !
Next time I'll use a tape cable 6 wire like you recommended !
Another options I like enable is RDS texture, I'm trying tu write one function. I must understand the mechanism to read RDS texture. Unfortunately didn't find document on line about this argument but I found one complete datasheet for AR1000 (more similar to my AR1010 FM module). If there some one have the RDS decoder code will be welcome in this discussion. I'm sure this FM module have this option because in datasheet is possible able RDS options in to registers.Or I will try to clarify the mechanism of setting the registers of the RDS to enable you to help me.
On 24.Mar.21 11.30:
I tried to set up (at 1 state) the RDS_en and rds_int bits in R1 FM register, after I created one function for read (using FMread) the Register: RDS1, RDS2,RDS3.....RDS6) because FM module fill the texture every time in to this registers. The result , unfortunately is 00FF for all 6 16bit registers (only time for all frequency,) it's an error !!! or FM module not fill registers or I'm not reading in time registers and FM module clear it quickly.
I'm reading the registers every 30 seconds (using timer0) i don't know if this asychronous mode to read is correct !! However the FM module (if rds_bit in enable) produces an RDS interrupt on the i2c line every 5ms but I don't know how to control this interrupt.
So I could write a function where:
1) Set at 1 RDS_int. (using FmWrite func)
2) put in to while circle until RDSR bit is 1. Fmread function to read status on RDSR bit in register status.
3) if it is 1 read all texture 16 bit registers(RDS1....RDS6).
4) reset RDS_int at 0 logical state. (using FmWrite func)