From 6cb1cd98c11ff0b0074d291803e2e99b91a7792b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 30 Aug 2026 09:16:46 +0000 Subject: [PATCH 1/3] feat(scripts): Add script from issue #76 Closes #76 --- .github/ISSUE_TEMPLATE/add-script.yml | 1 + .github/ISSUE_TEMPLATE/update-script.yml | 1 + scripts.json | 14 ++++++++++++++ scripts.schema.json | 1 + 4 files changed, 17 insertions(+) diff --git a/.github/ISSUE_TEMPLATE/add-script.yml b/.github/ISSUE_TEMPLATE/add-script.yml index 820a1fc..d2e9c2a 100644 --- a/.github/ISSUE_TEMPLATE/add-script.yml +++ b/.github/ISSUE_TEMPLATE/add-script.yml @@ -108,6 +108,7 @@ body: - label: logging - label: multi-protocol - label: quad + - label: rgb - label: rotorflight - label: script - label: spektrum diff --git a/.github/ISSUE_TEMPLATE/update-script.yml b/.github/ISSUE_TEMPLATE/update-script.yml index 45f45e5..286cf03 100644 --- a/.github/ISSUE_TEMPLATE/update-script.yml +++ b/.github/ISSUE_TEMPLATE/update-script.yml @@ -109,6 +109,7 @@ body: - label: logging - label: multi-protocol - label: quad + - label: rgb - label: rotorflight - label: script - label: spektrum diff --git a/scripts.json b/scripts.json index 7280ea7..f451e28 100644 --- a/scripts.json +++ b/scripts.json @@ -984,5 +984,19 @@ "script", "color" ] + }, + { + "name": "RGB Toolbox", + "category": "Radio Tools", + "description": "# RGB Toolbox\n\nRGB LED control tool for EdgeTX 2.11+ radios.\n\n## Features\n\n- **Persists across model changes** - your selected mode and custom colour are stored in `/SCRIPTS/TOOLS/RGB.dat` on the SD card, so the same RGB setting applies to every model.\n- **Quick and easy interface** - a simple tap-to-select tool screen with all modes grouped by category, plus live on-screen preview before you exit.\n- **Advanced RGB patterns** - 60+ modes including animations, gimbal lighting and dual-gimbal FX.\n- **Custom colour** - R/G/B sliders for any colour you want.\n\n## Installation\n\n1. Power off your radio and remove the SD card.\n2. Copy the entire `SCRIPTS` folder from this repository onto your SD card to merge/copy the contents:\n - `SCRIPTS/TOOLS/RGB.lua` -> `/SCRIPTS/TOOLS/RGB.lua` (the RGB Toolbox tool)\n - `SCRIPTS/RGBLED/rgbk.lua` -> `/SCRIPTS/RGBLED/rgbk.lua` (the background keeper script)\n3. Reinsert the SD card and power on the radio.\n\n## Usage\n\n1. Long-press the SYS key, then open **Tools** and run **RGB Toolbox**.\n2. Tap **Setup Background Script on Model** to install the keeper as Special Function 64 on the current model. Repeat for every model you want the LED control on. This only needs to be done once per model.\n3. Restart your radio or switch models to load the background script.\n4. Pick a mode or set a custom RGB colour with the R/G/B sliders. Your selection is remembered, takes effect when the tool exits, and persists across model changes.\n\n## RGB Modes\n\n**Solid:** Off, Red, Green, Blue, Yellow, White, Orange, Purple, Sapphire\n\n**Scroll:** Green Fwd, Green Back, Purple Fwd, Purple Back, Blue Fwd, Blue Back\n\n**Rainbow:** Rainbow, Flow, Loop, Runner, Police\n\n**Gimbal:** Gimbal White, Gimbal Red, Gimbal Green, Gimbal Blue, Gimbal Yellow, Gimbal Cyan, Gimbal Magenta, Gimbal Orange, Gimbal Purple, Gimbal Lime, Gimbal Pink, Gimbal Turquoise\n\n**Patterns:** Breath, Comet, Chase, Spinner, Dual Spin, Ping Pong, Knight, Sparkle, Twinkle, Wave, Half Sweep, Orbit, Candy Rain\n\n**Advanced:** Fire, Vortex, Dual Helix, Mirror, Nuclear, Plasma, Scanner\n\n**Gimbal FX:** Compass, Vector, Trail, Velocity, Detent, Quadrant, Afterburner\n\n**Dual Gimbal:** Transfer, Opposing, Crosshair\n\n**Custom:** any colour via the R/G/B sliders\n\n## Notes\n\n- Requires EdgeTX 2.11 or newer.\n- The keeper polls `/SCRIPTS/TOOLS/RGB.dat` and runs the selected mode, so no other mode scripts are needed.", + "infourl": "https://github.com/pigd0g/EdgeTx-RGB-Toolbox", + "images": [ + "https://raw.githubusercontent.com/pigd0g/EdgeTx-RGB-Toolbox/main/screenshot.png" + ], + "tags": [ + "color", + "tool", + "rgb" + ] } ] diff --git a/scripts.schema.json b/scripts.schema.json index c261c9e..f330aed 100644 --- a/scripts.schema.json +++ b/scripts.schema.json @@ -76,6 +76,7 @@ "logging", "multi-protocol", "quad", + "rgb", "rotorflight", "script", "spektrum", From 10cec755180eef31f8b9e82c4e260efc74e53f07 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 2 Nov 2026 00:11:26 +0000 Subject: [PATCH 2/3] chore: localize external images --- ASSETS/rgb-toolbox/screenshot-1.png | Bin 0 -> 23756 bytes scripts.json | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 ASSETS/rgb-toolbox/screenshot-1.png diff --git a/ASSETS/rgb-toolbox/screenshot-1.png b/ASSETS/rgb-toolbox/screenshot-1.png new file mode 100644 index 0000000000000000000000000000000000000000..83d9435353a3bd6d31457eeb5bf1486f94da7af1 GIT binary patch literal 23756 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 `/SCRIPTS/TOOLS/RGB.lua` (the RGB Toolbox tool)\n - `SCRIPTS/RGBLED/rgbk.lua` -> `/SCRIPTS/RGBLED/rgbk.lua` (the background keeper script)\n3. Reinsert the SD card and power on the radio.\n\n## Usage\n\n1. Long-press the SYS key, then open **Tools** and run **RGB Toolbox**.\n2. Tap **Setup Background Script on Model** to install the keeper as Special Function 64 on the current model. Repeat for every model you want the LED control on. This only needs to be done once per model.\n3. Restart your radio or switch models to load the background script.\n4. Pick a mode or set a custom RGB colour with the R/G/B sliders. Your selection is remembered, takes effect when the tool exits, and persists across model changes.\n\n## RGB Modes\n\n**Solid:** Off, Red, Green, Blue, Yellow, White, Orange, Purple, Sapphire\n\n**Scroll:** Green Fwd, Green Back, Purple Fwd, Purple Back, Blue Fwd, Blue Back\n\n**Rainbow:** Rainbow, Flow, Loop, Runner, Police\n\n**Gimbal:** Gimbal White, Gimbal Red, Gimbal Green, Gimbal Blue, Gimbal Yellow, Gimbal Cyan, Gimbal Magenta, Gimbal Orange, Gimbal Purple, Gimbal Lime, Gimbal Pink, Gimbal Turquoise\n\n**Patterns:** Breath, Comet, Chase, Spinner, Dual Spin, Ping Pong, Knight, Sparkle, Twinkle, Wave, Half Sweep, Orbit, Candy Rain\n\n**Advanced:** Fire, Vortex, Dual Helix, Mirror, Nuclear, Plasma, Scanner\n\n**Gimbal FX:** Compass, Vector, Trail, Velocity, Detent, Quadrant, Afterburner\n\n**Dual Gimbal:** Transfer, Opposing, Crosshair\n\n**Custom:** any colour via the R/G/B sliders\n\n## Notes\n\n- Requires EdgeTX 2.11 or newer.\n- The keeper polls `/SCRIPTS/TOOLS/RGB.dat` and runs the selected mode, so no other mode scripts are needed.", "infourl": "https://github.com/pigd0g/EdgeTx-RGB-Toolbox", "images": [ - "https://raw.githubusercontent.com/pigd0g/EdgeTx-RGB-Toolbox/main/screenshot.png" + "ASSETS/rgb-toolbox/screenshot-1.png" ], "tags": [ "color", From acc2b28b4246090f25506a3496027536f01e4302 Mon Sep 17 00:00:00 2001 From: Peter Feerick <5500713+pfeerick@users.noreply.github.com> Date: Mon, 2 Nov 2026 10:14:03 +1000 Subject: [PATCH 3/3] chore: shorter description --- scripts.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts.json b/scripts.json index 4d8d590..c63a0b4 100644 --- a/scripts.json +++ b/scripts.json @@ -988,7 +988,7 @@ { "name": "RGB Toolbox", "category": "Radio Tools", - "description": "# RGB Toolbox\n\nRGB LED control tool for EdgeTX 2.11+ radios.\n\n## Features\n\n- **Persists across model changes** - your selected mode and custom colour are stored in `/SCRIPTS/TOOLS/RGB.dat` on the SD card, so the same RGB setting applies to every model.\n- **Quick and easy interface** - a simple tap-to-select tool screen with all modes grouped by category, plus live on-screen preview before you exit.\n- **Advanced RGB patterns** - 60+ modes including animations, gimbal lighting and dual-gimbal FX.\n- **Custom colour** - R/G/B sliders for any colour you want.\n\n## Installation\n\n1. Power off your radio and remove the SD card.\n2. Copy the entire `SCRIPTS` folder from this repository onto your SD card to merge/copy the contents:\n - `SCRIPTS/TOOLS/RGB.lua` -> `/SCRIPTS/TOOLS/RGB.lua` (the RGB Toolbox tool)\n - `SCRIPTS/RGBLED/rgbk.lua` -> `/SCRIPTS/RGBLED/rgbk.lua` (the background keeper script)\n3. Reinsert the SD card and power on the radio.\n\n## Usage\n\n1. Long-press the SYS key, then open **Tools** and run **RGB Toolbox**.\n2. Tap **Setup Background Script on Model** to install the keeper as Special Function 64 on the current model. Repeat for every model you want the LED control on. This only needs to be done once per model.\n3. Restart your radio or switch models to load the background script.\n4. Pick a mode or set a custom RGB colour with the R/G/B sliders. Your selection is remembered, takes effect when the tool exits, and persists across model changes.\n\n## RGB Modes\n\n**Solid:** Off, Red, Green, Blue, Yellow, White, Orange, Purple, Sapphire\n\n**Scroll:** Green Fwd, Green Back, Purple Fwd, Purple Back, Blue Fwd, Blue Back\n\n**Rainbow:** Rainbow, Flow, Loop, Runner, Police\n\n**Gimbal:** Gimbal White, Gimbal Red, Gimbal Green, Gimbal Blue, Gimbal Yellow, Gimbal Cyan, Gimbal Magenta, Gimbal Orange, Gimbal Purple, Gimbal Lime, Gimbal Pink, Gimbal Turquoise\n\n**Patterns:** Breath, Comet, Chase, Spinner, Dual Spin, Ping Pong, Knight, Sparkle, Twinkle, Wave, Half Sweep, Orbit, Candy Rain\n\n**Advanced:** Fire, Vortex, Dual Helix, Mirror, Nuclear, Plasma, Scanner\n\n**Gimbal FX:** Compass, Vector, Trail, Velocity, Detent, Quadrant, Afterburner\n\n**Dual Gimbal:** Transfer, Opposing, Crosshair\n\n**Custom:** any colour via the R/G/B sliders\n\n## Notes\n\n- Requires EdgeTX 2.11 or newer.\n- The keeper polls `/SCRIPTS/TOOLS/RGB.dat` and runs the selected mode, so no other mode scripts are needed.", + "description": "RGB LED control tool for EdgeTX 2.11+. Persists across model changes. Quick and easy interface. Advanced RGB patterns. Custom colour sliders.", "infourl": "https://github.com/pigd0g/EdgeTx-RGB-Toolbox", "images": [ "ASSETS/rgb-toolbox/screenshot-1.png"