

Remote
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
4ESP32-C3-WROOM-02-H4
SMD,20x18mm-105dBm -40℃~+105℃ 2.4GHz 20.5dBm 345mA 3V~3.6V 82mA Bluetooth5.0 ESP32-C3 On-board PCB Antenna UART、SPI、I2C、I2S、USB SMD,20x18mm WiFi Modules ROHSEspressif SystemsWiFi ModulesAP2112K-3.3
SOT253.3V 600mA CMOS Low Dropout Linear Regulator with EnableDiodes IncorporatedUncategorisedMCP73831
UncategorisedMicrochip TechnologySS14
SMA(DO-214AC)-55℃~+150℃ 1A 25A 300uA@40V 40V 550mV@1A Independent SMA(DO-214AC) Schottky Diodes ROHSMDDSchottky Diodes
README
README.mdClicker
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.

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
Receiver PCB
Using it
After flashing and pairing the boards:
- Plug the receiver into the computer with a USB data cable.
- Turn on the remote and open the presentation. Click the presentation window so it has keyboard focus.
- 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.
- 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:
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:
map 1 pageup
map 2 pagedown
statusFor 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.
| Part | Used | Order | Unit price | Total | Supplier |
|---|---|---|---|---|---|
| ESP32-S3-WROOM-1-N4 | 1 | 1 each | $4.15 | $4.15 | LCSC |
| ESP32-C3-WROOM-02-N4 | 1 | 1 each | $3.32 | $3.32 | LCSC |
| AP2112K-3.3TRG1 (5 pack) | 2 | 1 pack of 5 | $0.86 | $0.86 | LCSC |
| TYPE-C-31-M-12 (5 pack) | 2 | 1 pack of 5 | $0.86 | $0.86 | LCSC |
| Microchip MCP73831T-2ATI/OT | 1 | 2 each | $1.40 | $2.80 | LCSC |
| Omron B3U-1000P (5 pack) | 4 | 2 pack of 5 | $0.94 | $1.88 | LCSC |
| JST B2B-PH-K-S(LF)(SN) (20 pack) | 1 | 1 pack of 20 | $0.71 | $0.71 | LCSC |
| Kailh Choc V1 red switches | 2 | 2 each | $0.60 | $1.20 | Keebio |
| 0603WAF1001T5E (100 pack) | 3 | 1 pack of 100 | $0.26 | $0.26 | LCSC |
| Yageo RC0603FR-0710KL (100 pack) | 2 | 1 pack of 100 | $0.34 | $0.34 | LCSC |
| 0603WAF1003T5E (100 pack) | 2 | 1 pack of 100 | $0.31 | $0.31 | LCSC |
| 0603WAF2001T5E (100 pack) | 1 | 1 pack of 100 | $0.24 | $0.24 | LCSC |
| Yageo CC0603KRX7R9BB104 (50 pack) | 2 | 1 pack of 50 | $0.62 | $0.62 | LCSC |
| CL10A106MQ8NNNC (10 pack) | 2 | 1 pack of 10 | $0.23 | $0.23 | LCSC |
| CL10B105KO8NNNC (50 pack) | 2 | 1 pack of 50 | $1.06 | $1.06 | LCSC |
| M2 x 6 mm stainless steel screws (25 pack) | 8 | 1 pack of 25 | $3.49 | $3.49 | Keebio |
| SS14 Schottky diodes (50 pack) | 2 | 1 pack of 50 | $0.94 | $0.94 | LCSC |
| Kingbright APT1608SURCK red LEDs (5 pack) | 3 | 1 pack of 5 | $0.63 | $0.63 | LCSC |
| C&K OS102011MS2QN1 power switch | 1 | 1 each | $0.66 | $0.66 | LCSC |
| 1x3 2.54 mm pin headers (5 pack) | 2 | 1 pack of 5 | $0.12 | $0.12 | LCSC |
| Adafruit 1578 protected 3.7 V 500 mAh battery | 1 | 1 each | $7.95 | $7.95 | Mouser |
| Receiver PCB (5 board batch) | 1 | 1 batch of 5 boards | $4.00 | $4.00 | JLCPCB |
| Remote PCB (5 board batch) | 1 | 1 batch of 5 boards | $4.00 | $4.00 | JLCPCB |
| 0603WAF5101T5E (100 pack) | 4 | 1 pack of 100 | $0.15 | $0.15 | LCSC |
| Printed case parts | 4 | 4 printed part | $0.00 | $0.00 | Already owned filament |
| Printed keycaps | 2 | 2 printed part | $0.00 | $0.00 | Already owned filament |
| Tax and shipping allowance | 1 allowance | $23.54 | $23.54 | Multiple 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| Qty | Value | Footprint | References |
|---|---|---|---|
| 2 | 100k | Resistor_SMD:R_0603_1608Metric | R_DN, R_UP |
| 2 | 1k | Resistor_SMD:R_0603_1608Metric | R_CHG, R_STAT |
| 2 | 5.1k | Resistor_SMD:R_0603_1608Metric | R_CC1, R_CC2 |
| 2 | SS14 | Diode_SMD:D_SMA | D_VBAT, D_VBUS |
| 1 | 100nF | Capacitor_SMD:C_0603_1608Metric | C1 |
| 1 | 10k | Resistor_SMD:R_0603_1608Metric | R_EN |
| 1 | 10uF | Capacitor_SMD:C_0603_1608Metric | C2 |
| 1 | 1uF | Capacitor_SMD:C_0603_1608Metric | C3 |
| 1 | 2k | Resistor_SMD:R_0603_1608Metric | R_PROG |
| 1 | AP2112K-3.3 | Package_TO_SOT_SMD:SOT-23-5 | U3 |
| 1 | BAT | Connector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_Vertical | J_BAT |
| 1 | BOOT | Button_Switch_SMD:SW_SPST_B3U-1000P | SW_BOOT |
| 1 | CHG | LED_SMD:LED_0603_1608Metric | D_CHG |
| 1 | Choc1 | clicker:Choc_V1_PG1350 | SW1 |
| 1 | Choc2 | clicker:Choc_V1_PG1350 | SW2 |
| 1 | DEBUG | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | HDR1 |
| 1 | ESP32-C3-WROOM-02 | RF_Module:ESP32-C3-WROOM-02 | U1 |
| 1 | MCP73831 | Package_TO_SOT_SMD:SOT-23-5 | U2 |
| 1 | POWER | Button_Switch_THT:SW_Slide_SPDT_Straight_CK_OS102011MS2Q | SW_PWR |
| 1 | RESET | Button_Switch_SMD:SW_SPST_B3U-1000P | SW_RST |
| 1 | STATUS | LED_SMD:LED_0603_1608Metric | D_STAT |
| 1 | USB-C | Connector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12 | J1 |
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 mm

Similar boards
- 4 layers52.9 × 79.1 mm

RealFCV1
bapsenpai-blip/STM32F405-4-layer-flight-controller
My first PCB revision, not fabricated yet, looking for design review
94 parts1 - 2 layers40 × 40 mm

Project2
Parwaz-Dynamics/Embedded-In-Bones
My personal embedded systems learning journey projects.
48 parts - 2 layers25.1 × 25.2 mm

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 mm

- 2 layers19 × 18 mm

Unni smartification c6-10.99-constraints
lk-ek/esphome-unni-co2-sniffer
An esp32-c3 based passive data sniffer for Unni CO2 sensor devices
77 parts2GPL-3.0 - 2 layers20.1 × 37.4 mm

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 mm

- 2 layers84.5 × 80.3 mm
