0
1
mirror of https://github.com/radio95-rnt/rds95.git synced 2026-02-26 20:33:53 +01:00

remove rds2

This commit is contained in:
2025-03-10 18:45:38 +01:00
parent 800f3222ca
commit b71445bfbf
20 changed files with 19 additions and 1334 deletions

125
README.md
View File

@@ -1,125 +0,0 @@
# MiniRDS
This program is designed for generating a realtime RDS signal. It is capable of RDS2 using up to 3 additional subcarriers.
This is based on the RDS encoder from [Mpxgen](https://github.com/Anthony96922/mpxgen), which is currently not maintained.
Note that some missing groups were added from [librds](https://flerken.zapto.org:1115/kuba/librds), [my](https://flerken.zapto.org:1115/kuba) other project
#### Features
- Low resource requirements
- Support for basic RDS data fields: PS, RT, PTY and AF
- RDS items can be updated through control pipe
- RT+ support
- RDS2 support (including station logo transmission)
#### To do
- Threading
#### Planned features
- UECP
- Configuration file
## What are the changes from normal MiniRDS?
- CMake
- better arguments
- Option to disable ODA
- Better Group Sequence (original had 0A 2A but here it is 0A 0A 0A 0A 2A 2A 2A 2A (2A) so PS appear instantly and RT is fast)
- Added LIC and PIN
- Most commands are compatible with the ASCII format that pira.cz uses
- Custom groups (use `G=BBBBCCCCDDDD` or `CG AAAA BBBB CCCC DDDD`)
- Mono! mono? Mono! Not stereo! why? because the 2 channels were exactly the same in the first place so there was no point in having a 2nd one
## Build
For Debian-like distros: `sudo apt-get install libao-dev libsamplerate0-dev` to install deps.
Note that MiniRDS requires CMake to compile (install with `sudo apt install cmake`)
Once those are installed, run
```sh
git clone https://flerken.zapto.org:1115/kuba/minirds
cd minirds/src
mkdir build
cd build
cmake ..
make
sudo make install
```
## How to use
Simply run:
```
minirds
```
to confirm proper operation.
Please see `-h` for more options.
### Stereo Tool integration
The following setup allows MiniRDS to be used alongside Stereo Tool audio processor.
```
.-------------.
| Stereo Tool |--(FM MPX w/o RDS)-----.
'-------------' |
v
.-----------------------.
| ALSA dmixer |
| slave: MPX sound card |--------(to sound card)-------->
| 192 kHz |
'-----------------------'
^
.---------. |
| MiniRDS |--(RDS output)-------------'
'---------'
```
First, add the following contents to ~/.asoundrc:
```
# ST MPX output
pcm.mpxmix {
type dmix
ipc_key 1001
slave {
pcm "digital-out" # change to your actual sound card
rate 192000
}
}
```
Next, add the collowing contents to ~/.ao:
```
dev=mpxmix
```
Then set the Stereo Tool MPX output to use the ALSA "mpxmix" output. Finally run minirds. *Adjust volumes accordingly.*
Note that this setup is not optimal. Hans plans to add RDS2 passthough to the ST external RDS input. [Stereo Tool forum post](https://forums.stereotool.com/viewtopic.php?f=14&t=33793&start=150)
If you need to you also can run MiniRDS on a ST transmitter modulated as mono audio, which does work however on some TXs the RDS signal may not be great due to harmonics of ST Pilot Tone
### Changing PS, RT, TA and PTY at run-time
You can control PS, RT, TA (Traffic Announcement flag), PTY (Program Type) and many other items at run-time using a named pipe (FIFO). For this run MiniRDS with the `--ctl` argument.
Scripts can be written to obtain and send "now playing" text data to MiniRDS for dynamic RDS.
See the [command list](doc/command_list.md) for a complete list of valid commands.
### RDS2
MiniRDS has a working implementation of the RFT protocol in RDS2. Please edit the Makefile accordingly and rebuild for RDS2 capabilities. You may use your own image by using the provided "make-station-logo.sh" script. Valid formats are PNG or JPG and should be about 3kB or less. Larger images take considerably longer to receive.
## References
- [EN 50067, Specification of the radio data system (RDS) for VHF/FM sound broadcasting in the frequency range 87.5 to 108.0 MHz](http://www.interactive-radio-system.com/docs/EN50067_RDS_Standard.pdf)
- [IEC 62106-2, Radio data system (RDS) Part 2: Message format: coding and definitions of RDS features](http://downloads.dxing.si/download.php?file=ISO%20Stamdards/RDS/latest%20(includes%20RDS2)/iec-62106-2-2021.pdf)
- [IEC 62106-3, Radio data system (RDS) Part 3: Usage and registration of Open Data Applications (ODAs)](http://downloads.dxing.si/download.php?file=ISO%20Stamdards/RDS/latest%20(includes%20RDS2)/iec-62106-3-2018.pdf)
- [IEC 62106-4, Radio data system (RDS) Part 4: Registered code tables](http://downloads.dxing.si/download.php?file=ISO%20Stamdards/RDS/latest%20(includes%20RDS2)/iec-62106-4-2018.pdf)
- [IEC 62106-6, Radio data system (RDS) Part 6: Compilation of technical specifications for Open Data Applications in the
public domain](http://downloads.dxing.si/download.php?file=ISO%20Stamdards/RDS/latest%20(includes%20RDS2)/iec-62106-6-2018.pdf)
- [P232 RDS Encoder
Technical Manual](https://pira.cz/rds/p232man.pdf)
- [PIRA32 RDS Encoder
Technical Manual](https://pira.cz/rds/manual.pdf)
## Credits
Note that this is a fork of [Anthony96922](https://github.com/Anthony96922)'s [MiniRDS](https://github.com/Anthony96922/MiniRDS)
The RDS waveform generator was adapted from [PiFmRds](https://github.com/ChristopheJacquet/PiFmRds)