Skip to content

Commit ad9d9f7

Browse files
authored
Refine README for Dynamic_RDS plugin details
Updated README.md for clarity and consistency in terminology, including changes to plugin name formatting and additional details on transmitter functionality.
1 parent b84ac6e commit ad9d9f7

File tree

1 file changed

+15
-24
lines changed

1 file changed

+15
-24
lines changed

README.md

Lines changed: 15 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
# Dynamic_RDS - FM Transmitter Plugin for Falcon Player
22

33
> [!NOTE]
4-
> Supports **QN8066** and **Si4713** FM transmitter chips
4+
> Dynamic_RDS supports the **QN8066** and **Si4713** FM transmitter chips
55
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.
77

88
## Si4713 transmitter board
99
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)
1010

1111
> [!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.
1313
1414
![Si4713 Breakout Board](images/Si4713-transmitter.jpg)
1515

@@ -24,24 +24,22 @@ Originally, the Si4713 breakout board was available from [AdaFruit](https://www.
2424
![Radio Board Pinout](images/radio_board_pinout.jpeg)
2525

2626
### Antenna
27-
The QN8066 transmitter board needs an antenna for safe operations.
27+
The QN8066 transmitter board requires an antenna for safe operations. Below are some examples of antennas.
2828

2929
* Small bench testing option - https://www.amazon.com/gp/product/B07K7DBVX9
3030
* 1/4 wave ground plane antenna calculator - https://m0ukd.com/calculators/quarter-wave-ground-plane-antenna-calculator/
3131
* Show ready option 1/4 wave - https://www.amazon.com/Transmitter-Professional-87-108mhz-0-5w-100w-Waterproof/dp/B09NDPY4JG
3232
* Inexpensive 1/4 wave option - https://www.aliexpress.us/item/2251832695723994.html
3333
* BNC to BNC cable - https://www.amazon.com/gp/product/B0BVVVRYZL/)
3434

35-
(More detail to be added)
36-
3735
### Cables, Connectors, and Shielding
3836
> [!CAUTION]
3937
> 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.
4038
4139
#### Connector info
4240
* The connection on the transmitter board is a 5-pin JST-XH type connector, 2.54mm.
4341
* 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.
4543

4644
If you are comfortable with crimping and making connectors, here are examples of what to use
4745
* JST-XH connectors - https://www.amazon.com/dp/B015Y6JOUG
@@ -62,7 +60,7 @@ Pre-crimped wires are also an options
6260
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.
6361

6462
#### 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)
6664

6765
#### Shielding and RF interference
6866
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
7775
7876
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.
7977

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.
8179

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
8583
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.
8684

8785
> [!TIP]
8886
> Don't forget to change the Audio Output Device in the FPP Settings to use the USB sound card or DAC
8987
9088
## 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.
9290

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.
9492

9593
![MPC-After-Hours](https://user-images.githubusercontent.com/23623446/201971100-7a213ef5-a22d-4e76-a545-8c8c9724a9e0.JPG)
9694

9795
## Scripting Plugin Changes
98-
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
103-
curl http://localhost/api/plugin/Dynamic_RDS/FastUpdate
104-
```
105-
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.
10697

10798
## Troubleshooting
10899
### 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
119110
- Power up the RPi/BBB
120111
- Transmitter will power up from power supplied by RPi/BBB (Do NOT connect 12v power yet)
121112
- 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`
124115
- If transmitter does not show up
125116
- Double check each wire is connectioned correctly 3v3, GND, SDA, and SCL
126117
- No really, go double check! It can happen to anyone! :)

0 commit comments

Comments
 (0)