

Kittyterm
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
1README
README.mdKittyTerm

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 (
ViewState Machine):PET_VIEW: Renders a custom 32x32 1-bitPROGMEMsprite on a 128x64 SSD1306 OLED (0x3C). The pet wanders across the screen and plays procedural animations for jumping, running laps, sleeping (with floatingzs), 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 forJOY,ENERGY, andFULL, 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 quickPETreaction 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.
- Button 1 (
- Persistent Flash Storage (
Preferences.h):- Automatically saves
joy,energy, andfullnessvalues to the ESP32-C3's Non-Volatile Storage (NVS) after every action or shake so your pet's progress is kept across power cycles.
- Automatically saves
- 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 theBEGINNER SETTINGSsection at the top of the file.
- All GPIO pin mappings, I2C addresses, starting stats, menu reactions, MPU6050 axis orientation (
Required Libraries
Adafruit GFX LibraryAdafruit SSD1306Adafruit MPU6050(withAdafruit Unified SensorandAdafruit BusIO)DHT sensor library
Repository contents
PCB/- KiCad source files and fabrication exportsImages/- front and back PCB rendersWeek 1 Guide.md- project guide materialFirmware/- Arduino IDE / PlatformIO starter sketch
Parts
8| Qty | Value | Footprint | References |
|---|---|---|---|
| 3 | SW_Push | Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB | SW1, SW2, SW3 |
| 1 | Conn_01x04 | Imported Parts:Display_128x64_096_I2C | J1 |
| 1 | Conn_01x08 | Imported Parts:MPU6050_Module | J2 |
| 1 | DHT11 | Sensor:Aosong_DHT11_5.5x12.0_P2.54mm | U2 |
| 1 | R | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P7.62mm_Horizontal | R1 |
| 1 | XIAO-ESP32-C3-DIP | Imported Parts:XIAO-ESP32-C6-DIP | U1 |
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 mm

- 2 layers100 × 50 mm

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 mm

- 2 layers

OpenMQTTGatewayPCB
ebrithiljonas/OMG_PCB
All in One PCB for the OpenMQTTGateway Project
36 parts7GPL-3.0 - 2 layers62 × 19.3 mm

SniffingTrinket
GeorgK/SniffingTrinket
A room climate monitor using the Adafruit Trinket Pro
23 parts6GPL-3.0 - 2 layers

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 mm

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 mm

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