Skip to main content

RGB LED

The following sysfs entries are available under /sys/firmware/beepy:

  • led: 0 to disable LED, 1 to enable. Write-only
  • led_red, led_green, led_blue: set LED color intensity from 0 to 255. Write- only

RGB LED over I2C

The RGB LED is connected to the RP2040. When the keyboard driver is unloaded via rmmod beepy-kbd, they can be controlled directly by the Pi via I²C.

The LED color on the Beepy is exposed on I2C bus 1 at the chip address 0x1F.

Controls are available at the following specific data addresses:

FunctionReadWrite
Power0x200xA0
Red0x210xA1
Green0x220xA2
Blue0x230xA3

To get/set the LED color on the Beepy, you can read/write to the above registers over I2C. The values are in the range of 0x00 - 0xFF.

Note: write addresses are the read address masked with 0x80.

A value of 0 in the power register represents the LED's off state, while any other value represents on.

Example

To set the RGB values to red and turn the LED on from the command line:

# Format:
# i2cset -y [i2cbus] [chip-address] [data-address] value
i2cset -y 1 0x1F 0xA1 0xFF
i2cset -y 1 0x1F 0xA2 0x00
i2cset -y 1 0x1F 0xA3 0x00
i2cset -y 1 0x1F 0xA0 0xFF