Skip to the content
PCBKitNew board
2 layers113.7 × 85.8 mmClotty, the printed circuit board in 3D

Uterus-shaped RP2040 PCB: period-tracking companion, sensor board, and tiny gaming device.

Size
113.7 × 85.8 mm
Copper layers
2
Thickness
1.6 mm
Parts
100
Nets
85
Pads
359
Tracks, vias
1,989, 190
Pours
7
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
2 Oct 2026
Updated
2 Oct 2026

Overview

Clotty is an open-source printed circuit board by bitshiftcrazy, from the bitshiftcrazy/clotty repository on GitHub. It is a 2-layer board of 113.7 × 85.8 mm with 100 parts on 85 nets, routed with 1,989 tracks and 190 vias.

It is built around the RP2040, TPS63031DSKR and W25Q128JVSIQ, with the NCP18XH103F03RB among its other parts. Its parts include 10 ICs, 3 diodes, 2 connectors, 1 transistor and 1 switch. It belongs with the sensors and measurement boards and the RP2040 boards of this library.

Main components

4

README

README.md

Clotty

Clotty is a uterus-shaped RP2040 period-tracking companion, sensor board and tiny gaming device.

Clotty showing her little sprite Clotty running DOOM

What is Clotty?

Clotty is a uterus-shaped, custom RP2040-based hybrid between a sensor board and a gaming device.

She originated from the wish to have an offline-only, privacy-focused period tracker that also happens to gamify the unpleasant, recurrent experience of, well, having a period.

Similar to a Tamagotchi, Clotty accompanies the user (currently: me) throughout the cycle. The goal is to keep her (and ideally myself) alive and happy, while her mood, constitution and little quests change according to the current cycle phase. Some of those quests interact with the physical environment through the board's sensors.

Clotty keeps track of cycle lengths and period dates, but she is not a medical device beyond that basic tracking functionality.

Naturally, she runs DOOM as well.

Current Status

[!WARNING] Work in progress!

Clotty is currently at the first working prototype stage.

Basic board functionality has been tested and confirmed, but there are known hardware issues and plenty of things I still want to improve.

Please keep that in mind before having this revision fabricated.

Current (basic) bring-up status:

  • RP2040 boots and can be flashed
  • USB enumerates
  • display works
  • all three physical buttons work
  • both capacitive-touch ovaries work
  • temperature sensor works
  • ambient-light sensor works
  • accelerometer works
  • Hall sensor works
  • RTC works
  • RGB LED works
  • LiPo charging works
  • basic battery-powered operation works
  • DOOM runs
  • nothing has exploded (yet)

However, testing is still ongoing!

Features

Clotty currently or eventually aims to provide:

  • completely offline period tracking
  • storage of previous cycle lengths and period dates
  • basic prediction of likely future period dates
  • cycle-phase-dependent moods
  • cycle-phase-dependent quests
  • cycle-phase-dependent profound wisdom (eg "everyone hates you" during luteal)
  • sensor-based interactions with the environment
  • small minigames
  • animated Clotty sprites
  • RGB cycle-phase indication (menacing menstruation maroon, friendly follicular fuchsia, overjoyed ovulation orchid, looming luteal lava...just examples)
  • capacitive-touch ovaries for directional interaction
  • battery-powered portable operation
  • unreasonable amounts of tiny pixel-art accessories
  • DOOM, obviously

Hardware

Main hardware includes:

  • RP2040 microcontroller
  • W25Q128JVSIQ 128 Mbit / 16 MiB QSPI flash
  • 1.3" 240×240 IPS TFT, driven by an ST7789
  • RV-8263-C7 real-time clock
  • RGB LED
  • three physical push buttons
  • two capacitive-touch ovaries
  • USB-C connector
  • LiPo charging and power-management circuitry
  • currently a 1,500mAh LiPo

Clotty displaying live sensor diagnostics Back side of the Clotty PCB

Sensors

Clotty's sensor selection follows a very scientific design process largely based on "that would be kinda neat".

  • MCP9808-E/MS: temperature
  • TEMT6000X01: ambient light
  • LIS3DHTR: 3-axis accelerometer
  • DRV5032FADBZR: Hall-effect sensor
  • CAP1203: capacitive-touch controller for the ovaries

Possible gameplay uses include things like warming Clotty up for a "hot water bottle" quest, putting her somewhere dark for a nap, moving around, or interacting with magnets for no particularly defensible reason.

Display and Controls

Clotty uses a 240×240 IPS TFT driven by an ST7789.

Controls consist of:

  • three physical push buttons
  • capacitive-touch ovaries for left and right

The physical buttons are intended mainly for menu navigation and will eventually receive translucent red resin caps shaped like blood drops.

The ovaries are intended for directional or contextual interaction.

Yes, the ovaries also work as controls in DOOM.

Power

Clotty is designed for portable LiPo-powered operation.

The board includes:

  • USB-C input
  • LiPo charging
  • buck-boost conversion
  • power-path / power-selection circuitry
  • RTC backup battery

See the schematic for the exact implementation.

Design

Primarily, the uterus-shape was chosen because it's a period tracking device and subtlety is not exactly my strength. Periods and reproductive health are still stigmatised too often and Clotty's design is meant to help normalising a biological cycle thanks to which all of us are here in the first place.

But it also turns out that, for reasons nature most likely did not intend, a uterus is surprisingly game-controller-shaped.

The ovaries make convenient touch areas, the centre provides enough room for a display, and the overall shape sits well in the hands.

And yes, the USB-C connector is located at the cervix where it belongs.

Early Clotty design sketches together with the finished PCB

Earlier concepts included tampon-shaped and period-pad-shaped devices before the uterus eventually won.

Known Issues

This revision is a prototype and has known mechanical and layout problems.

Known issues currently include:

  • the LiPo JST connector is oriented badly and is difficult to use without brute-forcing the thing in
  • the RTC backup battery holder makes the display sit further away from the PCB than intended
  • there are currently no proper mounting holes for the planned enclosure (I kinda forgot)
  • several component-placement and routing decisions deserve reconsideration (to put it politely)
  • mechanical integration with the final case is still unfinished

The board works, but this revision should not be mistaken for a polished production design!

Hardware fixes and cleanup will happen on the hw-devel branch before being merged into main.

Fabrication

Fabrication files are available in fabrication/.

The directory contains:

  • ready-to-upload Gerber archive
  • unpacked Gerbers
  • drill files
  • JLCPCB BOM
  • JLCPCB component-placement file

The current fabrication output corresponds to the prototype revision described above.

Again: read the Known Issues section before ordering boards.

Building / Manufacturing

The project is designed in KiCad.

The repository contains:

  • KiCad schematic
  • KiCad PCB layout
  • project-specific design rules
  • local symbol libraries
  • local footprint libraries
  • artwork used for the PCB
  • fabrication output
  • schematic PDF

The local libraries are included so the project should not depend on random symbols and footprints disappearing from somewhere on the internet.

If you manufacture this board yourself, verify the BOM, footprints, component availability and fabrication files before ordering. Hardware is unforgiving and I am merely a person on the internet who likes putting USB ports into uteruses.

Software

Clotty's main application software is still under development and is not yet part of a proper release. But the firmware will appear in this repo, too.

The planned first usable version includes:

  • date and time setup
  • entering previous cycle dates / lengths
  • entering the current period start date
  • simple estimation of the next likely period
  • cycle-phase tracking
  • animated Clotty states
  • small quests
  • sensor interactions
  • basic menu navigation

The software is deliberately not intended to perform medical analysis!

DOOM

Clotty can run DOOM.

The DOOM build is based on kilograham/rp2040-doom.

My Clotty-specific fork lives here:

bitshiftcrazy/rp2040-doom

For Clotty I replaced the original Pico scanvideo output with a simple blocking SPI backend for the 240×240 ST7789 display and adapted the controls to use the physical buttons and capacitive-touch ovaries.

DOOM renders at 320×200 and is horizontally scaled to 240×200 for the display.

Repository Structure

text
.
├── artwork/              PCB artwork and source SVGs
├── docs/                 documentation and schematic PDF
├── fabrication/          Gerbers, BOM and placement files
├── libraries/            project-local KiCad symbols and footprints
├── pics/                 README images
├── clotty.kicad_dru      KiCad design rules
├── clotty.kicad_pcb      PCB layout
├── clotty.kicad_pro      KiCad project
├── clotty.kicad_sch      schematic
├── fp-lib-table
└── sym-lib-table

Documentation

A PDF export of the current schematic can be found here:

docs/clotty.pdf

The full KiCad project is available in the repository root.

More detailed project documentation, design background and development notes will also be published on my blog:

missmolerat.com

Roadmap

Roughly:

  • fix JST placement
  • improve RTC backup-battery placement
  • add proper enclosure mounting points
  • clean up placement and routing
  • design the enclosure
  • finish the first actual Clotty application
  • add cycle-phase logic
  • add quests and sensor interactions
  • make far too many sprites
  • design resin blood-drop button caps
  • continue finding increasingly unnecessary things for a uterus to do

License

  • hardware design files: CERN Open Hardware Licence Version 2 – Strongly Reciprocal (CERN-OHL-S-2.0)
  • original artwork and documentation: CC BY-SA 4.0

DOOM itself and the Clotty DOOM fork are not covered by the hardware licence of this repository.

Parts

100
QtyValueFootprintReferences
22100nFCapacitor_SMD:C_0603_1608MetricC_ACCEL_IO1, C_ACCEL_VDD1, C_ADCAVDD1, C_CAP1203_VDD1, C_DVDD1, C_DVDD2, C_FLASH1, C_HALL1, C_IOVDD1, C_IOVDD2, C_IOVDD3, C_IOVDD4, C_IOVDD5, C_IOVDD6, C_LIGHT1, C_MCP9808 +6
610uFCapacitor_SMD:C_0805_2012MetricC_ACCEL_BULK1, C_BAT1, C_BQ_OUT1, C_TPS_IN1, C_TPS_OUT1, C_TPS_OUT2
6LOGOLOGOG***, G***, G***, G***, G***, G***
5TestPointTestPoint:TestPoint_Pad_1.0x1.0mmTP_FLASH1, TP_I2C_SCL1, TP_I2C_SDA1, TP_REG_EN1, TP_RUN1
5~clotty:KEY-SMD_KMR2XXGXXXSW_A1, SW_B1, SW_BOOTSEL1, SW_C1, SW_RST1
4100kOhmResistor_SMD:R_0603_1608MetricR_CHG_PULL1, R_PG_PULL1, R_RTC_INT1, R_TOUCH_INT1
31MOhmResistor_SMD:R_0603_1608MetricR_BAT_BOTTOM1, R_BAT_TOP1, R_EN_PD1
2100OhmResistor_SMD:R_0603_1608MetricR_B1, R_G1
215pFCapacitor_SMD:C_0603_1608MetricC_XIN1, C_XOUT1
21kOhmResistor_SMD:R_0603_1608MetricR_BOOT1, R_XOUT1
21uFCapacitor_SMD:C_0603_1608MetricC_VREGIN1, C_VREGOUT1
227OhmResistor_SMD:R_0603_1608MetricR_USB_DM1, R_USB_DP1
24.7kOhmResistor_SMD:R_0603_1608MetricR_PULL_SCL1, R_PULL_SDA1
25.1kOhmResistor_SMD:R_0603_1608MetricR_CC1, R_CC2
2TestPointTestPoint:TestPoint_Pad_1.5x1.5mmTP_3V3, TP_GND1
10OhmResistor_SMD:R_0603_1608MetricR_SHIELD1
11.5kOhmResistor_SMD:R_0603_1608MetricR_ILIM1
11.5uHclotty:IND-SMD_L4.5-W4.1_SRP4020TAL_TPS1
110kOhmResistor_SMD:R_0603_1608MetricR_LIGHT1
110kOmResistor_SMD:R_0603_1608MetricR_CS_PULL1
112MHzclotty:CRYSTAL-SMD_4P-L3.2-W2.5-BLY1
1220OhmResistor_SMD:R_0603_1608MetricR_R1
13kOhmResistor_SMD:R_0603_1608MetricR_ISET1
14.7uFCapacitor_SMD:C_0805_2012MetricC_BQ_IN1
146.4kOhmResistor_SMD:R_0603_1608MetricR_TMR1
1470OhmResistor_SMD:R_0603_1608MetricR_VBACKUP1
1Battery Connclotty:CONN-SMD_P2.00_S2B-PH-SM4-TB-LF-SNJ_BATT1
1Coincellclotty:BAT-SMD_KEYSTONE-1056BT1
1DisplayConnector_PinHeader_2.54mm:PinHeader_1x07_P2.54mm_VerticalJ1
1NCP18XH103F03RBclotty:R0603TH1
1OVARY1clotty:ovary_leftTP1
1OVARY2clotty:ovary_rightTP2
1RP2040Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP3.2x3.2mmU1
1TPS63031DSKRclotty:SON-10_L2.5-W2.5-P0.50-TL-EPIC1
1USB_C_Receptacle_USB2.0_16PConnector_USB:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_HorizontalJ2
1W25Q128JVSPackage_SO:SOIC-8_5.3x5.3mm_P1.27mmU2
1~clotty:SOT-23-3_L2.9-W1.3-P0.95-LS2.4-BRU9
1~clotty:SENSORS-SMD_TEMT6000X01U7
1~clotty:MSOP-8_L3.0-W3.0-P0.65-LS4.9-BLU5
1~clotty:DFN-8_L3.2-W1.5-P0.9-BLU10
1~clotty:SOT-23-3_L2.9-W1.6-P1.90-LS2.8-BRQ1
1~clotty:SW-SMD_SSSS811101SW1
1~clotty:LGA-16_L3.0-W3.0-P0.50-TLU6
1~clotty:SOT-23-3_L2.9-W1.3-P1.90-LS2.4-BRD1
1~clotty:VQFN-16_L3.0-W3.0-P0.50-TL-EP1.7U3
1~clotty:LED-SMD_4P-L3.2-W2.8-LS3.5-TR_150141M173100LED1
1~clotty:SOIC-8_L5.0-W4.0-P1.27-LS6.0-BLU8
1~clotty:SOT-666-6_L1.6-W1.2-P0.50-LS1.6-BRD2

Questions

How big is the Clotty PCB?

It measures 113.7 × 85.8 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Clotty use?

100 parts, built around the RP2040, TPS63031DSKR, W25Q128JVSIQ and NCP18XH103F03RB. 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 Clotty KiCad files?

From the bitshiftcrazy/clotty repository on GitHub, at the commit this page was made from: the board is clotty.kicad_pcb and its schematic clotty.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Clotty design in my own project?

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

Similar boards

  • 4 layers40 × 60 mmTrinketcore, the printed circuit board in 3D

    Trinketcore

    alph4345/test

    TrinketCore puts everything a small rechargeable gadget needs on one 40 × 60 mm board, ready to order assembled from PCBWay:

    113 parts
  • 6 layers55 × 35 mmTACCO, the printed circuit board in 3D

    TACCO

    Stab-Rabbit-coding/Serenity-UAV

    A functional, security conscious, Unmanned Aerial Vehicle based on the Firefly Class spacecraft Serenity from the 2002 show..

    163 parts1CERN-OHL-W-2.0
  • 4 layers87 × 107.4 mmSl v4, the printed circuit board in 3D

    Sl v4

    jackw01/scanlight

    A better light source for scanning color negative film

    154 parts397CERN-OHL-W-2.0
  • 2 layers35 × 100 mmWalkieTalkie, the printed circuit board in 3D

    WalkieTalkie

    GuzziFlipFlops/ESP32-Walkie-Talkie

    An open source ESPNOW based walkie talkie with a 600 meter tested distance, with an OLED and multiple buttons to interact with

    66 parts7MIT
  • 4 layers127.9 × 78.5 mmController V4, the printed circuit board in 3D

    Controller V4

    a-conspiracy-theory/gamepad-pcb

    99 parts
  • 4 layers68 × 100 mmPocket caddy, the printed circuit board in 3D

    Pocket caddy

    bkuhn4/golf-gps

    The Pocket Caddy hardware is built around the ESP32-C3 microcontroller and includes the following components:

    90 parts
  • 2 layers28 × 18 mmFinal project, the printed circuit board in 3D

    Final project

    Casasaviruz/Wearable-biosensor-PCB

    A battery powered double sided PCB sensor meant to monitor the heart rate, breathing, temperature and sleep and active cycles of lab mice, made as small and non invasive as possible, data is transmitted through Bluetooth

    37 parts