argilo / gr-nrsc5

A GNU Radio implementation of HD Radio (NRSC-5)
GNU General Public License v3.0
133 stars 24 forks source link

Additional Features #33

Open secludedhusky opened 3 months ago

secludedhusky commented 3 months ago

I'm curious why exactly the HD Radio Emergency Alerts functionality isn't implemented. If you need help with figuring out how encoders communicate with it, I can provide a virtualized DASDEC in a VM for testing purposes for interfacing with it.

In terms of other HD Radio features that aren't currently implemented, I noticed in the Dallas/Fort-Worth (DFW) market that there are a few HD stations that have different slogans for each subchannel, something that would be awesome to have the ability to do with gr-nrsc5. However, I don't think even nrsc5 supports decoding separate slogans per subchannel, as I haven't seen it implemented. The main issue is since the tuner I have access to is a Ionovonics HD tuner, and not an actual SDR, I can't record a Baseband IQ file of the stations with separate slogans per HD channel for reverse engineering purposes.

Also HD Radio traffic and weather isn't implemented, this is something that might potentially be easy to implement, and I can provide IQ files with this information transmitted, and it is already supported for decoding in nrsc5.

I've had no issues with it since the most recent update.

argilo commented 3 months ago

I'm curious why exactly the HD Radio Emergency Alerts functionality isn't implemented.

The NRSC-5 specification describes how to encode emergency messages in SIS, but I didn't bother implementing that in nrsc5 or gr-nrsc5 yet because I don't have any recordings of actual emergency messages to test with. I suppose I could transmit with gr-nrsc5 and check whether a real receiver displays the message.

I noticed in the Dallas/Fort-Worth (DFW) market that there are a few HD stations that have different slogans for each subchannel

SIS only allows for one slogan. That said, I haven't seen the SIS slogan displayed by any receivers. In practice, stations seem to put their slogans in PSD, for instance:

Artist: 104.3 WOMC
Title: Detroit's Greatest Hits

Album: HD2
Artist: WOMC HD2
Title: 910 AM News Talk Superstation A Division of Adell Media
Title: MOVE 100.3 Today's Best Variety

Artist: 580 CFRA News Talk Radio
Title: 580 CFRA on 100.3 HD2

Artist: TSN 1200 Ottawa
Title: TSN 1200 on 100.3 HD3

It's already possible to do this in gr-nrsc5, since it can encode Album / Artist / Title information in PSD.

Also HD Radio traffic and weather isn't implemented, this is something that might potentially be easy to implement

The traffic and weather images that iHeart stations send out are in LOT files, and gr-nrsc5 can already send LOT files. You'd just need to make files in the right format to match what iHeart does.

secludedhusky commented 3 months ago

but I didn't bother implementing that in nrsc5 or gr-nrsc5 yet because I don't have any recordings of actual emergency messages to test with.

I can try to get some recordings of alerts next time there's storms in my area. I'll have to remember to record WWDE, WPTE, WVKL or WNVZ during some storms. Audacy here has HD EA and it goes off repeatedly around 8 different times at separate intervals for one alert for some reason. Its so annoying anytime there's storms, I have to take the batteries out of my HDR-14 and SPARC portables until the storm is passed.

But it'd be nice for me to transmit this myself since I have the EAS equipment necessary to generate the protocol and I can get access to a SAGE Digital as well if there's issues with doing it on a DASDEC.

I'm pretty sure its just a tcp socket, but I'm not too sure with the exact technology. Having it be interfaced in the same way as the Artist and Title would also be cool, so that I can easily integrate it with an endec. Most likely I'd use the feature in order to inseminate amber alerts and traffic information to my neighborhood as my HackRF signal reaches most of my general neighborhood.

If you have instant social media such as Discord or Telegram you can add me. Its secludedhusky on both Discord and Telegram, however you'll have to join discord.gg/star-radio in order to send me a friend request on Discord as I don't have friend requests turned on for people who don't share a server with me on Discord.

I will look into how the iHM traffic and weather is transmitted and try to reverse engineer it, I'll have to figure out what LOT ID its using and make it the right format, I don't think that'll be very hard to do considering I have access to total traffic & weather API and can generate traffic & weather maps. I'd just have to crop them up and grab the weather data in order to transmit them via the LOT system.

argilo commented 3 months ago

I can try to get some recordings of alerts next time there's storms in my area. I'll have to remember to record WWDE, WPTE, WVKL or WNVZ during some storms.

That would be great. Please record at least a couple minutes of each using nrsc5's -w option and we'll see if any have an emergency message in SIS.

I'll have to figure out what LOT ID its using

The LOT id doesn't actually matter; it's just an identifier used to tie together the chunks that make up a file as it's transmitted, and as a shorthand to refer to the file later (e.g. in XHDR values used to cue album art display).

The important things to get right would be the file contents, MIME types, and possibly filenames. In addition to images, the traffic & weather system also includes metadata files (in text format) that describe the image files.

Do you have a receiver that's capable of displaying the weather & traffic maps?

naikrovek commented 2 months ago

Do you have a receiver that's capable of displaying the weather & traffic maps?

I am not the person you were asking, but I have one in my car, I'm pretty sure, and no local station transmits these in whatever format my car likes. (or maybe at all, I don't know; there are IHeart stations all around me but none apparently transmit weather or traffic data. this market is relatively small.)

When near St. Louis, I do appear to get HERE map and traffic data, though. I don't know that that means in terms of helping you test this, if things get to that point.

naikrovek commented 2 months ago

This may also help with testing: https://github.com/KYDronePilot/hdfm