InkTime este un smartwatch open source și accesibil, bazat pe un display e-paper și microcontroller-ul nRF52840.
┌─────────────┐ ┌─────────────────────────────────────────────────┐
│ USB-C │─5V─▶│ │
└─────────────┘ │ │
│ BQ25180YBGR (LiPo Charger) │
┌─────────────┐ │ │ VBAT │
│ AKYGA │────▶│ ▼ │
│ LP502030 │ │ RT6160AWSC (DC/DC) ──▶ 3.3V │
│ 3.7V 250mAh │ └─────────────────────────────────────────────────┘
└─────────────┘ │ 3V3
▼
┌──────────────────────────────┐
│ nRF52840 │
│ MCU Principal │
│ Bluetooth 5.0 │
└──────────────────────────────┘
│ │ │ │
SPI I2C GPIO SWD
│ │ │ │
┌────┘ ┌───┘ ┌───┘ ┌───┘
▼ ▼ ▼ ▼
e-Paper ICM42421 FIT0774 Debug
1.54" IMU Vibrații SWD
200x200 +
3x Butoane
| Referinta | Componenta | Model | Cantitate | Link achizitie | Datasheet |
|---|---|---|---|---|---|
| U1 | MCU | nRF52840 | 1 | JLC | Datasheet |
| IC1 | LiPo Charger | BQ25180YBGR | 1 | JLC | Datasheet |
| IC2 | Haptic Driver | DRV2605YZFR | 1 | JLC | Datasheet |
| IC3 | IMU | BMA423 | 1 | JLC | Datasheet |
| IC9 | DC/DC Converter | RT6160AWSC | 1 | JLC | Datasheet |
| U3 | Fuel Gauge | MAX17048G+T10 | 1 | JLC | Datasheet |
| D3 | ESD Protection | USBLC6-2SC6Y | 1 | JLC | Datasheet |
| J4 | USB-C Connector | KH-TYPE-C-16P | 1 | JLC | Datasheet |
| J1 | E-Paper Connector | 503480-2400E | 1 | JLC | Datasheet |
| ANT1 | Antena BLE | 2450AT18B100E | 1 | JLC | Datasheet |
| X1 | Crystal 32MHz | SMD 2016 | 1 | JLC | Datasheet |
| X2 | Crystal 32.768kHz | SMD 2016 | 1 | JLC | Datasheet |
| SW1-3 | Buton tactil | EVP-AKE31A | 3 | JLC | Datasheet |
| J2 | SWD Connector | TC2030-IDC | 1 | JLC | Datasheet |
| Q2 | MOSFET P-ch | DMG2305UX-7 | 1 | JLC | Datasheet |
| Q3 | MOSFET N-ch | SI1308EDL-T1-GE3 | 1 | JLC | Datasheet |
| D2, D4, D5 | Dioda Schottky | MBR0530 | 3 | JLC | Datasheet |
| L1 | Inductanta 0.47µH | FTC252012SR47MBCA | 1 | JLC | |
| L2 | Inductanta 15nH | RF matching 0201 | 1 | JLC | - |
| L3 | Inductanta 3.9nH | RF matching 0201 | 1 | JLC | - |
| L5 | Inductanta 68µH | EPD driver SMD | 1 | JLC | - |
| L7 | Inductanta 10µH | DC/DC SMD | 1 | JLC | - |
| C* | Condensatoare | 100nF decuplare 0201 | multiple | JLC | - |
| C* | Condensatoare | >100nF bulk 0402 | multiple | JLC | - |
| R* | Rezistente | Diverse valori 0201 | multiple | JLC | - |
Microcontroller-ul principal al proiectului. Are integrat Bluetooth 5.0, suportă SPI, I2C, UART și GPIO. Rulează la 3.3V, consumă ~1.5mA activ și sub 2μA în deep sleep. Procesor ARM Cortex-M4F la 64MHz, 1MB Flash și 256KB RAM.
Display electrofotoreic bistabil cu rezoluție 200×200 pixeli. Conectat prin SPI 4 fire. Consumul în deep sleep este sub 2μA. Imaginea rămâne afișată fără consum de energie (bi-stable) — ideal pentru smartwatch.
Baterie Li-Po de 250mAh, 3.7V nominal. Se conectează direct la două test pad-uri de pe PCB (TP_BAT și TP_BAT_GND), fără conector JST, pentru economisirea spațiului în carcasă.
Circuit de încărcare a bateriei Li-Po, conectat prin I2C la MCU. Suportă încărcare CC/CV, protecție la supraîncărcare (4.3V) și supradescărcare (2.5V). Tensiunea de intrare vine de la USB-C (VBUS 5V).
Convertor buck care generează 3.3V pentru MCU și restul componentelor. Eficiență ~90%, comunicație I2C pentru configurare dinamică a tensiunii de ieșire.
Accelerometru 3-axis conectat prin I2C. Detectează mișcări, orientare, pași și gesture-uri. Întreruperile IMU_INT1 și IMU_INT2 sunt conectate la GPIO-uri ale MCU.
Driver pentru motorul de vibrații, conectat prin I2C. Controlează FIT0774 și permite pattern-uri de vibrații complexe pentru notificări tactile diferențiate.
Motor DC de vibrații (10×2.7mm), controlat prin DRV2605 via tranzistor N-channel. Folosit pentru notificări tactile.
Monitorizare nivel baterie prin I2C. Oferă MCU-ului informații despre starea de încărcare (SOC) a bateriei.
Protecție ESD pe liniile USB-C (VBUS, D+, D-) pentru protejarea MCU-ului.
3 butoane tactile SMD (SW_UP, SW_ENT, SW_DN) cu condensatoare de debounce, conectate la GPIO-urile MCU.
| Componentă | Semnal | Pin nRF52840 | Interfață | Motiv |
|---|---|---|---|---|
| e-Paper | EPD_CS | P0.04 | SPI | Chip Select display |
| e-Paper | EPD_BUSY | P0.13 | GPIO | Status display |
| e-Paper | EPD_RST | P0.14 | GPIO | Reset display |
| e-Paper | MOSI | P0.30 | SPI | Date SPI |
| e-Paper | SCK | P0.29 | SPI | Clock SPI |
| I2C (toți) | SDA | P0.06 | I2C | Date I2C shared bus |
| I2C (toți) | SCL | P0.07 | I2C | Clock I2C shared bus |
| IMU | IMU_INT1 | P0.08 | GPIO | Întrerupere IMU primară |
| IMU | IMU_INT2 | P0.09 | GPIO | Întrerupere IMU secundară |
| LiPo Charger | PMIC_INT | P0.11 | GPIO | Întrerupere PMIC/charger |
| Haptic Driver | HAPTIC_EN | P0.12 | GPIO | Enable motor vibrații |
| SWD | SWDIO | P1.02 | SWD | Debug data |
| SWD | SWDCLK | P1.00 | SWD | Debug clock |
| Componentă | Consum activ | Consum sleep |
|---|---|---|
| nRF52840 | ~1.5mA | ~2μA |
| e-Paper display | ~8mAs/refresh | ~2μA |
| BMA423 IMU | ~0.5mA | ~6μA |
| BQ25180 Charger | ~50mA (încărcare) | ~5μA |
| RT6160 DC/DC | eficiență ~90% | - |
| DRV2605 + FIT0774 | ~50mA (vibrație) | ~0μA |
Estimare autonomie:
- Baterie: 250mAh
- Consum mediu estimat (refresh 1x/min, BT off, fără vibrații): ~0.5mA
- Autonomie estimată: ~500 ore (~20 zile)
PCB-ul a fost realizat pe 4 straturi, cu următoarea structură: StratRolLayer 1 (TOP)Semnale + componenteLayer 2 (c63Route63)Plan de masă GNDLayer 3Semnale interneLayer 4 (BOTTOM)Semnale + plan de masă Rutarea pe 4 straturi a permis o densitate mai mare de trasee și o mai bună integritate a semnalului, în special pentru traseele RF. Via stitching a fost aplicat între planurile de masă TOP și BOTTOM, în special în jurul circuitului radio (nRF52840 + antenă 2450AT18B100E). Zona de sub antenă a fost decupată — nu există plan de masă și nu sunt rutate semnale sub antenă, conform cerințelor pentru performanță RF optimă.
Bateria se conectează direct la test pad-urile TP_BAT și TP_BAT_GND (fără conector JST) pentru economisirea spațiului. PCB grosime 1mm (nu 1.6mm standard) pentru a încăpea în carcasă. Antena plasată spre exteriorul PCB-ului, cu decupaj sub ea. Toate componentele plasate exclusiv pe layer-ul TOP. Condensatoare de decuplare 100nF (0201) cât mai aproape de pinii de alimentare. Trasee de putere rutate cu 0.3mm, semnale de date cu minim 0.15mm. Trasee fără unghiuri drepte.
Am acceptat erori de tip:
- Smd-Via, aparute in urma via in pad;
- Cele de tip Wire-Wire, care sunt doar in pad, nu pe trasee si le-am dat approve caci, real-life, putem potrivi acele fire in pad astfel incat sa nu se suprapuna;
- Cele de tip Wire-Via, Smd-Wire cu aceeasi mentiune;
- Cele de tip Solid-Polygon Shape-Pad, aparute in urma plasarii butoanelor pe PCB, care nu reprezinta o problema(ignorate conform cerintelor proiectului;
Apache 2.0 — vezi fișierul LICENSE




