Skip to the content
PCBKitNew board
2 layers80 × 79.9 mmKittyterm, the printed circuit board in 3D

a terminal but kitty styled?!

Size
80 × 79.9 mm
Copper layers
2
Thickness
1.6 mm
Parts
8
Nets
24
Pads
65
Tracks, vias
60, 0
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
7 Oct 2026
Updated
11 Oct 2026

Overview

Kittyterm is an open-source printed circuit board by TomaszTlusty, from the TomaszTlusty/kittyterm repository on GitHub. It is a 2-layer board of 80 × 79.9 mm with 8 parts on 24 nets, routed with 60 tracks and 0 vias.

It is built around the DHT11. Its parts include 3 switches, 2 ICs, 2 connectors and 1 resistor. It belongs with the ESP32 and RISC-V boards of this library.

Main components

1

README

README.md

KittyTerm

kittyterm front render

KittyTerm is a tiny motion-controlled digital pet: basically a desktop Tamagotchi with a 3-button control scheme and motion sensing. You can interact with it both by physically moving the board and by using the onboard push buttons.

What it is

KittyTerm is designed to sit on your desk, show its personality on a small OLED display, and react to how you handle it. Tilting, shaking, and checking in on your pet are all part of the experience.

The board includes a Seeed XIAO ESP32-C3 microcontroller, an SSD1306 OLED display, an MPU6050 motion sensor, a DHT11 environmental sensor, and three push buttons in a compact, USB-powered PCB design built around beginner-friendly through-hole soldering.

Why?

This project was created for the week 1 beginner tutorial for halflife!

Project status

The PCB design, renders, and starter firmware are included here. The program features an animated pet with a tilt- and button-controlled radial menu, live environmental stats, persistent memory, and shake reactions.

Software

Firmware/ contains a single-file, non-blocking (millis()-based) sketch for the Seeed XIAO ESP32-C3, compatible with both Arduino IDE and PlatformIO.

Key Firmware Features

  • Three Screen Views (View State Machine):
    • PET_VIEW: Renders a custom 32x32 1-bit PROGMEM sprite on a 128x64 SSD1306 OLED (0x3C). The pet wanders across the screen and plays procedural animations for jumping, running laps, sleeping (with floating zs), and emitting hearts.
    • MENU_VIEW: A 4-sector radial menu (NAP, PLAY, FEED, PET). Opening the menu records the board's current tilt angle as a zero-point calibration, turning the MPU6050 (0x68) into a smoothed air-mouse cursor with a configurable center deadzone.
    • STATS_VIEW: Displays 0–100 stat bars for JOY, ENERGY, and FULL, alongside live ambient temperature and humidity readings polled from the DHT11 sensor.
  • Hybrid 3-Button & Motion Controls (with 30 ms software debouncing):
    • Button 1 (GPIO 4 / D2): Opens the radial menu, confirms the highlighted action, or cancels if pressed while in the center deadzone.
    • Button 2 (GPIO 5 / D3): Toggles between the main pet screen and the stats screen.
    • Button 3 (GPIO 2 / D0): Cycles through the 4 radial menu options when the menu is open (allowing full navigation even without tilting), triggers a quick PET reaction on the main screen, or exits the stats screen.
    • Shake Detection: Continuously computes the 3D acceleration vector magnitude from the MPU6050. Shaking the board past the gravity threshold wakes the pet from naps, triggers a wiggle animation, and boosts JOY.
  • Persistent Flash Storage (Preferences.h):
    • Automatically saves joy, energy, and fullness values to the ESP32-C3's Non-Volatile Storage (NVS) after every action or shake so your pet's progress is kept across power cycles.
  • Beginner-Friendly Customization:
    • All GPIO pin mappings, I2C addresses, starting stats, menu reactions, MPU6050 axis orientation (SWAP_MPU_AXES), and sprite bitmaps are grouped in the BEGINNER SETTINGS section at the top of the file.

Required Libraries

  • Adafruit GFX Library
  • Adafruit SSD1306
  • Adafruit MPU6050 (with Adafruit Unified Sensor and Adafruit BusIO)
  • DHT sensor library

Repository contents

  • PCB/ - KiCad source files and fabrication exports
  • Images/ - front and back PCB renders
  • Week 1 Guide.md - project guide material
  • Firmware/ - Arduino IDE / PlatformIO starter sketch

Parts

8
QtyValueFootprintReferences
3SW_PushButton_Switch_Keyboard:SW_Cherry_MX_1.00u_PCBSW1, SW2, SW3
1Conn_01x04Imported Parts:Display_128x64_096_I2CJ1
1Conn_01x08Imported Parts:MPU6050_ModuleJ2
1DHT11Sensor:Aosong_DHT11_5.5x12.0_P2.54mmU2
1RResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_HorizontalR1
1XIAO-ESP32-C3-DIPImported Parts:XIAO-ESP32-C6-DIPU1

Questions

How big is the Kittyterm PCB?

It measures 80 × 79.9 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Kittyterm use?

8 parts, built around the DHT11. 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 Kittyterm KiCad files?

From the TomaszTlusty/kittyterm repository on GitHub, at the commit this page was made from: the board is PCB/kittyterm.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Kittyterm design in my own project?

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

Similar boards

  • 2 layers96.6 × 82.8 mmStarbie, the printed circuit board in 3D

    Starbie

    SharKingStudios/Starbie

    Half-Life Week 1 Example Project

    11 parts28MIT
  • 2 layers100 × 50 mmConveyor belt pcb, the printed circuit board in 3D

    Conveyor belt pcb

    lansidev/conveyor-belt

    Miniature 3D printed conveyor belt for simulation and fun working with sensors, all controllable with Raspberry Pi

    22 parts9MIT
  • 2 layers93 × 20 mmWiFi VFD, the printed circuit board in 3D

    WiFi VFD

    ciisaichan/WiFi-VFD

    开源的ESP8266驱动VFD屏电路,支持BiliBili粉丝数、时间、温度、湿度

    23 parts8MIT
  • 2 layersOpenMQTTGatewayPCB, the printed circuit board in 3D

    OpenMQTTGatewayPCB

    ebrithiljonas/OMG_PCB

    All in One PCB for the OpenMQTTGateway Project

    36 parts7GPL-3.0
  • 2 layers62 × 19.3 mmSniffingTrinket, the printed circuit board in 3D

    SniffingTrinket

    GeorgK/SniffingTrinket

    A room climate monitor using the Adafruit Trinket Pro

    23 parts6GPL-3.0
  • 2 layersArduino relay, the printed circuit board in 3D

    Arduino relay

    bhaskar9980/Guardian

    Guardian is an advanced, fully automated hydroponics system designed to optimize plant growth and maximize yield.

    58 parts5MIT
  • 2 layers100 × 43.5 mmFirefly, the printed circuit board in 3D

    Firefly

    Twistx77/Firefly

    Open WIFI-enabled RGB lamp with temperature, humidity, suspended air particles and eCO2 sensors.

    33 parts5GPL-3.0
  • 2 layers30.5 × 77.5 mmProyecto sensor temperatura, the printed circuit board in 3D

    Proyecto sensor temperatura

    unla-investigacion-desarrollo/ecosistema-iot

    Antes de desarrollar el sistema final, realizamos una etapa de exploración donde investigamos y experimentamos con las siguientes tecnologías:

    8 parts5