1+ import board
2+
3+ from kmk .kmk_keyboard import KMKKeyboard
4+ from kmk .scanners .keypad import KeysScanner
5+ from kmk .keys import KC
6+ from kmk .scanners import DiodeOrientation
7+ from kmk .extensions .display import Display , TextEntry , ImageEntry
8+ from kmk .extensions .display .ssd1306 import SSD1306
9+ from kmk .extensions .RGB import RGB , AnimationModes
10+ import busio
11+
12+ keyboard = KMKKeyboard ()
13+
14+ keyboard .col_pins = (board .D10 , board .D9 , board .D8 , board .D7 )
15+ keyboard .row_pins = (board .D0 , board .D1 , board .D2 , board .D3 )
16+ keyboard .diode_orientation = DiodeOrientation .COL2ROW
17+
18+ keyboard .keymap = [
19+ [
20+ KC .N7 , KC .N8 , KC .N9 , KC .KP_ASTERISK ,
21+ KC .N4 , KC .N5 , KC .N6 , KC .KP_MINUS ,
22+ KC .N1 , KC .N2 , KC .N3 , KC .KP_SLASH ,
23+ KC .BSPC , KC .N0 , KC .KP_DOT , KC .KP_ENTER ,
24+ ]
25+ ]
26+
27+ i2c_bus = busio .I2C (board .GP_SCL , board .GP_SDA )
28+
29+ driver = SSD1306 (
30+ i2c = i2c_bus ,
31+ device_address = 0x3C ,
32+ )
33+
34+ display = Display (
35+ display = display_driver ,
36+ entries = [
37+ TextEntry (text = 'Full-Size Hackpad.V1' , x = 0 , y = 0 , y_anchor = 'M' ),
38+ ],
39+ width = 128 ,
40+ height = 32 ,
41+ dim_time = 10 ,
42+ dim_target = 0.2 ,
43+ off_time = 1200 ,
44+ brightness = 1 ,
45+ )
46+
47+ keyboard .extensions .append (display )
48+
49+
50+ rgb = RGB (
51+ pixel_pin = board .D6 ,
52+ num_pixels = 16 ,
53+ animation_mode = AnimationModes .STATIC ,
54+ val = 100 ,
55+ hue = 230 ,
56+ )
57+ keyboard .extensions .append (rgb )
58+
59+ if __name__ == '__main__' :
60+ keyboard .go ()
0 commit comments