Skip to the content
PCBKitNew board
2 layers45.3 × 75.9 mmController, the printed circuit board in 3D

Custom ESP32 BLE HID controller + matching PCB design.

Size
45.3 × 75.9 mm
Copper layers
2
Thickness
1.6 mm
Parts
14
Nets
16
Pads
71
Tracks, vias
164, 0
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
14 Jun 2025
Updated
16 Feb 2026

Overview

Controller is an open-source printed circuit board by ZBZFirst, from the ZBZFirst/KiCad-Projects repository on GitHub. It is a 2-layer board of 45.3 × 75.9 mm with 14 parts on 16 nets, routed with 164 tracks and 0 vias.

Its parts include 8 switches and 1 IC.

README

README.md

ESP32 Controller


Reference Images

PCB Layout

Attachment

Finished Build


Custom ESP32 BLE HID controller + matching PCB design.

This project combines:

  • ESP32 firmware (BLE composite keyboard + mouse)
  • KiCad PCB layout for a dedicated 7-button controller
  • Multi-mode input system for productivity + automation

Designed as a personal hardware controller that behaves like a wireless keyboard/mouse macro pad.


Features

  • BLE composite HID device (keyboard + mouse)
  • 7 physical buttons
  • Mode switching system
  • Auto-click / auto-key spam mode
  • Windows quick-launch macros
  • Non-blocking firmware architecture
  • Visual LED status patterns
  • Custom PCB layout (KiCad)

Hardware

Board

ESP32-based custom PCB with:

  • 7 tactile switches
  • Onboard LED status indicator
  • ESP32 dev module header
  • Dedicated GPIO routing per button

KiCad layout included in repository.

File:

text
hardware/Controller.kicad_pcb

This board is designed specifically to run the included firmware.


Firmware Behavior

The controller has 3 operating groups.

Button 6 cycles groups.
Button 7 forces disconnect (reboot).


Group 1 — Default Productivity

ButtonAction
B1Ctrl + C
B2Ctrl + V
B3Ctrl + X
B4Ctrl + Z
B58-second mouse movement run

LED: solid ON when connected


Group 2 — Work Launch Macros

ButtonAction
B1Windows search → cmd → ssh CB37
B2Launch Edge
B3Launch Super
B4Launch Arduino
B5Launch Bluetooth

LED: 2 blink pattern


Group 3 — Auto Mode

Toggle behaviors:

ButtonMode
B1Auto left click
B2Auto right click
B3Auto middle click
B4Spam key “E”
B5Spam key “F”

Press the same button again to stop.

LED: 3 blink pattern


LED Status

  • Off → not connected
  • Solid → group 1
  • 2 blinks → group 2
  • 3 blinks → group 3

Blink sequence repeats every 2 seconds.


Installation

Requirements

  • Arduino IDE
  • ESP32 board package
  • NimBLE / BLE HID libraries

Open:

text
firmware/PaulsESP32.ino

Compile and upload to the board.


Usage

  1. Power the controller
  2. Pair over Bluetooth
  3. Use button 6 to select mode
  4. Use buttons 1–5 for actions

Designed primarily for Windows but functions as a generic BLE HID device.


Project Structure

text
firmware/
  PaulsESP32.ino

hardware/
  Controller.kicad_pcb
  schematics/

Credits

PCB + firmware design: Paul Casillas
Artwork: Bree Pierce

Personal project.


License

MIT — free to modify and build.

file is in

AutoClicker/AutoClickerbyController.ino

Parts

14
QtyValueFootprintReferences
7SW_PushButton_Switch_THT:SW_PUSH_6mm_H5mmSW1, SW2, SW3, SW4, SW5, SW6, SW7
4R_Potentiometer_USPotentiometer_THT:Potentiometer_Alps_RK09Y11_Single_HorizontalRV1, RV2, RV3, RV4
110K ArrayUserDefined:ResistorArrayRN1
1SW_SPSTButton_Switch_THT:SW_DIP_SPSTx01_Slide_9.78x4.72mm_W7.62mm_P2.54mmSW9
1~Espressif:ESP32-DEVKITV1-Paul-HalfU1

Questions

How big is the Controller PCB?

It measures 45.3 × 75.9 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Controller use?

14 parts. 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 Controller KiCad files?

From the ZBZFirst/KiCad-Projects repository on GitHub, at the commit this page was made from: the board is Controller/Controller.kicad_pcb and its schematic Attachment2/Attachment2.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Controller design in my own project?

Its repository states no licence, so its author keeps all rights: ask ZBZFirst before reusing the design.

More from ZBZFirst/KiCad-Projects

5
  • 2 layers52.8 × 49 mmAttachment2, the printed circuit board in 3D

    Attachment2

    ZBZFirst/KiCad-Projects

    Custom ESP32 BLE HID controller + matching PCB design.

    6 parts1
  • 2 layers25.4 × 17.8 mmSHT40, the printed circuit board in 3D

    SHT40

    ZBZFirst/KiCad-Projects

    Custom ESP32 BLE HID controller + matching PCB design.

    5 parts1
  • 2 layers25.4 × 17.8 mmLPS22, the printed circuit board in 3D

    LPS22

    ZBZFirst/KiCad-Projects

    Custom ESP32 BLE HID controller + matching PCB design.

    3 parts1
  • 2 layersReceiver, the printed circuit board in 3D

    Receiver

    ZBZFirst/KiCad-Projects

    Custom ESP32 BLE HID controller + matching PCB design.

    3 parts1
  • 2 layersGlove, the printed circuit board in 3D

    Glove

    ZBZFirst/KiCad-Projects

    Custom ESP32 BLE HID controller + matching PCB design.

    2 parts1

Similar boards

  • 2 layers116.8 × 30 mmType d, the printed circuit board in 3D

    Type d

    google/mozc-devices

    Circuit diagrams and firmware source code for Gboard DIY keyboards

    14 parts3kApache-2.0
  • 2 layers32 × 22 mmDiff driver, the printed circuit board in 3D

    Diff driver

    rene-dev/stmbl

    AC Servo Driver for STM32F4

    14 parts990GPL-3.0
  • 2 layers34 × 45 mm2032Charger, the printed circuit board in 3D

    2032Charger

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    14 parts915
  • 2 layers34 × 109.9 mmTdisplay s3, the printed circuit board in 3D

    Tdisplay s3

    landonr/homeThing

    Wifi Smart Home Remotes that run on ESPHome

    14 parts551GPL-3.0
  • 2 layers45.3 × 42.7 mmMainPcb, the printed circuit board in 3D

    MainPcb

    adamb314/ServoProject

    Getting the most out of your hobby servo

    14 parts545
  • 2 layers42.5 × 28.8 mmC5VRX JACK DIY, the printed circuit board in 3D

    C5VRX JACK DIY

    Twotoz/C5VRX

    Ultra-minimal, zero-CPU 5.8 GHz analog FPV video receiver using ESP32-C5 Wi-Fi 6 PHY MODEM_DIAG, BitScrambler WBFM demodulation & resistor DAC CVBS

    14 parts515GPL-3.0
  • 2 layers62 × 24 mmMai button, the printed circuit board in 3D

    Mai button

    whowechina/mai_pico

    Pico controller for Maimai

    14 parts475