Skip to the content
PCBKitNew board
2 layers20.8 × 34.1 mmReceiver, the printed circuit board in 3D

wireless 2 switch macropad

Size
20.8 × 34.1 mm
Copper layers
2
Thickness
1.6 mm
Parts
14
Nets
13
Pads
112
Tracks, vias
194, 28
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
19 Sep 2026
Updated
16 Oct 2026

Overview

Receiver is an open-source printed circuit board by EwoudVV, from the EwoudVV/clicker repository on GitHub. It is a 2-layer board of 20.8 × 34.1 mm with 14 parts on 13 nets, routed with 194 tracks and 28 vias.

It is built around the ESP32-S3-WROOM-1-N8 and AP2112K-3.3. Its parts include 3 capacitors, 2 ICs, 1 diode and 1 connector. It belongs with the keyboards and input boards and the ESP32 boards of this library.

Main components

2

README

README.md

Clicker

A two-button wireless remote for presentations. I wanted something small that I could use to change slides without staying next to my computer. The buttons default to left and right arrow, but they can be changed to other keys or shortcuts over USB.

Remote and receiver cases

How it works

There are two boards. The battery-powered remote has two Kailh Choc V1 switches and an ESP32-C3. It sends the button states to an ESP32-S3 receiver over ESP-NOW. The receiver plugs into the computer through USB-C and acts as a USB keyboard, so it does not need a separate keyboard driver. The wireless link does not need a router.

Both boards have BOOT and RESET buttons, a programming header, and status LEDs. The remote also has a power switch, a battery connector, and a USB-C charging port. Both PCBs are two-layer boards.

Remote PCB

Remote PCB render

Receiver PCB

Receiver PCB render

Using it

After flashing and pairing the boards:

  1. Plug the receiver into the computer with a USB data cable.
  2. Turn on the remote and open the presentation. Click the presentation window so it has keyboard focus.
  3. Button 1 sends left arrow for the previous slide. Button 2 sends right arrow for the next slide. Use the remapping commands below if the presentation software expects different keys.
  4. Turn off the remote when finished. The current firmware keeps the radio awake while it is on.

Holding a button holds the corresponding keyboard key. If the wireless link stops, the receiver releases the keys after 300 ms to avoid a stuck key.

First setup

The firmware guide has the build commands, board settings, upload instructions, and pin assignments. The remote and receiver use different ESP32 targets, so each needs its own sketch.

Once both are flashed, open each board's USB serial console at 115200 baud with newline enabled. Send status to get its MAC address. Generate a shared pairing key on the computer:

sh
python3 -c 'import secrets; print(secrets.token_hex(16))'

Send pair <receiver-MAC> <key> to the remote, then pair <remote-MAC> <same-key> to the receiver. Replace the placeholders with the actual addresses and the generated 32-character key. Pairing is saved through restarts. unpair clears it.

Changing the buttons

Send these commands to the receiver's USB serial console to use page up and page down:

text
map 1 pageup
map 2 pagedown
status

For the original slide controls, use map 1 left and map 2 right. Changes save immediately and do not need a firmware upload. Letters, other keyboard keys, and modifier combinations are supported too. The firmware guide lists the options. Media keys and sequences of multiple key presses are not implemented.

Parts and assembly

The full BOM covers one remote and one receiver, including the battery, case screws, and PCB orders. It includes supplier links, quantities used, and quantities bought. Some parts come in minimum packs, and each PCB quote is for five boards.

The submitted parts estimate is $40.78, plus a $23.54 provisional shipping and tax allowance, for $64.32. These are the submission quotes, not current checkout prices. Final shipping, taxes, and PCB discounts still need checking before ordering.

Bill of materials

Quantities used are for one working pair. Order quantities include the supplier packs and spare boards. Prices are in USD.

PartUsedOrderUnit priceTotalSupplier
ESP32-S3-WROOM-1-N411 each$4.15$4.15LCSC
ESP32-C3-WROOM-02-N411 each$3.32$3.32LCSC
AP2112K-3.3TRG1 (5 pack)21 pack of 5$0.86$0.86LCSC
TYPE-C-31-M-12 (5 pack)21 pack of 5$0.86$0.86LCSC
Microchip MCP73831T-2ATI/OT12 each$1.40$2.80LCSC
Omron B3U-1000P (5 pack)42 pack of 5$0.94$1.88LCSC
JST B2B-PH-K-S(LF)(SN) (20 pack)11 pack of 20$0.71$0.71LCSC
Kailh Choc V1 red switches22 each$0.60$1.20Keebio
0603WAF1001T5E (100 pack)31 pack of 100$0.26$0.26LCSC
Yageo RC0603FR-0710KL (100 pack)21 pack of 100$0.34$0.34LCSC
0603WAF1003T5E (100 pack)21 pack of 100$0.31$0.31LCSC
0603WAF2001T5E (100 pack)11 pack of 100$0.24$0.24LCSC
Yageo CC0603KRX7R9BB104 (50 pack)21 pack of 50$0.62$0.62LCSC
CL10A106MQ8NNNC (10 pack)21 pack of 10$0.23$0.23LCSC
CL10B105KO8NNNC (50 pack)21 pack of 50$1.06$1.06LCSC
M2 x 6 mm stainless steel screws (25 pack)81 pack of 25$3.49$3.49Keebio
SS14 Schottky diodes (50 pack)21 pack of 50$0.94$0.94LCSC
Kingbright APT1608SURCK red LEDs (5 pack)31 pack of 5$0.63$0.63LCSC
C&K OS102011MS2QN1 power switch11 each$0.66$0.66LCSC
1x3 2.54 mm pin headers (5 pack)21 pack of 5$0.12$0.12LCSC
Adafruit 1578 protected 3.7 V 500 mAh battery11 each$7.95$7.95Mouser
Receiver PCB (5 board batch)11 batch of 5 boards$4.00$4.00JLCPCB
Remote PCB (5 board batch)11 batch of 5 boards$4.00$4.00JLCPCB
0603WAF5101T5E (100 pack)41 pack of 100$0.15$0.15LCSC
Printed case parts44 printed part$0.00$0.00Already owned filament
Printed keycaps22 printed part$0.00$0.00Already owned filament
Tax and shipping allowance1 allowance$23.54$23.54Multiple suppliers
Total estimate$64.32

Assembly

The board-level component lists are remote BOM and receiver BOM. The full BOM records the supplier substitutions selected during sourcing, including the LEDs and power switch that still need checking before purchase.

Solder the small surface-mount parts first, then the modules and connectors. Check orientation and inspect for bridges before powering either board. Bring up the boards on current-limited USB power and check the 3.3 V rails before flashing them.

The remote currently has a 2k charge-program resistor, which sets roughly 500 mA. Check this against the selected battery's charging limit and change the resistor if needed before connecting the battery. Also check the battery connector polarity. Charging, battery runtime, and operation as the battery discharges still need testing.

Cases

Both boards sit on printed supports and are held down by the lids. Each case uses four M2 x 6 mm screws. The remote's battery sits beside the PCB to keep the case thinner.

The switch centres are 16.5 mm apart, so I made narrower printed keycaps with a 1.1 mm gap. Print the stem-fit sample before the keycaps and check that they seat without forcing the switch sockets.

Use PLA or PETG, around 0.16 to 0.20 mm layers, and at least three walls. Select the printer and material in the slicer. Check the USB openings, screw holes, and keycap stems in the slice preview before printing.

Design files and progress

The editable KiCad projects are in remote and receiver. Ready-to-upload Gerber ZIPs are in remote/production and receiver/production. The journal has the design progress.

The boards are routed, the firmware has compiled, and the cases have been checked in CAD. Nothing has been assembled or physically tested yet. The next step is to check the remaining part choices, build a pair, and test charging, button response, wireless range, and case fit.

Designed by EVV

Made for Hack Club Half Life

Parts

14
QtyValueFootprintReferences
25.1kResistor_SMD:R_0603_1608MetricR_CC1, R_CC2
1100nFCapacitor_SMD:C_0603_1608MetricC1
110kResistor_SMD:R_0603_1608MetricR_EN
110uFCapacitor_SMD:C_0603_1608MetricC2
11kResistor_SMD:R_0603_1608MetricR_ACT
11uFCapacitor_SMD:C_0603_1608MetricC3
1ACTLED_SMD:LED_0603_1608MetricD1
1AP2112K-3.3Package_TO_SOT_SMD:SOT-23-5U2
1BOOTButton_Switch_SMD:SW_SPST_B3U-1000PSW_BOOT
1DEBUGConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalHDR1
1ESP32-S3-WROOM-1RF_Module:ESP32-S3-WROOM-1U1
1RESETButton_Switch_SMD:SW_SPST_B3U-1000PSW_RST
1USB-CConnector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12J1

Questions

How big is the Receiver PCB?

It measures 20.8 × 34.1 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Receiver use?

14 parts, built around the ESP32-S3-WROOM-1-N8 and AP2112K-3.3. 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 Receiver KiCad files?

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

Can I use the Receiver design in my own project?

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

More from EwoudVV/clicker

1
  • 2 layers27.9 × 66.1 mmRemote, the printed circuit board in 3D

    Remote

    EwoudVV/clicker

    wireless 2 switch macropad

    26 parts2

Similar boards

  • 2 layers148 × 81 mmCommunicator pcb, the printed circuit board in 3D

    Communicator pcb

    Hack-a-Day/2025-Communicator_Badge

    The 2025 Hackaday Supercon RF Communicator Badge

    58 parts107MIT
  • 2 layersInsta360-joystick, the printed circuit board in 3D

    Insta360-joystick

    jfwoods/insta360link-controller

    A lightweight daemon, CLI tool, and (optional) firmware + hardware for controlling an Insta360 Link webcam without the first-party software.

    58 parts9
  • 4 layers108.6 × 87.7 mmBlinky badge light, the printed circuit board in 3D

    Blinky badge light

    rowr111/blinky-badge-light

    lighting badge with unique patterns and sound reactivity

    123 parts9MIT
  • 2 layers35 × 50 mmImu rc hand unit, the printed circuit board in 3D

    Imu rc hand unit

    DimitriOnLSD/imu-rc

    Gesture-based RC car controller using ESP32-S3, BLE, LSM6DSO IMU, OLED display, and LiPo battery with USB-C charging.

    76 parts7MIT
  • 4 layers60 × 60 mmESP32 Robo Dev Board, the printed circuit board in 3D

    ESP32 Robo Dev Board

    Amoskeag/RoboDojo

    Super Cool Small Form Factor Robotics

    72 parts6BSD-2-Clause
  • 2 layers51.1 × 95 mmTalk e, the printed circuit board in 3D

    Talk e

    milovanpms/talk-e

    📻 — A simple LoRa-based talkie-walkie built on ESP32, operating on the 433 MHz frequency band for long-range, low-power wireless communication.

    75 parts4
  • 2 layers33 × 50 mmHema console, the printed circuit board in 3D

    Hema console

    rapha-tech/ESP32-hema-console

    New PCB for the small console from hema to use an ESP32

    59 parts4
  • 2 layers44.7 × 93.6 mmUltisense, the printed circuit board in 3D

    Ultisense

    darshg321/Ultisense

    an esp32-s3 devboard made to sense as many things as possible

    94 parts3