diff --git a/general/overlay/usr/sbin/gpio b/general/overlay/usr/sbin/gpio
new file mode 100644
index 00000000..ffcab319
--- /dev/null
+++ b/general/overlay/usr/sbin/gpio
@@ -0,0 +1,105 @@
+#!/bin/sh
+
+help() {
+    echo -e "\n=== GPIO usage ===\n"
+
+    echo -e ">\t gpio <set|clear|toggle|unexport|read> <pin>\n"
+    echo -e "set\t\t = Output HI\nclear\t\t = Output LOW\ntoggle\t\t = Swap HI <> LOW\nunexport\t = Release GPIO pin back to the kernel space\nread\t\t = Read GPIO pin output state\n"
+    
+    echo -e "---\n"
+
+    echo -e ">\t gpio search <from pin> <to pin>\n"
+    echo -e "Toggle a range of GPIO pins from HI to LOW"
+    echo -e "gpio search logs to syslog\n"
+
+    echo -e "==================\n"
+}
+
+exp() {
+    if [ ! -d /sys/class/gpio/gpio$1 ]; then
+        [ ! -f /sys/class/gpio/export ] && echo "Error: No export file!" && exit
+        echo $1 > /sys/class/gpio/export
+        [ ! -f /sys/class/gpio/gpio$1/direction ] && echo "Error: No direction file!" && exit
+        echo out > /sys/class/gpio/gpio$1/direction
+    fi
+}
+
+write(){
+    echo $1 > /sys/class/gpio/gpio$2/value
+}
+
+read() {
+    [ ! -f /sys/class/gpio/gpio$1/value ] && echo "Error: GPIO-$1 is not set" && exit
+    echo $(cat /sys/class/gpio/gpio$1/value)
+}
+
+unexport() {
+    if [ -d /sys/class/gpio/gpio$1 ]; then
+        echo $1 > /sys/class/gpio/unexport
+    else
+        echo "GPIO-${1} is not exported."
+    fi
+}
+
+search() {
+    echo -e "Start blink (output) on GPIO range $1 to $2\n"
+    for pin in $(seq $1 $2); do
+        echo "================================="
+        exp ${pin} && echo "  Exported GPIO-${pin} from kernel space" && echo "    Set GPIO-${pin} to OUTPUT mode"
+        write 0 ${pin} && echo "      Set GPIO-${pin} to LO level" ; sleep 1
+        write 1 ${pin} && echo "      Set GPIO-${pin} to HI level" ; sleep 1
+        echo in > /sys/class/gpio/gpio${pin}/direction && echo "    Set GPIO-${pin} to INPUT mode"
+        unexport ${pin} && echo "  Unexported GPIO-${pin}"
+        logger HELLO - ${pin}
+    done
+}
+
+if [ -n $1 ] && [ -n $2 ] && [ $2 -eq $2 ]; then
+        case $1 in
+            set)
+                exp $2
+                echo "Setting GPIO-$2 to HI"
+                write 1 $2
+                ;;
+
+            clear)
+                exp $2
+                echo "Setting GPIO-$2 to LOW"
+                write 0 $2
+                ;;
+
+            toggle)
+                exp $2
+                if [ $(read $2) -eq 0 ]; then
+                    echo "Setting GPIO-$2 to HI"
+                    write 1 $2
+                else
+                    echo "Setting GPIO-$2 to LOW"
+                    write 0 $2
+                fi
+                ;;
+
+            unexport)
+                unexport $2
+                ;;
+
+            read)
+                echo $(read $2)
+                ;;
+
+            search)
+                if [ ! -z $3 ] && [ $3 -eq $3 ]; then
+                    search $2 $3
+                else
+                    echo -e "\n Caution: Toggling single pin. Use <gpio search <from pin> <to pin> to search a range.\n"
+                    search $2 $2
+                fi
+            ;;
+
+            *)  
+                help
+                ;;
+        esac
+else
+    help
+fi
diff --git a/general/overlay/usr/sbin/light b/general/overlay/usr/sbin/light
new file mode 100644
index 00000000..d55c97a9
--- /dev/null
+++ b/general/overlay/usr/sbin/light
@@ -0,0 +1,93 @@
+#!/bin/sh
+
+GPIO_RED=78
+GPIO_GREEN=75
+GPIO_BLUE=
+
+help() {
+    echo -e "\n================= LIGHT usage =================\n"
+    echo -e "Set the colour of the status light\n"
+    echo -e "light <off|red|green|blue|yellow|magenta|cyan|white>\n"
+}
+
+setRed() {
+    if [ -n "$GPIO_RED" ]; then
+        [ $1 -eq 1 ] && gpio set "$GPIO_RED" || gpio clear "$GPIO_RED"
+    else
+        echo "Red GPIO undefined"
+    fi
+}
+
+setGreen() {
+    if [ -n "$GPIO_GREEN" ]; then
+        [ $1 -eq 1 ] && gpio set "$GPIO_GREEN" || gpio clear "$GPIO_GREEN"
+    else
+        echo "Green GPIO undefined"
+    fi
+}
+
+setBlue() {
+    if [ -n "$GPIO_BLUE" ]; then
+        [ $1 -eq 1 ] && gpio set "$GPIO_BLUE" || gpio clear "$GPIO_BLUE"
+    else
+        echo "Blue GPIO undefined"
+    fi
+}
+
+if [ -n $1 ]; then
+        case $1 in
+            off)
+                setRed 0
+                setGreen 0
+                setBlue 0
+                ;;
+
+            red)
+                setRed 1
+                setGreen 0
+                setBlue 0
+                ;;
+
+            green)
+                setRed 0
+                setGreen 1
+                setBlue 0
+                ;;
+
+            blue)
+                setRed 0
+                setGreen 0
+                setBlue 1
+                ;;
+
+            yellow)
+                setRed 1
+                setGreen 1
+                setBlue 0
+                ;;
+
+            magenta|purple)
+                setRed 1
+                setGreen 0
+                setBlue 1
+                ;;
+
+            cyan)
+                setRed 0
+                setGreen 1
+                setBlue 1
+                ;;
+
+            white)
+                setRed 1
+                setGreen 1
+                setBlue 1
+                ;;
+
+            *)  
+                help
+                ;;
+        esac
+else
+    help
+fi