From 4d04e3746d49d5f026fa63eb58ca34e591ef251c Mon Sep 17 00:00:00 2001 From: OpenIPC AI team Date: Wed, 14 Oct 2026 14:57:10 +0300 Subject: [PATCH 1/2] rostelecom-ipc8232swc-we: drive the status LEDs (red power, blue net) The profile mapped the two status LEDs in gpio.conf (led1=10 red, led2=25 blue) but nothing on a majestic image reads gpio.conf, so the only thing touching them was muxes.sh pinning both high under a "set leds power off" comment that in fact left both solid on -- the LEDs are active high, so "gpio set" lights them. Give them the usual boot/ready behaviour, matching the stock firmware's own map (GPIO10 = red "power", GPIO25 = blue "net"): S01leds lights the power LED and holds the net LED off while booting; S99leds lights the net LED once boot reaches its end, so a lit blue LED means the camera is up. Both honour led_disabled=1 (both off) like the LED scripts on other OpenIPC cameras, and go off on shutdown. muxes.sh no longer touches them. IR-cut (irCutPin1/2 63/67), the IR illuminator (backlightPin 72) and the speaker (speakerPin 28) were already correct in customizer.sh and work on majestic's defaults (irCut/backlight auto, day/night by picture); this only adds the missing LED behaviour. Hardware tested on the lab IPC8232SWC-WE (Hi3516EV300, ov2735). Running the two scripts on it stepped the LEDs red-only -> red+blue and read the GPIO values back at each step; GPIO10/25 drive on this board. --- .../general/overlay/etc/init.d/S01leds | 17 +++++++++++++++ .../general/overlay/etc/init.d/S99leds | 21 +++++++++++++++++++ .../overlay/usr/share/openipc/muxes.sh | 5 ++--- 3 files changed, 40 insertions(+), 3 deletions(-) create mode 100755 devices/hi3516ev300_ultimate_rostelecom-ipc8232swc-we/general/overlay/etc/init.d/S01leds create mode 100755 devices/hi3516ev300_ultimate_rostelecom-ipc8232swc-we/general/overlay/etc/init.d/S99leds diff --git a/devices/hi3516ev300_ultimate_rostelecom-ipc8232swc-we/general/overlay/etc/init.d/S01leds b/devices/hi3516ev300_ultimate_rostelecom-ipc8232swc-we/general/overlay/etc/init.d/S01leds new file mode 100755 index 000000000..5eaf6e6a8 --- /dev/null +++ b/devices/hi3516ev300_ultimate_rostelecom-ipc8232swc-we/general/overlay/etc/init.d/S01leds @@ -0,0 +1,17 @@ +#!/bin/sh +# +# Early-boot LED state. The stock firmware's own hardware map names GPIO10 the +# red "power" LED and GPIO25 the blue "net" LED, both active high. Light the +# power LED as soon as init runs and keep the net LED off; S99leds lights it +# once the camera is up. rcK stops this before S99leds, so leave the state +# there. + +case "$1" in + start | "") + gpio set 10; gpio clear 25 + ;; + stop) + ;; +esac + +exit 0 diff --git a/devices/hi3516ev300_ultimate_rostelecom-ipc8232swc-we/general/overlay/etc/init.d/S99leds b/devices/hi3516ev300_ultimate_rostelecom-ipc8232swc-we/general/overlay/etc/init.d/S99leds new file mode 100755 index 000000000..103e14051 --- /dev/null +++ b/devices/hi3516ev300_ultimate_rostelecom-ipc8232swc-we/general/overlay/etc/init.d/S99leds @@ -0,0 +1,21 @@ +#!/bin/sh +# +# Late-boot LED state: the red power LED stays on and the blue net LED comes on +# once boot has reached its end (after networking), so a lit blue LED means the +# camera is up. Both go off when led_disabled=1, as on other OpenIPC cameras, +# and on shutdown. + +case "$1" in + start | "") + if [ "$(fw_printenv -n led_disabled 2>/dev/null)" = "1" ]; then + gpio clear 10; gpio clear 25 + else + gpio set 10; gpio set 25 + fi + ;; + stop) + gpio clear 10; gpio clear 25 + ;; +esac + +exit 0 diff --git a/devices/hi3516ev300_ultimate_rostelecom-ipc8232swc-we/general/overlay/usr/share/openipc/muxes.sh b/devices/hi3516ev300_ultimate_rostelecom-ipc8232swc-we/general/overlay/usr/share/openipc/muxes.sh index 16cd04609..6839a3510 100644 --- a/devices/hi3516ev300_ultimate_rostelecom-ipc8232swc-we/general/overlay/usr/share/openipc/muxes.sh +++ b/devices/hi3516ev300_ultimate_rostelecom-ipc8232swc-we/general/overlay/usr/share/openipc/muxes.sh @@ -1,8 +1,7 @@ #!/bin/sh -### set leds power off ### -gpio set 10 -gpio set 25 +# Status LEDs (red power GPIO10, blue net GPIO25) are driven by S01leds and +# S99leds now, not here. ### sd card power en ### devmem 0x100c0058 32 0 From 17828217f816e147ca5d6a96e5aab3f37df58b2b Mon Sep 17 00:00:00 2001 From: OpenIPC AI team Date: Wed, 14 Oct 2026 15:30:20 +0300 Subject: [PATCH 2/2] rostelecom-ipc8232swc-we: keep the power LED dark at boot when led_disabled Review (#201): S01leds lit the red power LED unconditionally, so with led_disabled=1 it stayed on through boot until S99leds cleared it, and lit again if S01leds was run by hand. The early script honours led_disabled now too: both LEDs stay dark from the start when it is set. Tested on the lab IPC8232SWC-WE (Hi3516EV300, ov2735): led_disabled unset -> red=1 blue=0; led_disabled=1 -> red=0 blue=0. --- .../general/overlay/etc/init.d/S01leds | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/devices/hi3516ev300_ultimate_rostelecom-ipc8232swc-we/general/overlay/etc/init.d/S01leds b/devices/hi3516ev300_ultimate_rostelecom-ipc8232swc-we/general/overlay/etc/init.d/S01leds index 5eaf6e6a8..4d41f3fa1 100755 --- a/devices/hi3516ev300_ultimate_rostelecom-ipc8232swc-we/general/overlay/etc/init.d/S01leds +++ b/devices/hi3516ev300_ultimate_rostelecom-ipc8232swc-we/general/overlay/etc/init.d/S01leds @@ -2,13 +2,18 @@ # # Early-boot LED state. The stock firmware's own hardware map names GPIO10 the # red "power" LED and GPIO25 the blue "net" LED, both active high. Light the -# power LED as soon as init runs and keep the net LED off; S99leds lights it -# once the camera is up. rcK stops this before S99leds, so leave the state +# power LED as soon as init runs and keep the net LED off; S99leds lights the +# net LED once the camera is up. led_disabled=1 keeps both dark from the start, +# not only once S99leds runs. rcK stops this before S99leds, so leave the state # there. case "$1" in start | "") - gpio set 10; gpio clear 25 + if [ "$(fw_printenv -n led_disabled 2>/dev/null)" = "1" ]; then + gpio clear 10; gpio clear 25 + else + gpio set 10; gpio clear 25 + fi ;; stop) ;;