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

board-outline.ts

// Watchy v3 Board Outline & Strap Slot Cutouts
// Board dimensions: 33.80 mm x 45.96 mm, 4.0 mm corner radius
// Center at (0, 0)

export const WATCHY_BOARD_BOUNDS = {
  width: 33.8,
  height: 45.96,
  thickness: 1.4,
} as const;

/** Outer Watchy watch body outline (rounded rectangle with 4mm corners) */
export const BOARD_OUTLINE = [
  {
    "x": 16.9,
    "y": 18.98
  },
  {
    "x": 16.8508,
    "y": 19.6057
  },
  {
    "x": 16.7042,
    "y": 20.2161
  },
  {
    "x": 16.464,
    "y": 20.796
  },
  {
    "x": 16.1361,
    "y": 21.3311
  },
  {
    "x": 15.7284,
    "y": 21.8084
  },
  {
    "x": 15.2511,
    "y": 22.2161
  },
  {
    "x": 14.716,
    "y": 22.544
  },
  {
    "x": 14.1361,
    "y": 22.7842
  },
  {
    "x": 13.5257,
    "y": 22.9308
  },
  {
    "x": 12.9,
    "y": 22.98
  },
  {
    "x": -12.9,
    "y": 22.98
  },
  {
    "x": -13.5257,
    "y": 22.9308
  },
  {
    "x": -14.1361,
    "y": 22.7842
  },
  {
    "x": -14.716,
    "y": 22.544
  },
  {
    "x": -15.2511,
    "y": 22.2161
  },
  {
    "x": -15.7284,
    "y": 21.8084
  },
  {
    "x": -16.1361,
    "y": 21.3311
  },
  {
    "x": -16.464,
    "y": 20.796
  },
  {
    "x": -16.7042,
    "y": 20.2161
  },
  {
    "x": -16.8508,
    "y": 19.6057
  },
  {
    "x": -16.9,
    "y": 18.98
  },
  {
    "x": -16.9,
    "y": -18.98
  },
  {
    "x": -16.8508,
    "y": -19.6057
  },
  {
    "x": -16.7042,
    "y": -20.2161
  },
  {
    "x": -16.464,
    "y": -20.796
  },
  {
    "x": -16.1361,
    "y": -21.3311
  },
  {
    "x": -15.7284,
    "y": -21.8084
  },
  {
    "x": -15.2511,
    "y": -22.2161
  },
  {
    "x": -14.716,
    "y": -22.544
  },
  {
    "x": -14.1361,
    "y": -22.7842
  },
  {
    "x": -13.5257,
    "y": -22.9308
  },
  {
    "x": -12.9,
    "y": -22.98
  },
  {
    "x": 12.9,
    "y": -22.98
  },
  {
    "x": 13.5257,
    "y": -22.9308
  },
  {
    "x": 14.1361,
    "y": -22.7842
  },
  {
    "x": 14.716,
    "y": -22.544
  },
  {
    "x": 15.2511,
    "y": -22.2161
  },
  {
    "x": 15.7284,
    "y": -21.8084
  },
  {
    "x": 16.1361,
    "y": -21.3311
  },
  {
    "x": 16.464,
    "y": -20.796
  },
  {
    "x": 16.7042,
    "y": -20.2161
  },
  {
    "x": 16.8508,
    "y": -19.6057
  },
  {
    "x": 16.9,
    "y": -18.98
  }
];

/** Top watch strap slot cutout */
export const TOP_STRAP_CUTOUT = [
  {
    "x": 13,
    "y": 18.98
  },
  {
    "x": -13,
    "y": 18.98
  },
  {
    "x": -13.098,
    "y": 18.9848
  },
  {
    "x": -13.1951,
    "y": 18.9992
  },
  {
    "x": -13.2903,
    "y": 19.0231
  },
  {
    "x": -13.3827,
    "y": 19.0561
  },
  {
    "x": -13.4714,
    "y": 19.0981
  },
  {
    "x": -13.5556,
    "y": 19.1485
  },
  {
    "x": -13.6344,
    "y": 19.207
  },
  {
    "x": -13.7071,
    "y": 19.2729
  },
  {
    "x": -13.773,
    "y": 19.3456
  },
  {
    "x": -13.8315,
    "y": 19.4244
  },
  {
    "x": -13.8819,
    "y": 19.5086
  },
  {
    "x": -13.9239,
    "y": 19.5973
  },
  {
    "x": -13.9569,
    "y": 19.6897
  },
  {
    "x": -13.9808,
    "y": 19.7849
  },
  {
    "x": -13.9952,
    "y": 19.882
  },
  {
    "x": -14,
    "y": 19.98
  },
  {
    "x": -13.9952,
    "y": 20.078
  },
  {
    "x": -13.9808,
    "y": 20.1751
  },
  {
    "x": -13.9569,
    "y": 20.2703
  },
  {
    "x": -13.9239,
    "y": 20.3627
  },
  {
    "x": -13.8819,
    "y": 20.4514
  },
  {
    "x": -13.8315,
    "y": 20.5356
  },
  {
    "x": -13.773,
    "y": 20.6144
  },
  {
    "x": -13.7071,
    "y": 20.6871
  },
  {
    "x": -13.6344,
    "y": 20.753
  },
  {
    "x": -13.5556,
    "y": 20.8115
  },
  {
    "x": -13.4714,
    "y": 20.8619
  },
  {
    "x": -13.3827,
    "y": 20.9039
  },
  {
    "x": -13.2903,
    "y": 20.9369
  },
  {
    "x": -13.1951,
    "y": 20.9608
  },
  {
    "x": -13.098,
    "y": 20.9752
  },
  {
    "x": -13,
    "y": 20.98
  },
  {
    "x": 13,
    "y": 20.98
  },
  {
    "x": 13.098,
    "y": 20.9752
  },
  {
    "x": 13.1951,
    "y": 20.9608
  },
  {
    "x": 13.2903,
    "y": 20.9369
  },
  {
    "x": 13.3827,
    "y": 20.9039
  },
  {
    "x": 13.4714,
    "y": 20.8619
  },
  {
    "x": 13.5556,
    "y": 20.8115
  },
  {
    "x": 13.6344,
    "y": 20.753
  },
  {
    "x": 13.7071,
    "y": 20.6871
  },
  {
    "x": 13.773,
    "y": 20.6144
  },
  {
    "x": 13.8315,
    "y": 20.5356
  },
  {
    "x": 13.8819,
    "y": 20.4514
  },
  {
    "x": 13.9239,
    "y": 20.3627
  },
  {
    "x": 13.9569,
    "y": 20.2703
  },
  {
    "x": 13.9808,
    "y": 20.1751
  },
  {
    "x": 13.9952,
    "y": 20.078
  },
  {
    "x": 14,
    "y": 19.98
  },
  {
    "x": 13.9952,
    "y": 19.882
  },
  {
    "x": 13.9808,
    "y": 19.7849
  },
  {
    "x": 13.9569,
    "y": 19.6897
  },
  {
    "x": 13.9239,
    "y": 19.5973
  },
  {
    "x": 13.8819,
    "y": 19.5086
  },
  {
    "x": 13.8315,
    "y": 19.4244
  },
  {
    "x": 13.773,
    "y": 19.3456
  },
  {
    "x": 13.7071,
    "y": 19.2729
  },
  {
    "x": 13.6344,
    "y": 19.207
  },
  {
    "x": 13.5556,
    "y": 19.1485
  },
  {
    "x": 13.4714,
    "y": 19.0981
  },
  {
    "x": 13.3827,
    "y": 19.0561
  },
  {
    "x": 13.2903,
    "y": 19.0231
  },
  {
    "x": 13.1951,
    "y": 18.9992
  },
  {
    "x": 13.098,
    "y": 18.9848
  },
  {
    "x": 13,
    "y": 18.98
  }
];

/** Bottom watch strap slot cutout */
export const BOTTOM_STRAP_CUTOUT = [
  {
    "x": 13,
    "y": -18.98
  },
  {
    "x": 9.95,
    "y": -18.98
  },
  {
    "x": 9.901,
    "y": -18.9776
  },
  {
    "x": 9.8525,
    "y": -18.9704
  },
  {
    "x": 9.8049,
    "y": -18.9585
  },
  {
    "x": 9.7587,
    "y": -18.9419
  },
  {
    "x": 9.7143,
    "y": -18.921
  },
  {
    "x": 9.6722,
    "y": -18.8957
  },
  {
    "x": 9.6328,
    "y": -18.8665
  },
  {
    "x": 9.5964,
    "y": -18.8336
  },
  {
    "x": 9.5635,
    "y": -18.7972
  },
  {
    "x": 9.5343,
    "y": -18.7578
  },
  {
    "x": 9.509,
    "y": -18.7157
  },
  {
    "x": 9.4881,
    "y": -18.6713
  },
  {
    "x": 9.4715,
    "y": -18.6251
  },
  {
    "x": 9.4596,
    "y": -18.5775
  },
  {
    "x": 9.4524,
    "y": -18.529
  },
  {
    "x": 9.45,
    "y": -18.48
  },
  {
    "x": -8.55,
    "y": -18.48
  },
  {
    "x": -8.5524,
    "y": -18.529
  },
  {
    "x": -8.5596,
    "y": -18.5775
  },
  {
    "x": -8.5715,
    "y": -18.6251
  },
  {
    "x": -8.5881,
    "y": -18.6713
  },
  {
    "x": -8.609,
    "y": -18.7157
  },
  {
    "x": -8.6343,
    "y": -18.7578
  },
  {
    "x": -8.6635,
    "y": -18.7972
  },
  {
    "x": -8.6964,
    "y": -18.8336
  },
  {
    "x": -8.7328,
    "y": -18.8665
  },
  {
    "x": -8.7722,
    "y": -18.8957
  },
  {
    "x": -8.8143,
    "y": -18.921
  },
  {
    "x": -8.8587,
    "y": -18.9419
  },
  {
    "x": -8.9049,
    "y": -18.9585
  },
  {
    "x": -8.9525,
    "y": -18.9704
  },
  {
    "x": -9.001,
    "y": -18.9776
  },
  {
    "x": -9.05,
    "y": -18.98
  },
  {
    "x": -13,
    "y": -18.98
  },
  {
    "x": -13.098,
    "y": -18.9848
  },
  {
    "x": -13.1951,
    "y": -18.9992
  },
  {
    "x": -13.2903,
    "y": -19.0231
  },
  {
    "x": -13.3827,
    "y": -19.0561
  },
  {
    "x": -13.4714,
    "y": -19.0981
  },
  {
    "x": -13.5556,
    "y": -19.1485
  },
  {
    "x": -13.6344,
    "y": -19.207
  },
  {
    "x": -13.7071,
    "y": -19.2729
  },
  {
    "x": -13.773,
    "y": -19.3456
  },
  {
    "x": -13.8315,
    "y": -19.4244
  },
  {
    "x": -13.8819,
    "y": -19.5086
  },
  {
    "x": -13.9239,
    "y": -19.5973
  },
  {
    "x": -13.9569,
    "y": -19.6897
  },
  {
    "x": -13.9808,
    "y": -19.7849
  },
  {
    "x": -13.9952,
    "y": -19.882
  },
  {
    "x": -14,
    "y": -19.98
  },
  {
    "x": -13.9952,
    "y": -20.078
  },
  {
    "x": -13.9808,
    "y": -20.1751
  },
  {
    "x": -13.9569,
    "y": -20.2703
  },
  {
    "x": -13.9239,
    "y": -20.3627
  },
  {
    "x": -13.8819,
    "y": -20.4514
  },
  {
    "x": -13.8315,
    "y": -20.5356
  },
  {
    "x": -13.773,
    "y": -20.6144
  },
  {
    "x": -13.7071,
    "y": -20.6871
  },
  {
    "x": -13.6344,
    "y": -20.753
  },
  {
    "x": -13.5556,
    "y": -20.8115
  },
  {
    "x": -13.4714,
    "y": -20.8619
  },
  {
    "x": -13.3827,
    "y": -20.9039
  },
  {
    "x": -13.2903,
    "y": -20.9369
  },
  {
    "x": -13.1951,
    "y": -20.9608
  },
  {
    "x": -13.098,
    "y": -20.9752
  },
  {
    "x": -13,
    "y": -20.98
  },
  {
    "x": 13,
    "y": -20.98
  },
  {
    "x": 13.098,
    "y": -20.9752
  },
  {
    "x": 13.1951,
    "y": -20.9608
  },
  {
    "x": 13.2903,
    "y": -20.9369
  },
  {
    "x": 13.3827,
    "y": -20.9039
  },
  {
    "x": 13.4714,
    "y": -20.8619
  },
  {
    "x": 13.5556,
    "y": -20.8115
  },
  {
    "x": 13.6344,
    "y": -20.753
  },
  {
    "x": 13.7071,
    "y": -20.6871
  },
  {
    "x": 13.773,
    "y": -20.6144
  },
  {
    "x": 13.8315,
    "y": -20.5356
  },
  {
    "x": 13.8819,
    "y": -20.4514
  },
  {
    "x": 13.9239,
    "y": -20.3627
  },
  {
    "x": 13.9569,
    "y": -20.2703
  },
  {
    "x": 13.9808,
    "y": -20.1751
  },
  {
    "x": 13.9952,
    "y": -20.078
  },
  {
    "x": 14,
    "y": -19.98
  },
  {
    "x": 13.9952,
    "y": -19.882
  },
  {
    "x": 13.9808,
    "y": -19.7849
  },
  {
    "x": 13.9569,
    "y": -19.6897
  },
  {
    "x": 13.9239,
    "y": -19.5973
  },
  {
    "x": 13.8819,
    "y": -19.5086
  },
  {
    "x": 13.8315,
    "y": -19.4244
  },
  {
    "x": 13.773,
    "y": -19.3456
  },
  {
    "x": 13.7071,
    "y": -19.2729
  },
  {
    "x": 13.6344,
    "y": -19.207
  },
  {
    "x": 13.5556,
    "y": -19.1485
  },
  {
    "x": 13.4714,
    "y": -19.0981
  },
  {
    "x": 13.3827,
    "y": -19.0561
  },
  {
    "x": 13.2903,
    "y": -19.0231
  },
  {
    "x": 13.1951,
    "y": -18.9992
  },
  {
    "x": 13.098,
    "y": -18.9848
  },
  {
    "x": 13,
    "y": -18.98
  }
];