98 lines
2.1 KiB
Python
98 lines
2.1 KiB
Python
|
import board
|
||
|
|
||
|
from kmk.extensions.LED import LED
|
||
|
from kmk.extensions.media_keys import MediaKeys
|
||
|
from kmk.extensions.peg_oled_Display import (
|
||
|
Oled,
|
||
|
OledData,
|
||
|
OledDisplayMode,
|
||
|
OledReactionType,
|
||
|
)
|
||
|
from kmk.extensions.RGB import RGB, AnimationModes
|
||
|
from kmk.keys import KC
|
||
|
from kmk.kmk_keyboard import KMKKeyboard
|
||
|
from kmk.scanners import DiodeOrientation
|
||
|
|
||
|
keyboard = KMKKeyboard()
|
||
|
|
||
|
# I2C pins for the mini OLED display
|
||
|
keyboard.SCL = board.D5
|
||
|
keyboard.SDA = board.D4
|
||
|
|
||
|
oled_ext = Oled(
|
||
|
OledData(
|
||
|
corner_one={0: OledReactionType.STATIC, 1: ['ANAVI Macro Pad 12']},
|
||
|
corner_two={0: OledReactionType.STATIC, 1: [' ']},
|
||
|
corner_three={0: OledReactionType.STATIC, 1: ['Open Source']},
|
||
|
corner_four={0: OledReactionType.STATIC, 1: [' ']},
|
||
|
),
|
||
|
oWidth=128,
|
||
|
oHeight=64,
|
||
|
toDisplay=OledDisplayMode.TXT,
|
||
|
flip=False,
|
||
|
)
|
||
|
keyboard.extensions.append(oled_ext)
|
||
|
|
||
|
led_ext = LED(
|
||
|
led_pin=[
|
||
|
board.D0,
|
||
|
],
|
||
|
brightness=100,
|
||
|
brightness_step=5,
|
||
|
brightness_limit=100,
|
||
|
breathe_center=1.5,
|
||
|
animation_mode=AnimationModes.STATIC,
|
||
|
animation_speed=1,
|
||
|
user_animation=None,
|
||
|
val=100,
|
||
|
)
|
||
|
keyboard.extensions.append(led_ext)
|
||
|
|
||
|
# WS2812B LED strips on the back
|
||
|
underglow = RGB(
|
||
|
pixel_pin=board.D10,
|
||
|
num_pixels=6,
|
||
|
val_limit=100,
|
||
|
val_default=25,
|
||
|
animation_mode=AnimationModes.RAINBOW,
|
||
|
)
|
||
|
keyboard.extensions.append(underglow)
|
||
|
|
||
|
# Neopixel on XIAO RP2040
|
||
|
frontglow = RGB(
|
||
|
pixel_pin=board.NEOPIXEL,
|
||
|
num_pixels=1,
|
||
|
val_limit=100,
|
||
|
val_default=25,
|
||
|
animation_mode=AnimationModes.RAINBOW,
|
||
|
)
|
||
|
keyboard.extensions.append(frontglow)
|
||
|
|
||
|
keyboard.col_pins = (board.D6, board.D8, board.D9)
|
||
|
keyboard.row_pins = (board.D1, board.D2, board.D3, board.D7)
|
||
|
keyboard.diode_orientation = DiodeOrientation.COL2ROW
|
||
|
|
||
|
media_keys = MediaKeys()
|
||
|
keyboard.extensions.append(media_keys)
|
||
|
|
||
|
# Matrix 4x3 keymap, 12 keys in total
|
||
|
keyboard.keymap = [
|
||
|
[
|
||
|
KC.N1,
|
||
|
KC.N2,
|
||
|
KC.N3,
|
||
|
KC.N4,
|
||
|
KC.N5,
|
||
|
KC.N6,
|
||
|
KC.N7,
|
||
|
KC.N8,
|
||
|
KC.N9,
|
||
|
KC.N0,
|
||
|
KC.A,
|
||
|
KC.B,
|
||
|
]
|
||
|
]
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
keyboard.go()
|