5
mirror of https://github.com/FrameworkComputer/InputModules.git synced 2026-04-08 08:37:05 +00:00
Daniel Schaefer 2b4ffd935c Keyboard: Directly document led positions
Signed-off-by: Daniel Schaefer <dhs@frame.work>
2026-01-20 10:50:57 +08:00
..

Framework Laptop 16 Keyboard

We are shipping 4 different keyboard types:

  • RGB ANSI Keyboard
  • White backlight ANSI/ISO Keyboard
  • White backlight Numpad
  • RGB Macropad

All of them are powered by a Raspberry Pi RP2040 microcontroller.

Pinouts

Below are the pinouts of the mass production units.

RP2040 MCU

Pin Name To Direction Config Modules
GPIO0 Sleep EC IN Pullup, low active All
GPIO1 MUX_A SGM48751 Mux OUT All
GPIO2 MUX_B SGM48751 Mux OUT All
GPIO3 MUX_C SGM48751 Mux OUT All
GPIO4 MUX_ENABLE SGM48751 Mux OUT All
GPIO5 BOOT_DONE All
GPIO6 Reserved KSI5 High-Z Unused All
GPIO7 Reserved KSI5 High-Z Unused All
GPIO8-23 KSO1-15 All
GPIO24 CAPS_LED Capslock LED OUT High Active RGB & White Keyboard
GPIO25 BACKLIGHT Backlight LED OUT High Active White Keyboard, Numpad
GPIO26 I2C1_SDA IS31FL3743A IN/OUT RGB Keyboard, Macropad
GPIO27 I2C1_SCL IS31FL3743A OUT RGB Keyboard, Macropad
GPIO28 ANALOG_IN ISGM48751 Mux IN KSI scan ADC Input All
GPIO29 SDB IS31FL3743A OUT High active RGB Keyboard, Macropad

IS31FL3743A LED Controller

Documentation and Datasheet of this controller are publicly available.

On the RGB keyboard two controllers are needed to drive all LEDs. The Macropad only has a single one.

Pin To Direction Config
SDA RP2040 IN/OUT
SCL RP2040 IN
SDB RP2040 IN High active
ISET
ADDR
SW1-SW9 LED OUT See table below
SW10-SW11 NC Unused
CS1-CS18 LED OUT See table below
SYNC IS31FL3743A IN/OUT

I2C Addresses:

  • RGB Keyboard: 0x20 and 0x23
  • Macropad: 0x20

Please refer to the controller's datasheet for additional information about how to program it.

RGB Keyboard

Please refer to the reference code:

Connected pins on both ICs:

  • SW1-SW9
  • SW01-SW18

LEDs are arrange like this (Left Address 0x20, Right Address 0x23)

┌─────┬───┬───┬───┬───┬───┬───┬───┬ ┬───┬───┬───┬────┬───┬─────┐ │43 31│20 │ 8 │ 2 │14 │26 │37 │49 │ │ 8 │14 │20 │2 38│32 │445 0│ ├───┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬ ┴─┬─┴─┬─┴─┬─┴─┬──┴┬──┴─────┤ │42 │30 │19 │ 7 │ 1 │13 │25 │36 │48 │ │26 │25 │37 │31 │43 49 │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴ ┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬──────┤ │41 29│18 │ 6 │ 0 │12 │24 │35 │47 │ │ 7 │13 │19 │ 1 │36 │ 42 │ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴ ┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴──────┤ │334522│10 │ 4 │16 │28 │39 │51 │ │ 6 │12 │18 │ 0 │24 │ 30 48 │ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴ ┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─────────┤ │32 21 9 │ 3 │15 │27 │38 │50 │ │ 9 │15 │21 │ 3 │27 │33 45 51 52│ ├────┬───┼───┼───┼───┴───┴───┴ ┬───┼ ┼───┴───┴───┴───┴───┼───┼───┼───┴┬───┬──────┤ │ │ │ │ │ │ │ │ │ │ │ │39 │ │ │44 5│ │11 │17 │ │ 5 │ │11 17 23 10 16 22│ 4 │28 │ 34 ├───┤ 46 │ │ │ │ │ │ │ │ │ │ │ │ │40 │ │ └────┴ ┴───┴───┴─ ┴───┴───┴───┴───────────────────┴───┴───┴────┴───┴──────┘

Most keys have one, large keys have multiple RGB LEDs. LED 0 is controlled by registers 0, 1, 2. LED 1 by 3, 4, 5 and so on. LED colors are arranged in the order: Blue, Green, Red.

Macropad

Connected pins:

  • SW1-SW4
  • CS01-CS18

LEDs are arranged like this:

┌──┬──┬──┬──┐ │13│12│17│16│ ├──┼──┼──┼──┤ │ 1│ 0│ 5│ 4│ ├──┼──┼──┼──┤ │ 7│ 6│11│10│ ├──┼──┼──┼──┤ │19│18│23│22│ ├──┼──┼──┼──┤ │ 8│20│21│ 9│ ├──┼──┼──┼──┤ │ 2│14│15│ 3│ └──┴──┴──┴──┘

Each key has one RGB LED, so LED 0 is controlled by registers 0, 1, 2. LED 1 by 3, 4, 5 and so on. LED colors are arranged in the order: Blue, Green, Red.

Keyboard Matrix

Please refer to the reference code:

License

Input Modules © 2023-2026 by Framework Computer Inc is licensed under CC BY 4.0. To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/