Skip to the content
PCBKitNew board
4 layers98.7 × 77.3 mmAkeypad, the printed circuit board in 3D

8khz polling rate keypad, uses STM32F405 and USB3300, powered by QMK.

Size
98.7 × 77.3 mm
Copper layers
4
Thickness
4.69 mm
Parts
69
Nets
101
Pads
400
Tracks, vias
740, 90
Pours
2
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
15 Jan 2023
Updated
15 Jan 2023

Overview

Akeypad is an open-source printed circuit board by luantty2, from the luantty2/akeypad repository on GitHub, published under the GPL-3.0 licence. It is a 4-layer board of 98.7 × 77.3 mm with 69 parts on 101 nets, routed with 740 tracks and 90 vias.

It is built around the 74LVC1G125, USB3300-EZK and 74HC165D, with the TS3USB221RSER-TP, XC6206P332MR and EVQPLHA15 among its other parts. Its parts include 26 capacitors, 14 switches, 11 resistors, 8 ICs and 3 connectors. It belongs with the STM32 boards of this library.

Main components

6

README

README.md

akeypad

8khz polling rate keypad, uses STM32F405 and USB3300, powered by QMK.

This project is just a prototype, cases, plates and other keyboard components are not included.

akeypad

PCB

pcb_2

Firmware

The code can be found on my Fork.

Bootloader

STM32f405/7xx should comes with a built-in bootloader, but sadly it doesn't seem to work on USB HS interface, if someone uses the default bootloader, he has to manually switch to FS port to upload firmware, then switch back to HS port to use his keyboard.

To address the issue, we can use a mux chip with tinyuf2 bootloader to automatically do that trick, then you don't bother switching port.

The mux chip we used here is TS3USB221, connect its 'S' pin to B14 of STM32. In normal operation, pull the pin to low to select HS interface, in bootloader mode, write this pin to high to select FS interface.

The tinyuf2 bootloader code can be found here, if you wish to change B14 to other pin, you can modify it in board.h.

c
//--------------------------------------------------------------------+
// Custom GPIO, used for USB mux
//--------------------------------------------------------------------+

#define CUSTOM_GPIO_PORT      GPIOB
#define CUSTOM_GPIO_PIN       GPIO_PIN_14

Parts

69
QtyValueFootprintReferences
14100nFCapacitor_SMD:C_0402_1005MetricC2, C3, C8, C10, C12, C13, C14, C15, C19, C20, C21, C22, C23, C24
12SW_PushMX_Only:MXOnly-1U-NoLEDSW3, SW4, SW5, SW6, SW7, SW8, SW9, SW10, SW11, SW12, SW13, SW14
41uFCapacitor_SMD:C_0603_1608MetricC1, C16, C17, C18
45.1kResistor_SMD:R_0402_1005MetricR1, R2, R8, R9
49pFCapacitor_SMD:C_0402_1005MetricC6, C7, C25, C26
4R_Pack04Resistor_SMD:R_Array_Convex_4x0603RN1, RN2, RN3, RN4
210kResistor_SMD:R_0402_1005MetricR4, R5
21kResistor_SMD:R_0402_1005MetricR3, R10
22.2uFCapacitor_SMD:C_0603_1608MetricC4, C5
24.7uFCapacitor_SMD:C_0603_1608MetricC9, C11
274HC165Package_SO:SOP-16_3.9x9.9mm_P1.27mmU6, U7
2EVQPLHA15Button_Switch_SMD:SW_SPST_Panasonic_EVQPL_3PL_5PL_PT_A15SW1, SW2
2USB_C_Receptacle_USB2.0Connector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12J1, J2
110KResistor_SMD:R_0402_1005MetricR11
112MHzCrystal:Crystal_SMD_3225-4Pin_3.2x2.5mmY2
112kResistor_SMD:R_0402_1005MetricR7
11MResistor_SMD:R_0402_1005MetricR6
124MHzCrystal:Crystal_SMD_2016-4Pin_2.0x1.6mmY1
174LVC1G125Package_TO_SOT_SMD:SOT-23-5U8
1Conn_SWDConnector_PinHeader_1.27mm:PinHeader_1x04_P1.27mm_VerticalJ3
1MB85RS16Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU1
1STM32F405RGTxPackage_QFP:LQFP-64_10x10mm_P0.5mmU4
1TS3USB221RSERnrfmicro:UQFN-10U2
1USB3300-EZKPackage_DFN_QFN:QFN-32-1EP_5x5mm_P0.5mm_EP3.45x3.45mmU3
1WhiteLED_SMD:LED_0402_1005MetricD1
1XC6206P332MRPackage_TO_SOT_SMD:SOT-23U5

Questions

How big is the Akeypad PCB?

It measures 98.7 × 77.3 mm and has 4 copper layers, 4.69 mm thick.

What parts does the Akeypad use?

69 parts, built around the 74LVC1G125, USB3300-EZK, 74HC165D and TS3USB221RSER-TP. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Akeypad KiCad files?

From the luantty2/akeypad repository on GitHub, at the commit this page was made from: the board is akeypad_pcb/akeypad.kicad_pcb and its schematic akeypad_pcb/akeypad.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Akeypad design in my own project?

Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 11 layers284.7 × 100.3 mmAzimuth PCB, the printed circuit board in 3D

    Azimuth PCB

    MysteryAssss/Keyboard_PCB

    172 parts
  • 4 layers127.9 × 78.5 mmController V4, the printed circuit board in 3D

    Controller V4

    a-conspiracy-theory/gamepad-pcb

    99 parts
  • 2 layers68.6 × 53.3 mmArdas shield, the printed circuit board in 3D

    Ardas shield

    UMONS-GFA/kicad-projects

    Open your .sch file -> Preferences -> Component libraries

    40 parts1
  • 2 layers200 × 115 mmMusicbrain busboard v2, the printed circuit board in 3D

    Musicbrain busboard v2

    MarkWestbroek/MusicBrain

    A central brain running on teensy or a lighter MCU to process any control signals (MIDI, CV, our own) into the same but adding logic, ADSRs, DCOs, CV matrices etc. to it

    94 partsMIT
  • 2 layers50 × 35 mmM5stack board unitree brushless digital servo, the printed circuit board in 3D

    M5stack board unitree brushless digital servo

    kim-xps12/m5stack_board_unitree_brushless_digital_servo

    Unitree Servo UART Board for M5Stack: auto-direction 4 Mbps half-duplex TTL bus for Unitree J288 / S288 brushless digital servos (KiCad 9, JLCPCB PCBA)

    29 parts1MIT
  • 4 layers142.2 × 48 mmController, the printed circuit board in 3D

    Controller

    purdeaandrei/MiniRazz

    MiniRazz - open hardware controller replacement for the Unicomp Mini M keyboard

    74 parts14CERN-OHL-P-2.0