Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Netgate 2100 Customization of LEDs (Guide)

    Scheduled Pinned Locked Moved Hardware
    37 Posts 2 Posters 3.7k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • JonathanLeeJ
      JonathanLee
      last edited by JonathanLee

      @wgstarks

      set the program to call

      /usr/local/sbin/pfSense-led.sh ready
      

      Use that for the else condition that would normalize it automatically for your model

      a3546bbe-3d59-486a-817b-4078c3e5db46-image.png

      1 Reply Last reply Reply Quote 0
      • wgstarksW
        wgstarks
        last edited by

        Thanks. I’ll test this and see if I can get it working.

        Box: SG-4200

        JonathanLeeJ 1 Reply Last reply Reply Quote 1
        • JonathanLeeJ
          JonathanLee @wgstarks
          last edited by JonathanLee

          This post is deleted!
          1 Reply Last reply Reply Quote 0
          • JonathanLeeJ
            JonathanLee
            last edited by JonathanLee

            I got it don't use DNS use the interfaces name and pinger

            pfctl -vvss | grep -e "mvneta0 icmp"

            that works!!!

            #!/bin/sh
            led_intensity=0
            while [ $led_intensity -le 8 ]; do
              gpioctl -f /dev/gpioc2 $led_intensity duty 0 >/dev/null
              led_intensity=$(( led_intensity + 1 ))
            done
            
            check_current_states=$( pfctl -vvss | grep -e "mvneta0 icmp" )
            WAN=0
            case "$check_current_states" in
              *icmp* ) WAN=1 ;;
            esac
            if [ $WAN = 0 ];
            then
             sysctl -q dev.gpio.2.led.0.pwm=0
             gpioctl -f /dev/gpioc2 0 duty 200 >/dev/null
             sysctl -q dev.gpio.2.led.1.pwm=0
             gpioctl -f /dev/gpioc2 3 duty 200 >/dev/null
             sysctl -q dev.gpio.2.led.2.pwm=0
             gpioctl -f /dev/gpioc2 6 duty 200 >/dev/null
            else
              /usr/local/sbin/pfSense-led.sh ready
            
            fi
            
            

            2f125920-7993-4542-8edc-f2c09f326fd7-image.png

            Your mvneta0 might be different over the 2100 check it on Interface Assignments, that is the pinger state used to check to see if gateway is up just use it for the program also

            YEAH!!

            Just updated after testing 4:07 7-18-24

            1 Reply Last reply Reply Quote 0
            • JonathanLeeJ
              JonathanLee
              last edited by

              Update to mine to reflect the gateway offline

              #!/bin/sh
              check_current_states=$( pfctl -vvss | grep -e ', rule 105' -e ', rule 52' -e '192.168.1.11' -e '192.168.1.15' -e 'mvneta0 icmp' )
              res=1
              resb=1
              resc=1
              resd=1
              WAN=1
              case "$check_current_states" in
                *icmp* ) WAN=0 ;;
              esac
              if [ $WAN = 1 ];
              then
               sysctl -q dev.gpio.2.led.0.pwm=0
               gpioctl -f /dev/gpioc2 0 duty 200 >/dev/null
               sysctl -q dev.gpio.2.led.1.pwm=0
               gpioctl -f /dev/gpioc2 3 duty 200 >/dev/null
               sysctl -q dev.gpio.2.led.2.pwm=0
               gpioctl -f /dev/gpioc2 6 duty 200 >/dev/null
               exit 1
               fi
              case "$check_current_states" in 
                *", rule 105"* ) res=0 ;;
              esac
              case "$check_current_states" in
                *192.168.1.11* ) resb=0 ;;
              esac
              case "$check_current_states" in
                *192.168.1.15* ) resc=0 ;;
              esac
              case "$check_current_states" in
                *", rule 52"* ) resd=0 ;;
              esac
              if [ $res = 0 ] && [ $resb = 0 ]; 
              then
                sysctl -q dev.gpio.2.led.1.pwm=1
                gpioctl -f /dev/gpioc2 3 duty 50 >/dev/null
                gpioctl -f /dev/gpioc2 4 duty 15 >/dev/null
                sysctl -q dev.gpio.2.led.2.pwm=0
                gpioctl -f /dev/gpioc2 6 duty 55 >/dev/null
                gpioctl -f /dev/gpioc2 7 duty 20 >/dev/null
                gpioctl -f /dev/gpioc2 8 duty 15 >/dev/null
              elif [ $res = 0 ];
              then
                sysctl -q dev.gpio.2.led.1.pwm=1
                gpioctl -f /dev/gpioc2 3 duty 0 >/dev/null
                gpioctl -f /dev/gpioc2 4 duty 0 >/dev/null
                sysctl -q dev.gpio.2.led.2.pwm=0
                gpioctl -f /dev/gpioc2 6 duty 55 >/dev/null
                gpioctl -f /dev/gpioc2 7 duty 20 >/dev/null
                gpioctl -f /dev/gpioc2 8 duty 15 >/dev/null
              elif [ $resb = 0 ];
              then
                sysctl -q dev.gpio.2.led.2.pwm=1
                gpioctl -f /dev/gpioc2 6 duty 0 >/dev/null
                gpioctl -f /dev/gpioc2 7 duty 0 >/dev/null
                gpioctl -f /dev/gpioc2 8 duty 0 >/dev/null
                sysctl -q dev.gpio.2.led.1.pwm=1
                gpioctl -f /dev/gpioc2 3 duty 50 >/dev/null
                gpioctl -f /dev/gpioc2 4 duty 15 >/dev/null
              else
                sysctl -q dev.gpio.2.led.1.pwm=1
                gpioctl -f /dev/gpioc2 3 duty 0 >/dev/null
                gpioctl -f /dev/gpioc2 4 duty 0 >/dev/null
                sysctl -q dev.gpio.2.led.2.pwm=1
                gpioctl -f /dev/gpioc2 6 duty 0 >/dev/null
                gpioctl -f /dev/gpioc2 7 duty 50 >/dev/null
                gpioctl -f /dev/gpioc2 8 duty 0 >/dev/null
                
              fi
              if [ $resc = 0 ] || [ $resd = 0 ];
              then
                sysctl -q dev.gpio.2.led.0.pwm=1
                gpioctl -f /dev/gpioc2 2 duty 50 >/dev/null
                gpioctl -f /dev/gpioc2 0 duty 50 >/dev/null
              else
                sysctl -q dev.gpio.2.led.0.pwm=1
                gpioctl -f /dev/gpioc2 2 duty 0 >/dev/null
                gpioctl -f /dev/gpioc2 0 duty 0 >/dev/null
              
              fi
              
              1 Reply Last reply Reply Quote 0
              • wgstarksW
                wgstarks
                last edited by

                When I test in shell I get the following result-

                gpio_open: No such file or directory
                gpio_open: No such file or directory
                gpio_open: No such file or directory
                gpio_open: No such file or directory
                gpio_open: No such file or directory
                gpio_open: No such file or directory
                gpio_open: No such file or directory
                gpio_open: No such file or directory
                gpio_open: No such file or directory
                

                My script-

                #!/bin/sh
                led_intensity=0
                while [ $led_intensity -le 8 ]; do
                  gpioctl -f /dev/gpioc2 $led_intensity duty 0 >/dev/null
                  led_intensity=$(( led_intensity + 1 ))
                done
                
                check_current_states=$( pfctl -vvss | grep -e "igc3 icmp" )
                WAN=0
                case "$check_current_states" in
                  *icmp* ) WAN=1 ;;
                esac
                if [ $WAN = 0 ];
                then
                 sysctl -q dev.gpio.2.led.0.pwm=0
                 gpioctl -f /dev/gpioc2 0 duty 200 >/dev/null
                 sysctl -q dev.gpio.2.led.1.pwm=0
                 gpioctl -f /dev/gpioc2 3 duty 200 >/dev/null
                 sysctl -q dev.gpio.2.led.2.pwm=0
                 gpioctl -f /dev/gpioc2 6 duty 200 >/dev/null
                else
                  /usr/local/sbin/pfSense-led.sh ready
                
                fi
                
                
                

                Box: SG-4200

                JonathanLeeJ 1 Reply Last reply Reply Quote 0
                • JonathanLeeJ
                  JonathanLee @wgstarks
                  last edited by JonathanLee

                  @wgstarks

                  Do me a favor take a look in
                  /usr/local/sbin/pfSense-led.sh

                  Find your model firewall and tell me what directive is used to change the LEDS…

                  Also peek in /dev/led see if you have that folder, if you do it should be easy to adapt with the directive used for your model

                  wgstarksW 1 Reply Last reply Reply Quote 0
                  • wgstarksW
                    wgstarks @JonathanLee
                    last edited by

                    @JonathanLee said in Netgate 2100 Customization of LEDs (Guide):

                    @wgstarks

                    Do me a favor take a look in
                    /usr/local/sbin/pfSense-led.sh

                    Find your model firewall and tell me what directive is used to change the LEDS…

                    Maybe this is what you need.

                    
                    # Netgate 4200
                    #
                    
                    4200_led_off() {
                    	local _leds="red_0 green_0 blue_0 red_1 green_1 blue_1 red_2 green_2 blue_2"
                    
                    	for led in ${_leds}; do
                    		echo 0 > /dev/led/${led}
                    	done
                    }
                    
                    4200_led_booting() {
                    	4200_led_off
                    	# Fast blink blue on all LEDs
                    	echo f2 > /dev/led/blue_0
                    	echo f2 > /dev/led/blue_1
                    	echo f2 > /dev/led/blue_2
                    }
                    
                    4200_led_ready() {
                    	4200_led_off
                    	# Left LED solid blue
                    	echo 1 > /dev/led/blue_2
                    }
                    
                    4200_led_update() {
                    	# Purple on center LED
                    	echo 1 > /dev/led/red_1
                    	echo 0 > /dev/led/green_1
                    	echo 1 > /dev/led/blue_1
                    }
                    
                    4200_led_update_off() {
                    	# Turn off center LED only
                    	echo 0 > /dev/led/red_1
                    	echo 0 > /dev/led/green_1
                    	echo 0 > /dev/led/blue_1
                    }
                    
                    4200_led_updating() {
                    	4200_led_off
                    	# Fast green blink on all LEDs
                    	echo f2 > /dev/led/green_0
                    	echo f2 > /dev/led/green_1
                    	echo f2 > /dev/led/green_2
                    }
                    

                    Box: SG-4200

                    JonathanLeeJ 1 Reply Last reply Reply Quote 1
                    • JonathanLeeJ
                      JonathanLee @wgstarks
                      last edited by JonathanLee

                      @wgstarks said in Netgate 2100 Customization of LEDs (Guide):

                      echo f2 > /dev/led/blue_0
                      echo f2 > /dev/led/blue_1
                      echo f2 > /dev/led/blue_2

                      try this one

                      #!/bin/sh
                      echo 0 > /dev/led/blue_0
                      echo 0 > /dev/led/blue_1
                      echo 0 > /dev/led/blue_2
                      echo 0 > /dev/led/red_0
                      echo 0 > /dev/led/red_1
                      echo 0 > /dev/led/red_2
                      echo 0 > /dev/led/green_0
                      echo 0 > /dev/led/green_1
                      echo 0 > /dev/led/green_2
                      
                      check_current_states=$( pfctl -vvss | grep -e "igc3 icmp" )
                      WAN=0
                      case "$check_current_states" in
                        *icmp* ) WAN=1 ;;
                      esac
                      if [ $WAN = 0 ];
                      then
                       echo f2 > /dev/led/red_0
                       echo f2 > /dev/led/red_1
                       echo f2 > /dev/led/red_2
                      else
                        /usr/local/sbin/pfSense-led.sh ready
                      
                      fi
                      

                      Or to just turn on solid red

                      #!/bin/sh
                      echo 0 > /dev/led/blue_0
                      echo 0 > /dev/led/blue_1
                      echo 0 > /dev/led/blue_2
                      echo 0 > /dev/led/red_0
                      echo 0 > /dev/led/red_1
                      echo 0 > /dev/led/red_2
                      echo 0 > /dev/led/green_0
                      echo 0 > /dev/led/green_1
                      echo 0 > /dev/led/green_2
                      
                      check_current_states=$( pfctl -vvss | grep -e "igc3 icmp" )
                      WAN=0
                      case "$check_current_states" in
                        *icmp* ) WAN=1 ;;
                      esac
                      if [ $WAN = 0 ];
                      then
                       echo 1 > /dev/led/red_0
                       echo 1 > /dev/led/red_1
                       echo 1 > /dev/led/red_2
                      else
                        /usr/local/sbin/pfSense-led.sh ready
                      
                      fi
                      

                      Please let me know if that works unplug wan it should come on red when you test it.

                      After set your cron job to what ever amount of timer you want every min check it or whatever you want. Mine runs every min

                      make sure you chmod the file also so it can run.

                      if you want just do a chmod 777 on it and or a more secure privilege.

                      I have some that run in the day and some at night so this is my 6am - 8:59 one

                      Screenshot 2024-07-18 at 18.00.29.png

                      wgstarksW 1 Reply Last reply Reply Quote 1
                      • wgstarksW
                        wgstarks @JonathanLee
                        last edited by

                        @JonathanLee said in Netgate 2100 Customization of LEDs (Guide):

                        @wgstarks said in Netgate 2100 Customization of LEDs (Guide):

                        echo f2 > /dev/led/blue_0
                        echo f2 > /dev/led/blue_1
                        echo f2 > /dev/led/blue_2

                        try this one

                        #!/bin/sh
                        echo 0 > /dev/led/blue_0
                        echo 0 > /dev/led/blue_1
                        echo 0 > /dev/led/blue_2
                        echo 0 > /dev/led/red_0
                        echo 0 > /dev/led/red_1
                        echo 0 > /dev/led/red_2
                        echo 0 > /dev/led/green_0
                        echo 0 > /dev/led/green_1
                        echo 0 > /dev/led/green_2
                        
                        check_current_states=$( pfctl -vvss | grep -e "igc3 icmp" )
                        WAN=0
                        case "$check_current_states" in
                          *icmp* ) WAN=1 ;;
                        esac
                        if [ $WAN = 0 ];
                        then
                         echo f2 > /dev/led/red_0
                         echo f2 > /dev/led/red_1
                         echo f2 > /dev/led/red_2
                        else
                          /usr/local/sbin/pfSense-led.sh ready
                        
                        fi
                        

                        Or to just turn on solid red

                        #!/bin/sh
                        echo 0 > /dev/led/blue_0
                        echo 0 > /dev/led/blue_1
                        echo 0 > /dev/led/blue_2
                        echo 0 > /dev/led/red_0
                        echo 0 > /dev/led/red_1
                        echo 0 > /dev/led/red_2
                        echo 0 > /dev/led/green_0
                        echo 0 > /dev/led/green_1
                        echo 0 > /dev/led/green_2
                        
                        check_current_states=$( pfctl -vvss | grep -e "igc3 icmp" )
                        WAN=0
                        case "$check_current_states" in
                          *icmp* ) WAN=1 ;;
                        esac
                        if [ $WAN = 0 ];
                        then
                         echo 1 > /dev/led/red_0
                         echo 1 > /dev/led/red_1
                         echo 1 > /dev/led/red_2
                        else
                          /usr/local/sbin/pfSense-led.sh ready
                        
                        fi
                        

                        Please let me know if that works unplug wan it should come on red when you test it.

                        After set your cron job to what ever amount of timer you want every min check it or whatever you want. Mine runs every min

                        make sure you chmod the file also so it can run.

                        if you want just do a chmod 777 on it and or a more secure privilege.

                        I have some that run in the day and some at night so this is my 6am - 8:59 one

                        Screenshot 2024-07-18 at 18.00.29.png

                        I like the blinking red. More of an attention getter IMO. Working beautifully. Thanks for the script and the help.

                        Box: SG-4200

                        JonathanLeeJ 1 Reply Last reply Reply Quote 1
                        • wgstarksW
                          wgstarks
                          last edited by wgstarks

                          Is it possible to increase the brightness? And blink all three?

                          Box: SG-4200

                          JonathanLeeJ 1 Reply Last reply Reply Quote 0
                          • JonathanLeeJ
                            JonathanLee @wgstarks
                            last edited by

                            @wgstarks said in Netgate 2100 Customization of LEDs (Guide):

                            IMO

                            Great, no problem enjoy. I have one that turns purple when my wife has her work stuff on... royal purple means do not mess with firewall when she is working... haha

                            1 Reply Last reply Reply Quote 0
                            • JonathanLeeJ
                              JonathanLee @wgstarks
                              last edited by

                              @wgstarks that you would need to ask an official Netgate rep about, I only have a 2100 so I can only use the directives that my model uses.

                              I wonder if you can also...

                              @stephenw10 Do you know what the LED intensity directive is on the 4200?

                              1 Reply Last reply Reply Quote 0
                              • wgstarksW
                                wgstarks
                                last edited by

                                Only the first and third led's are blinking. I'm fairly sure the code is for all three right? I wonder if it's possible to test them?

                                Box: SG-4200

                                JonathanLeeJ 1 Reply Last reply Reply Quote 0
                                • JonathanLeeJ
                                  JonathanLee @wgstarks
                                  last edited by JonathanLee

                                  @wgstarks does the 2nd glow red? The f2 directive might only work for led 0 and 2 test with the echo command

                                  wgstarksW 1 Reply Last reply Reply Quote 0
                                  • wgstarksW
                                    wgstarks @JonathanLee
                                    last edited by

                                    @JonathanLee said in Netgate 2100 Customization of LEDs (Guide):

                                    @wgstarks does the 2nd glow red?

                                    No but I see 0,1 and 2 in the code so wondering if it's a bad led.

                                    Box: SG-4200

                                    JonathanLeeJ 1 Reply Last reply Reply Quote 0
                                    • JonathanLeeJ
                                      JonathanLee @wgstarks
                                      last edited by

                                      @wgstarks check the file in /dev/led red 2

                                      wgstarksW 1 Reply Last reply Reply Quote 0
                                      • wgstarksW
                                        wgstarks @JonathanLee
                                        last edited by wgstarks

                                        @JonathanLee said in Netgate 2100 Customization of LEDs (Guide):

                                        @wgstarks check the file in /dev/led red 2

                                        Can't open that file. the led directory is locked (555).

                                        Box: SG-4200

                                        JonathanLeeJ 2 Replies Last reply Reply Quote 0
                                        • JonathanLeeJ
                                          JonathanLee @wgstarks
                                          last edited by

                                          @wgstarks 🤔

                                          1 Reply Last reply Reply Quote 0
                                          • JonathanLeeJ
                                            JonathanLee @wgstarks
                                            last edited by

                                            @wgstarks can you cat the file?

                                            wgstarksW 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.