Skip to the content
PCBKitNew board
2 layers27.9 × 66.1 mmRemote, the printed circuit board in 3D

wireless 2 switch macropad

Size
27.9 × 66.1 mm
Copper layers
2
Thickness
1.6 mm
Parts
26
Nets
22
Pads
128
Tracks, vias
279, 23
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
19 Sep 2026
Updated
16 Oct 2026

Overview

Remote is an open-source printed circuit board by EwoudVV, from the EwoudVV/clicker repository on GitHub. It is a 2-layer board of 27.9 × 66.1 mm with 26 parts on 22 nets, routed with 279 tracks and 23 vias.

It is built around the ESP32-C3-WROOM-02-H4, AP2112K-3.3 and MCP73831, with the SS14 among its other parts. Its parts include 3 capacitors, 3 ICs, 2 switches and 1 connector. It belongs with the keyboards and input boards and the ESP32 and RISC-V boards of this library.

Main components

4

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

26
QtyValueFootprintReferences
2100kResistor_SMD:R_0603_1608MetricR_DN, R_UP
21kResistor_SMD:R_0603_1608MetricR_CHG, R_STAT
25.1kResistor_SMD:R_0603_1608MetricR_CC1, R_CC2
2SS14Diode_SMD:D_SMAD_VBAT, D_VBUS
1100nFCapacitor_SMD:C_0603_1608MetricC1
110kResistor_SMD:R_0603_1608MetricR_EN
110uFCapacitor_SMD:C_0603_1608MetricC2
11uFCapacitor_SMD:C_0603_1608MetricC3
12kResistor_SMD:R_0603_1608MetricR_PROG
1AP2112K-3.3Package_TO_SOT_SMD:SOT-23-5U3
1BATConnector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalJ_BAT
1BOOTButton_Switch_SMD:SW_SPST_B3U-1000PSW_BOOT
1CHGLED_SMD:LED_0603_1608MetricD_CHG
1Choc1clicker:Choc_V1_PG1350SW1
1Choc2clicker:Choc_V1_PG1350SW2
1DEBUGConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalHDR1
1ESP32-C3-WROOM-02RF_Module:ESP32-C3-WROOM-02U1
1MCP73831Package_TO_SOT_SMD:SOT-23-5U2
1POWERButton_Switch_THT:SW_Slide_SPDT_Straight_CK_OS102011MS2QSW_PWR
1RESETButton_Switch_SMD:SW_SPST_B3U-1000PSW_RST
1STATUSLED_SMD:LED_0603_1608MetricD_STAT
1USB-CConnector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12J1

Questions

How big is the Remote PCB?

It measures 27.9 × 66.1 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Remote use?

26 parts, built around the ESP32-C3-WROOM-02-H4, AP2112K-3.3, MCP73831 and SS14. 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 Remote KiCad files?

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

Can I use the Remote 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 layers20.8 × 34.1 mmReceiver, the printed circuit board in 3D

    Receiver

    EwoudVV/clicker

    wireless 2 switch macropad

    14 parts2

Similar boards

  • 4 layers52.9 × 79.1 mmRealFCV1, the printed circuit board in 3D

    RealFCV1

    bapsenpai-blip/STM32F405-4-layer-flight-controller

    My first PCB revision, not fabricated yet, looking for design review

    94 parts1
  • 2 layers40 × 40 mmProject2, the printed circuit board in 3D

    Project2

    Parwaz-Dynamics/Embedded-In-Bones

    My personal embedded systems learning journey projects.

    48 parts
  • 2 layers25.1 × 25.2 mmMini Environmental Sensor, the printed circuit board in 3D

    Mini Environmental Sensor

    MbFredys/PCB-Mini-Environmental-Sensor

    Compact ESP32-C3 environmental-sensor PCB design using BME280 and SGP40 for temperature, humidity, pressure, and VOC-based air-quality sensing.

    34 parts14
  • 2 layers120 × 66.5 mmMinimum viable badge, the printed circuit board in 3D

    Minimum viable badge

    CCHS-Melbourne/Minimum-viable-badge

    A minimum viable badge design.

    76 parts2
  • 2 layers20.1 × 37.4 mmBatteryCharger, the printed circuit board in 3D

    BatteryCharger

    Fangoboyo/carrie-shenzhen

    An embedded audio-recording smart pen shaped like a carrot, featuring a custom pot docking station for charging and data transfer. Powered by the Luckfox Pico Mini B (RV1103).

    24 parts
  • 4 layers116.3 × 163 mmLayer test, the printed circuit board in 3D

    Layer test

    voncloft/Macropad

    122 parts
  • 2 layers84.5 × 80.3 mmSpore, the printed circuit board in 3D

    Spore

    PWRFLcreative/Spore

    Spore WiFi LED module. Firmware and Hardware.

    85 parts28GPL-3.0