Skip to the content
PCBKitNew board
2 layers108.5 × 26 mmRc demo, the printed circuit board in 3D

A simple presentation clicker implemented during a 15 minute talk given at the Recurse Center.

Size
108.5 × 26 mm
Copper layers
2
Thickness
1.6 mm
Parts
8
Nets
37
Pads
104
Tracks, vias
37, 0
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
5 Jun 2025
Updated
5 Jun 2025

Overview

Rc demo is an open-source printed circuit board by willbicks, from the willbicks/Recurse-Presentation-Clicker repository on GitHub. It is a 2-layer board of 108.5 × 26 mm with 8 parts on 37 nets, routed with 37 tracks and 0 vias.

Its parts include 3 resistors, 2 switches and 1 diode. It belongs with the RP2040 boards of this library.

README

README.md

USB Presentation Clicker - PCB and firmware

The Recurse Center - 15 Minute Non-Programming Talk

This project was created as a 15 minute intro to circuit board concepts and design, including a live demonstration of the process of schematic capture and PCB design for this simple presentation clicker.

The slides for the talk leading up to the demo are available here.

Printed Circuit Board

The schematic and board design are made with KiCAD 9.0, available from kicad.org. The project file is at rc-demo.kicad_pro.

Front and back 3D renderings of PCB

The schematic and board layours were done live in front of an audience in around 10 minutes, so there's lots of room for improvement or expansion. Try tweaking the design to fit your sensibilities, or deleting the current design and starting fresh!

To learn more about KiCAD, check out their getting started guide.

Firmware

The firmware for the remote is written in Rust, using the rp_pico board support package and embedded-hal traits, and using the usbd_human_interface_device crate to implement the USB HID protocol for a keyboard. The firmware entrypoint is at src/main.rs.

If you've installed the rust toolchain with rustup, the appropriate extras will be installed automatically as defined in the rust-toolchain.toml file. The only additional requirement is to install one (or both) of the following tools for flashing the firmware to the RP2040:

shell
# Install probe-rs for flashing and debugging with debugging probe (requires cargo-binstall)
cargo binstall probe-rs-tools
# Install elf2uf2-rs to flash via RP2040 USB bootloader
cargo install elf2uf2-rs

By default, cargo run will use probe-rs to load and debug the firmware:

shell
cargo run

To flash the firmware via the RP2040 USB bootloader, you can use:

shell
cargo build
elf2uf2-rs ./target/thumbv6m-none-eabi/debug/usb-presentation-remote

And then copy the ./target/thumbv6m-none-eabi/debug/usb-presentation-remote.uf2 to the RPI-RP2 drive that appears when you hold the BOOTSEL button on the RP2040 board while plugging it into your computer.

Parts

8
QtyValueFootprintReferences
350Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_HorizontalR1, R2, R3
1LED_ARGBLED_THT:LED_D5.0mm-4_RGB_Wide_PinsD1
1LOGORC_Demo:rc-logoG***
1NEXTButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW1
1PREVButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW2
1RaspberryPi_PicoModule:RaspberryPi_Pico_Common_UnspecifiedA1

Questions

How big is the Rc demo PCB?

It measures 108.5 × 26 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Rc demo use?

8 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 Rc demo KiCad files?

From the willbicks/Recurse-Presentation-Clicker repository on GitHub, at the commit this page was made from: the board is rc-demo.kicad_pcb and its schematic rc-demo.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Rc demo design in my own project?

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

Similar boards

  • 2 layers20.5 × 24.8 mmPi interface, the printed circuit board in 3D

    Pi interface

    opulo-inc/lumenpnp

    The LumenPnP is an open source pick and place machine.

    8 parts3.7k
  • 2 layers59.9 × 25.7 mmBuffer, the printed circuit board in 3D

    Buffer

    hoglet67/RGBtoHDMI

    Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

    8 parts1kGPL-3.0
  • 2 layers52 × 12.6 mmUSB, the printed circuit board in 3D

    USB

    shanteacontrols/OpenDeck

    A platform for building interactive control and sensing devices using MIDI and OSC built with Zephyr RTOS.

    8 parts960Apache-2.0
  • 2 layers87.5 × 48.5 mm7 input macropad, the printed circuit board in 3D

    7 input macropad

    hackclub/OnBoard

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

    8 parts915
  • 2 layers36.2 × 63.1 mmPicoMemcard pico, the printed circuit board in 3D

    PicoMemcard pico

    dangiu/PicoMemcard

    Emulating PSX Memory Card (or controller) using a Raspberry Pi Pico

    8 parts694GPL-3.0
  • 2 layers36 × 10 mmPCB4-PWR BTN Rev.A, the printed circuit board in 3D

    PCB4-PWR BTN Rev.A

    OLIMEX/DIY-LAPTOP

    Do It Yourself Open Source Hardware and Software Modular Hacker's Friendly Laptop

    8 parts578Apache-2.0