code: def set_extana_led(self, r, g, b, check_state=True):
          
  
          r, g, b = map(int, [r, g, b])
  
          if min([r, g, b]) < LED_MIN or max([r, g, b]) > LED_MAX:
              logger.warn('RGB channel values must be {}-{}'.format(LED_MIN, LED_MAX))
              return False
  
          if check_state and (r, g, b) == self.led_state:
              return True
  
          # internally range is 0-3000
          ir, ig, ib = map(lambda x: int(x * (INT_LED_MAX / LED_MAX)), [r, g, b])
          val = struct.pack('<HHH', ir, ig, ib)
  
          extana_led = self.get_characteristic_handle_from_uuid(UUID_EXTANA_LED)
          if extana_led is None:
              logger.warn('Failed to find handle for ExtAna LED')
              return None
              
          if not self.dongle._write_attribute(self.conn_handle, extana_led, val):
              return False
  
          # update cached LED state if successful
          self.led_state = (r, g, b)
          return True
docs: Update the colour of the RGB LED on the SK8-ExtAna board.
  
          Args:
              r (int): red channel, 0-255
              g (int): green channel, 0-255
              b (int): blue channel, 0-255
              check_state (bool): if True (default) and the locally cached LED state matches
                  the given (r, g, b) triplet, pysk8 will NOT send any LED update command to
                  the SK8. If you want to force the command to be sent even if the local state
                  matches the new colour, set this to False. 
  
          Returns:
              True on success, False if an error occurred.