krishnax12/watchy-eink-smartwatch

This code defines a hardware schematic and PCB layout for a smartwatch using components like ESP32 microcontroller, sensors, Bluetooth module, power regulation, and connectors, with detailed component footprints and PCB outlines.

Version
1.2.1
License
unset
Stars
2

README.md

# Watchy v3 E-Ink Smartwatch

A declarative tscircuit board implementation of the open-source [SQFMI Watchy](https://github.com/sqfmi/watchy) v3 smartwatch hardware, modeled following the structure of [`rushabhcodes/Attiny85-Arcade-Keychain`](https://tscircuit.com/rushabhcodes/Attiny85-Arcade-Keychain#files).

All components feature accurate footprints and 3D STEP models bundled locally in `assets/`.

## Hardware represented

- **MCU**: ESP32-PICO-D4 (QFN-56) Wi-Fi and Bluetooth controller
- **Display**: 1.54-inch 200 × 200 E-Ink display via 24-pin 0.5mm FPC connector (`J3`)
- **Sensor**: BMA423 3-axis accelerometer (`U6`, LGA-12)
- **Buttons**: 4x low-profile tactile edge switches (`SW1`–`SW4`, EVQ-PU)
- **Haptics**: 10mm coin vibration pager motor (`M1`)
- **Power**: TP4054 LiPo charger (`U3`), RT9080-33 3.3V LDO regulator (`U2`), SR2HARU power switch (`U1`)
- **USB**: Micro USB connector (`J2`) with USBLC6-2SC6 ESD protection (`U5`)
- **Crystals**: 40 MHz high-speed oscillator (`Y2`) and 32.768 kHz RTC crystal (`Y1`)
- **Antenna**: 2.4 GHz chip antenna (`AE1`)

## Project structure

```text
├── index.circuit.tsx               # Main board definition and component layout
├── board-outline.ts                # Watchy outer contour and strap cutout coordinates
├── assets.d.ts                     # Ambient type declarations for STEP assets
├── assets/                         # Local 3D STEP models for all components
├── imports/                        # Modular component definitions with footprints and 3D models
│   ├── AO3400A.tsx
│   ├── BatteryConnector.tsx
│   ├── BMA423.tsx
│   ├── CJ2301.tsx
│   ├── Crystal_32Khz.tsx
│   ├── Crystal_40Mhz.tsx
│   ├── Display.tsx
│   ├── D_1N4001.tsx
│   ├── ESP32_PICO_D4.tsx
│   ├── EVQPU_LC_02K.tsx
│   ├── FPC24.tsx
│   ├── MBR0530.tsx
│   ├── MicroUSB.tsx
│   ├── PagerMotor.tsx
│   ├── RT9080_33.tsx
│   ├── S8050.tsx
│   ├── SR2HARU.tsx
│   ├── SRN4018_47uH.tsx
│   ├── SWRA117D.tsx
│   ├── TP4054.tsx
│   └── USBLC6_2SC6.tsx
├── package.json
├── tscircuit.config.json
├── tsconfig.json
└── __snapshots__/
    ├── index.circuit-3d.snap.png
    ├── index.circuit-pcb.snap.svg
    └── index.circuit-schematic.snap.svg
```

## Development

```sh
# Start the tscircuit dev server
bun run dev

# Typecheck TypeScript files
bun run typecheck

# Generate PCB, schematic, and 3D snapshots
bun run snapshot:update

# Build circuit JSON and static distribution
bun run build
```

## License

MIT