feel
warm.
connect.

hold it · feel it pulse · put it down · it rests

9:41· · ·
Phone
Messages
Mail
Safari
Music
Clock
Health
Weather
Activity
Notes
Calendar
Search

64.2 × 131.5 × 7.65mm  ·  iPhone 13 mini form factor  ·  № 0001

People finding
each other.

every dot · a heartbeat · in the city

0
connections made
0
ommphones active
0
synced heartbeats

A phone
with no screen.

Most devices demand your attention. ommphone asks for something different — your presence. A piece of carbonized bamboo that pulses with a heartbeat. That grows warm when another one is near.

Not a notification. Not a message. Just warmth. Just a heartbeat. Just the quiet signal that another human being chose the same thing you did.

7s
meditation beat
45°
max warmth
15m
proximity range
LUB DUB 7s interval
How it works

Three modes.
One object.

01

Meditation
mode

Pick it up. Within a heartbeat it pulses — soft at first, building over 15 seconds as warmth grows. Put it down and it fades. No buttons, no apps, no instructions. Just hold it and breathe.

02

Proximity
mode

BLE scans continuously. Another ommphone nearby — beat quickens, warmth deepens automatically. No pairing, no setup. The closer you are, the more alive it feels. Within 3m both devices beat in phase simultaneously.

03

Sync
mode

Two strangers. Two devices beating in perfect phase. They both feel it at the same moment. No words needed. The device already said everything. A connection without a screen in sight.

Automatic · no setup

Hold              beat starts · warmth builds over 15 seconds
Put down         beat fades · heat stops immediately
Left button tap   beat override on/off
Right button tap heat override on/off
Left hold 1.5s   airplane mode · invisible to others
Right hold 3s    power off

The pledge

Four things.
Worth keeping.

I

Hold the ommphone
more than your own phone.

Not as a rule. As a practice. Every time you reach for your phone out of habit, reach for this instead. Let the heartbeat remind you what presence feels like.

II

Connect with others
in real life.

When two ommphones meet, something real passes between the people holding them. Foster those moments. Let it be the beginning of something that doesn't need a screen.

III

Be present.
Be mindful.

The device asks nothing of you. No content, no feed, no reply. Just the quiet agreement to show up — to the room you're in, the person across from you, the breath already moving through your body.

IV

Practice
coherent breathing.

Inhale 5 seconds. Exhale 5 seconds. Repeat. Heart, lungs, and nervous system fall into resonance — coherence. The ommphone's 7-second beat is your guide. One breath per pulse.

THE PLEDGE

"I will hold this more than my phone.
I will seek real connection.
I will be present.
I will breathe."

How to use

Three things.
That's all.

01
POWER

Turn it on
and off.

Pick it up — it wakes.
The first heartbeat confirms it's alive.

Hold the right button 3 seconds to power off. A long pulse confirms shutdown.

Idle on a table for 10 minutes with no nearby ommphone — it sleeps on its own.

HOLD
pick up → wakes automatically
3s
hold right button → powers off
10m
idle on table → sleeps
02
PRESENCE

Feel
the pulse.

Hold it in your palm.
Within one second — lub-dub.

The pulse is soft at first. Over 15 seconds the beat strengthens and the bamboo warms to your skin.

Breathe with it. Put it down and the beat fades over 5 pulses. Warmth stops the moment you let go.

0s
first pulse within 1 second
5s
warmth increases to medium
15s
full warmth · strongest pulse
03
CONNECTION

Connect to
another person.

No pairing. No app. No setup.
Both people hold their ommphone.

Devices detect each other over BLE. Beat quickens, warmth deepens — on both devices at once.

Within 3 metres the heartbeats phase-lock. You feel it. They feel it. Simultaneously.

BLE
nearby → beat + warmth increase
<3m
heartbeats phase-lock
hold left 1.5s → invisible
Materials

Made from
the earth.

🎋
Carbonized bamboo
Vietnamese origin
Heat treated
Hand finished
Unique grain per unit
nRF52832
Nordic BLE SoC
QFN-48
2.4GHz
32MHz crystal
🔋
LiPo 100mAh
3.7V · 370mWh
USB-C charging
3–6 months/charge
TP4056 managed
🌡
Copper + NTC
15mm spreader
Resistive pad 5V
45°C safety cutoff
PWM controlled

Every file.
Open source.

PCB · Gerber

Manufacturing files

Complete Gerber package for JLCPCB. Upload and order. 2-layer FR4, all layers included. PCB Rev3.1 — 25mm cap pad.

  • omphone-F_Cu.gtl — front copper
  • omphone-B_Cu.gbl — ground plane
  • omphone-Edge_Cuts.gm1 — outline
  • omphone-F_Mask.gts — soldermask
  • omphone-F_SilkS.gto — silkscreen
  • omphone.drl — drill file
BOM · CPL · Assembly

Assembly files

Complete JLCPCB SMT assembly package. BOM with LCSC part numbers. CPL with exact coordinates.

  • omphone_BOM_v3.csv — 23 components
  • omphone_CPL_v3.csv — placement coords
  • nRF52832 · TP4056 · DW01A
  • FS8205A · TTP223 · USB-C
  • All passives 0402
  • 4× JST-PH 2-pin connectors
CAD · 3D Print

Enclosure files

Playing card form factor. 64.2 × 131.5 × 7.65mm. Double groove, icon recesses, USB-C slot.

  • omphone_front_2buttons.stl — front shell
  • omphone_back_2buttons.stl — back tray
  • 11mm corner radius (iPhone 13 mini)
  • Icon grid 4×5 with carved symbols
  • Back: ॐ symbol · ECG · № 0001
  • 2 button holes (beat left · heat right)
  • PCB + battery pockets inside
C firmware · nRF52

Firmware

540 lines of production C. nRF5 SDK 17.1.0. Pickup-to-pulse auto detection. 2-button overrides. BLE proximity sync.

  • Auto-start on pickup (200ms debounce)
  • Heat ramp 0→5→15s (LOW→MED→HIGH)
  • Beat fades on putdown (5 pulses)
  • 2-button overrides (beat + heat)
  • Airplane mode · NTC safety cutoff
  • BLE proximity sync · IIR RSSI smooth
Build plan · Excel

Complete build guide

19-step build plan. Every cost itemised. Who does what. Every file mapped to every vendor.

  • 7 phases from review to assembly
  • Engineer review checklist (25mm pad, buttons)
  • JLCPCB + JLC3DP ordering walkthrough
  • Pickup-to-pulse verification test
  • Button override test sequence
  • Cost: ~$40–49/unit prototype · ~$10.16 production
Engineer JD

Hire guide

Full embedded engineer job description for ITviec / TopDev HCMC. Firmware + Gerber review.

  • nRF52 firmware scope
  • Gerber review checklist
  • EasyEDA conversion notes
  • SWD flashing guide
  • Budget: ~$200–300
  • Timeline: 1 week
Firmware

The heartbeat
in code.

/* OMPHONE FIRMWARE v4.0 — nRF52832
   Pickup-to-pulse · 2 buttons · BLE proximity     */

#define BEAT_INTERVAL_MEDITATION  7000   // 7s — meditation
#define BEAT_INTERVAL_MIN          800   // fastest — very close
#define LUB_DURATION                70   // first thump ms
#define LUB_DUB_GAP               180   // gap between lub + dub
#define NTC_ADC_THRESHOLD         680   // ~45°C safety cutoff

/* Touch poll — runs every 50ms */
static void touch_poll_handler(void *p) {
    bool raw = nrf_gpio_pin_read(PIN_TOUCH);

    /* Debounce: 200ms pickup, 1500ms putdown */
    if (confirmed_pickup) {
        m_state = DEVICE_WAKING;
        heater_set(HEATER_LOW);    // warmth starts immediately
        motor_pulse(MOTOR_SOFT);   // first heartbeat
    }
    if (confirmed_putdown) {
        m_state = DEVICE_FADING;
        heater_set(HEATER_OFF);    // heat stops instantly
        m_fade_count = 5;           // beat fades over 5 pulses
    }
}

/* Warmth ramps with hold duration */
static uint16_t heat_for_ramp(void) {
    uint32_t held_ms = ms_now() - m_held_since_ms;
    if (held_ms < 5000)  return HEATER_LOW;   // 0–5s
    if (held_ms < 15000) return HEATER_MED;   // 5–15s
    return HEATER_HIGH;                         // 15s+
}
Bill of materials

23 components.
JLCPCB handles all.

RefComponentPackageLCSC #Qty
U1nRF52832 — BLE SoCQFN-48C1128851
X132MHz CrystalSMD-3225C90021
U2TTP223 Cap Touch ICSOT-23-6C807571
U3TP4056 LiPo ChargerSOP-8C165811
U4DW01A Batt ProtectionSOT-23-6C3513701
Q1FS8205A Dual N-FETSOT-23-6C322541
Q22N7002 NPN MOSFETSOT-23C85451
J1–J4JST-PH 2-pin connectorJST-PH-2C1579294
J5USB-C ReceptacleUSB-C-SMDC27651861
LED1Red LED 04020402C22861
C1–C8MLCC 100nF / 4.7uF / 10uF0402C496788
R1–R3Resistors 1.2k / 10k / 100Ω0402C258673
SW1PTS525SM15SMTR2 — Beat button (left, P0.06)6×6mm SMDC925841
SW2PTS525SM15SMTR2 — Heat button (right, P0.07)6×6mm SMDC925841
Engineering renders

How it looks
inside.

PCB · X-ray
PCB inside iPhone 13 mini enclosure — x-ray front view and exploded cross-section
PCB inside enclosure  ·  58×118mm  ·  x-ray + cross-section
Back tray · SLA
ommphone back tray — exterior face with omm symbol and interior PCB pockets
Back tray  ·  exterior + interior  ·  dark navy SLA resin
LEFT IMAGE

X-ray view shows the PCB centred inside the phone with 3mm clearance each side. Battery zone top · BLE + power middle · USB-C bottom. Right panel shows the 4-layer stack: front shell 3.8mm · PCB 1.8mm · LiPo 4.5mm · back tray 3.85mm = 7.65mm total.

RIGHT IMAGE

Back tray exterior shows ॐ symbol, ECG heartbeat line, HOLD HERE arc and № 0001 serial. Interior shows the 58.6×118.6mm PCB pocket, LiPo battery pocket (top zone), JST connector relief slots (right edge J1–J4) and motor relief circle (left).

PCB Layout

58 × 80mm board.
Every component.

2-layer FR4 · HASL lead-free · all SMT · 25mm cap pad · SW1+SW2 · JLCPCB ready

OMPHONE REV3.1 · 58×118mm · TOP LAYER · 25mm CAP PAD · 2 BUTTONS · SW1+SW2
── BATTERY ZONE 38mm ── CAP PAD 25mm bare copper TTP223 J4-BATT JST-PH DW01A FS8205A LiPo 100mAh 25×38×4.5mm · 3.7V ── BLE + POWER 40mm ── nRF52832 QFN-48 BLE · Cortex-M4 X1 32MHz ANTENNA KEEPOUT ANT J1-HEAT JST-PH J2-MOT JST-PH J3-NTC JST-PH Q2 NPN C1 C2 C3 SW1 BEAT P0.06 SW2 HEAT P0.07 ── CHARGING + USB 40mm ── TP4056 LiPo charger LED2 R1 1.2k R2 10k R3 100Ω SWD VCC GND SWD CLK USB-C OMPHONE REV3.1 · FR4 · 2L · 58×118mm · HASL-LF · JLCPCB 25mm cap pad ← enlarged J4 · DW01A · FS8205A LiPo 100mAh nRF52832 QFN-48 SW1 BEAT left · P0.06 ★ SW2 HEAT right · P0.07 ★ J1 heat · J2 motor · J3 NTC X1 · 32MHz crystal TP4056 charger USB-C 118mm 58mm VBAT 3.3V VBUS GPIO Heater ★ new v3.1 download full pcb layout ↓
Off-board parts

Buy these
separately.

Not on the PCB — these live inside the bamboo enclosure and connect via JST-PH cables

Amazon · ~$8–15

12mm Coin Vibration Motor

3V DC · 70mA · glue to inner bamboo wall for resonance · connects to J2

search Amazon ↗
Amazon / Digikey · ~$3–5

NTC 10k Thermistor

10kΩ at 25°C · B=3950 · leads ≥80mm · sits at copper spreader · connects to J3

search Amazon ↗
Adafruit / Amazon · ~$5–8

LiPo 100mAh Battery

3.7V · JST-PH 2-pin · check polarity (red=+) before connecting · connects to J4

search Adafruit ↗
Amazon / AliExpress · ~$5–10

Flexible Heating Pad 15mm

5V · 15×15mm · stick under copper spreader at grip zone · connects to J1

search Amazon ↗
Amazon · ~$6–10

JST-PH 2-pin Cables

100mm pre-crimped · pack of 10 · connects all off-board components to J1–J4

search Amazon ↗
Amazon · ~$18–25 · one-time

J-Link EDU Mini Programmer

Flashes nRF52832 firmware via SWD · 4 wires to PCB · reuse forever

search Amazon ↗
Hardware store · ~$2–4

Copper Disc 15mm

0.5mm thick · cut from copper sheet · sits between heating pad and bamboo surface

search Amazon ↗
Amazon · ~$6–8

Thermal Conductive Tape

Double-sided · mounts heating pad and motor inside enclosure without screws

search Amazon ↗
TOTAL OFF-BOARD: $53–85 · J-Link is one-time and reusable across all future nRF52 projects download full parts list ↓
Economics

Prototype to
production.

5 prototypes
$40
per unit · California
  • JLCPCB PCB + assembly $83–108
  • Off-board parts $53–85
  • 3D enclosure (Irvine) $60–90
  • J-Link programmer $18–25
  • Firmware $0
Build timeline

Boards in hand
in 3 weeks.

Day 1
Order everything
Upload Gerbers to JLCPCB · Call JLC3DP Irvine · Order off-board parts on Amazon
Day 2–4
Off-board parts arrive
Motor · NTC · LiPo · heating pad · cables · J-Link programmer
Day 5–7
Enclosures ready
JLC3DP prints and ships directly to your door
Day 10–14
PCBs arrive from JLCPCB
5 assembled boards · Every component placed and soldered · DHL from Shenzhen
Day 14
Flash firmware
Connect J-Link · make flash_softdevice · make flash · 30 seconds per board
Day 15
First heartbeat
Assemble · plug in · feel three slow double pulses · ommphone is alive
Breathing practice

Breathe with
the heartbeat.

hold the rhythm · 7 seconds · no counting needed

· · ·
tap to begin