tag:blogger.com,1999:blog-5096278891763426276.post2639573648176576204..comments2024-03-28T18:37:12.987+02:00Comments on absorptions: Redsea 0.7, a lightweight RDS decoderOona Räisänenhttp://www.blogger.com/profile/08764440174916554983noreply@blogger.comBlogger18125tag:blogger.com,1999:blog-5096278891763426276.post-66614731674264953752020-06-21T19:03:12.979+03:002020-06-21T19:03:12.979+03:00Oona, it has been quite some time since I posted t...Oona, it has been quite some time since I posted this and I stumbled upon this page again while explaining FM radio to someone. <br /><br />I wanted to say thank you, I've spent the time since I commented last writing an stereo FM demodulator with no external libraries at all, just standard C++ and STL. While getting my RDS carrier recovery and timing recovery working using Redsea with the '-b' option was extremely useful so I could focus on the DSP and ignore the data de-framing/codewords. The '-B' option for error rate reporting was also very useful for me while evaluating the effectiveness of my DSP. <br /><br />Hope you are staying well in these times, and hope to see you writing more again as well!Alex Laohttp://www.voltagedivide.comnoreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-76285098557537176452018-09-09T23:34:57.840+03:002018-09-09T23:34:57.840+03:00SDR# on Windows won't receive it either. At th...SDR# on Windows won't receive it either. At the moment I don't know how to test my implementation of the processing from binary bit-stream to baseband RF. Alex Laohttp://www.voltagedivide.comnoreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-31141218426337182842018-09-09T22:57:08.627+03:002018-09-09T22:57:08.627+03:00Hi, redsea ignores the pilot tone so it makes no a...Hi, redsea ignores the pilot tone so it makes no assumptions about it. As for the 57k and 1187.5, there is a PLL that takes care of any error between expected and received symbol rates. I'm not sure how much error this synchronization allows however.<br /><br />Are you able to receive the RDS in any other RDS receiver (maybe a physical FM radio)?Oona Räisänenhttps://www.blogger.com/profile/08764440174916554983noreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-80241230741429985802018-09-06T09:07:36.580+03:002018-09-06T09:07:36.580+03:00Hi Oona,
I have enjoyed your blog for many years ...Hi Oona,<br /><br />I have enjoyed your blog for many years and finally got around to writing my own SDR code. I managed to write a stereo FM transmitter using the Analog Devices Pluto as the transmitter.<br /><br />I am having trouble getting RDS working, currently I hand wrote the 416 bits required for a B0 Station Name message and redsea successfully decodes it in -b mode. However when I integrate the code into the rest of the FM transmitter I get nothing when receiving the RF on an RTL-SDR. <br /><br />I have a few questions.<br /><br />1. How sensitive is redsea to the pilot tone being exactly at 19 kHz and the RBDS carrier at 57 kHz? <br /><br />2. How sensitive is redsea to the bitrate being exactly 1187.5 bit/s?<br /><br />I don't think those are causing the issues that I have, but I wanted to rule them out. <br /><br />Any debugging suggestions would be great. If I can find good reference waveforms with the binary data, the diff_encoded_data, the impulses and finally the baseband RBDS signal that would be great, but I haven't found a source. Alex Laohttp://www.voltagedivide.comnoreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-10566439120569404662018-01-04T15:46:31.364+02:002018-01-04T15:46:31.364+02:00Hello!
I Really REALLY love your blog.
Personally...Hello!<br />I Really REALLY love your blog.<br /><br />Personally, I discovered group 06A for myself:<br /> <br />http://www.dettus.net/inhouse/inhouse.html<br /><br />Dettushttp://www.dettus.net/inhouse/inhouse.htmlnoreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-46265559874157039942017-10-20T21:20:39.193+03:002017-10-20T21:20:39.193+03:00In order to use RDSSpy in realtime with netcat in ...In order to use RDSSpy in realtime with netcat in the windows fork I've added G: to the hex string. Maybe it's worth to add a new option for this purpose.sergionavarroghttps://github.com/sergionavarrog/redseanoreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-90035413789443399712017-10-16T00:18:21.697+03:002017-10-16T00:18:21.697+03:00There is a Windows version if someone wants give i...There is a Windows version if someone wants give it a try:<br />https://github.com/sergionavarrog/redsea<br /><br />Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-21736489677073662352017-08-02T09:49:27.585+03:002017-08-02T09:49:27.585+03:00To scan other stations in the background you would...To scan other stations in the background you would indeed need another RTL-SDR.<br /><br />For this reason some stations transmit so-called "enhanced other networks information" (EON), which is supported by redsea. It contains information about program types and traffic messages on other stations of the same network - usually this means stations owned by the same broadcaster.<br /><br />This information is spread over several messages because of the low bandwidth. Here's an example:<br /><br />{<br /> "group":"14A",<br /> "other_network":{<br /> "frequency":"94.0 MHz",<br /> "pi":"0x6203",<br /> "tp":true<br /> },<br /> "pi":"0x6201",<br /> "prog_type":"Serious classical",<br /> "tp":false<br />}<br /><br />Now we know there's another station in this network at 94.0 MHz with PI code 6203, and audible traffic information can be expected there ("tp":true). When a traffic message is currently running on that frequency, this will be signified by both "tp" and "ta" being true.<br /><br />The other_network field may also contain the station name ("ps") and current program type ("prog_type"), whether it's news, pop music or something else.Oona Räisänenhttps://www.blogger.com/profile/08764440174916554983noreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-85003851899416827062017-07-31T13:45:46.573+03:002017-07-31T13:45:46.573+03:00Can't remember if I clicked submit yesterday. ...Can't remember if I clicked submit yesterday. Apologies for duplicates. Anyhow, thank you so much for this. Im looking to build Radio into KODI for a Car Computer. Would be nice to get station information in DBus so that this can just sit nicely on the backend minding its own business.<br /><br />Anyhow, my curiosity is how car radio's work with scanning frequencies while listening to the radio. I presume with the RTL-SDR dongles, you can't tune into a station, while scanning the rest of the frequencies for RDS signals for Traffic, News etc... I presume I would need two RTL-SDR dongles?<br /><br />Simonsjdeanhttps://www.blogger.com/profile/02100335836147454944noreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-14172108451975058362016-11-30T16:59:23.920+02:002016-11-30T16:59:23.920+02:00Kiitos, Oona! Kiitos, Oona! Jiihttps://www.blogger.com/profile/04189848484496670032noreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-532615803876459912016-11-25T13:34:11.973+02:002016-11-25T13:34:11.973+02:00I wish RT+ was used in Finland as well!
Redsea fu...I wish RT+ was used in Finland as well!<br /><br />Redsea fully supports RT+; it prints the fields in separate JSON key/value pairs, like so:<br /><br />{<br /> "group":"12A",<br /> "pi":"0xD3C2",<br /> "prog_type":"Pop music",<br /> "radiotext_plus":{<br /> "item.artist":"Silbermond",<br /> "item.title":"Das Leichteste der Welt",<br /> "item_running":true<br /> },<br /> "tp":false<br />}Oona Räisänenhttps://www.blogger.com/profile/08764440174916554983noreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-12805199585924424262016-11-25T03:52:29.326+02:002016-11-25T03:52:29.326+02:00Have a look at RT+ (RadioText Plus). Some receiver...Have a look at RT+ (RadioText Plus). Some receivers can parse out Artist/Title from RadioText into separate display fields. Newer Mercedez cars have this and even Apple iPod nano (back to 5th generation)...<br /><br />https://tech.ebu.ch/docs/techreview/trev_307-radiotext.pdf<br />http://www.pira.cz/rds/show.asp?art=guide_text_11Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-66639541621701591702016-11-24T08:02:37.476+02:002016-11-24T08:02:37.476+02:00Redsea now supports the option -e to echo the stdi...Redsea now supports the option -e to echo the stdin signal back to stdout and print the RDS groups to stderr instead:<br /><br />rtl_fm -M fm -l 0 -A std -p 0 -s 171k -g 40 -F 9 -f 89.2M | ./src/redsea -e | aplay -t raw -r 171000 -c 1 -f S16_LEOona Räisänenhttps://www.blogger.com/profile/08764440174916554983noreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-54354149912175324642016-11-23T17:54:15.572+02:002016-11-23T17:54:15.572+02:00it's easy play rtl-sdr stream and decode rds w...it's easy play rtl-sdr stream and decode rds with redsea same time:<br /><br />in ubuntu:<br />1: sudo apt-get install nmap<br />2: rtl_fm -M fm -l 0 -A std -p 0 -s 171k -g 40 -F 9 -f 89.2M | ncat -l -p 6500 -m 5 -k <br />3: (in differend window1): nc localhost 6500 |./src/redsea<br />4: (in differend window2): nc localhost 6500 | aplay -t raw -r 171000 -c 1 -f S16_LE <br /><br />Jiihttps://www.blogger.com/profile/04189848484496670032noreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-34956079935348737132016-11-03T23:43:38.445+02:002016-11-03T23:43:38.445+02:00That's a shame. I saw 11A groups with no ODA a...That's a shame. I saw 11A groups with no ODA allocation, so I thought it could be RASANT.Oona Räisänenhttps://www.blogger.com/profile/08764440174916554983noreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-65426125400320353382016-11-03T23:36:59.761+02:002016-11-03T23:36:59.761+02:00The encrypted TMC messages I mentioned were seen i...The encrypted TMC messages I mentioned were seen in Finland, not Germany. (I've also written a post about decrypting them in 2013, titled <a href="http://www.windytan.com/2013/05/a-determined-hacker-decrypts-rds-tmc.html" rel="nofollow">A determined 'hacker' decrypts RDS-TMC</a>.)Oona Räisänenhttps://www.blogger.com/profile/08764440174916554983noreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-67420941878955227362016-11-03T22:29:18.544+02:002016-11-03T22:29:18.544+02:00I just found this post: http://www.mikrocontroller...I just found this post: http://www.mikrocontroller.net/topic/229218 (in German) where one guy wrote:<br /><br />Most important thing (about RDS) here are the location codes, which encode lots of locations, streets, exits and interchanges in a 16bit value. These are the "heart" of the messages.<br /><br />And only these codes are "encrypted" in TMCpro. That's explained in ISO 14819-6. And it's very mundane and based on a fixed code table which is built into TMCpro devices. Basically, the 16bit values are rotated and then XOR'd with a specific value.<br /><br />In the TMC data stream there's a flag that announces the encryption (Otherwise non-TMCpro devices would try to use the encrypted locations.) and tells the device which key should be used from the table.<br /><br />I ran a small attack against that and found one entry of that table (which was used by my local TMCpro station). This didn't change over a loooong time so I'm not sure if that ever changes at all.<br /><br />(So those encrypted messages you're seeing are probably something else.)Markushttps://www.blogger.com/profile/02993258396148631060noreply@blogger.comtag:blogger.com,1999:blog-5096278891763426276.post-43908459363222350502016-11-03T14:03:52.811+02:002016-11-03T14:03:52.811+02:00RASANT has been shutdown (almost?) everywhere in G...RASANT has been shutdown (almost?) everywhere in Germany during 2009-2011. Those encrypted TMC messages are most probably Navteq Traffic (formerly TMCpro, Germany/Europe) data or some other private traffic service. These services have to be licensed by radio manufacturers which then get the decryption information. (You could probably extract keys from e.g. a TomTom firmware as they've licensed most services around the world, too.)Markushttps://www.blogger.com/profile/02993258396148631060noreply@blogger.com