You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Updated README.md for clarity and consistency in terminology, including changes to plugin name formatting and additional details on transmitter functionality.
Copy file name to clipboardExpand all lines: README.md
+15-24Lines changed: 15 additions & 24 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,15 +1,15 @@
1
1
# Dynamic_RDS - FM Transmitter Plugin for Falcon Player
2
2
3
3
> [!NOTE]
4
-
> Supports**QN8066** and **Si4713** FM transmitter chips
4
+
> Dynamic_RDS supports the**QN8066** and **Si4713** FM transmitter chips
5
5
6
-
Created for Falcon Player 6.0+ (FPP) as a plugin to generate RDS (radio data system) messages similar to what is seen from typical FM stations. The RDS messages are fully customizable with static text, breaks, and grouping along with the supported file tag data fields of title, artist, album, genre, track number, and track length, as well as main playlist position and item count. Currently, the plugin supports the QN8066 chip and the Si4173 chip. The chips are controlled via the I<sup>2</sup>C bus.
6
+
Originally created for Falcon Player 6.0 (FPP) and updated to support FPP 9.0+, the Dynamic_RDS plugin can generate RDS (radio data system) messages similar to what is seen from typical FM stations. The RDS messages are fully customizable with static text, breaks, and grouping along with the supported file tag data fields of title, artist, album, genre, track number, and track length, as well as main playlist position and item count. Currently, the plugin supports the QN8066 chip and the Si4173 chip. The chips are controlled via the I<sup>2</sup>C bus.
7
7
8
8
## Si4713 transmitter board
9
9
Originally, the Si4713 breakout board was available from [AdaFruit](https://www.adafruit.com/product/1958) but it now out of stock. There are many clones of this board that can be found on [AliExpress](https://www.aliexpress.us/w/wholesale-Si4713-transmitter.html) or by a [Google Search](https://www.google.com/search?q=Si4713+transmitter)
10
10
11
11
> [!NOTE]
12
-
> To reduce system load, the on-board buffers of the Si4713 are used by this plugin. The trade off is not being able to directly control the timing of each RDS message.
12
+
> To reduce system load, the on-board buffers of the Si4713 are used by this plugin. The trade off is not being able to directly control the timing of each RDS message and a limitation of total message length based on how many buffers are available.
* BNC to BNC cable - https://www.amazon.com/gp/product/B0BVVVRYZL/)
34
34
35
-
(More detail to be added)
36
-
37
35
### Cables, Connectors, and Shielding
38
36
> [!CAUTION]
39
37
> Do not run the PWM wire along side the I<sup>2</sup>C wires. During testing this caused failures in the I<sup>2</sup>C commands as soon as PWM was enabled.
40
38
41
39
#### Connector info
42
40
* The connection on the transmitter board is a 5-pin JST-XH type connector, 2.54mm.
43
41
* The Raspberry Pis use a female Dupont connector and we recommended using a 2 x 6 block connector.
44
-
* The BeagleBone Blacks (BBB) use a male Dupont connector (recommendation pending BBB support work in progress).
42
+
* The BeagleBone Black (BBB) use a male Dupont connector.
45
43
46
44
If you are comfortable with crimping and making connectors, here are examples of what to use
@@ -62,7 +60,7 @@ Pre-crimped wires are also an options
62
60
The green PWM wire runs next to yellow 3.3V and orange GND wire until right before the end to eliminate issue with interference. Keeping the cable as short as possible helps to reduce interference.
63
61
64
62
#### Cable for a BeagleBone Black (BBB)
65
-
(Support for the BBB is still in progress)
63
+
(Cable details for the BBB are still in progress)
66
64
67
65
#### Shielding and RF interference
68
66
Given the nature of an FM transmitter, interference is potential problem. This interference commonly shows up as I<sup>2</sup>C errors which become more frequent as transmitter power increases. Moving the antenna away from the RPi/BBB and the transmitter board can reduce this. A significantly more robust setup it to locate the RPi/BBB and transmitter board inside a grounded, metal case such as was done by @chrkov here:
@@ -77,32 +75,25 @@ The recommended QN8066 transmitter board can take a PWM signal to increase its p
77
75
78
76
On the Raspberry Pi, in order to use the hardware PWM, the built-in analog audio must be disabled and an external USB sound card or DAC is required. The built-in audio uses both hardware PWM channels to generate the audio, so PWM cannot be used for other purposes when enabled. Software PWM is also an option, but at an increased CPU cost and a decrease in duty cycle accuracy.
79
77
80
-
From the Dynamic RDS configuration page, under the Power Settings, enable PWM.
78
+
From the Dynamic_RDS configuration page, under the Power Settings, enable PWM.
81
79
82
-
This will automatically modify the /boot/firmware/config.txt:
83
-
1. Comment out all ```dtparm=audio=on``` lines with a #
84
-
2. Add the line ```dtoverlay=pwm,pin=18,func=2``` by default
80
+
This will automatically modify the `/boot/firmware/config.txt`:
81
+
1. Comment out all `dtparm=audio=on` lines with a `#`
82
+
2. Add the line `dtoverlay=pwm,pin=18,func=2` by default
85
83
Under the Advanced Options at the bottom of the configuration page, the output pin can be selected. This is also where Software PWM can be selected on most other pins.
86
84
87
85
> [!TIP]
88
86
> Don't forget to change the Audio Output Device in the FPP Settings to use the USB sound card or DAC
89
87
90
88
## Integration with FPP After Hours Music Plugin
91
-
The Dynamic RDS plugin has the ability to work in conjunction with the [FPP After Hours Music Plugin](https://github.com/jcrossbdn/fpp-after-hours) to provide RDS Data from an internet stream of music. The information from the stream is populated in the Title field.
89
+
The Dynamic_RDS plugin has the ability to work in conjunction with the [FPP After Hours Music Plugin](https://github.com/jcrossbdn/fpp-after-hours) to provide RDS Data from an internet stream of music. The information from the stream is populated in the Title field.
92
90
93
-
Once the After Hours Music Plugin is installed, the integration can be enabled on the Dynamic RDS configuration pages in the MPC / After Hours Music section.
91
+
Once the After Hours Music Plugin is installed, the integration can be enabled on the Dynamic_RDS configuration pages in the MPC / After Hours Music section.
It is an option to use scripts to change Dynamic RDS option value. As an example, this could be used to change the PS and/or RT style text to be different during the show verses after. The following is a bash script that can update the style text and have the plugin start using it without restarting FPP.
99
-
```
100
-
#!/bin/bash
101
-
curl -d 'Merry|Christ-| -mas!|{T}|{A}|[{N} of {C}]' -X POST http://localhost/api/plugin/Dynamic_RDS/settings/DynRDSPSStyle
102
-
curl -d 'Merry Christmas! {T}[ by {A}]|[Track {N} of {C}]' -X POST http://localhost/api/plugin/Dynamic_RDS/settings/DynRDSRTStyle
The single quotes around the style text in the script are important so the Linux shell (bash) won't try to interpret what is in there. This example could be saved as a file in the media/scripts folder and then use it with the scheduler (via Command -> Run Script) or playlists.
96
+
During the plugin install, an example script is copied to the FPP `media/scripts` directory showing how to change the RDS style text. As an example, this could be used to change the PS and/or RT style text to be different during the show verses after. The script is located in [scripts/src_Dynamic_RDS_config.sh](scripts/src_Dynamic_RDS_config.sh) and the changes are made without having to restart FPP. The single quotes around the style text in the script are important so the Linux shell (bash) won't try to interpret what is in there. Use the script in the `media/scripts` folder and then use it with the scheduler (via Command -> Run Script) or playlists.
106
97
107
98
## Troubleshooting
108
99
### Transmitter not working (for the recommended QN8066 board)
@@ -119,8 +110,8 @@ The single quotes around the style text in the script are important so the Linux
119
110
- Power up the RPi/BBB
120
111
- Transmitter will power up from power supplied by RPi/BBB (Do NOT connect 12v power yet)
121
112
- Verify the transmitter shows up on the I<sup>2</sup>C bus at 0x21
122
-
- Either from the Dynamic RDS config page OR
123
-
- SSH into the RPi ```i2cdetect -y 1``` and run or on BBB run ```i2cdetect -r -y 2```
113
+
- Either from the Dynamic_RDS config page OR
114
+
- SSH into the RPi `i2cdetect -y 1` and run or on BBB run `i2cdetect -r -y 2`
124
115
- If transmitter does not show up
125
116
- Double check each wire is connectioned correctly 3v3, GND, SDA, and SCL
126
117
- No really, go double check! It can happen to anyone! :)
0 commit comments