

Clicky
A portable, battery-powered heart-shaped "pet" in the style of STΛRBOY / Lil Guy: a round animated eye, a personality driven by sensors, and a touch button to pet it — it blushes when you give it affection.
- Size
- 95.2 × 84.7 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 10
- Nets
- 24
- Pads
- 73
- Tracks, vias
- 179, 31
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 5 Oct 2026
- Updated
- 11 Oct 2026
Overview
Clicky is an open-source printed circuit board by devoymac, from the devoymac/clicky repository on GitHub. It is a 2-layer board of 95.2 × 84.7 mm with 10 parts on 24 nets, routed with 179 tracks and 31 vias.
It is built around the DS18B20 and MPU-6000. Its parts include 3 ICs, 3 connectors, 2 capacitors, 1 resistor and 1 switch. It belongs with the ESP32 and RISC-V boards of this library.
Main components
2DS18B20
TO-92-55℃~+125℃ 12bit 3V~5.5V 750ms Single-bus ±0.4℃ TO-92 Temperature Sensors ROHSUMWTemperature SensorsMPU-6000
QFN-24-EP(4x4)-40℃~+85℃ 16bit 1KB 2.375V~3.46V 5uA IMU (accelerometer + gyroscope) SPI、I2C X,Y,Z X,Y,Z ±16g ±2000dps 运动事件检测、同步与时间戳、过量程保护功能 QFN-24-EP(4x4) Accelerometers ROHSTDK InvenSenseAccelerometers
README
README.mdClicky
A portable, battery-powered heart-shaped "pet" in the style of STΛRBOY / Lil Guy: a round animated eye, a personality driven by sensors, and a touch button to pet it — it blushes when you give it affection. It runs on a single LiPo battery and charges through the same USB-C port it uses to program.
What it is
Clicky is a small companion you wear on your clothes or bag. Inside a 3D-printed heart lives a round screen that acts as its eye, and a set of sensors give it a personality: it gets dizzy when you shake it, shivers when it's cold, startles at loud noises, and falls asleep if you ignore it. Touch it and it wakes up happy. It remembers its state across power-off.
Design goals
- Portable and battery-powered — one small LiPo cell, no wall power.
- Long battery life — low-power sleeps, dimmed display when drowsy.
- A living personality — reacts to shake, cold, sound, and touch.
- An original touch — the heart blushes when you pet it.
- Built by hand — hand-wired to a tiny module, no complex PCB.
Hardware
Brain: Seeed XIAO ESP32-C3
A thumb-sized module with a built-in LiPo charger, WiFi/BLE, and plenty of GPIOs, chosen over the nRF52840 for its lower cost and simplicity:
- Built-in LiPo charger — no external charging IC required. Plug in USB-C to charge; unplug to run on battery. Automatic.
- WiFi + BLE — headroom for a future phone companion or notifications.
- USB-C — programming and charging share the same port.
- Low-power sleep — dozes in µA range, waking on the touch button.
The eye: GC9A01 1.28" round display
A 240x240 round SPI display that shows Clicky's expressions. Note: the chosen module has no separate backlight pin — the backlight is tied to 3V3 internally, so the firmware should put the display to sleep instead of just dimming it, to save battery when it dozes.
The personality (sensors)
- MPU-6000 (motion) — shake and tilt: dizzy, angry, look-downhill.
- DS18B20 (temperature) — cold: shiver, then freeze with a blue tint.
- MAX4466 (microphone amp) — loud sounds: startled, nervous.
Interaction
- One tactile push button — pet the heart, it blushes and wakes up.
Power
- A small certified LiPo (~320 mAh, e.g. 402535) with built-in protection, charged through the XIAO's own USB-C. Verify polarity before soldering (red = +, black = -).
Schematic
The KiCad schematic is complete and validated by ERC. All nets are connected: power (3V3/GND), I2C (MPU), 1-Wire (DS18B20 with 4.7k pull-up), SPI (display), the microphone, the pet button, and the battery (VBAT). The remaining ERC notices are intentional free pins and CLI false positives.

PCB

Wiring quick reference
- Battery + → XIAO VBAT ; battery - → GND (via JST-PH 2.0).
- Display GC9A01 (7-pin): VCC→3V3, GND→GND, SCL→D8 (SCK), SDA→D10 (MOSI), DC→D6, CS→D3, RST→3V3.
- MPU-6000 (I2C): VDD→3V3, GND→GND, SDA→D4, SCL→D5, AD0→GND, CPOUT→100nF to GND, REGOUT→100nF to GND.
- DS18B20: VDD→3V3, GND→GND, DQ→D7. R1 pulls DQ up to 3V3 (4.7k).
- Mic MAX4466: VCC→3V3, GND→GND, OUT→D1.
- Pet button: one pin→D0, other→GND.
Firmware
Scaffolded for Arduino IDE in firmware/clicky/ — a
working skeleton that boots the GC9A01 eye and drives a mood state machine
(idle / dizzy / cold / startled / blush / sleep) from the MPU-6000, DS18B20,
mic and pet button. Compiles clean for the XIAO ESP32-C3 (27% flash).
Setup steps, board/library install and the TFT_eSPI GC9A01 config are in
firmware/SETUP-arduino-ide.md.
Bill of Materials
See BOM.md for the full parts list with prices (~$60 parts).
Parts
10| Qty | Value | Footprint | References |
|---|---|---|---|
| 2 | C | Capacitor_SMD:C_0603_1608Metric | C1, C2 |
| 1 | Conn_01x02_Pin | Connector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_Vertical | J1 |
| 1 | Conn_01x03 | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J3 |
| 1 | Conn_01x07_Socket | Connector_PinHeader_2.54mm:PinHeader_1x07_P2.54mm_Vertical | J2 |
| 1 | DS18B20 | Package_TO_SOT_THT:TO-92_Inline | U3 |
| 1 | MPU-6000 | Sensor_Motion:InvenSense_QFN-24_4x4mm_P0.5mm | U2 |
| 1 | R | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R1 |
| 1 | SW_Push | Button_Switch_THT:SW_NKK_GW12LJP | SW1 |
| 1 | XIAO-ESP32-C3-SMD | Seeed_Studio_XIAO_Series:XIAO-ESP32-C3-SMD | U1 |
Questions
How big is the Clicky PCB?
It measures 95.2 × 84.7 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Clicky use?
10 parts, built around the DS18B20 and MPU-6000. 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 Clicky KiCad files?
From the devoymac/clicky repository on GitHub, at the commit this page was made from: the board is clicky.kicad_pcb and its schematic clicky.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Clicky design in my own project?
Its repository states no licence, so its author keeps all rights: ask devoymac before reusing the design.
Similar boards
- 4 layers40 × 40 mm

- 2 layers74 × 45 mm

- 4 layers47.5 × 62 mm

- 4 layers36 × 36 mm

- 4 layers104.2 × 77.7 mm

- 4 layers36 × 36 mm

- 6 layers36 × 36 mm

- 6 layers50 × 81.3 mm
