Skip to the content
2 layers38.5 × 33.5 mmC3 GestureDriver, the printed circuit board in 3D

A wearable sensing tag for pets and a tabletop display that visualizes daily activity and proximity-based companionship.

Size
38.5 × 33.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
16
Nets
26
Pads
60
Tracks, vias
80, 0
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
18 Jan 2026
Updated
8 Mar 2026

Overview

C3 GestureDriver is an open-source printed circuit board by MengqiS21, from the MengqiS21/TECHIN514_FinalProject repository on GitHub. It is a 2-layer board of 38.5 × 33.5 mm with 16 parts on 26 nets, routed with 80 tracks and 0 vias.

It is built around the LSM6DS3, MCP1700-3302E/TO and XIAO ESP32C3. Its parts include 4 capacitors, 3 resistors, 3 ICs, 2 diodes and 2 connectors. It belongs with the ESP32 and RISC-V boards of this library.

Main components

3

README

README.md

Pet Activity & Proximity Tracker

A wearable sensing tag for pets and a tabletop display that visualizes daily activity and proximity-based companionship.
The system is designed as a calm, ambient tool that supports reflection rather than real-time alerts, helping pet owners understand patterns of activity and togetherness over the course of a day. By translating sensed data into a physical gauge, the project emphasizes presence and routine over precise tracking or notifications.

1. Overview

What it does

This project consists of a lightweight sensing device attached to a pet’s collar and a tabletop display device placed in the home. The system tracks the pet’s activity level and estimates proximity to the owner throughout the day, visualizing overall “bond time” using a physical gauge instead of a screen.

General system sketch

Overall system sketch

Repository structure

text
TECHIN514_FinalProject/
├─ README.md
├─ archive/
│  └─ root_pio_legacy/          # early PlatformIO prototype
├─ docs/
│  ├─ images/                   # system diagrams and renders
│  ├─ datasheets/               # component datasheets
│  └─ gantt.xlsx
├─ firmware/
│  ├─ sensor_tag/               # collar sensing tag firmware (ESP32-C3)
│  │  ├─ src/
│  │  ├─ include/
│  │  ├─ lib/
│  │  └─ test/
│  └─ display_meter/            # tabletop display firmware (ESP32-C3)
│     ├─ src/
│     ├─ include/
│     ├─ lib/
│     └─ test/
└─ hardware/
   ├─ pcb/
   │  ├─ sensor_tag/            # sensor-tag PCB project files
   │  ├─ display/               # display PCB project files
   │  ├─ legacy_pcb/            # older PCB iteration
   │  └─ PCB Production/        # Gerbers and drill files
   └─ enclosure/                # enclosure CAD/STL/STEP files

2. Sensing Device (Pet Collar Tag)

Description

The sensing device is a lightweight tag mounted on a pet’s collar that detects motion and estimates proximity to the owner. It classifies activity levels (resting, walking, high activity) and tracks how much time the pet spends near the display device without using GPS.

Detailed sensing device sketch

Sensing device sketch

How it works

  • An onboard accelerometer detects motion patterns to estimate activity intensity.
  • The sensor samples IMU acceleration for a short time window and computes a compact activity score.
  • Summarized data is transmitted periodically to the display device via BLE.

Signal Processing / Machine Learning (Current Implementation)

  • The current system uses lightweight signal processing, not a trained machine learning model.
  • In firmware/sensor_tag/src/main.cpp, the tag samples acceleration for a 1.5 s window with a 40 ms sample period.
  • For each sample, it computes motion magnitude proxy |ax| + |ay| + |az|, averages over the window, and maps it linearly to a 0-100 activity score (3g -> 100, clamped).
  • This activity score is sent to the display via BLE and mapped to motor/LED behavior.

Accuracy Numbers (Current Status)

  • A labeled dataset evaluation is not yet included in this repository.
  • Therefore, formal ML metrics such as accuracy / precision / recall / F1 are currently N/A (not reported yet).

Sensors and components (with part numbers)

  • Accelerometer: ADXL345 (Analog Devices, 3-axis digital accelerometer)
  • Microcontroller + BLE: ESP32-C3-MINI-1
  • Battery: CR2032 coin cell or 150–300 mAh LiPo battery
  • Power management: MCP1700 low-dropout regulator
  • Optional proximity aid: Onboard ESP32 BLE RSSI (no extra sensor required)

3. Display Device (Bond Meter)

Description

The display device is a tabletop “bond meter” that physically visualizes the pet’s daily activity and proximity time using a stepper-motor-driven gauge needle. An LED provides real-time feedback when the pet is nearby, and a button allows users to switch display modes or acknowledge the status.

Detailed display device sketch

Display device sketch

How it works

  • The display receives summarized activity and proximity data via BLE.
  • The microcontroller maps daily totals to a gauge needle position using a stepper motor.
  • The LED indicates current proximity state (e.g., pet nearby vs away).
  • The button toggles display modes (activity vs proximity) or resets daily tracking.

Components (with part numbers)

  • Microcontroller + BLE: ESP32-C3-MINI-1
  • Stepper motor: 28BYJ-48 stepper motor
  • Motor driver: ULN2003 stepper driver
  • LED: WS2812B single RGB LED or standard 5mm LED
  • Button: Standard tact switch
  • Battery: 500–1200 mAh LiPo battery

4. System Communication & Data Flow

Wireless communication overview

Communication overview diagram

Detailed system diagram

Detailed data flow diagram

Notes on Power and Feasibility

Both devices are battery-powered and optimized for low-duty-cycle operation. The sensing device minimizes power usage through aggressive sleep scheduling, while the display device uses short stepper motor movements and infrequent updates to maintain reasonable battery life.

Schematic and PCB Design

Detailed Sensor Schematic Detailed Display Schematic Detailed PCB

PCB Production

Detailed 3D View Front PCB Detailed 3D View Back PCB

Battery Life Estimation

https://docs.google.com/spreadsheets/d/1o1SAS0YDETgxqNn3ZR0W69rIJqL8Xmiv9CGHoeJ4H2A/edit?usp=sharing

Parts

16
QtyValueFootprintReferences
20.1uFCapacitor_SMD:C_0603_1608MetricC1, C2
210kResistor_SMD:R_0603_1608MetricR2, R3
210uFCapacitor_SMD:C_0603_1608MetricC3, C4
1150ΩResistor_SMD:R_0603_1608MetricR1
130ΩInductor_SMD:L_0603_1608MetricL1
1BATConnector_JST:JST_PH_B2B-PH-K_1x02_P2.00mm_VerticalJ1
1LEDLED_SMD:LED_0603_1608MetricD1
1LSM6DS3Package_LGA:LGA-14_3x2.5mm_P0.5mm_LayoutBorder3x4yU2
1MCP1700-3302E_TOMCP1700-3302E_TO:TO127P254X495-3U3
1POWERLED_SMD:LED_0603_1608MetricD2
1SW_SPDTC3_GestureDriver_Footprints:SS-12D00-GxSW2
1USARTConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ2
1XIAO_ESP32C3_GestureDriver_Footprints:XIAO_ESP32U1

Similar boards

  • 2 layers30 × 75 mmC3 GestureDriver Screen, the printed circuit board in 3D

    C3 GestureDriver Screen

    MengqiS21/TECHIN515_final_project-individual-

    Vehicle engine faults such as air leaks, ignition misfires, and abnormal idle behavior often produce characteristic acoustic signatures that trained mechanics can identify by ear.

    10 parts
  • 2 layers50 × 90 mm4dapter, the printed circuit board in 3D

    4dapter

    timville85/4dapter

    This project combines the NES, SNES, N64 and Genesis DaemonBite Retro Controllers projects together with a custom PCB to support 4 different controllers with a single socketed Arduino Pro Micro.

    16 parts82GPL-3.0
  • 4 layers290 × 215 mmPlacard, the printed circuit board in 3D

    Placard

    tocksin/placard

    PLA computer

    187 parts2AGPL-3.0
  • 2 layers50.8 × 22.9 mmFeather fc, the printed circuit board in 3D

    Feather fc

    MarkGhebrial/feather-fc

    The PCB for my flight controller project

    22 parts1
  • 2 layers30 × 58.5 mmLoragate tht, the printed circuit board in 3D

    Loragate tht

    andrewgho/loragate

    ESP32 + LoRa radio powered reed switch door sensor

    10 parts
  • 2 layers90 × 90 mmP 4.1 2026 Jeff M, the printed circuit board in 3D

    P 4.1 2026 Jeff M

    Jeffrey-McCormick/Project-Heartbeat

    End-to-end embedded system project to accurately measure the heart rate of a person

    38 partsMIT
  • 2 layers36.6 × 41.1 mmProject 2-K Auyeung, the printed circuit board in 3D

    Project 2-K Auyeung

    kyauyeung/PCB-Designs

    Repository for schematic and PCB designs

    11 parts
  • 2 layers100.1 × 78.2 mmENMT LFR, the printed circuit board in 3D

    ENMT LFR

    r3dpath/ENMT-LFR

    56 parts

Questions

How big is the C3 GestureDriver PCB?

It measures 38.5 × 33.5 mm and has 2 copper layers, 1.6 mm thick.

What parts does the C3 GestureDriver use?

16 parts, built around the LSM6DS3, MCP1700-3302E/TO and XIAO ESP32C3. 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 C3 GestureDriver KiCad files?

From the MengqiS21/TECHIN514_FinalProject repository on GitHub, at the commit this page was made from: the board is hardware/pcb/sensor_tag/C3_GestureDriver.kicad_pcb and its schematic hardware/pcb/display/C3_MotionDriver.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the C3 GestureDriver design in my own project?

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