Step1 :
Step2:
Step3:
Final:
PCBWAY
I choose PCB Way because I can order jobs online, quality work, fast production process. very fast delivery Most importantly, no matter where you are, you can order to produce, suitable for the office, very DIY.
sample code for 16 key
use kmk library
Passgate = KMKKeyboard()
#Passgate.matrix = KeysScanner([])
media_keys = MediaKeys()
Passgate.extensions.append(media_keys)
Passgate.col_pins = (board.GP1,board.GP2,board.GP3,board.GP5) #
Passgate.row_pins = (board.GP19,board.GP18,board.GP17,board.GP16) #
Passgate.diode_orientation = DiodeOrientation.COL2ROW
# Rotary encoder that also acts as a key
encoder_handler = EncoderHandler()
encoder_handler.pins = ((board.GP13, board.GP14, board.GP15),)
encoder_handler.map = (((KC.VOLD, KC.VOLU, KC.MUTE),),)
Passgate.modules.append(encoder_handler)
#----------------------------------
WIDTH = 128
HEIGHT = 32
CENTER_X = int(WIDTH/2)
CENTER_Y = int(HEIGHT/2)
displayio.release_displays()
SDA = board.GP8
SCL = board.GP9
#i2c = busio.I2C(SCL, SDA)
#if(i2c.try_lock()):
# print("i2c.scan(): " + str(i2c.scan()))
# i2c.unlock()
#print()
#display_bus = displayio.I2CDisplay(i2c, device_address=60)
#display = adafruit_displayio_ssd1306.SSD1306(display_bus, width=128, height=32,rotation=0)
WIDTH = 128
HEIGHT = 32 # Change to 64 if needed
BORDER = 2#5
#-------------------------------------------------------------------------
# Update this to match the number of NeoPixel LEDs connected to your
# WS2812B LED strips on the back
underglow = RGB(
pixel_pin=board.GP0,
num_pixels=18,
val_limit=100,
val_default=25,
animation_mode=AnimationModes.BREATHING_RAINBOW,#SWIRL,#RAINBOW,
)
#ShortCut SOLIDWORK
SZoom_IN = KC.LSFT(KC.Z)
SZoom_OUT = KC.Z
Norm = KC.LSFT(KC.N)
Font = KC.LCTL(KC.P7)
Passgate.extensions.append(underglow)
# Passgate 16 KEY
# ,--------------
# | in | ot |
# |------+------+------+------|
# | 7 | 8 | 9 | F |
# |------+------+------+------|
# | 4 | 5 | 6 | N |
# |------+------+------+------|
# | 1 | 2 | 3 | |
# |------+------+------+ Play |
# | 0 | . | |
# |------+------+------+------|
Passgate.keymap = [
[KC.K, KC.P2, KC.P9,KC.MPLY,
KC.P7, KC.P8,KC.P6,Font ,
KC.P4, KC.P5,KC.P3,KC.ENTER,
KC.P1, KC.P2,KC.P0,KC.BSPACE,
],
]
PCB Order:
https://www.pcbway.com/project/shareproject/DIY_Macropad_Keyboard_By_raspberry_pi_PICO_30df9a23.html
You can contact
E-mail: spin5099@gmail.com
Youtube: https://www.youtube.com/@somethinginterestingthai
please clicking on Subscribe youtube. ( - _ -)/\
My follower count is very low, only 16.