Skip to the content
4 layers158.4 × 66 mmSketchingpad proto2, the printed circuit board in 3D

Sketchingpad proto2

todbot/sketchingpad1

Capsense touch BLE pad for Sketching

Size
158.4 × 66 mm
Copper layers
4
Thickness
1.6 mm
Parts
84
Nets
73
Pads
267
Tracks, vias
641, 91
Pours
3
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
30 Aug 2026
Updated
31 Oct 2026

Overview

Sketchingpad proto2 is an open-source printed circuit board by todbot, from the todbot/sketchingpad repository on GitHub, published under the GPL-3.0 licence. It is a 4-layer board of 158.4 × 66 mm with 84 parts on 73 nets, routed with 641 tracks and 91 vias.

It is built around the TS20, SK6812SIDE-A-S and AO3415A, with the HC-1.0-4PWT, S2B-PH-SM4-TB(LF)(SN) and TC-S3601-3.5-260G-F0.6 among its other parts. Its parts include 23 capacitors, 20 diodes, 7 resistors, 3 connectors and 2 ICs. It belongs with the keyboards and input and radio and wireless boards and the nRF52 and nRF5x boards of this library.

Main components

6

README

README.md

SketchingPad - 20-key BLE touch pad macropad

Features

  • 20-pad capacitive touch surface with 20 SK6812 addressable LEDs backlighting the touchpads
  • XIAO nRF52840 BLE w/ LiPo charging
  • LiPo battery jack with power switch (power switch must be ON to charge)
  • Tact switch to switch modes, wake up, or go into deep sleep
  • Audio out jack for audio fun

Software

Install pre-built apps using the -| sketchingpad web flasher |-

Arduino

Most of the apps are Arduino sketches, see arduino/README.md for details on Arduino firmware options including: how to flash, how to build, the touch layer, the BLE LED animation packet layer, the power tiers, etc. Examples of what's available:

  • sketchingpad_party -- record an animation, broadcast it, with power tiers
  • sketchingpad_midi_simple -- USB + BLE MIDI controller
  • sketchingpad_gamepad -- USB + BLE HID gamepad, two sticks, D-pad, 8 buttons
  • ble_keyboard -- BLE HID keyboard, with power tiers
  • ble_keyboard_simple -- BLE HID keyboard, no power mgmt
  • hwtest_leds -- chases one pixel around the 20 LEDs
  • hwtest_touch_lowpower -- pad -> LED, fading, plus three power tiers, no BLE
  • hwtest_touch -- pad -> LED with a fading trail, no BLE

more sketches in arduino/README.md.

arduino/tests/ holds host-native tests for the dependency-free headers: cd arduino/tests && make run.

CircuitPython

CircuitPython is much easier to work with, but can't get the same low-power modes available in Arduino.

Each program directory holds the files to copy to the CIRCUITPY root.

  • sketchingpad_midi_simple -- USB + BLE MIDI controller
  • ble_keyboard_lowpower -- low-power BLE HID keyboard, two power tiers rather than the Arduino sketch's three.

These work on both versions of the board (TS20 & MPR121). Other programs listed in circuitpython/README.md

Host tests for the touch layer, needing no board and no install: cd circuitpython/tests && make run. They also pin the pad tables in touch.py against arduino/shared/touch_map.h, which nothing else does.

Libraries come from circup; see circuitpython/requirements.txt. See circuitpython/notes-lowpower.md for why only two power tiers and not three.

Other

docs/hardware-notes.md is the board side: both touch chips, their pad numbering, their INT lines, and the board changes the firmware assumes. docs/ also holds low-power-notes.md and the touch-chip datasheets.

Hardware Design

The goal was to create a small 20 captouch pad keyboard-like board that let people in the same room share color patterns they "draw" on the pads, wirelessly, but then also could be something useful after the Sketching conference. Also desired was that the whole PCB being low-complexity and inexpensive, using JLC SMD PCBA capabilities and light hand-soldering.

The design points then:

  • Small : XIAO/QTpy-format or "Supermini"-format MCU board
  • Wireless: NRF52 or ESP32 class board for WiFi/BLE
  • Low-power: NRF52 (ESP32 has 10x idle power draw and nRF can hit microamp SLEEP)
  • Battery: LiPo charger or 1.5V boost converter. 1.5V boost too inefficient, so LiPo charger, built-in to SuperMini and some XIAO-format boards.
  • Touch sensing: I2C touch sensor chip with 20+ electrodes and INT pin support, and low quiescent current
  • LEDs: backlit touchpads, not cutout

Decisions:

  • MCU: XIAO NRF52840 - BLE and built-in LiPo charging in 1" sq package. Runner up: NRF52840 SuperMini (nice!nano clones), but suspect build quality. By going with XIAO/QTPy-format boards, other similar boards could be used, at the expense of the battery connections (which are in a non-standard location) for USB-only uses.

  • Touch chip: TS20 - cheap on LCSC and was always in stock, except during final production, so a quick switch to 2x MPR121. Both had 100 uA idle current and less in sleep mode but don't use sleep mode yet.

  • LEDs: SK6812-SIDE-A to backlight the touchpads. Backlight through PCB costs power, using Neopixel-like LEDs costs power (but these are static 0.25mA/LED). Using Neopixel-like LEDs on a battery-conscious design is foolish, but after spending weeks attempting to route an IS31FL3731 RGB design, I punted. The LEDs do at least have a PFET gating the power so we can save 5mA when not actively driving the LEDs.

  • Battery: LiPo 3.7V w/ JST 2.0 mm connector (RC standard, not adafruit standard), using LiPo charger built-in to XIAO NRF52840. Turns out AAA in a holder is very tall! I want this project to be flat. A small 3d-printable JST 2mm removal tool is really handy.

Enclosure

As seen in the photos, there is a simple 3d-printable enclosure. It's fast to print and you can snap the PCB in to quickly get started, or use M2.5 screws and nuts to secure the PCB more permanently.

Battery note: if you have a battery, attach the it with double-sided tape to the PCB and install the combined assembly in the case.

Installation into case: The snaps are on the top and the bottom.
To fit the PCB, secure it under the lower snap first, then rotate the PCB down until it snaps with the top snaps.

Removal of the case: To remove the PCB from the case, carefully pry the top of the PCB away, working slowly on each side. Use the cutout holes for the button and audio jack as a place to start.

See the Demos section below for a video of installation & removal.

Pinout

The sketchingpad1 and sketchingpad1_mpr1 boards have the same pinout:

SignalXIAO pinNotes
PWM_AUDIOD0 / A0to audio jack via RC filter
BUTTOND10/MOSISW1 to GND, internal pull-up
TOUCH_INTD3 / A3open collector, R1 pulls up
SDAD4Wire default
SCLD5Wire default
LED_DATD6 / TXNeopixel data
LED_POWERD7 / RXPFET gate, LOW = LED rail on

Unused pins: D1 / A1, D8 / SCK, D9 / MISO.

Note for battery power, you need to solder the BAT+ / BAT- pins on the bottom of the XIAO to the corresponding pads on the PCB.

Schematics

There are two versions of the board:

  • sketchingpad1 - uses one TS20 touch chip
  • sketchingpad1_mpr - uses two MPR121 touch chips

KiCad source files available in the "schematics" directory.

sketchingpad1 (TS20)

sketchingpad1-mpr (2xMPR121)

Demos

sketchingpad1_party demo

Sketch a color pattern with your fingers on the bottom 16 pads. After 1.5s of pause, it transmits that pattern to all other sketchingpad1_party boards. Top 4 pads select which colors. Each pad toggles between two colors.

https://github.com/user-attachments/assets/d27a3079-bf75-4f49-8079-a613aa76e5e4

Case install / removal

How to install & remove the case.

https://github.com/user-attachments/assets/99311e4a-093e-42f9-914b-14518b83df6d

Parts

84
QtyValueFootprintReferences
22100nCapacitor_SMD:C_0603_1608MetricC1, C2, C3, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19, C20, C21, C23 +6
20Capacitive_Buttontodbot_stuff:Pad-Captouch-0.5in-backlitBTP1, TP2, TP3, TP4, TP5, TP10, TP11, TP12, TP13, TP14, TP15, TP16, TP17, TP18, TP19, TP20 +4
20SK6812SIDE-A-Stodbot_stuff:LED-SMD_4P-L4.0-W1.6-L-todeditsLED1, LED2, LED3, LED4, LED5, LED10, LED11, LED12, LED13, LED14, LED15, LED16, LED17, LED18, LED19, LED20 +4
310kResistor_SMD:R_0603_1608MetricR1, R2, R3
2MountingHoleMountingHole:MountingHole_2.5mmH1, H2
2TestPointTestPoint:TestPoint_Pad_D1.5mmTP21, TP22
11.8kResistor_SMD:R_0603_1608MetricR7
1100Resistor_SMD:R_0603_1608MetricR6
1100kResistor_SMD:R_0603_1608MetricR4
1220Resistor_SMD:R_0603_1608MetricR5
13V3_LEDTestPoint:TestPoint_Pad_D1.5mmTP23
147uCapacitor_SMD:C_0603_1608MetricC22
1AO3415Aeasyeda2kicad:SOT-23-3_L2.9-W1.6-P1.90-LS2.8-BRQ1
1AudioJack4todbot_stuff:Jack_3.5mm_PJ320D_HorizontalJ1
1HC-1.0-4PWTeasyeda2kicad:CONN-SMD_4P-P1.00_HCTL_HC-1.0-4PWTCN1
1LOGOLOGOG***
1MINI MSK12CO2easyeda2kicad:SW-SMD_MSK12CO2SW2
1S2B-PH-SM4-TBeasyeda2kicad:CONN-SMD_P2.00_S2B-PH-SM4-TB-LF-SNCN2
1Seeeduino Xiao nRF52840todbot_stuff:Xiao_nRF52840_ACH-todeditU2
1TC-S3601-3.5-260G-F0.6easyeda2kicad:SW-SMD_TC-S3601-3.5-260G-F0.6SW1
1TS20Package_SO:TSSOP-28_4.4x9.7mm_P0.65mmU1

More from todbot/sketchingpad

2
  • 4 layers131.6 × 90 mmSketchingpad proto1, the printed circuit board in 3D

    Sketchingpad proto1

    todbot/sketchingpad

    Capsense touch BLE pad for Sketching

    77 parts1GPL-3.0
  • 4 layers120 × 90 mmSketchingpad idea1, the printed circuit board in 3D

    Sketchingpad idea1

    todbot/sketchingpad

    Capsense touch BLE pad for Sketching

    56 parts1GPL-3.0

Similar boards

  • 2 layers131.2 × 95.7 mmSwadge S2-Devkit, the printed circuit board in 3D

    Swadge S2-Devkit

    AEFeinstein/Super-2023-Swadge-HW

    Swadge devkit for an ESP32-S2 with all the bells and whistles

    86 parts17MIT
  • 2 layers149.9 × 134.2 mmSwadge HW, the printed circuit board in 3D

    Swadge HW

    emilyanthony4244/Super-2027-Swadge-HW

    Super 2027 Swadge

    134 parts2MIT
  • 4 layers84.5 × 17 mmSmartProbe v004, the printed circuit board in 3D

    SmartProbe v004

    alex31/smartprobe

    firmware and hardware for an autonomous five holes 3D pitot tube

    90 parts1
  • 2 layers75.1 × 66.8 mmFroggyswadge, the printed circuit board in 3D

    Froggyswadge

    cnlohr/cnhardware

    My dumping grounds for all my kicad projects and random hardware bringup.

    96 parts114
  • 2 layers88.9 × 63.5 mmPicotouch drumcard, the printed circuit board in 3D

    Picotouch drumcard

    todbot/picotouch_drumcard

    Card-sized drum synth / sequencer with MIDI In/Out

    80 parts7GPL-3.0
  • 2 layers180 × 110 mmPicotouch grid, the printed circuit board in 3D

    Picotouch grid

    todbot/picotouch_grid

    170 parts2GPL-3.0
  • 2 layers114.3 × 59.7 mmTS20 Test Board, the printed circuit board in 3D

    TS20 Test Board

    todbot/TS20_Test_Board

    71 parts2GPL-3.0
  • 2 layers296.5 × 175.3 mmTrill flex base, the printed circuit board in 3D

    Trill flex base

    ryos17/forearm-guitar

    Guitar in a form factor of a forearm strap!

    107 partsMIT

Questions

How big is the Sketchingpad proto2 PCB?

It measures 158.4 × 66 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Sketchingpad proto2 use?

84 parts, built around the TS20, SK6812SIDE-A-S, AO3415A and HC-1.0-4PWT. 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 Sketchingpad proto2 KiCad files?

From the todbot/sketchingpad repository on GitHub, at the commit this page was made from: the board is schematics/old/sketchingpad_proto2/sketchingpad_proto2.kicad_pcb and its schematic schematics/old/sketchingpad_idea1/leds.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Sketchingpad proto2 design in my own project?

Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).