With huge thanks to Ulrik and others, we've been able to put some effort in finding and fixing some issues with the DAB SPI (EPG) - RadioDNS bridge.
First up, we have found a bug in the python-dabmsc package.
Don't use the Global version of python-dabmsc, use this version which is working (in as far as test tools will decode SPI from it):
Until Ben's able to confirm my pull request, this version of the bridge includes the correct SID and SCIds header parameters:
I've updated the radiodns-bridge package with an example of a minimal example configuration file (if you're not using ODR-DabMux) - otherwise just point the generate-epg command at your ODR-DabMux configuration file and it should work it out from there.
Ulrik has pointed out that you may need to fiddle with python-hybridspi to get time zone information correct for PI files.
So if put that all together and run
/odr-radioepg-bridge/generate-epg -o ~/spi_data.dat -X -p 24 -d 3 ~/mux.conf
It *should* create a data file with 24 byte packets in it, using the config file mux.conf to work out which services to include, and trying to pull 3 days worth of PI from each service.
Of course, each service you want to include in the SPI must be registered with RadioDNS so the SI/PI information can be located for each service.
Don't forget to match your -p value (packet size) to the bitrate you're using on-air (24bytes is 8kbit/s, 48bytes is 16kbit/s etc), and the packet address to that configured in the multiplex configuration (usually 1).
The dependencies on what to install are in the README.md files of odr-radioepg-bridge and odr-radiodns-bridge. Some of them can be installed using pip, some of them you will need to install locally. You can do that by pulling each package from Github, unpacking it locally, and then running
sudo python setup.py install
within that package folder.
Good luck, and let us know how you get on,