Step1 :

INTRO

Step2:

How To

Step3: 

Assembly PCB & Test

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.