kkonradpl / xdr-gtk

User interface for consumer-grade XDR-F1HD radio tuner with XDR-I2C modification
http://fmdx.pl/xdr-gtk
GNU General Public License v2.0
27 stars 7 forks source link

rdsspy output is garbage in groups [1], [2] and [3] #6

Closed andimik closed 1 year ago

andimik commented 1 year ago

Could you check if there is a bug in https://github.com/kkonradpl/xdr-gtk/blob/master/src/rdsspy.c ? I have the same issue under Windows 10 and Ubuntu.

Because I have error-free signals on my (Dutch) TEF6686 (v1) and error-free in xdr-gtk (for example the radiotext).

grafik

But the RDSSpy output is just garbage in lots of groups [1], [2] and [3]:

$ nc 127.0.0.1 7376
G:
A540255046726579

G:
A540------------

G:
A540--------0000

G:
A540----EDC70000

G:
A540054FEDC74520

G:
A540------------

G:
A540------------

G:
A540--------0000

G:
A540----AEC70000

G:
A5400548AEC7414E

G:
A540------------

G:
A540--------0000

G:
A540----61200000

G:
A540255161205269

G:
A540------------

G:
A540--------0000

G:
A540----A8C70000

G:
A5400549A8C75445

My expectation is that each line needs to be without ---- as the signal is error-free.

I also tried some modifications in this file, but I am not a programmer in order to fix it.

Could you share your output?

kkonradpl commented 1 year ago

Output from XDR-F1HD is fine:

G:
34DB054BA8292A20

G:
34DB25552078204B

G:
34DB255669656C61

G:
34DB054876CD202A

G:
34DB0549E4A44B52

G:
34DB054AA8294450

G:
34DB054B76CD2A20

G:
34DB0548E4A4202A

G:
34DB255773202D20

G:
34DB25585069656B

I believe something is wrong in the TEF firmware.

andimik commented 1 year ago

I have added the following lines in order to check the value for errors in groups [1],[2], and [3]:

    fprintf(stderr, "%d;", errors);
    fprintf(stderr, "%d;", errors&3);
    fprintf(stderr, "%d;", errors&12);
    fprintf(stderr, "%d\n", errors&48);

The result is

0;0;0;0
63;3;12;48
15;3;12;0
3;3;0;0
0;0;0;0
63;3;12;48
15;3;12;0
3;3;0;0
0;0;0;0
63;3;12;48
15;3;12;0
3;3;0;0
0;0;0;0
63;3;12;48
15;3;12;0
15;3;12;0
3;3;0;0
0;0;0;0
63;3;12;48
15;3;12;0
3;3;0;0
0;0;0;0
63;3;12;48
15;3;12;0
3;3;0;0
0;0;0;0
63;3;12;48
3;3;0;0
3;3;0;0
0;0;0;0
63;3;12;48
15;3;12;0
3;3;0;0
0;0;0;0
63;3;12;48
15;3;12;0
3;3;0;0
0;0;0;0
63;3;12;48
15;3;12;0
3;3;0;0
0;0;0;0
63;3;12;48
15;3;12;0
3;3;0;0
0;0;0;0
63;3;12;48
15;3;12;0
15;3;12;0
3;3;0;0
0;0;0;0
63;3;12;48
15;3;12;0
3;3;0;0
0;0;0;0
63;3;12;48
15;3;12;0
3;3;0;0
0;0;0;0
63;3;12;48
15;3;12;0
3;3;0;0
0;0;0;0
63;3;12;48
15;3;12;0
3;3;0;0
0;0;0;0
63;3;12;48
15;3;12;0
3;3;0;0
0;0;0;0
63;3;12;48
15;3;12;0
3;3;0;0
0;0;0;0
63;3;12;48
15;3;12;0
3;3;0;0
3;3;0;0
0;0;0;0
63;3;12;48
15;3;12;0
3;3;0;0
0;0;0;0
63;3;12;48
15;3;12;0
3;3;0;0
0;0;0;0
63;3;12;48
15;3;12;0
3;3;0;0
0;0;0;0
63;3;12;48
15;3;12;0
3;3;0;0
0;0;0;0
63;3;12;48
15;3;12;0
3;3;0;0
0;0;0;0
255;3;12;48
63;3;12;48
15;3;12;0
3;3;0;0
0;0;0;0
63;3;12;48
3;3;0;0
0;0;0;0
63;3;12;48
15;3;12;0
15;3;12;0
3;3;0;0
0;0;0;0
63;3;12;48
15;3;12;0
3;3;0;0
0;0;0;0
63;3;12;48
15;3;12;0
3;3;0;0
0;0;0;0
63;3;12;48
15;3;12;0
3;3;0;0
0;0;0;0
63;3;12;48
15;3;12;0
3;3;0;0
0;0;0;0
63;3;12;48
15;3;12;0
3;3;0;0
0;0;0;0
63;3;12;48
15;3;12;0
3;3;0;0
0;0;0;0
255;3;12;48
63;3;12;48
15;3;12;0
3;3;0;0
0;0;0;0
63;3;12;48
15;3;12;0

ok, let me try to re-flash the TEF.

andimik commented 1 year ago

No, I have re-flashed 1.14 and then 1.15 again.

I fear it's a bug in rdsspy output (= in this file https://github.com/kkonradpl/xdr-gtk/blob/master/src/rdsspy.c ), because xdr-gtk and stationlist show a correct Radiotext (despite of the RT A/B flag change bug). But I am not a programmer and have absolutely no C++ clue ...

I also have tried several options in your tool

grafik

grafik

grafik

It seems RDSSpy is also a bit delayed (some seconds) as the radiotext in xdr-gtk and stationlist switches from A to B at the same moment as on the TEF, but not so in RDSSpy.

andimik commented 1 year ago

Seeems I am not only person with this issue as I found this video:

https://www.youtube.com/watch?v=C9_GMURUOW4

andimik commented 1 year ago

In case you need that, this is what the PC receives from the TEF6686 over ttyUSB0:

$ cat </dev/ttyUSB0 > /tmp/ttyUSB0.capture

ttyUSB0.zip

andimik commented 1 year ago

I know that this is NOT a bugfix, but a small workaround for at least local stations. So it has to do with this above mentioned file.

Radiotext in RDSSpy now without errors

13:30:39 Telefonisch unter 0800 600 600 kostenlos von 7.00 bis 19.00 Uhr 
13:30:57 OE3-Nachrichten, Wetter & Verkehr um Punkt am Punkt             
13:31:19 Melden Sie uns Staus und Unfaelle                               
13:31:38 Telefonisch unter 0800 600 600 kostenlos von 7.00 bis 19.00 Uhr 
13:31:59 OE3 * OESTERREICHS HITRADIO * OE3 * HITRADIO OE3 *              
13:32:17 Mehr Infos zum HITRADIO OE3 online auf oe3.ORF.at               
13:32:25 Jetzt laeuft Someone Else                                       
13:32:39 von ClockClock auf OE3                                          
13:32:57 Jetzt laeuft Someone Else                                       
13:33:18 von ClockClock auf OE3                                          
13:33:40 Jetzt laeuft Someone Else                                       
13:33:57 von ClockClock auf OE3                                          
13:34:18 Jetzt laeuft Someone Else                                       
13:34:39 von ClockClock auf OE3                                          
13:34:57 Jetzt laeuft Someone Else            

Screenshot

grafik

It seems that there are too much RDS codes transmitted, so let's write only the good ones to RDSSpy.

Patch for Workaround

$ git diff
diff --git a/src/rdsspy.c b/src/rdsspy.c
index 9945170..3635368 100644
--- a/src/rdsspy.c
+++ b/src/rdsspy.c
@@ -202,6 +202,8 @@ void
 rdsspy_send(gint   pi,
             gchar *msg,
             guint  errors)
+
+
 {
     if(!rdsspy_is_connected())
         return;
@@ -251,7 +253,16 @@ rdsspy_send(gint   pi,
     {
         g_snprintf(groups[3], 5, "----");
     }
+    fprintf(stderr, "%d;", errors);
+    fprintf(stderr, "%d;", errors&4);
+    fprintf(stderr, "%d;", errors&12);
+    fprintf(stderr, "%d\n", errors&48);
+
+if((errors&3) == 0)
+    {
+

     g_snprintf(out, sizeof(out), "G:\r\n%s%s%s%s\r\n\r\n", groups[0], groups[1], groups[2], groups[3]);
     send(rdsspy_client, out, strlen(out), 0);
+    }
 }

Advantage

G:
A2030549061D4F45

G:
A2038542C1911F75

G:
A203054AF91D2033

G:
A203E5414F45A201

G:
A203054F1D782020

G:
A203254820202020

G:
A203854241400000

G:
A2030548041D2020

G:
A203254920202020

G:
A203E5422031A201

G:
A20335500064CD46

G:
A203854241400000

G:
A2030549111D4F45

G:
A203254A20202020

G:
A203E5432020A201

G:
A203054A0D1D2033

G:
A203854241400000

G:
A203054F051D2020

G:
A203E5456D2CA201

G:
A2030548101D2020

G:
A203254B20202020

G:
A2038543D641C9B0

G:
A20305491D5F4F45

G:
A203E5457001A201

G:
A203054A1D6D2033

G:
A2038543D641C9B0

G:
A203054F1D962020

G:
A203E5450524A201

G:
A2030548151D2020

G:
A203254C20202020

G:
A2038543D641C9B0

G:
A20305491D6C4F45

G:
A203254D20202020

G:
A203E5450E22A201

G:
A20335504000CD46

G:
A2038543441F4865

G:
A203054A061D2033

G:
A203254E20202020

G:
A203E5451125A201

G:
A203054FF71D2020

G:
A2038543441F4865

G:
A20305481D6F2020

G:
A203E545785CA201

G:
A20305491D9E4F45

G:
A203254F20202020

G:
A2038543441F4865

G:
A203054A141D2033

G:
A203E5459602A201

G:
A203054F0C1D2020

G:
A203854800657A51

G:
A20305481D762020

G:
A203E5450C27A201

G:
A20305491D844F45

G:
A20325404A65747A

G:
A203854800657A51

G:
A203054A1D202033

G:
A203254174206C61

G:
A203E545C310A201

G:
A20335500064CD46

G:
A203854800657A51

G:
A203054F0B1D2020

G:
A203254265756674

G:
A203E5455F16A201

G:
A20305481D892020

G:
A2038544D991BFD0

G:
A20305491D714F45

G:
A203E5456A1CA201

G:
A203054A1DC32033

G:
A203254320322044

G:
A2038544D991BFD0

G:
A203054FE70C2020

G:
A203E545862BA201

G:
A20305480C1D2020

G:
A2038544D991BFD0

G:
A2030549050C4F45

G:
A203E5458923A201

G:
A203054A0C152033

G:
A203254469652034

G:
A203854441400000

G:
A203054FE5C32020

G:
A203254520202020

G:
A203E5457602A201

G:
A20335504000CD46

G:
A203854441400000

G:
A20305481DC32020

G:
A203254620202020

G:
A203E5456F0FA201

G:
A20305495FC34F45

G:
A203854441400000

Disadvantage

Please note, I'm NOT a programmer, but I have experience in RDS since MS-DOS ages.

kkonradpl commented 1 year ago

This is not a bug in XDR-GTK, but in ESP firmware. The RDS data should be sent once all blocks from a given group are ready (or not all, some of them can be missing with corresponding information in the error summary of the "R" message).

The attached capture seems to be corrupt (?) – a lot of characters are missing. However, check this pattern: PA540 R054F000000000F R054F88AE000003 R054F88AE452000

The "R" message should be sent only once (the last one).

andimik commented 1 year ago

Thanks @kkonradpl for your answer.

@PE5PVB and @NoobishSVK

Dear Sjef and Marek, could you take a look in your code? Seems it's in https://github.com/NoobishSVK/TEF6686-remastered/blob/15a2f1dd063c63616f21dd5529b2b43c1565c0a3/TEF6686_remastered.ino#L2246 or similar.

PE5PVB commented 1 year ago

Don't understand this problem. Even when there is no data available, it will always send a 16-bit string, like FFFF or 0000. So, where are these ---- coming from?

andimik commented 1 year ago

Please download the ttyUSB0.zip from above.

The R line has different lengths and even there is sometimes no line break between P line and R line.

The ---- is the RDSspy syntax made by xdr-gtk, so not your code.

Should I open a separate issue in your repository because Konrad told me it has to do with the TEF6686 Firmware?

PE5PVB commented 1 year ago

That's my idea too. The R line is not generated by the TEF software. BTW. I implemented direct connectivity with my TEF v2 with RDS Spy, and there all is OK.

andimik commented 1 year ago

@NoobishSVK and @PE5PVB

I found https://github.com/stailus/tef6686_rds/blob/master/tef6686_rds.ino#L568 which is slightly different than in your code.

void get_RDS()
 {
   int16_t uRds_Data[6] = {0};
   Get_Cmd(32, 131, uRds_Data, 8);

   if ( bitRead(uRds_Data[0], 15) == 1 )
    {
      Serial.print('P');
      serial_hex(uRds_Data[1] >> 8);
      serial_hex(uRds_Data[1]);
      Serial.print('\n');

      Serial.print('R');
      serial_hex(uRds_Data[2] >> 8);
      serial_hex(uRds_Data[2]);
      serial_hex(uRds_Data[3] >> 8);
      serial_hex(uRds_Data[3]);
      serial_hex(uRds_Data[4] >> 8);
      serial_hex(uRds_Data[4]);
      serial_hex(uRds_Data[5] >> 8);
      Serial.print('\n');
    }
 }

Please mind the if-loop. Compared to

    if (RDSstatus == 1 && USBstatus == true && WiFistatus == false) {
      Serial.print("P");
      Serial.print(rdsInfo.programId);
      Serial.print("\nR");
      serial_hex(rdsB >> 8);
      serial_hex(rdsB);
      serial_hex(rdsC >> 8);
      serial_hex(rdsC);
      serial_hex(rdsD >> 8);
      serial_hex(rdsD);
      serial_hex(rdsErr >> 8);
      Serial.print("\n");
    }

in https://github.com/NoobishSVK/TEF6686-remastered/blob/main/TEF6686_remastered.ino#L2210

or

void readRds() {
  if (band == 5) {
    RDSstatus = 0;
  } else {
    RDSstatus = radio.readRDS();
  }
  ShowRDS(RDSstatus);

  if (RDSstatus == true && wificonnect == true && RDSSpy == true && band != 5) {
    if (RDSSpyReset == true) {
      RemoteClient.print("G:\r\n");
      RemoteClient.print("RESET-------");
      RemoteClient.print("\r\n\r\n");
      RDSSpyReset = false;
    }
    RemoteClient.print("G:\r\n");
    tcp_hex(radio.rds.rdsA >> 8);
    tcp_hex(radio.rds.rdsA);
    tcp_hex(radio.rds.rdsB >> 8);
    tcp_hex(radio.rds.rdsB);
    tcp_hex(radio.rds.rdsC >> 8);
    tcp_hex(radio.rds.rdsC);
    tcp_hex(radio.rds.rdsD >> 8);
    tcp_hex(radio.rds.rdsD);
    RemoteClient.print("\r\n\r\n");
  }

  if (RDSstatus == true && USBstatus == true && RDSSpy == true && band != 5) {
    if (RDSSpyReset == true) {
      Serial.print("G:\r\n");
      Serial.print("RESET-------");
      Serial.print("\r\n\r\n");
      RDSSpyReset = false;
    }
    Serial.print("G:\r\n");
    serial_hex(radio.rds.rdsA >> 8);
    serial_hex(radio.rds.rdsA);
    serial_hex(radio.rds.rdsB >> 8);
    serial_hex(radio.rds.rdsB);
    serial_hex(radio.rds.rdsC >> 8);
    serial_hex(radio.rds.rdsC);
    serial_hex(radio.rds.rdsD >> 8);
    serial_hex(radio.rds.rdsD);
    Serial.print("\r\n\r\n");
  }

in https://github.com/PE5PVB/TEF6686_multiband/blob/main/TEF6686_ESP32-v207_Multiband/TEF6686_ESP32-v207_Multiband.ino#L987

I am not a programmer, but please note the if ( bitRead(uRds_Data[0], 15) == 1 ).

andimik commented 1 year ago

Dear @kkonradpl Konrad,

I have another workaround (but this is not a bugfix for the firmware): the following command helps me to get error-free radiotext (no missing characters) in lots of the local radio stations (= as long as they repeat the text).

But a DXer from Belgrade (Serbia) told me he is working on a new firmware (not open source) and will fix that bug so that I will get RDS from weaker stations as well.

nc 127.0.0.1 7376 | grep -v - | grep 9202 > /tmp/9202.spy had that following output: 9202.zip

Some examples

nc 127.0.0.1 7376 | grep -v - | redsea -E -h
{"pi":"0xA201","group":"2A","radiotext":"Jetzt in Ö1: Ö1 Science Arena: Familiendebatte","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0xA201","group":"2A","radiotext":"Vater, Mutter Kind - noch eine Chance? Die Familiendebatte.","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0xA201","group":"2A","radiotext":"Vater, Mutter Kind - noch eine Chance? Die Familiendebatte.","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0xA201","group":"2A","radiotext":"Vater, Mutter Kind - noch eine Chance? Die Familiendebatte.","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0xA201","group":"2A","radiotext":"Wolfgang Mazal vs. Ulrike Zartler","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0xA201","group":"2A","radiotext":"Wolfgang Mazal vs. Ulrike Zartler","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0xA201","group":"2A","radiotext":"Wolfgang Mazal vs. Ulrike Zartler","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0xA201","group":"2A","radiotext":"Fragen zum Ö1 Programm? Tel. (01) 501 70 371","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0xA201","group":"2A","radiotext":"Fragen zum Ö1 Programm? Tel. (01) 501 70 371","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0xA201","group":"2A","radiotext":"Fragen zum Ö1 Programm? Tel. (01) 501 70 371","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0xA201","group":"2A","radiotext":"Nächste Sendung: Tipps für Ö1 Club-Mitglieder","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0xA201","group":"2A","radiotext":"Nächste Sendung: Tipps für Ö1 Club-Mitglieder","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0xA201","group":"2A","radiotext":"Nächste Sendung: Tipps für Ö1 Club-Mitglieder","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0xA201","group":"2A","radiotext":"Ö1 im Internet: oe1.ORF.at","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0xA201","group":"2A","radiotext":"Ö1 im Internet: oe1.ORF.at","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0xA201","group":"2A","radiotext":"Ö1 im Internet: oe1.ORF.at","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0xA201","group":"2A","radiotext":"Jetzt in Ö1: Ö1 Science Arena: Familiendebatte","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0xA201","group":"2A","radiotext":"Jetzt in Ö1: Ö1 Science Arena: Familiendebatte","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0xA201","group":"2A","radiotext":"Jetzt in Ö1: Ö1 Science Arena: Familiendebatte","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0xA502","group":"2A","radiotext":"Primorski obzornik Maj 2023/Rundschau der Slowenen in Italien","bler":0,"prog_type":"No PTY","tp":true}
{"pi":"0xA502","group":"2A","radiotext":"Primorski obzornik Maj 2023/Rundschau der Slowenen in Italien","bler":0,"prog_type":"No PTY","tp":true}
{"pi":"0xA502","group":"2A","radiotext":"ORF Radio Kaernten - Mein Daheim","bler":0,"prog_type":"No PTY","tp":true}
{"pi":"0xA502","group":"2A","radiotext":"ORF Radio Kaernten - Mein Daheim","bler":0,"prog_type":"No PTY","tp":true}
{"pi":"0xA502","group":"2A","radiotext":"Primorski obzornik Maj 2023/Rundschau der Slowenen in Italien","bler":0,"prog_type":"No PTY","tp":true}
{"pi":"0xA502","group":"2A","radiotext":"Primorski obzornik Maj 2023/Rundschau der Slowenen in Italien","bler":0,"prog_type":"No PTY","tp":true}
{"pi":"0xA502","group":"2A","radiotext":"ORF Radio Kaernten - Mein Daheim","bler":0,"prog_type":"No PTY","tp":true}
{"pi":"0xA502","group":"2A","radiotext":"ORF Radio Kaernten - Mein Daheim","bler":0,"prog_type":"No PTY","tp":true}
{"pi":"0xA502","group":"2A","radiotext":"ORF Radio Kaernten - Mein Daheim","bler":0,"prog_type":"No PTY","tp":true}
{"pi":"0xA502","group":"2A","radiotext":"Primorski obzornik Maj 2023/Rundschau der Slowenen in Italien","bler":0,"prog_type":"No PTY","tp":true}
{"pi":"0xA502","group":"2A","radiotext":"Primorski obzornik Maj 2023/Rundschau der Slowenen in Italien","bler":0,"prog_type":"No PTY","tp":true}
{"pi":"0xA502","group":"2A","radiotext":"Primorski obzornik Maj 2023/Rundschau der Slowenen in Italien","bler":0,"prog_type":"No PTY","tp":true}
{"pi":"0xA502","group":"2A","radiotext":"ORF Radio Kaernten - Mein Daheim","bler":0,"prog_type":"No PTY","tp":true}
{"pi":"0x9201","group":"2A","radiotext":"Radio Slovenija","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9201","group":"2A","radiotext":"Vedno PRVI","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9201","group":"2A","radiotext":"Vedno PRVI","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9201","group":"2A","radiotext":"Vedno PRVI","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9201","group":"2A","radiotext":"Vedno PRVI","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9201","group":"2A","radiotext":"Vedno PRVI","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9201","group":"2A","radiotext":"Vedno PRVI","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9201","group":"2A","radiotext":"Vedno PRVI","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9201","group":"2A","radiotext":"Vedno PRVI","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9201","group":"2A","radiotext":"Vedno PRVI","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9201","group":"2A","radiotext":"Vedno PRVI","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9201","group":"2A","radiotext":"Vedno PRVI","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9201","group":"2A","radiotext":"Vedno PRVI","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9201","group":"2A","radiotext":"Vedno PRVI","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9201","group":"2A","radiotext":"Vedno PRVI","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9201","group":"2A","radiotext":"Vedno PRVI","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9201","group":"2A","radiotext":"Vedno PRVI","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9201","group":"2A","radiotext":"Vedno PRVI","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9201","group":"2A","radiotext":"Vedno PRVI","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9201","group":"2A","radiotext":"Vedno PRVI","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9201","group":"2A","radiotext":"Vedno PRVI","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9201","group":"2A","radiotext":"Radio Slovenija","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9201","group":"2A","radiotext":"Radio Slovenija","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0xA213","group":"2A","radiotext":"fm4.orf.at","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0xA213","group":"2A","radiotext":"fm4.orf.at","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0xA213","group":"2A","radiotext":"Homebase","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0xA213","group":"2A","radiotext":"House Of Pain","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0xA213","group":"2A","radiotext":"House Of Pain","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0xA213","group":"2A","radiotext":"House Of Pain","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0xA213","group":"2A","radiotext":"House of Pain: Albumnews & Klassiker","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0xA213","group":"2A","radiotext":"House of Pain: Albumnews & Klassiker","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0xA213","group":"2A","radiotext":"House of Pain: Albumnews & Klassiker","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0xA213","group":"2A","radiotext":"Industrial, Metal und Punk mit Christian Fuchs und Co.","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0xA213","group":"2A","radiotext":"Industrial, Metal und Punk mit Christian Fuchs und Co.","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0xA213","group":"2A","radiotext":"Industrial, Metal und Punk mit Christian Fuchs und Co.","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0xA213","group":"2A","radiotext":"fm4.orf.at","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0xA213","group":"2A","radiotext":"fm4.orf.at","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9202","group":"2A","radiotext":"JARDIER - CORE","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"JARDIER - CORE","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"JARDIER - CORE","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"JARDIER - CORE","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"JARDIER - CORE","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"JARDIER - CORE","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"JARDIER - CORE","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"JARDIER - CORE","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"JARDIER - CORE","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"JARDIER - CORE","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"JARDIER - CORE","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"JARDIER - CORE","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"JARDIER - CORE","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"JARDIER - CORE","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"JARDIER - CORE","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"JARDIER - CORE","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"JARDIER - CORE","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"JARDIER - CORE","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"JARDIER - CORE","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"JARDIER - CORE","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"JARDIER - CORE","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9203","group":"2A","radiotext":"Glasni novi svet - Nizozemske povezave","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9203","group":"2A","radiotext":"Glasni novi svet - Nizozemske povezave","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9203","group":"2A","radiotext":"Glasni novi svet - Nizozemske povezave","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9203","group":"2A","radiotext":"Glasni novi svet - Nizozemske povezave","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9203","group":"2A","radiotext":"Glasni novi svet - Nizozemske povezave","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9203","group":"2A","radiotext":"Glasni novi svet - Nizozemske povezave","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9203","group":"2A","radiotext":"Glasni novi svet - Nizozemske povezave","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9203","group":"2A","radiotext":"Glasni novi svet - Nizozemske povezave","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9203","group":"2A","radiotext":"Glasni novi svet - Nizozemske povezave","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9203","group":"2A","radiotext":"Glasni novi svet - Nizozemske povezave","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9203","group":"2A","radiotext":"Glasni novi svet - Nizozemske povezave","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9203","group":"2A","radiotext":"Glasni novi svet - Nizozemske povezave","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9203","group":"2A","radiotext":"Glasni novi svet - Nizozemske povezave","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9203","group":"2A","radiotext":"Glasni novi svet - Nizozemske povezave","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9203","group":"2A","radiotext":"Glasni novi svet - Nizozemske povezave","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9203","group":"2A","radiotext":"Glasni novi svet - Nizozemske povezave","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0x9203","group":"2A","radiotext":"Glasni novi svet - Nizozemske povezave","bler":0,"prog_type":"No PTY","tp":false}
{"pi":"0xA3FF","group":"2A","radiotext":"someone else","bler":0,"prog_type":"Pop music","tp":true}
{"pi":"0xA3FF","group":"2A","radiotext":"someone else","bler":0,"prog_type":"Pop music","tp":true}
{"pi":"0xA3FF","group":"2A","radiotext":"someone else","bler":0,"prog_type":"Pop music","tp":true}
{"pi":"0xA3FF","group":"2A","radiotext":"someone else","bler":0,"prog_type":"Pop music","tp":true}
{"pi":"0xA3FF","group":"2A","radiotext":"someone else","bler":0,"prog_type":"Pop music","tp":true}
{"pi":"0xA3FF","group":"2A","radiotext":"someone else","bler":0,"prog_type":"Pop music","tp":true}
{"pi":"0xA3FF","group":"2A","radiotext":"someone else","bler":0,"prog_type":"Pop music","tp":true}
{"pi":"0xA3FF","group":"2A","radiotext":"someone else","bler":0,"prog_type":"Pop music","tp":true}
{"pi":"0xA3FF","group":"2A","radiotext":"someone else","bler":0,"prog_type":"Pop music","tp":true}
{"pi":"0xA3FF","group":"2A","radiotext":"someone else","bler":0,"prog_type":"Pop music","tp":true}
{"pi":"0xA3FF","group":"2A","radiotext":"someone else","bler":0,"prog_type":"Pop music","tp":true}
{"pi":"0xA3FF","group":"2A","radiotext":"clockclock","bler":0,"prog_type":"Pop music","tp":true}
{"pi":"0xA3FF","group":"2A","radiotext":"clockclock","bler":0,"prog_type":"Pop music","tp":true}
{"pi":"0xA3FF","group":"2A","radiotext":"clockclock","bler":0,"prog_type":"Pop music","tp":true}
{"pi":"0xA3FF","group":"2A","radiotext":"clockclock","bler":0,"prog_type":"Pop music","tp":true}
{"pi":"0xA3FF","group":"2A","radiotext":"clockclock","bler":0,"prog_type":"Pop music","tp":true}
{"pi":"0xA3FF","group":"2A","radiotext":"clockclock","bler":0,"prog_type":"Pop music","tp":true}
{"pi":"0xA3FF","group":"2A","radiotext":"someone else","bler":0,"prog_type":"Pop music","tp":true}
{"pi":"0xA3FF","group":"2A","radiotext":"someone else","bler":0,"prog_type":"Pop music","tp":true}
{"pi":"0xA3FF","group":"2A","radiotext":"someone else","bler":0,"prog_type":"Pop music","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"MAGNIFICO - SILVIJA","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"MAGNIFICO - SILVIJA","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"MAGNIFICO - SILVIJA","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"MAGNIFICO - SILVIJA","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"MAGNIFICO - SILVIJA","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"MAGNIFICO - SILVIJA","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"MAGNIFICO - SILVIJA","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"MAGNIFICO - SILVIJA","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"MAGNIFICO - SILVIJA","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"MAGNIFICO - SILVIJA","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"MAGNIFICO - SILVIJA","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"MAGNIFICO - SILVIJA","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"MAGNIFICO - SILVIJA","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"MAGNIFICO - SILVIJA","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"MAGNIFICO - SILVIJA","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"MAGNIFICO - SILVIJA","bler":0,"prog_type":"Varied","tp":true}

playing the attached file

$ redsea -h -E < /tmp/9202.spy | grep text
{"pi":"0x9202","group":"2A","radiotext":"MAGNIFICO - SILVIJA","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"Radio Slovenija","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"BIG BAND RTV SLOVENIJA, HAUPTMAN - SLEDIM (FRIŠNO 2022)","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"BIG BAND RTV SLOVENIJA, HAUPTMAN - SLEDIM (FRIŠNO 2022)","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"BIG BAND RTV SLOVENIJA, HAUPTMAN - SLEDIM (FRIŠNO 2022)","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"BIG BAND RTV SLOVENIJA, HAUPTMAN - SLEDIM (FRIŠNO 2022)","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"BIG BAND RTV SLOVENIJA, HAUPTMAN - SLEDIM (FRIŠNO 2022)","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"BIG BAND RTV SLOVENIJA, HAUPTMAN - SLEDIM (FRIŠNO 2022)","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"BIG BAND RTV SLOVENIJA, HAUPTMAN - SLEDIM (FRIŠNO 2022)","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"BIG BAND RTV SLOVENIJA, HAUPTMAN - SLEDIM (FRIŠNO 2022)","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"BIG BAND RTV SLOVENIJA, HAUPTMAN - SLEDIM (FRIŠNO 2022)","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"BIG BAND RTV SLOVENIJA, HAUPTMAN - SLEDIM (FRIŠNO 2022)","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"BIG BAND RTV SLOVENIJA, HAUPTMAN - SLEDIM (FRIŠNO 2022)","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"BIG BAND RTV SLOVENIJA, HAUPTMAN - SLEDIM (FRIŠNO 2022)","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"BIG BAND RTV SLOVENIJA, HAUPTMAN - SLEDIM (FRIŠNO 2022)","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"BIG BAND RTV SLOVENIJA, HAUPTMAN - SLEDIM (FRIŠNO 2022)","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"BIG BAND RTV SLOVENIJA, HAUPTMAN - SLEDIM (FRIŠNO 2022)","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"BIG BAND RTV SLOVENIJA, HAUPTMAN - SLEDIM (FRIŠNO 2022)","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"BIG BAND RTV SLOVENIJA, HAUPTMAN - SLEDIM (FRIŠNO 2022)","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"BIG BAND RTV SLOVENIJA, HAUPTMAN - SLEDIM (FRIŠNO 2022)","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"BIG BAND RTV SLOVENIJA, HAUPTMAN - SLEDIM (FRIŠNO 2022)","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"BIG BAND RTV SLOVENIJA, HAUPTMAN - SLEDIM (FRIŠNO 2022)","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"BIG BAND RTV SLOVENIJA, HAUPTMAN - SLEDIM (FRIŠNO 2022)","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"BIG BAND RTV SLOVENIJA, HAUPTMAN - SLEDIM (FRIŠNO 2022)","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"BIG BAND RTV SLOVENIJA, HAUPTMAN - SLEDIM (FRIŠNO 2022)","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"CLOVER, DEYAMPERT - HELD HIM FIRST","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"CLOVER, DEYAMPERT - HELD HIM FIRST","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"CLOVER, DEYAMPERT - HELD HIM FIRST","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"CLOVER, DEYAMPERT - HELD HIM FIRST","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"CLOVER, DEYAMPERT - HELD HIM FIRST","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"CLOVER, DEYAMPERT - HELD HIM FIRST","bler":0,"prog_type":"Varied","tp":true}
{"pi":"0x9202","group":"2A","radiotext":"CLOVER, DEYAMPERT - HELD HIM FIRST","bler":0,"prog_type":"Varied","tp":true}
andimik commented 1 year ago

@kkonradpl

Dear Konrad, you were right, it was a firmware issue. Sjef has fixed it today in https://github.com/PE5PVB/TEF6686_ESP32/commit/aba24c0112a0861e22dff59ad13cc595c8220067

Now the result is identical to RTL-Sticks.

Bildschirmfoto vom 2023-05-31 20-21-22

I am so sorry that I have misused your issue tracking (but I could not know where the problem was coming from).