Project Overview
In Active Development
Kompic̄ is a fully open-source, wrist-mounted sensor platform built by an ML scientist for on-device inference. It pairs a sensor suite denser than any open-source watch with an ESP32-S3 compute platform powerful enough to run real neural networks on that data — sleep staging, sound classification, sensor fusion — all locally, all offline, all inspectable.
The name is Croatian street slang: komp ("computer") plus the diminutive -ic̄ — a "little computer," and the word you'd only use for an actual friend, not a stranger. Pronounced /ˈkompitʃ/ (kompich).
Author
Hardware, firmware, case and webpage design by Ivan Porupski, 2026.
Philosophy
- Open source — hardware (KiCad), firmware, ML models, and case design (Onshape). Everything inspectable, modifiable, forkable.
- Offline first — works fully standalone. No phone required, no cloud dependency, no subscription. BLE is a capability, not a requirement.
- Raw data access — PPG waveforms, ECG traces, IMU streams, mic audio, environmental readings. Not just processed metrics.
- ML-native — the ESP32-S3's compute surplus exists specifically to run on-device inference. The sensor suite is designed to feed models, not just display numbers.
Key Specs
- ESP32-S3 dual-core Xtensa LX7 @ 240 MHz, 8 MB PSRAM, 16 MB flash
- MicroSD storage (128 GB+), BLE 5.x
- 2.06" rectangular AMOLED, 45.6 × 37.3 mm glass
- Two 1.0 mm 4-layer PCBs: main board + skin-facing daughter board
- Two-piece titanium case (SLM Ti-6Al-4V), ~48 × 40 × 12 mm
- ~380 mAh LiPo, USB-C charging
Sensor Suite
| Sensor | Part | Measures |
|---|---|---|
| ❤️ Optical HR / SpO2 | MAX30101 | Heart rate, HRV, blood oxygen, PPG waveforms |
| 🏃 IMU + ML Core | LSM6DSV16X | Accel, gyro, on-chip decision trees |
| 🫀 ECG (single-lead) | LSM6DSV16X Qvar | Lead-I heart rhythm via isolated electrodes |
| 🌡️ Skin temperature | TMP117 | High-precision skin temp trending |
| 🧭 Magnetometer | LIS3MDLTR | Compass heading, magnetic anomaly |
| 🛰️ GPS | u-blox M10S | Position, velocity, atomic time sync |
| 🌍 Environmental | BME688 | Temp, pressure, humidity, VOC / air quality |
| 💡 Ambient light | VEML6030 | Lux level, display brightness |
| 🎤 MEMS microphone | MSM261DGT003 | Audio capture, noise level, sound classification |
| 📳 Haptics | ELV1411A + DRV2605L | Vibration patterns, alerts, smart wake |
Safety Disclaimer
All work with these electronics is done entirely at your own discretion and risk. It is your sole responsibility to ensure you possess the necessary skills, knowledge, and safety equipment for working with electrical components and lithium batteries. Kompic̄ is not a medical device and is not intended to diagnose, treat, or prevent any condition. The author and any contributors are not liable for any direct, indirect, incidental, or consequential damages.
Circuit + PCB
[Circuit + PCB Guide →]
Two 1.0 mm 4-layer PCBs designed in KiCad: a main top board carrying the ESP32-S3, display interface, power architecture, and most sensors, and a skin-facing daughter board carrying the MAX30101, TMP117, and haptic driver. Schematic capture is complete; routing is underway.
- Full power tree: BQ25619 charger → SYS → TPS62840 3.3 V buck → 1.8 V LDO, plus FW-gated 5 V boost
- Display: CO5300 AMOLED driver over QSPI; CST9217 capacitive touch
- Two I2C buses, controlled-impedance RF traces for BLE and GPS antennas
- KiCad schematic, PCB layout, and JLCPCB production files (coming soon)
Fabrication + Assembly
[Fabrication Guide →]
Planned
Boards are fabricated and partially assembled by JLCPCB — 0402 passives placed, with baked solder paste applied to the remaining IC and connector pads. ICs and connectors are then hand-placed and hot-plate reflowed by the builder. Full production .zip files and a picking list will live in the repo.
Manufacturer Recommendation Disclaimer
The recommended manufacturer is the one the author has used successfully. This is not an endorsement. Please choose a manufacturer based on your own research and needs.
Manual Assembly
[Assembly Guide →]
Planned
Step-by-step hand-assembly walkthrough: hot-plate reflow profile, stacking the display on the main PCB, seating the battery, mating the daughter board, wiring the 12-conductor silicone interconnect, and closing the two-piece case. MSL3 bake notes for the ESP32 module and GPS included.
3D Models & Printing
[3D Printing Guide →]
Planned
Single-piece case plus a separate crown. The body is one 3D-printed titanium shell — no front-plate/back-body split and no assembly screws. Everything loads in from the open display side and is captured by the body's internal features; the display, attached on last with a 1 mm double-sided tape, closes the case. The crown is the only separate machined part — ordered oversized and finished by hand.
Prototypes are modeled in Onshape and printed in plastic on a Bambu Lab A1 mini for fit testing; the production case is SLM titanium (Ti-6Al-4V). Onshape source files and print settings (coming soon).
- Fastener-free internal retention: side prongs hold the main PCB at height, a recess seats the USB-C jack, and a dedicated pocket holds the LRA
- Optical/RF windows (BLE, GPS, status LED, flashlight, ambient light): epoxy-filled through-holes — clear where light passes, opaque where it's only structural
- Mic + BME688 air port: a PTFE sticker inside, acoustic/gas permeable and water resistant
- Open-source case files (coming soon)
Firmware
[Firmware Guide →]
Planned
Dual-core firmware: one core handles hardware drivers and sensor acquisition, the other drives the LVGL UI on a DMA-based, double-buffered AMOLED pipeline in PSRAM. On-device ML runs on the ESP32-S3 for sleep staging, snore/sound classification, and sensor fusion.
- Display pipeline — DMA double-buffer architecture
- Sensor drivers — validated raw-data quality across the full suite
- Sleep tracking — HR + temp + actigraphy → ML inference → smart wake
- Navigation — GPS + compass fusion → breadcrumb trail
- Audio — mic capture → snore detection → voice commands
Real-Life Application & Data Analysis
Planned
The primary use case is sleep and recovery: three-signal fusion (HR/HRV, skin temp, actigraphy) for sleep-stage estimation, gentle haptic smart-wake during light sleep, and overnight environment scoring from the air-quality, light, and noise sensors. This section will collect real captured datasets, analysis notebooks, and notes on how the on-device models perform against the raw signals.
- Sleep staging — captured nights vs. model output
- HRV / recovery trends derived from raw PPG
- Environment logs — temperature, humidity, VOC, noise, light
- Navigation tracks — GPS + barometric altitude
References, Blog & Misc
Planned
Build logs, design-decision write-ups, datasheets, and the open-source landscape this project sits in (ZSWatch, Bangle.js, Watchy, PineTime and others) will be collected here.
- [1] Project scope & market position — internal doc, v1.0
- [2] ZSWatch — zswatch.dev
- [3] Bangle.js 2 — banglejs.com
- [4] Watchy — watchy.sqfmi.com