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
}
];