Compare commits
65 Commits
Author | SHA1 | Date | |
---|---|---|---|
e7e38e9fca | |||
1f71b94238 | |||
b4ad668620 | |||
869a581242 | |||
e070c802d5 | |||
34066ee463 | |||
3110f25d80 | |||
5be6197f8c | |||
27bde9cc87 | |||
3e31b4c041 | |||
c6ef614221 | |||
bfee21796a | |||
57a0971c4b | |||
556e64740a | |||
9d1a807805 | |||
680d1c3aaf | |||
060a1cc32d | |||
541f7e4471 | |||
7ea1486e2c | |||
b933516062 | |||
b533739aa4 | |||
12463c557b | |||
9473466feb | |||
b5b5b25238 | |||
b9ec3247af | |||
a30dbe0759 | |||
5724088780 | |||
4c02b99ea7 | |||
1e40e2e3ba | |||
fd823217aa | |||
2541c83ebe | |||
58801f870e | |||
066b3ec24f | |||
303bdd131f | |||
5d6871250e | |||
e43538ec8a | |||
fb0ad6b1dc | |||
f0f0e9f27e | |||
4a8fffb3cc | |||
dd949a1be1 | |||
a9ab4ee99b | |||
8bfa27612d | |||
55369e46a8 | |||
b2e5ccccee | |||
031e8de99f | |||
d35b814047 | |||
0a0ac6babf | |||
b268466b89 | |||
3c409ea339 | |||
825d389a8c | |||
17db1b8a45 | |||
2092354bc9 | |||
ae8ff86c1a | |||
ec67450a0a | |||
f72135a2b3 | |||
ba0fa2e732 | |||
d3d6ad8ffb | |||
ca74a716b7 | |||
ba9fc2432b | |||
fd08921bba | |||
33082b7481 | |||
8cc9b9d492 | |||
928dce949d | |||
5f20ec17d0 | |||
bdd9a17757 |
11
.gitignore
vendored
11
.gitignore
vendored
@ -1 +1,12 @@
|
|||||||
*.sch-bak
|
*.sch-bak
|
||||||
|
PlantCtrlESP32-backups/
|
||||||
|
board/production/PlantCtrlESP32_2023-11-08_00-45-35/PlantCtrlESP32.zip
|
||||||
|
board/production/PlantCtrlESP32_2023-11-08_00-45-35/netlist.ipc
|
||||||
|
.vscode
|
||||||
|
.embuild/
|
||||||
|
target
|
||||||
|
Cargo.lock
|
||||||
|
node_modules/
|
||||||
|
rust/src/webserver/bundle.js
|
||||||
|
rust/build/
|
||||||
|
rust/image.bin
|
||||||
|
46
board/4435.kicad_mod
Normal file
46
board/4435.kicad_mod
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
(footprint "4435" (version 20221018) (generator pcbnew)
|
||||||
|
(layer "F.Cu")
|
||||||
|
(attr smd)
|
||||||
|
(fp_text reference "REF**" (at -3.705 0 90) (layer "F.SilkS")
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
(tstamp 888d4749-ec8d-48e0-b622-265ef152540e)
|
||||||
|
)
|
||||||
|
(fp_text value "4435" (at 0 0) (layer "F.Fab")
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
(tstamp 92782e22-8381-4ed1-a11f-ef69c9601af0)
|
||||||
|
)
|
||||||
|
(fp_line (start -2.705 -1.9) (end 2.705 -1.9)
|
||||||
|
(stroke (width 0.12) (type default)) (layer "F.SilkS") (tstamp 3128977c-e0a0-4ca7-8f5b-79eab6c86d44))
|
||||||
|
(fp_line (start -2.705 1.1) (end -2.705 -1.9)
|
||||||
|
(stroke (width 0.12) (type default)) (layer "F.SilkS") (tstamp b5339e6e-bef0-40f8-ac0d-5ffe68b262f3))
|
||||||
|
(fp_line (start -1.905 1.9) (end -2.705 1.1)
|
||||||
|
(stroke (width 0.12) (type default)) (layer "F.SilkS") (tstamp 267dcc87-49da-46db-86da-4ce81b7d2468))
|
||||||
|
(fp_line (start 2.705 -1.9) (end 2.705 1.9)
|
||||||
|
(stroke (width 0.12) (type default)) (layer "F.SilkS") (tstamp 14aaa409-1cdb-4bf6-a811-f0da4dffe73a))
|
||||||
|
(fp_line (start 2.705 1.9) (end -1.905 1.9)
|
||||||
|
(stroke (width 0.12) (type default)) (layer "F.SilkS") (tstamp 1789de97-d192-4375-b67e-3ad05848eee2))
|
||||||
|
(fp_line (start -2.46 -4.85) (end 2.46 -4.85)
|
||||||
|
(stroke (width 0.05) (type default)) (layer "F.CrtYd") (tstamp f4d6fc79-0700-4ee7-b411-e8f033ff66d3))
|
||||||
|
(fp_line (start -2.46 4.85) (end -2.46 -4.85)
|
||||||
|
(stroke (width 0.05) (type default)) (layer "F.CrtYd") (tstamp 3cfe9046-c22e-44b7-8f86-5e90bf2c83b0))
|
||||||
|
(fp_line (start 2.46 -4.85) (end 2.46 4.85)
|
||||||
|
(stroke (width 0.05) (type default)) (layer "F.CrtYd") (tstamp 41eb9d06-d36a-4d1d-a098-b2c48b580c65))
|
||||||
|
(fp_line (start 2.46 4.85) (end -2.46 4.85)
|
||||||
|
(stroke (width 0.05) (type default)) (layer "F.CrtYd") (tstamp 05ce4f60-8c60-4fe2-86da-df65172ffb03))
|
||||||
|
(pad "1" smd rect (at -1.905 -3.5) (size 0.6 2.2) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||||
|
(thermal_bridge_angle 45) (tstamp 239f0d43-7a93-43bf-abef-be78a7aed604))
|
||||||
|
(pad "1" smd rect (at -0.635 -3.5) (size 0.6 2.2) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||||
|
(thermal_bridge_angle 45) (tstamp a9c370b9-178b-48cd-94a4-ca368fb8484d))
|
||||||
|
(pad "1" smd rect (at 0.635 -3.5) (size 0.6 2.2) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||||
|
(thermal_bridge_angle 45) (tstamp 8d506357-8b26-4d9b-b778-52fd40f96071))
|
||||||
|
(pad "1" smd rect (at 1.905 -3.5) (size 0.6 2.2) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||||
|
(thermal_bridge_angle 45) (tstamp 4f4e03c6-0964-4327-a6cb-2e71085bfef0))
|
||||||
|
(pad "2" smd rect (at 1.905 3.5) (size 0.6 2.2) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||||
|
(thermal_bridge_angle 45) (tstamp 3f6b4cbd-12fd-4380-92b9-d204178e6014))
|
||||||
|
(pad "3" smd rect (at -1.905 3.5) (size 0.6 2.2) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||||
|
(thermal_bridge_angle 45) (tstamp bb893791-93a0-4766-9b0e-f175da5df5f4))
|
||||||
|
(pad "3" smd rect (at -0.635 3.5) (size 0.6 2.2) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||||
|
(thermal_bridge_angle 45) (tstamp 8487832e-80f2-4019-9519-9da7cbe24a96))
|
||||||
|
(pad "3" smd rect (at 0.635 3.5) (size 0.6 2.2) (layers "F.Cu" "F.Paste" "F.Mask")
|
||||||
|
(thermal_bridge_angle 45) (tstamp 4ecffbef-d0f1-4d07-af9a-0fb6030dccea))
|
||||||
|
)
|
82
board/CN3306.kicad_sym
Normal file
82
board/CN3306.kicad_sym
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
(kicad_symbol_lib (version 20220914) (generator kicad_symbol_editor)
|
||||||
|
(symbol "CN3306" (in_bom yes) (on_board yes)
|
||||||
|
(property "Reference" "U" (at 5.08 -5.08 0)
|
||||||
|
(effects (font (size 1.27 1.27)))
|
||||||
|
)
|
||||||
|
(property "Value" "" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)))
|
||||||
|
)
|
||||||
|
(property "Footprint" "" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) hide)
|
||||||
|
)
|
||||||
|
(property "Datasheet" "" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) hide)
|
||||||
|
)
|
||||||
|
(symbol "CN3306_1_1"
|
||||||
|
(rectangle (start -2.54 7.62) (end 12.7 -16.51)
|
||||||
|
(stroke (width 0) (type default))
|
||||||
|
(fill (type background))
|
||||||
|
)
|
||||||
|
(pin input line (at 15.24 -8.89 180) (length 2.54)
|
||||||
|
(name "FB" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "1" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin input line (at 5.08 10.16 270) (length 2.54)
|
||||||
|
(name "COME" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "10" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin input line (at 15.24 -13.97 180) (length 2.54)
|
||||||
|
(name "VCC" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "11" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin input line (at 15.24 -11.43 180) (length 2.54)
|
||||||
|
(name "VCC" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "12" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin input line (at 15.24 5.08 180) (length 2.54)
|
||||||
|
(name "DRV" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "13" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin input line (at 3.81 -19.05 90) (length 2.54)
|
||||||
|
(name "GND" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "14" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin input line (at 6.35 -19.05 90) (length 2.54)
|
||||||
|
(name "GND" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "15" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin input line (at 15.24 2.54 180) (length 2.54)
|
||||||
|
(name "ISW" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "16" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin input line (at -5.08 -10.16 0) (length 2.54)
|
||||||
|
(name "COMP" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "2" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin input line (at -5.08 -1.27 0) (length 2.54)
|
||||||
|
(name "MPPT" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "3" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin input line (at -5.08 -7.62 0) (length 2.54)
|
||||||
|
(name "SHDN" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "5" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin input line (at -5.08 3.81 0) (length 2.54)
|
||||||
|
(name "CHRG" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "6" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin input line (at -5.08 1.27 0) (length 2.54)
|
||||||
|
(name "DONE" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "7" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin input line (at 15.24 -3.81 180) (length 2.54)
|
||||||
|
(name "CSP" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "8" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin input line (at 15.24 -6.35 180) (length 2.54)
|
||||||
|
(name "ONE" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "9" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
123
board/CN3795.kicad_sym
Normal file
123
board/CN3795.kicad_sym
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
|
||||||
|
(kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor)
|
||||||
|
(symbol "CN3795" (pin_names (offset 1.016)) (in_bom yes) (on_board yes)
|
||||||
|
(property "Reference" "U" (id 0) (at 5.08 18.542 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify bottom left))
|
||||||
|
)
|
||||||
|
(property "Value" "CN3795" (id 1) (at 5.08 -20.32 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify bottom left))
|
||||||
|
)
|
||||||
|
(property "Footprint" "CN3795:SSOP10" (id 2) (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify bottom) hide)
|
||||||
|
)
|
||||||
|
(property "MF" "Consonance" (id 4) (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify bottom) hide)
|
||||||
|
)
|
||||||
|
(property "Description" "\n4A, Multi-Chemistry Battery Charger\nWith Photovoltaic Cell MPPT Function\n" (id 5) (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify bottom) hide)
|
||||||
|
)
|
||||||
|
(property "Package" "Package" (id 6) (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify bottom) hide)
|
||||||
|
)
|
||||||
|
(property "Price" "None" (id 7) (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify bottom) hide)
|
||||||
|
)
|
||||||
|
(property "SnapEDA_Link" "https://www.snapeda.com/parts/CN3795/Consonance/view-part/?ref=snap" (id 8) (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify bottom) hide)
|
||||||
|
)
|
||||||
|
(property "MP" "CN3795" (id 9) (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify bottom) hide)
|
||||||
|
)
|
||||||
|
(property "Availability" "Not in stock" (id 10) (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify bottom) hide)
|
||||||
|
)
|
||||||
|
(property "Check_prices" "https://www.snapeda.com/parts/CN3795/Consonance/view-part/?ref=eda" (id 11) (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify bottom) hide)
|
||||||
|
)
|
||||||
|
(symbol "CN3795_0_0"
|
||||||
|
(rectangle (start -12.7 -17.78) (end 12.7 17.78)
|
||||||
|
(stroke (width 0.254)) (fill (type background))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -15.24 7.62 0) (length 2.54)
|
||||||
|
(name "VCC"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "9"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -15.24 -2.54 0) (length 2.54)
|
||||||
|
(name "~{CHRG}"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "3"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -15.24 -7.62 0) (length 2.54)
|
||||||
|
(name "MPPT"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "4"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -2.54 20.32 270.0) (length 2.54)
|
||||||
|
(name "VG"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "1"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 2.54 20.32 270.0) (length 2.54)
|
||||||
|
(name "DRV"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "10"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 15.24 7.62 180.0) (length 2.54)
|
||||||
|
(name "CSP"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "8"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 15.24 2.54 180.0) (length 2.54)
|
||||||
|
(name "BAT"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "7"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 15.24 -2.54 180.0) (length 2.54)
|
||||||
|
(name "FB"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "6"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 15.24 -7.62 180.0) (length 2.54)
|
||||||
|
(name "COM"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "5"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 0.0 -20.32 90.0) (length 2.54)
|
||||||
|
(name "GND"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "2"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"board": {
|
"board": {
|
||||||
"active_layer": 0,
|
"active_layer": 39,
|
||||||
"active_layer_preset": "",
|
"active_layer_preset": "",
|
||||||
"auto_track_width": true,
|
"auto_track_width": false,
|
||||||
"hidden_netclasses": [],
|
"hidden_netclasses": [],
|
||||||
"hidden_nets": [],
|
"hidden_nets": [],
|
||||||
"high_contrast_mode": 0,
|
"high_contrast_mode": 0,
|
||||||
@ -64,10 +64,18 @@
|
|||||||
33,
|
33,
|
||||||
34,
|
34,
|
||||||
35,
|
35,
|
||||||
36
|
36,
|
||||||
|
39,
|
||||||
|
40
|
||||||
],
|
],
|
||||||
"visible_layers": "fffffff_ffffffff",
|
"visible_layers": "ffdfffe_ffffffff",
|
||||||
"zone_display_mode": 0
|
"zone_display_mode": 1
|
||||||
|
},
|
||||||
|
"git": {
|
||||||
|
"repo_password": "",
|
||||||
|
"repo_type": "",
|
||||||
|
"repo_username": "",
|
||||||
|
"ssh_key": ""
|
||||||
},
|
},
|
||||||
"meta": {
|
"meta": {
|
||||||
"filename": "PlantCtrlESP32.kicad_prl",
|
"filename": "PlantCtrlESP32.kicad_prl",
|
||||||
|
@ -3,14 +3,17 @@
|
|||||||
"3dviewports": [],
|
"3dviewports": [],
|
||||||
"design_settings": {
|
"design_settings": {
|
||||||
"defaults": {
|
"defaults": {
|
||||||
"board_outline_line_width": 0.049999999999999996,
|
"apply_defaults_to_fp_fields": false,
|
||||||
"copper_line_width": 0.19999999999999998,
|
"apply_defaults_to_fp_shapes": false,
|
||||||
|
"apply_defaults_to_fp_text": false,
|
||||||
|
"board_outline_line_width": 0.05,
|
||||||
|
"copper_line_width": 0.2,
|
||||||
"copper_text_italic": false,
|
"copper_text_italic": false,
|
||||||
"copper_text_size_h": 1.5,
|
"copper_text_size_h": 1.5,
|
||||||
"copper_text_size_v": 1.5,
|
"copper_text_size_v": 1.5,
|
||||||
"copper_text_thickness": 0.3,
|
"copper_text_thickness": 0.3,
|
||||||
"copper_text_upright": false,
|
"copper_text_upright": false,
|
||||||
"courtyard_line_width": 0.049999999999999996,
|
"courtyard_line_width": 0.05,
|
||||||
"dimension_precision": 4,
|
"dimension_precision": 4,
|
||||||
"dimension_units": 3,
|
"dimension_units": 3,
|
||||||
"dimensions": {
|
"dimensions": {
|
||||||
@ -21,22 +24,22 @@
|
|||||||
"text_position": 0,
|
"text_position": 0,
|
||||||
"units_format": 1
|
"units_format": 1
|
||||||
},
|
},
|
||||||
"fab_line_width": 0.09999999999999999,
|
"fab_line_width": 0.1,
|
||||||
"fab_text_italic": false,
|
"fab_text_italic": false,
|
||||||
"fab_text_size_h": 1.0,
|
"fab_text_size_h": 1.0,
|
||||||
"fab_text_size_v": 1.0,
|
"fab_text_size_v": 1.0,
|
||||||
"fab_text_thickness": 0.15,
|
"fab_text_thickness": 0.15,
|
||||||
"fab_text_upright": false,
|
"fab_text_upright": false,
|
||||||
"other_line_width": 0.09999999999999999,
|
"other_line_width": 0.1,
|
||||||
"other_text_italic": false,
|
"other_text_italic": false,
|
||||||
"other_text_size_h": 1.0,
|
"other_text_size_h": 1.0,
|
||||||
"other_text_size_v": 1.0,
|
"other_text_size_v": 1.0,
|
||||||
"other_text_thickness": 0.15,
|
"other_text_thickness": 0.15,
|
||||||
"other_text_upright": false,
|
"other_text_upright": false,
|
||||||
"pads": {
|
"pads": {
|
||||||
"drill": 0.762,
|
"drill": 0.0,
|
||||||
"height": 1.524,
|
"height": 3.0,
|
||||||
"width": 1.524
|
"width": 1.6
|
||||||
},
|
},
|
||||||
"silk_line_width": 0.12,
|
"silk_line_width": 0.12,
|
||||||
"silk_text_italic": false,
|
"silk_text_italic": false,
|
||||||
@ -45,11 +48,16 @@
|
|||||||
"silk_text_thickness": 0.15,
|
"silk_text_thickness": 0.15,
|
||||||
"silk_text_upright": false,
|
"silk_text_upright": false,
|
||||||
"zones": {
|
"zones": {
|
||||||
"45_degree_only": false,
|
"min_clearance": 0.0
|
||||||
"min_clearance": 0.508
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"diff_pair_dimensions": [],
|
"diff_pair_dimensions": [
|
||||||
|
{
|
||||||
|
"gap": 0.0,
|
||||||
|
"via_gap": 0.0,
|
||||||
|
"width": 0.0
|
||||||
|
}
|
||||||
|
],
|
||||||
"drc_exclusions": [],
|
"drc_exclusions": [],
|
||||||
"meta": {
|
"meta": {
|
||||||
"filename": "board_design_settings.json",
|
"filename": "board_design_settings.json",
|
||||||
@ -58,32 +66,44 @@
|
|||||||
"rule_severities": {
|
"rule_severities": {
|
||||||
"annular_width": "error",
|
"annular_width": "error",
|
||||||
"clearance": "error",
|
"clearance": "error",
|
||||||
|
"connection_width": "warning",
|
||||||
"copper_edge_clearance": "error",
|
"copper_edge_clearance": "error",
|
||||||
|
"copper_sliver": "warning",
|
||||||
"courtyards_overlap": "error",
|
"courtyards_overlap": "error",
|
||||||
"diff_pair_gap_out_of_range": "error",
|
"diff_pair_gap_out_of_range": "error",
|
||||||
"diff_pair_uncoupled_length_too_long": "error",
|
"diff_pair_uncoupled_length_too_long": "error",
|
||||||
"drill_out_of_range": "error",
|
"drill_out_of_range": "error",
|
||||||
"duplicate_footprints": "warning",
|
"duplicate_footprints": "warning",
|
||||||
"extra_footprint": "warning",
|
"extra_footprint": "warning",
|
||||||
"footprint_type_mismatch": "error",
|
"footprint": "error",
|
||||||
|
"footprint_symbol_mismatch": "warning",
|
||||||
|
"footprint_type_mismatch": "ignore",
|
||||||
"hole_clearance": "error",
|
"hole_clearance": "error",
|
||||||
"hole_near_hole": "error",
|
"hole_near_hole": "error",
|
||||||
"invalid_outline": "error",
|
"invalid_outline": "error",
|
||||||
|
"isolated_copper": "warning",
|
||||||
"item_on_disabled_layer": "error",
|
"item_on_disabled_layer": "error",
|
||||||
"items_not_allowed": "error",
|
"items_not_allowed": "error",
|
||||||
"length_out_of_range": "error",
|
"length_out_of_range": "error",
|
||||||
|
"lib_footprint_issues": "warning",
|
||||||
|
"lib_footprint_mismatch": "warning",
|
||||||
"malformed_courtyard": "error",
|
"malformed_courtyard": "error",
|
||||||
"microvia_drill_out_of_range": "error",
|
"microvia_drill_out_of_range": "error",
|
||||||
"missing_courtyard": "ignore",
|
"missing_courtyard": "ignore",
|
||||||
"missing_footprint": "warning",
|
"missing_footprint": "warning",
|
||||||
"net_conflict": "warning",
|
"net_conflict": "warning",
|
||||||
"npth_inside_courtyard": "ignore",
|
"npth_inside_courtyard": "ignore",
|
||||||
"padstack": "error",
|
"padstack": "warning",
|
||||||
"pth_inside_courtyard": "ignore",
|
"pth_inside_courtyard": "ignore",
|
||||||
"shorting_items": "error",
|
"shorting_items": "error",
|
||||||
"silk_over_copper": "warning",
|
"silk_edge_clearance": "warning",
|
||||||
"silk_overlap": "warning",
|
"silk_over_copper": "ignore",
|
||||||
|
"silk_overlap": "ignore",
|
||||||
"skew_out_of_range": "error",
|
"skew_out_of_range": "error",
|
||||||
|
"solder_mask_bridge": "error",
|
||||||
|
"starved_thermal": "error",
|
||||||
|
"text_height": "warning",
|
||||||
|
"text_thickness": "warning",
|
||||||
"through_hole_pad_without_hole": "error",
|
"through_hole_pad_without_hole": "error",
|
||||||
"too_many_vias": "error",
|
"too_many_vias": "error",
|
||||||
"track_dangling": "warning",
|
"track_dangling": "warning",
|
||||||
@ -92,34 +112,107 @@
|
|||||||
"unconnected_items": "error",
|
"unconnected_items": "error",
|
||||||
"unresolved_variable": "error",
|
"unresolved_variable": "error",
|
||||||
"via_dangling": "warning",
|
"via_dangling": "warning",
|
||||||
"zone_has_empty_net": "error",
|
|
||||||
"zones_intersect": "error"
|
"zones_intersect": "error"
|
||||||
},
|
},
|
||||||
"rule_severitieslegacy_courtyards_overlap": true,
|
"rule_severitieslegacy_courtyards_overlap": true,
|
||||||
"rule_severitieslegacy_no_courtyard_defined": false,
|
"rule_severitieslegacy_no_courtyard_defined": false,
|
||||||
"rules": {
|
"rules": {
|
||||||
"allow_blind_buried_vias": false,
|
|
||||||
"allow_microvias": false,
|
|
||||||
"max_error": 0.005,
|
"max_error": 0.005,
|
||||||
"min_clearance": 0.0,
|
"min_clearance": 0.0,
|
||||||
"min_copper_edge_clearance": 0.024999999999999998,
|
"min_connection": 0.0,
|
||||||
|
"min_copper_edge_clearance": 0.025,
|
||||||
"min_hole_clearance": 0.25,
|
"min_hole_clearance": 0.25,
|
||||||
"min_hole_to_hole": 0.25,
|
"min_hole_to_hole": 0.25,
|
||||||
"min_microvia_diameter": 0.19999999999999998,
|
"min_microvia_diameter": 0.2,
|
||||||
"min_microvia_drill": 0.09999999999999999,
|
"min_microvia_drill": 0.1,
|
||||||
|
"min_resolved_spokes": 1,
|
||||||
"min_silk_clearance": 0.0,
|
"min_silk_clearance": 0.0,
|
||||||
"min_through_hole_diameter": 0.3,
|
"min_text_height": 0.8,
|
||||||
"min_track_width": 0.19999999999999998,
|
"min_text_thickness": 0.08,
|
||||||
"min_via_annular_width": 0.049999999999999996,
|
"min_through_hole_diameter": 0.2,
|
||||||
"min_via_diameter": 0.39999999999999997,
|
"min_track_width": 0.2,
|
||||||
|
"min_via_annular_width": 0.1,
|
||||||
|
"min_via_diameter": 0.4,
|
||||||
|
"solder_mask_to_copper_clearance": 0.005,
|
||||||
"use_height_for_length_calcs": true
|
"use_height_for_length_calcs": true
|
||||||
},
|
},
|
||||||
|
"teardrop_options": [
|
||||||
|
{
|
||||||
|
"td_onpadsmd": true,
|
||||||
|
"td_onroundshapesonly": false,
|
||||||
|
"td_ontrackend": false,
|
||||||
|
"td_onviapad": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"teardrop_parameters": [
|
||||||
|
{
|
||||||
|
"td_allow_use_two_tracks": true,
|
||||||
|
"td_curve_segcount": 0,
|
||||||
|
"td_height_ratio": 1.0,
|
||||||
|
"td_length_ratio": 0.5,
|
||||||
|
"td_maxheight": 2.0,
|
||||||
|
"td_maxlen": 1.0,
|
||||||
|
"td_on_pad_in_zone": false,
|
||||||
|
"td_target_name": "td_round_shape",
|
||||||
|
"td_width_to_size_filter_ratio": 0.9
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"td_allow_use_two_tracks": true,
|
||||||
|
"td_curve_segcount": 0,
|
||||||
|
"td_height_ratio": 1.0,
|
||||||
|
"td_length_ratio": 0.5,
|
||||||
|
"td_maxheight": 2.0,
|
||||||
|
"td_maxlen": 1.0,
|
||||||
|
"td_on_pad_in_zone": false,
|
||||||
|
"td_target_name": "td_rect_shape",
|
||||||
|
"td_width_to_size_filter_ratio": 0.9
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"td_allow_use_two_tracks": true,
|
||||||
|
"td_curve_segcount": 0,
|
||||||
|
"td_height_ratio": 1.0,
|
||||||
|
"td_length_ratio": 0.5,
|
||||||
|
"td_maxheight": 2.0,
|
||||||
|
"td_maxlen": 1.0,
|
||||||
|
"td_on_pad_in_zone": false,
|
||||||
|
"td_target_name": "td_track_end",
|
||||||
|
"td_width_to_size_filter_ratio": 0.9
|
||||||
|
}
|
||||||
|
],
|
||||||
"track_widths": [
|
"track_widths": [
|
||||||
0.0,
|
0.0,
|
||||||
0.2,
|
0.2,
|
||||||
0.5,
|
0.5,
|
||||||
1.0
|
1.0,
|
||||||
|
1.5,
|
||||||
|
2.0
|
||||||
],
|
],
|
||||||
|
"tuning_pattern_settings": {
|
||||||
|
"diff_pair_defaults": {
|
||||||
|
"corner_radius_percentage": 80,
|
||||||
|
"corner_style": 1,
|
||||||
|
"max_amplitude": 1.0,
|
||||||
|
"min_amplitude": 0.2,
|
||||||
|
"single_sided": false,
|
||||||
|
"spacing": 1.0
|
||||||
|
},
|
||||||
|
"diff_pair_skew_defaults": {
|
||||||
|
"corner_radius_percentage": 80,
|
||||||
|
"corner_style": 1,
|
||||||
|
"max_amplitude": 1.0,
|
||||||
|
"min_amplitude": 0.2,
|
||||||
|
"single_sided": false,
|
||||||
|
"spacing": 0.6
|
||||||
|
},
|
||||||
|
"single_track_defaults": {
|
||||||
|
"corner_radius_percentage": 80,
|
||||||
|
"corner_style": 1,
|
||||||
|
"max_amplitude": 1.0,
|
||||||
|
"min_amplitude": 0.2,
|
||||||
|
"single_sided": false,
|
||||||
|
"spacing": 0.6
|
||||||
|
}
|
||||||
|
},
|
||||||
"via_dimensions": [
|
"via_dimensions": [
|
||||||
{
|
{
|
||||||
"diameter": 0.0,
|
"diameter": 0.0,
|
||||||
@ -134,9 +227,16 @@
|
|||||||
"drill": 3.0
|
"drill": 3.0
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"zones_allow_external_fillets": false,
|
"zones_allow_external_fillets": true,
|
||||||
"zones_use_no_outline": true
|
"zones_use_no_outline": true
|
||||||
},
|
},
|
||||||
|
"ipc2581": {
|
||||||
|
"dist": "",
|
||||||
|
"distpn": "",
|
||||||
|
"internal_id": "",
|
||||||
|
"mfg": "",
|
||||||
|
"mpn": ""
|
||||||
|
},
|
||||||
"layer_presets": [],
|
"layer_presets": [],
|
||||||
"viewports": []
|
"viewports": []
|
||||||
},
|
},
|
||||||
@ -329,7 +429,7 @@
|
|||||||
"different_unit_net": "error",
|
"different_unit_net": "error",
|
||||||
"duplicate_reference": "error",
|
"duplicate_reference": "error",
|
||||||
"duplicate_sheet_names": "error",
|
"duplicate_sheet_names": "error",
|
||||||
"endpoint_off_grid": "warning",
|
"endpoint_off_grid": "ignore",
|
||||||
"extra_units": "error",
|
"extra_units": "error",
|
||||||
"global_label_dangling": "warning",
|
"global_label_dangling": "warning",
|
||||||
"hier_label_mismatch": "error",
|
"hier_label_mismatch": "error",
|
||||||
@ -345,7 +445,7 @@
|
|||||||
"no_connect_dangling": "warning",
|
"no_connect_dangling": "warning",
|
||||||
"pin_not_connected": "error",
|
"pin_not_connected": "error",
|
||||||
"pin_not_driven": "error",
|
"pin_not_driven": "error",
|
||||||
"pin_to_pin": "warning",
|
"pin_to_pin": "error",
|
||||||
"power_pin_not_driven": "error",
|
"power_pin_not_driven": "error",
|
||||||
"similar_labels": "warning",
|
"similar_labels": "warning",
|
||||||
"simulation_model_issue": "ignore",
|
"simulation_model_issue": "ignore",
|
||||||
@ -367,7 +467,7 @@
|
|||||||
"classes": [
|
"classes": [
|
||||||
{
|
{
|
||||||
"bus_width": 12,
|
"bus_width": 12,
|
||||||
"clearance": 0.2,
|
"clearance": 0.15,
|
||||||
"diff_pair_gap": 0.25,
|
"diff_pair_gap": 0.25,
|
||||||
"diff_pair_via_gap": 0.25,
|
"diff_pair_via_gap": 0.25,
|
||||||
"diff_pair_width": 0.2,
|
"diff_pair_width": 0.2,
|
||||||
@ -384,76 +484,631 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"bus_width": 12,
|
"bus_width": 12,
|
||||||
"clearance": 0.2,
|
"clearance": 0.15,
|
||||||
"diff_pair_gap": 0.25,
|
"diff_pair_gap": 0.25,
|
||||||
"diff_pair_via_gap": 0.25,
|
"diff_pair_via_gap": 0.25,
|
||||||
"diff_pair_width": 0.2,
|
"diff_pair_width": 0.2,
|
||||||
"line_style": 0,
|
"line_style": 0,
|
||||||
"microvia_diameter": 0.3,
|
"microvia_diameter": 0.3,
|
||||||
"microvia_drill": 0.1,
|
"microvia_drill": 0.1,
|
||||||
"name": "5V",
|
"name": "12V",
|
||||||
"pcb_color": "rgba(0, 0, 0, 0.000)",
|
"pcb_color": "rgba(0, 0, 0, 0.000)",
|
||||||
"schematic_color": "rgba(0, 0, 0, 0.000)",
|
"schematic_color": "rgb(255, 4, 6)",
|
||||||
"track_width": 1.4,
|
|
||||||
"via_diameter": 0.8,
|
|
||||||
"via_drill": 0.4,
|
|
||||||
"wire_width": 6
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"bus_width": 12,
|
|
||||||
"clearance": 0.2,
|
|
||||||
"diff_pair_gap": 0.25,
|
|
||||||
"diff_pair_via_gap": 0.25,
|
|
||||||
"diff_pair_width": 0.2,
|
|
||||||
"line_style": 0,
|
|
||||||
"microvia_diameter": 0.3,
|
|
||||||
"microvia_drill": 0.1,
|
|
||||||
"name": "Mini",
|
|
||||||
"pcb_color": "rgba(0, 0, 0, 0.000)",
|
|
||||||
"schematic_color": "rgba(0, 0, 0, 0.000)",
|
|
||||||
"track_width": 1.0,
|
"track_width": 1.0,
|
||||||
"via_diameter": 0.8,
|
"via_diameter": 0.8,
|
||||||
"via_drill": 0.4,
|
"via_drill": 0.4,
|
||||||
"wire_width": 6
|
"wire_width": 12
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"bus_width": 12,
|
"bus_width": 12,
|
||||||
"clearance": 0.2,
|
"clearance": 0.15,
|
||||||
"diff_pair_gap": 0.25,
|
"diff_pair_gap": 0.25,
|
||||||
"diff_pair_via_gap": 0.25,
|
"diff_pair_via_gap": 0.25,
|
||||||
"diff_pair_width": 0.2,
|
"diff_pair_width": 0.2,
|
||||||
"line_style": 0,
|
"line_style": 0,
|
||||||
"microvia_diameter": 0.3,
|
"microvia_diameter": 0.3,
|
||||||
"microvia_drill": 0.1,
|
"microvia_drill": 0.1,
|
||||||
"name": "Power",
|
"name": "3V",
|
||||||
"pcb_color": "rgba(0, 0, 0, 0.000)",
|
"pcb_color": "rgba(0, 0, 0, 0.000)",
|
||||||
"schematic_color": "rgba(0, 0, 0, 0.000)",
|
"schematic_color": "rgb(255, 153, 0)",
|
||||||
"track_width": 1.7,
|
"track_width": 0.2,
|
||||||
"via_diameter": 0.8,
|
"via_diameter": 0.8,
|
||||||
"via_drill": 0.4,
|
"via_drill": 0.4,
|
||||||
"wire_width": 6
|
"wire_width": 12
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"bus_width": 12,
|
||||||
|
"clearance": 0.15,
|
||||||
|
"diff_pair_gap": 0.25,
|
||||||
|
"diff_pair_via_gap": 0.25,
|
||||||
|
"diff_pair_width": 0.2,
|
||||||
|
"line_style": 0,
|
||||||
|
"microvia_diameter": 0.3,
|
||||||
|
"microvia_drill": 0.1,
|
||||||
|
"name": "BAT+",
|
||||||
|
"pcb_color": "rgba(0, 0, 0, 0.000)",
|
||||||
|
"schematic_color": "rgb(81, 255, 3)",
|
||||||
|
"track_width": 1.2,
|
||||||
|
"via_diameter": 0.8,
|
||||||
|
"via_drill": 0.4,
|
||||||
|
"wire_width": 12
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"bus_width": 12,
|
||||||
|
"clearance": 0.15,
|
||||||
|
"diff_pair_gap": 0.25,
|
||||||
|
"diff_pair_via_gap": 0.25,
|
||||||
|
"diff_pair_width": 0.2,
|
||||||
|
"line_style": 0,
|
||||||
|
"microvia_diameter": 0.3,
|
||||||
|
"microvia_drill": 0.1,
|
||||||
|
"name": "BAT-",
|
||||||
|
"pcb_color": "rgba(0, 0, 0, 0.000)",
|
||||||
|
"schematic_color": "rgb(130, 130, 130)",
|
||||||
|
"track_width": 1.2,
|
||||||
|
"via_diameter": 0.8,
|
||||||
|
"via_drill": 0.4,
|
||||||
|
"wire_width": 12
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"bus_width": 12,
|
||||||
|
"clearance": 0.15,
|
||||||
|
"diff_pair_gap": 0.25,
|
||||||
|
"diff_pair_via_gap": 0.25,
|
||||||
|
"diff_pair_width": 0.2,
|
||||||
|
"line_style": 0,
|
||||||
|
"microvia_diameter": 0.3,
|
||||||
|
"microvia_drill": 0.1,
|
||||||
|
"name": "GND",
|
||||||
|
"pcb_color": "rgba(0, 0, 0, 0.000)",
|
||||||
|
"schematic_color": "rgb(0, 0, 0)",
|
||||||
|
"track_width": 0.5,
|
||||||
|
"via_diameter": 0.8,
|
||||||
|
"via_drill": 0.4,
|
||||||
|
"wire_width": 12
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"meta": {
|
"meta": {
|
||||||
"version": 3
|
"version": 3
|
||||||
},
|
},
|
||||||
"net_colors": null,
|
"net_colors": null,
|
||||||
"netclass_assignments": null,
|
"netclass_assignments": {
|
||||||
"netclass_patterns": []
|
"Net-(battery1-Pin_1)": "BAT-",
|
||||||
|
"VBAT": "BAT+"
|
||||||
|
},
|
||||||
|
"netclass_patterns": [
|
||||||
|
{
|
||||||
|
"netclass": "3V",
|
||||||
|
"pattern": "3_3V"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "CUSTOM_GPIO12"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "CUSTOM_GPIO2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "CUSTOM_GPIO34"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "CUSTOM_GPIO35"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "ESP_RX"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "ESP_TX"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "GND",
|
||||||
|
"pattern": "GND"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(12V1-Pad1)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(12V2-Pad1)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(Boot1-Pad2)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(C10-Pad1)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(C14-Pad2)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(C16-Pad1)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(C17-Pad1)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(C4-Pad2)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(C5-Pad2)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(C6-Pad2)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(D10-Pad2)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(D11-Pad2)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(D12-Pad2)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(D13-Pad2)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(D14-Pad2)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(D15-Pad2)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(D16-Pad2)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(D4-Pad3)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(D5-Pad3)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(D7-Pad2)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(D9-Pad2)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(Pumps1-Pad2)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(Q1-Pad1)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(Q1-Pad3)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(Q10-Pad1)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(Q11-Pad1)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(Q12-Pad1)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(Q12-Pad3)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(Q13-Pad1)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(Q13-Pad3)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(Q2-Pad1)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(Q2-Pad3)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(Q3-Pad1)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(Q3-Pad3)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(Q4-Pad3)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(Q5-Pad1)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(Q6-Pad1)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(Q7-Pad1)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(Q8-Pad1)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(Q9-Pad1)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(Q_PWR1-Pad1)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(Q_PWR2-Pad1)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(Q_PWR3-Pad1)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(Q_PWR4-Pad1)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(Q_PWR5-Pad1)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(Q_PWR6-Pad1)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(R1-Pad1)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(R14-Pad2)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(R18-Pad2)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(R19-Pad2)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(R28-Pad2)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(R54-Pad2)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(R56-Pad2)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(R58-Pad2)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(R60-Pad2)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(R62-Pad2)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(R64-Pad2)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(R66-Pad2)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(R68-Pad1)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(U3-Pad6)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(U4-Pad17)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(U4-Pad18)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(U4-Pad19)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(U4-Pad20)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(U4-Pad21)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(U4-Pad22)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(U4-Pad32)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(U6-Pad6)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Net-(U6-Pad7)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "PLANT0_MOIST"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "PLANT0_PUMP"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "PLANT1_MOIST"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "PLANT1_PUMP"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "PLANT2_MOIST"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "PLANT2_PUMP"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "PLANT3_MOIST"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "PLANT3_PUMP"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "PLANT4_MOIST"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "PLANT4_PUMP"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "PLANT5_MOIST"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "PLANT5_PUMP"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "PLANT6_MOIST"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "PLANT6_PUMP"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "PLANT_CTRL_PUMP_0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "PLANT_CTRL_PUMP_1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "PLANT_CTRL_PUMP_2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "PLANT_CTRL_PUMP_3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "PLANT_CTRL_PUMP_4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "PLANT_CTRL_PUMP_5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "PLANT_CTRL_PUMP_6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "PUMP_ENABLE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "PUMP_PWR"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "PWR_I2C"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "PWR_PUMP_CONVERTER"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "PWR_SENSORS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Rsense+"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "SCL"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "SDA"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "SENSORS_ENABLE"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "SOLAR_IN"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "Temp"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "VCC"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "VCC_BATT"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "Default",
|
||||||
|
"pattern": "VCC_FUSED_ALWAYS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "12V",
|
||||||
|
"pattern": "12V"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"netclass": "12V",
|
||||||
|
"pattern": "/12VR"
|
||||||
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"pcbnew": {
|
"pcbnew": {
|
||||||
"last_paths": {
|
"last_paths": {
|
||||||
"gencad": "",
|
"gencad": "",
|
||||||
"idf": "",
|
"idf": "",
|
||||||
"netlist": "PlantCtrlESP32.net",
|
"netlist": "PlantCtrlESP32.net",
|
||||||
|
"plot": "",
|
||||||
|
"pos_files": "",
|
||||||
"specctra_dsn": "",
|
"specctra_dsn": "",
|
||||||
"step": "",
|
"step": "",
|
||||||
|
"svg": "",
|
||||||
"vrml": ""
|
"vrml": ""
|
||||||
},
|
},
|
||||||
"page_layout_descr_file": ""
|
"page_layout_descr_file": ""
|
||||||
},
|
},
|
||||||
"schematic": {
|
"schematic": {
|
||||||
"annotate_start_num": 0,
|
"annotate_start_num": 0,
|
||||||
|
"bom_fmt_presets": [],
|
||||||
|
"bom_fmt_settings": {
|
||||||
|
"field_delimiter": ",",
|
||||||
|
"keep_line_breaks": false,
|
||||||
|
"keep_tabs": false,
|
||||||
|
"name": "CSV",
|
||||||
|
"ref_delimiter": ",",
|
||||||
|
"ref_range_delimiter": "",
|
||||||
|
"string_delimiter": "\""
|
||||||
|
},
|
||||||
|
"bom_presets": [],
|
||||||
|
"bom_settings": {
|
||||||
|
"exclude_dnp": false,
|
||||||
|
"fields_ordered": [
|
||||||
|
{
|
||||||
|
"group_by": false,
|
||||||
|
"label": "Reference",
|
||||||
|
"name": "Reference",
|
||||||
|
"show": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group_by": true,
|
||||||
|
"label": "Value",
|
||||||
|
"name": "Value",
|
||||||
|
"show": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group_by": false,
|
||||||
|
"label": "Datasheet",
|
||||||
|
"name": "Datasheet",
|
||||||
|
"show": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group_by": false,
|
||||||
|
"label": "Footprint",
|
||||||
|
"name": "Footprint",
|
||||||
|
"show": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group_by": false,
|
||||||
|
"label": "Qty",
|
||||||
|
"name": "${QUANTITY}",
|
||||||
|
"show": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group_by": true,
|
||||||
|
"label": "DNP",
|
||||||
|
"name": "${DNP}",
|
||||||
|
"show": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"filter_string": "",
|
||||||
|
"group_symbols": true,
|
||||||
|
"name": "Grouped By Value",
|
||||||
|
"sort_asc": true,
|
||||||
|
"sort_field": "Reference"
|
||||||
|
},
|
||||||
|
"connection_grid_size": 50.0,
|
||||||
"drawing": {
|
"drawing": {
|
||||||
"dashed_lines_dash_length_ratio": 12.0,
|
"dashed_lines_dash_length_ratio": 12.0,
|
||||||
"dashed_lines_gap_length_ratio": 3.0,
|
"dashed_lines_gap_length_ratio": 3.0,
|
||||||
@ -467,6 +1122,11 @@
|
|||||||
"intersheets_ref_suffix": "",
|
"intersheets_ref_suffix": "",
|
||||||
"junction_size_choice": 3,
|
"junction_size_choice": 3,
|
||||||
"label_size_ratio": 0.25,
|
"label_size_ratio": 0.25,
|
||||||
|
"operating_point_overlay_i_precision": 3,
|
||||||
|
"operating_point_overlay_i_range": "~A",
|
||||||
|
"operating_point_overlay_v_precision": 3,
|
||||||
|
"operating_point_overlay_v_range": "~V",
|
||||||
|
"overbar_offset_ratio": 1.23,
|
||||||
"pin_symbol_size": 0.0,
|
"pin_symbol_size": 0.0,
|
||||||
"text_offset_ratio": 0.08
|
"text_offset_ratio": 0.08
|
||||||
},
|
},
|
||||||
@ -492,6 +1152,7 @@
|
|||||||
"spice_external_command": "spice \"%I\"",
|
"spice_external_command": "spice \"%I\"",
|
||||||
"spice_model_current_sheet_as_root": true,
|
"spice_model_current_sheet_as_root": true,
|
||||||
"spice_save_all_currents": false,
|
"spice_save_all_currents": false,
|
||||||
|
"spice_save_all_dissipations": false,
|
||||||
"spice_save_all_voltages": false,
|
"spice_save_all_voltages": false,
|
||||||
"subpart_first_id": 65,
|
"subpart_first_id": 65,
|
||||||
"subpart_id_separator": 0
|
"subpart_id_separator": 0
|
||||||
@ -499,7 +1160,7 @@
|
|||||||
"sheets": [
|
"sheets": [
|
||||||
[
|
[
|
||||||
"c26e8d55-0b6e-4c4e-b7c8-b1fed973201c",
|
"c26e8d55-0b6e-4c4e-b7c8-b1fed973201c",
|
||||||
""
|
"Root"
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"text_variables": {}
|
"text_variables": {}
|
||||||
|
File diff suppressed because it is too large
Load Diff
24410
board/PlantCtrlESP32.kicad_sch-bak
Normal file
24410
board/PlantCtrlESP32.kicad_sch-bak
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,288 +0,0 @@
|
|||||||
update=Thu 10 Jun 2021 10:17:33 PM CEST
|
|
||||||
version=1
|
|
||||||
last_client=kicad
|
|
||||||
[general]
|
|
||||||
version=1
|
|
||||||
RootSch=
|
|
||||||
BoardNm=
|
|
||||||
[cvpcb]
|
|
||||||
version=1
|
|
||||||
NetIExt=net
|
|
||||||
[eeschema]
|
|
||||||
version=1
|
|
||||||
LibDir=
|
|
||||||
[eeschema/libraries]
|
|
||||||
[schematic_editor]
|
|
||||||
version=1
|
|
||||||
PageLayoutDescrFile=
|
|
||||||
PlotDirectoryName=/tmp/
|
|
||||||
SubpartIdSeparator=0
|
|
||||||
SubpartFirstId=65
|
|
||||||
NetFmtName=Pcbnew
|
|
||||||
SpiceAjustPassiveValues=0
|
|
||||||
LabSize=50
|
|
||||||
ERC_TestSimilarLabels=1
|
|
||||||
[pcbnew]
|
|
||||||
version=1
|
|
||||||
PageLayoutDescrFile=
|
|
||||||
LastNetListRead=PlantCtrlESP32.net
|
|
||||||
CopperLayerCount=2
|
|
||||||
BoardThickness=1.6
|
|
||||||
AllowMicroVias=0
|
|
||||||
AllowBlindVias=0
|
|
||||||
RequireCourtyardDefinitions=0
|
|
||||||
ProhibitOverlappingCourtyards=1
|
|
||||||
MinTrackWidth=0.2
|
|
||||||
MinViaDiameter=0.4
|
|
||||||
MinViaDrill=0.3
|
|
||||||
MinMicroViaDiameter=0.2
|
|
||||||
MinMicroViaDrill=0.09999999999999999
|
|
||||||
MinHoleToHole=0.25
|
|
||||||
TrackWidth1=1.2
|
|
||||||
TrackWidth2=0.2
|
|
||||||
TrackWidth3=0.5
|
|
||||||
TrackWidth4=1
|
|
||||||
ViaDiameter1=0.8
|
|
||||||
ViaDrill1=0.4
|
|
||||||
ViaDiameter2=1.2
|
|
||||||
ViaDrill2=0.8
|
|
||||||
ViaDiameter3=4
|
|
||||||
ViaDrill3=3
|
|
||||||
dPairWidth1=0.2
|
|
||||||
dPairGap1=0.25
|
|
||||||
dPairViaGap1=0.25
|
|
||||||
SilkLineWidth=0.12
|
|
||||||
SilkTextSizeV=1
|
|
||||||
SilkTextSizeH=1
|
|
||||||
SilkTextSizeThickness=0.15
|
|
||||||
SilkTextItalic=0
|
|
||||||
SilkTextUpright=1
|
|
||||||
CopperLineWidth=0.2
|
|
||||||
CopperTextSizeV=1.5
|
|
||||||
CopperTextSizeH=1.5
|
|
||||||
CopperTextThickness=0.3
|
|
||||||
CopperTextItalic=0
|
|
||||||
CopperTextUpright=1
|
|
||||||
EdgeCutLineWidth=0.05
|
|
||||||
CourtyardLineWidth=0.05
|
|
||||||
OthersLineWidth=0.15
|
|
||||||
OthersTextSizeV=1
|
|
||||||
OthersTextSizeH=1
|
|
||||||
OthersTextSizeThickness=0.15
|
|
||||||
OthersTextItalic=0
|
|
||||||
OthersTextUpright=1
|
|
||||||
SolderMaskClearance=0.051
|
|
||||||
SolderMaskMinWidth=0.25
|
|
||||||
SolderPasteClearance=0
|
|
||||||
SolderPasteRatio=-0
|
|
||||||
[pcbnew/Layer.F.Cu]
|
|
||||||
Name=F.Cu
|
|
||||||
Type=0
|
|
||||||
Enabled=1
|
|
||||||
[pcbnew/Layer.In1.Cu]
|
|
||||||
Name=In1.Cu
|
|
||||||
Type=0
|
|
||||||
Enabled=0
|
|
||||||
[pcbnew/Layer.In2.Cu]
|
|
||||||
Name=In2.Cu
|
|
||||||
Type=0
|
|
||||||
Enabled=0
|
|
||||||
[pcbnew/Layer.In3.Cu]
|
|
||||||
Name=In3.Cu
|
|
||||||
Type=0
|
|
||||||
Enabled=0
|
|
||||||
[pcbnew/Layer.In4.Cu]
|
|
||||||
Name=In4.Cu
|
|
||||||
Type=0
|
|
||||||
Enabled=0
|
|
||||||
[pcbnew/Layer.In5.Cu]
|
|
||||||
Name=In5.Cu
|
|
||||||
Type=0
|
|
||||||
Enabled=0
|
|
||||||
[pcbnew/Layer.In6.Cu]
|
|
||||||
Name=In6.Cu
|
|
||||||
Type=0
|
|
||||||
Enabled=0
|
|
||||||
[pcbnew/Layer.In7.Cu]
|
|
||||||
Name=In7.Cu
|
|
||||||
Type=0
|
|
||||||
Enabled=0
|
|
||||||
[pcbnew/Layer.In8.Cu]
|
|
||||||
Name=In8.Cu
|
|
||||||
Type=0
|
|
||||||
Enabled=0
|
|
||||||
[pcbnew/Layer.In9.Cu]
|
|
||||||
Name=In9.Cu
|
|
||||||
Type=0
|
|
||||||
Enabled=0
|
|
||||||
[pcbnew/Layer.In10.Cu]
|
|
||||||
Name=In10.Cu
|
|
||||||
Type=0
|
|
||||||
Enabled=0
|
|
||||||
[pcbnew/Layer.In11.Cu]
|
|
||||||
Name=In11.Cu
|
|
||||||
Type=0
|
|
||||||
Enabled=0
|
|
||||||
[pcbnew/Layer.In12.Cu]
|
|
||||||
Name=In12.Cu
|
|
||||||
Type=0
|
|
||||||
Enabled=0
|
|
||||||
[pcbnew/Layer.In13.Cu]
|
|
||||||
Name=In13.Cu
|
|
||||||
Type=0
|
|
||||||
Enabled=0
|
|
||||||
[pcbnew/Layer.In14.Cu]
|
|
||||||
Name=In14.Cu
|
|
||||||
Type=0
|
|
||||||
Enabled=0
|
|
||||||
[pcbnew/Layer.In15.Cu]
|
|
||||||
Name=In15.Cu
|
|
||||||
Type=0
|
|
||||||
Enabled=0
|
|
||||||
[pcbnew/Layer.In16.Cu]
|
|
||||||
Name=In16.Cu
|
|
||||||
Type=0
|
|
||||||
Enabled=0
|
|
||||||
[pcbnew/Layer.In17.Cu]
|
|
||||||
Name=In17.Cu
|
|
||||||
Type=0
|
|
||||||
Enabled=0
|
|
||||||
[pcbnew/Layer.In18.Cu]
|
|
||||||
Name=In18.Cu
|
|
||||||
Type=0
|
|
||||||
Enabled=0
|
|
||||||
[pcbnew/Layer.In19.Cu]
|
|
||||||
Name=In19.Cu
|
|
||||||
Type=0
|
|
||||||
Enabled=0
|
|
||||||
[pcbnew/Layer.In20.Cu]
|
|
||||||
Name=In20.Cu
|
|
||||||
Type=0
|
|
||||||
Enabled=0
|
|
||||||
[pcbnew/Layer.In21.Cu]
|
|
||||||
Name=In21.Cu
|
|
||||||
Type=0
|
|
||||||
Enabled=0
|
|
||||||
[pcbnew/Layer.In22.Cu]
|
|
||||||
Name=In22.Cu
|
|
||||||
Type=0
|
|
||||||
Enabled=0
|
|
||||||
[pcbnew/Layer.In23.Cu]
|
|
||||||
Name=In23.Cu
|
|
||||||
Type=0
|
|
||||||
Enabled=0
|
|
||||||
[pcbnew/Layer.In24.Cu]
|
|
||||||
Name=In24.Cu
|
|
||||||
Type=0
|
|
||||||
Enabled=0
|
|
||||||
[pcbnew/Layer.In25.Cu]
|
|
||||||
Name=In25.Cu
|
|
||||||
Type=0
|
|
||||||
Enabled=0
|
|
||||||
[pcbnew/Layer.In26.Cu]
|
|
||||||
Name=In26.Cu
|
|
||||||
Type=0
|
|
||||||
Enabled=0
|
|
||||||
[pcbnew/Layer.In27.Cu]
|
|
||||||
Name=In27.Cu
|
|
||||||
Type=0
|
|
||||||
Enabled=0
|
|
||||||
[pcbnew/Layer.In28.Cu]
|
|
||||||
Name=In28.Cu
|
|
||||||
Type=0
|
|
||||||
Enabled=0
|
|
||||||
[pcbnew/Layer.In29.Cu]
|
|
||||||
Name=In29.Cu
|
|
||||||
Type=0
|
|
||||||
Enabled=0
|
|
||||||
[pcbnew/Layer.In30.Cu]
|
|
||||||
Name=In30.Cu
|
|
||||||
Type=0
|
|
||||||
Enabled=0
|
|
||||||
[pcbnew/Layer.B.Cu]
|
|
||||||
Name=B.Cu
|
|
||||||
Type=0
|
|
||||||
Enabled=1
|
|
||||||
[pcbnew/Layer.B.Adhes]
|
|
||||||
Enabled=1
|
|
||||||
[pcbnew/Layer.F.Adhes]
|
|
||||||
Enabled=1
|
|
||||||
[pcbnew/Layer.B.Paste]
|
|
||||||
Enabled=1
|
|
||||||
[pcbnew/Layer.F.Paste]
|
|
||||||
Enabled=1
|
|
||||||
[pcbnew/Layer.B.SilkS]
|
|
||||||
Enabled=1
|
|
||||||
[pcbnew/Layer.F.SilkS]
|
|
||||||
Enabled=1
|
|
||||||
[pcbnew/Layer.B.Mask]
|
|
||||||
Enabled=1
|
|
||||||
[pcbnew/Layer.F.Mask]
|
|
||||||
Enabled=1
|
|
||||||
[pcbnew/Layer.Dwgs.User]
|
|
||||||
Enabled=1
|
|
||||||
[pcbnew/Layer.Cmts.User]
|
|
||||||
Enabled=1
|
|
||||||
[pcbnew/Layer.Eco1.User]
|
|
||||||
Enabled=1
|
|
||||||
[pcbnew/Layer.Eco2.User]
|
|
||||||
Enabled=1
|
|
||||||
[pcbnew/Layer.Edge.Cuts]
|
|
||||||
Enabled=1
|
|
||||||
[pcbnew/Layer.Margin]
|
|
||||||
Enabled=1
|
|
||||||
[pcbnew/Layer.B.CrtYd]
|
|
||||||
Enabled=1
|
|
||||||
[pcbnew/Layer.F.CrtYd]
|
|
||||||
Enabled=1
|
|
||||||
[pcbnew/Layer.B.Fab]
|
|
||||||
Enabled=1
|
|
||||||
[pcbnew/Layer.F.Fab]
|
|
||||||
Enabled=1
|
|
||||||
[pcbnew/Layer.Rescue]
|
|
||||||
Enabled=0
|
|
||||||
[pcbnew/Netclasses]
|
|
||||||
[pcbnew/Netclasses/Default]
|
|
||||||
Name=Default
|
|
||||||
Clearance=0.2
|
|
||||||
TrackWidth=1.2
|
|
||||||
ViaDiameter=0.8
|
|
||||||
ViaDrill=0.4
|
|
||||||
uViaDiameter=0.3
|
|
||||||
uViaDrill=0.1
|
|
||||||
dPairWidth=0.2
|
|
||||||
dPairGap=0.25
|
|
||||||
dPairViaGap=0.25
|
|
||||||
[pcbnew/Netclasses/1]
|
|
||||||
Name=5V
|
|
||||||
Clearance=0.2
|
|
||||||
TrackWidth=1.4
|
|
||||||
ViaDiameter=0.8
|
|
||||||
ViaDrill=0.4
|
|
||||||
uViaDiameter=0.3
|
|
||||||
uViaDrill=0.1
|
|
||||||
dPairWidth=0.2
|
|
||||||
dPairGap=0.25
|
|
||||||
dPairViaGap=0.25
|
|
||||||
[pcbnew/Netclasses/2]
|
|
||||||
Name=Mini
|
|
||||||
Clearance=0.2
|
|
||||||
TrackWidth=1
|
|
||||||
ViaDiameter=0.8
|
|
||||||
ViaDrill=0.4
|
|
||||||
uViaDiameter=0.3
|
|
||||||
uViaDrill=0.1
|
|
||||||
dPairWidth=0.2
|
|
||||||
dPairGap=0.25
|
|
||||||
dPairViaGap=0.25
|
|
||||||
[pcbnew/Netclasses/3]
|
|
||||||
Name=Power
|
|
||||||
Clearance=0.2
|
|
||||||
TrackWidth=1.7
|
|
||||||
ViaDiameter=0.8
|
|
||||||
ViaDrill=0.4
|
|
||||||
uViaDiameter=0.3
|
|
||||||
uViaDrill=0.1
|
|
||||||
dPairWidth=0.2
|
|
||||||
dPairGap=0.25
|
|
||||||
dPairViaGap=0.25
|
|
7
board/PlantCtrlESP32.round-tracks-config
Normal file
7
board/PlantCtrlESP32.round-tracks-config
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
Default False 2.0 3
|
||||||
|
12V True 2.0 3
|
||||||
|
3V True 2.0 3
|
||||||
|
BAT+ True 2.0 3
|
||||||
|
BAT- True 2.0 3
|
||||||
|
GND True 2.0 3
|
||||||
|
False True False
|
63
board/R_Shunt_Vishay_WSK2512_6332Metric_T1.19mm.kicad_mod
Normal file
63
board/R_Shunt_Vishay_WSK2512_6332Metric_T1.19mm.kicad_mod
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
(footprint "R_Shunt_Vishay_WSK2512_6332Metric_T1.19mm" (version 20221018) (generator pcbnew)
|
||||||
|
(layer "F.Cu")
|
||||||
|
(descr "Shunt Resistor SMD 2512 (6332 Metric), 2.6mm thick, Vishay WKS2512, Terminal length (T) 1.19mm, 5 to 200 milli Ohm (http://http://www.vishay.com/docs/30108/wsk.pdf)")
|
||||||
|
(tags "resistor shunt WSK2512")
|
||||||
|
(attr smd)
|
||||||
|
(fp_text reference "REF**" (at 0 -2.65) (layer "F.SilkS")
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
(tstamp e64357ee-67ea-437d-842c-edd4e9b0e817)
|
||||||
|
)
|
||||||
|
(fp_text value "R_Shunt_Vishay_WSK2512_6332Metric_T1.19mm" (at 0 2.65) (layer "F.Fab")
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
(tstamp 6d43eee8-d677-4710-a5b6-ed0a393d7e86)
|
||||||
|
)
|
||||||
|
(fp_text user "${REFERENCE}" (at 0 0) (layer "F.Fab")
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
(tstamp 7af73258-6848-4c90-ada6-9916b21e0d54)
|
||||||
|
)
|
||||||
|
(fp_line (start -2.5 1.7) (end 1.67 1.7)
|
||||||
|
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 686b0a9f-f303-4b9c-97bc-13b268071b2a))
|
||||||
|
(fp_line (start -1.67 -1.7) (end 2.53 -1.7)
|
||||||
|
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 8ff3cd0c-2e69-49a7-948e-62e2af1cdeaf))
|
||||||
|
(fp_line (start -4.38 -1.9) (end 4.38 -1.9)
|
||||||
|
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 97453d6f-90a6-4d0b-9533-4b9de0e70d67))
|
||||||
|
(fp_line (start -4.38 1.9) (end -4.38 -1.9)
|
||||||
|
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 8d751a64-d963-4d3e-b652-c6367d221a4c))
|
||||||
|
(fp_line (start 4.38 -1.9) (end 4.38 1.9)
|
||||||
|
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 5fc8cbbe-390d-45f2-b9e2-001b3b36ad53))
|
||||||
|
(fp_line (start 4.38 1.9) (end -4.38 1.9)
|
||||||
|
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 85ea9322-734e-4f57-b7f4-e08d8559c109))
|
||||||
|
(fp_line (start -3.175 -1.59) (end 3.175 -1.59)
|
||||||
|
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp a616017c-8c30-4c24-8988-6ebc65a5a14c))
|
||||||
|
(fp_line (start -3.175 0.32) (end -3.175 -1.59)
|
||||||
|
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 007035a4-df14-4627-b9dd-16c0816e9fc4))
|
||||||
|
(fp_line (start -3.175 0.32) (end -2.795 0.32)
|
||||||
|
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 7a92ebc4-86fb-494b-8925-1512bf4598dd))
|
||||||
|
(fp_line (start -3.175 0.94) (end -3.175 1.59)
|
||||||
|
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 8d1ed9db-8b9e-4c9a-b026-a147d8ba5a89))
|
||||||
|
(fp_line (start -3.175 0.94) (end -2.795 0.94)
|
||||||
|
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 3238b0a3-1bbc-4ecd-9eca-d39a4563f46a))
|
||||||
|
(fp_line (start -2.795 0.94) (end -2.795 0.32)
|
||||||
|
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 56e7214e-7e65-4896-9919-6dfa6ad242a1))
|
||||||
|
(fp_line (start 2.79 -0.94) (end 3.17 -0.94)
|
||||||
|
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp bf2fd8b5-dc07-4d36-93f4-c05d760e4ae8))
|
||||||
|
(fp_line (start 2.79 -0.32) (end 2.79 -0.94)
|
||||||
|
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 2732ea3b-0a68-4014-9f1f-147b192cb827))
|
||||||
|
(fp_line (start 2.79 -0.32) (end 3.17 -0.32)
|
||||||
|
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 7597632e-0fab-4537-9ef5-3d955ee8fe04))
|
||||||
|
(fp_line (start 3.175 -0.94) (end 3.175 -1.59)
|
||||||
|
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp be78e59b-9296-4843-849b-9aeaddf3ec90))
|
||||||
|
(fp_line (start 3.175 -0.32) (end 3.175 1.59)
|
||||||
|
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp f0529fdf-6a96-4afa-ae66-3987676f8cc1))
|
||||||
|
(fp_line (start 3.175 1.59) (end -3.175 1.59)
|
||||||
|
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 5494f1f1-9934-4901-ae11-4f45356840a6))
|
||||||
|
(pad "1" smd roundrect (at -2.985 0.635) (size 2.29 2.03) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.12) (tstamp 7d665233-6376-4fd3-9d23-184556b0630c))
|
||||||
|
(pad "2" smd roundrect (at -3.43 -1.27) (size 1.4 0.76) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.12) (tstamp a060266a-0c38-4364-b2df-6f7cf4c69f0d))
|
||||||
|
(pad "3" smd roundrect (at 3.43 -1.27) (size 1.4 0.76) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp a1e31646-49e8-4836-bd67-1b6bed652414))
|
||||||
|
(pad "4" smd roundrect (at 2.985 0.635) (size 2.29 2.03) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.12) (tstamp 3f532dd2-fd5a-4fe7-9636-aa84f769e3b2))
|
||||||
|
(model "${KICAD6_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_Shunt_Vishay_WSK2512_6332Metric_T1.19mm.wrl"
|
||||||
|
(offset (xyz 0 0 0))
|
||||||
|
(scale (xyz 1 1 1))
|
||||||
|
(rotate (xyz 0 0 0))
|
||||||
|
)
|
||||||
|
)
|
4562
board/bom/ibom.html
Normal file
4562
board/bom/ibom.html
Normal file
File diff suppressed because one or more lines are too long
@ -1,4 +1,7 @@
|
|||||||
(fp_lib_table
|
(fp_lib_table
|
||||||
(lib (name misc_footprints)(type KiCad)(uri ${KIPRJMOD}/kicad-stuff/misc_footprints-master/misc_footprints.pretty)(options "")(descr ""))
|
(version 7)
|
||||||
(lib (name ESP32)(type KiCad)(uri ${KIPRJMOD}/kicad-stuff/ESP32)(options "")(descr ""))
|
(lib (name "misc_footprints")(type "KiCad")(uri "${KIPRJMOD}/kicad-stuff/misc_footprints-master/misc_footprints.pretty")(options "")(descr ""))
|
||||||
)
|
(lib (name "ESP32")(type "KiCad")(uri "${KIPRJMOD}/kicad-stuff/ESP32")(options "")(descr ""))
|
||||||
|
(lib (name "kicad-stuff")(type "KiCad")(uri "${KIPRJMOD}/kicad-stuff")(options "")(descr ""))
|
||||||
|
(lib (name "board")(type "KiCad")(uri "${KIPRJMOD}/")(options "")(descr ""))
|
||||||
|
)
|
||||||
|
@ -1,15 +0,0 @@
|
|||||||
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,5.1.10*
|
|
||||||
G04 #@! TF.CreationDate,2021-06-10T23:09:58+02:00*
|
|
||||||
G04 #@! TF.ProjectId,PlantCtrlESP32,506c616e-7443-4747-926c-45535033322e,rev?*
|
|
||||||
G04 #@! TF.SameCoordinates,Original*
|
|
||||||
G04 #@! TF.FileFunction,Glue,Bot*
|
|
||||||
G04 #@! TF.FilePolarity,Positive*
|
|
||||||
%FSLAX46Y46*%
|
|
||||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
|
||||||
G04 Created by KiCad (PCBNEW 5.1.10) date 2021-06-10 23:09:58*
|
|
||||||
%MOMM*%
|
|
||||||
%LPD*%
|
|
||||||
G01*
|
|
||||||
G04 APERTURE LIST*
|
|
||||||
G04 APERTURE END LIST*
|
|
||||||
M02*
|
|
@ -1,32 +0,0 @@
|
|||||||
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,5.1.10*
|
|
||||||
G04 #@! TF.CreationDate,2021-06-10T23:09:58+02:00*
|
|
||||||
G04 #@! TF.ProjectId,PlantCtrlESP32,506c616e-7443-4747-926c-45535033322e,rev?*
|
|
||||||
G04 #@! TF.SameCoordinates,Original*
|
|
||||||
G04 #@! TF.FileFunction,Other,User*
|
|
||||||
%FSLAX46Y46*%
|
|
||||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
|
||||||
G04 Created by KiCad (PCBNEW 5.1.10) date 2021-06-10 23:09:58*
|
|
||||||
%MOMM*%
|
|
||||||
%LPD*%
|
|
||||||
G01*
|
|
||||||
G04 APERTURE LIST*
|
|
||||||
%ADD10C,0.050000*%
|
|
||||||
G04 APERTURE END LIST*
|
|
||||||
D10*
|
|
||||||
X237729200Y-51267800D02*
|
|
||||||
X237729200Y-60847800D01*
|
|
||||||
X237729200Y-51267800D02*
|
|
||||||
X242229200Y-51267800D01*
|
|
||||||
X242229200Y-60847800D02*
|
|
||||||
X237729200Y-60847800D01*
|
|
||||||
X242229200Y-60847800D02*
|
|
||||||
X242229200Y-51267800D01*
|
|
||||||
X231560800Y-64114800D02*
|
|
||||||
X223160800Y-64114800D01*
|
|
||||||
X231560800Y-57364800D02*
|
|
||||||
X231560800Y-64114800D01*
|
|
||||||
X223160800Y-57364800D02*
|
|
||||||
X231560800Y-57364800D01*
|
|
||||||
X223160800Y-64114800D02*
|
|
||||||
X223160800Y-57364800D01*
|
|
||||||
M02*
|
|
File diff suppressed because it is too large
Load Diff
@ -1,425 +0,0 @@
|
|||||||
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,5.1.10*
|
|
||||||
G04 #@! TF.CreationDate,2021-06-10T23:09:58+02:00*
|
|
||||||
G04 #@! TF.ProjectId,PlantCtrlESP32,506c616e-7443-4747-926c-45535033322e,rev?*
|
|
||||||
G04 #@! TF.SameCoordinates,Original*
|
|
||||||
G04 #@! TF.FileFunction,Other,Fab,Bot*
|
|
||||||
%FSLAX46Y46*%
|
|
||||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
|
||||||
G04 Created by KiCad (PCBNEW 5.1.10) date 2021-06-10 23:09:58*
|
|
||||||
%MOMM*%
|
|
||||||
%LPD*%
|
|
||||||
G01*
|
|
||||||
G04 APERTURE LIST*
|
|
||||||
%ADD10C,0.100000*%
|
|
||||||
%ADD11C,0.150000*%
|
|
||||||
G04 APERTURE END LIST*
|
|
||||||
D10*
|
|
||||||
X226110800Y-62614800D02*
|
|
||||||
X226735800Y-63614800D01*
|
|
||||||
X225485800Y-63614800D02*
|
|
||||||
X226110800Y-62614800D01*
|
|
||||||
X231060800Y-63614800D02*
|
|
||||||
X223660800Y-63614800D01*
|
|
||||||
X231060800Y-57864800D02*
|
|
||||||
X231060800Y-63614800D01*
|
|
||||||
X223660800Y-57864800D02*
|
|
||||||
X231060800Y-57864800D01*
|
|
||||||
X223660800Y-63614800D02*
|
|
||||||
X223660800Y-57864800D01*
|
|
||||||
D11*
|
|
||||||
X235812057Y-62843514D02*
|
|
||||||
X235764438Y-62891133D01*
|
|
||||||
X235716819Y-63033990D01*
|
|
||||||
X235716819Y-63129228D01*
|
|
||||||
X235764438Y-63272085D01*
|
|
||||||
X235859676Y-63367323D01*
|
|
||||||
X235954914Y-63414942D01*
|
|
||||||
X236145390Y-63462561D01*
|
|
||||||
X236288247Y-63462561D01*
|
|
||||||
X236478723Y-63414942D01*
|
|
||||||
X236573961Y-63367323D01*
|
|
||||||
X236669200Y-63272085D01*
|
|
||||||
X236716819Y-63129228D01*
|
|
||||||
X236716819Y-63033990D01*
|
|
||||||
X236669200Y-62891133D01*
|
|
||||||
X236621580Y-62843514D01*
|
|
||||||
X235716819Y-62272085D02*
|
|
||||||
X235764438Y-62367323D01*
|
|
||||||
X235812057Y-62414942D01*
|
|
||||||
X235907295Y-62462561D01*
|
|
||||||
X236193009Y-62462561D01*
|
|
||||||
X236288247Y-62414942D01*
|
|
||||||
X236335866Y-62367323D01*
|
|
||||||
X236383485Y-62272085D01*
|
|
||||||
X236383485Y-62129228D01*
|
|
||||||
X236335866Y-62033990D01*
|
|
||||||
X236288247Y-61986371D01*
|
|
||||||
X236193009Y-61938752D01*
|
|
||||||
X235907295Y-61938752D01*
|
|
||||||
X235812057Y-61986371D01*
|
|
||||||
X235764438Y-62033990D01*
|
|
||||||
X235716819Y-62129228D01*
|
|
||||||
X235716819Y-62272085D01*
|
|
||||||
X236383485Y-61510180D02*
|
|
||||||
X235716819Y-61510180D01*
|
|
||||||
X236288247Y-61510180D02*
|
|
||||||
X236335866Y-61462561D01*
|
|
||||||
X236383485Y-61367323D01*
|
|
||||||
X236383485Y-61224466D01*
|
|
||||||
X236335866Y-61129228D01*
|
|
||||||
X236240628Y-61081609D01*
|
|
||||||
X235716819Y-61081609D01*
|
|
||||||
X236383485Y-60605419D02*
|
|
||||||
X235716819Y-60605419D01*
|
|
||||||
X236288247Y-60605419D02*
|
|
||||||
X236335866Y-60557800D01*
|
|
||||||
X236383485Y-60462561D01*
|
|
||||||
X236383485Y-60319704D01*
|
|
||||||
X236335866Y-60224466D01*
|
|
||||||
X236240628Y-60176847D01*
|
|
||||||
X235716819Y-60176847D01*
|
|
||||||
X235621580Y-59938752D02*
|
|
||||||
X235621580Y-59176847D01*
|
|
||||||
X236716819Y-58748276D02*
|
|
||||||
X236716819Y-58653038D01*
|
|
||||||
X236669200Y-58557800D01*
|
|
||||||
X236621580Y-58510180D01*
|
|
||||||
X236526342Y-58462561D01*
|
|
||||||
X236335866Y-58414942D01*
|
|
||||||
X236097771Y-58414942D01*
|
|
||||||
X235907295Y-58462561D01*
|
|
||||||
X235812057Y-58510180D01*
|
|
||||||
X235764438Y-58557800D01*
|
|
||||||
X235716819Y-58653038D01*
|
|
||||||
X235716819Y-58748276D01*
|
|
||||||
X235764438Y-58843514D01*
|
|
||||||
X235812057Y-58891133D01*
|
|
||||||
X235907295Y-58938752D01*
|
|
||||||
X236097771Y-58986371D01*
|
|
||||||
X236335866Y-58986371D01*
|
|
||||||
X236526342Y-58938752D01*
|
|
||||||
X236621580Y-58891133D01*
|
|
||||||
X236669200Y-58843514D01*
|
|
||||||
X236716819Y-58748276D01*
|
|
||||||
X235716819Y-57462561D02*
|
|
||||||
X235716819Y-58033990D01*
|
|
||||||
X235716819Y-57748276D02*
|
|
||||||
X236716819Y-57748276D01*
|
|
||||||
X236573961Y-57843514D01*
|
|
||||||
X236478723Y-57938752D01*
|
|
||||||
X236431104Y-58033990D01*
|
|
||||||
X235716819Y-57129228D02*
|
|
||||||
X236383485Y-56605419D01*
|
|
||||||
X236383485Y-57129228D02*
|
|
||||||
X235716819Y-56605419D01*
|
|
||||||
X236716819Y-56033990D02*
|
|
||||||
X236716819Y-55938752D01*
|
|
||||||
X236669200Y-55843514D01*
|
|
||||||
X236621580Y-55795895D01*
|
|
||||||
X236526342Y-55748276D01*
|
|
||||||
X236335866Y-55700657D01*
|
|
||||||
X236097771Y-55700657D01*
|
|
||||||
X235907295Y-55748276D01*
|
|
||||||
X235812057Y-55795895D01*
|
|
||||||
X235764438Y-55843514D01*
|
|
||||||
X235716819Y-55938752D01*
|
|
||||||
X235716819Y-56033990D01*
|
|
||||||
X235764438Y-56129228D01*
|
|
||||||
X235812057Y-56176847D01*
|
|
||||||
X235907295Y-56224466D01*
|
|
||||||
X236097771Y-56272085D01*
|
|
||||||
X236335866Y-56272085D01*
|
|
||||||
X236526342Y-56224466D01*
|
|
||||||
X236621580Y-56176847D01*
|
|
||||||
X236669200Y-56129228D01*
|
|
||||||
X236716819Y-56033990D01*
|
|
||||||
X236621580Y-55319704D02*
|
|
||||||
X236669200Y-55272085D01*
|
|
||||||
X236716819Y-55176847D01*
|
|
||||||
X236716819Y-54938752D01*
|
|
||||||
X236669200Y-54843514D01*
|
|
||||||
X236621580Y-54795895D01*
|
|
||||||
X236526342Y-54748276D01*
|
|
||||||
X236431104Y-54748276D01*
|
|
||||||
X236288247Y-54795895D01*
|
|
||||||
X235716819Y-55367323D01*
|
|
||||||
X235716819Y-54748276D01*
|
|
||||||
X235621580Y-54557800D02*
|
|
||||||
X235621580Y-53795895D01*
|
|
||||||
X236240628Y-53224466D02*
|
|
||||||
X236240628Y-53557800D01*
|
|
||||||
X235716819Y-53557800D02*
|
|
||||||
X236716819Y-53557800D01*
|
|
||||||
X236716819Y-53081609D01*
|
|
||||||
X235764438Y-52319704D02*
|
|
||||||
X235716819Y-52414942D01*
|
|
||||||
X235716819Y-52605419D01*
|
|
||||||
X235764438Y-52700657D01*
|
|
||||||
X235859676Y-52748276D01*
|
|
||||||
X236240628Y-52748276D01*
|
|
||||||
X236335866Y-52700657D01*
|
|
||||||
X236383485Y-52605419D01*
|
|
||||||
X236383485Y-52414942D01*
|
|
||||||
X236335866Y-52319704D01*
|
|
||||||
X236240628Y-52272085D01*
|
|
||||||
X236145390Y-52272085D01*
|
|
||||||
X236050152Y-52748276D01*
|
|
||||||
X235716819Y-51843514D02*
|
|
||||||
X236383485Y-51843514D01*
|
|
||||||
X236288247Y-51843514D02*
|
|
||||||
X236335866Y-51795895D01*
|
|
||||||
X236383485Y-51700657D01*
|
|
||||||
X236383485Y-51557800D01*
|
|
||||||
X236335866Y-51462561D01*
|
|
||||||
X236240628Y-51414942D01*
|
|
||||||
X235716819Y-51414942D01*
|
|
||||||
X236240628Y-51414942D02*
|
|
||||||
X236335866Y-51367323D01*
|
|
||||||
X236383485Y-51272085D01*
|
|
||||||
X236383485Y-51129228D01*
|
|
||||||
X236335866Y-51033990D01*
|
|
||||||
X236240628Y-50986371D01*
|
|
||||||
X235716819Y-50986371D01*
|
|
||||||
X235716819Y-50081609D02*
|
|
||||||
X236240628Y-50081609D01*
|
|
||||||
X236335866Y-50129228D01*
|
|
||||||
X236383485Y-50224466D01*
|
|
||||||
X236383485Y-50414942D01*
|
|
||||||
X236335866Y-50510180D01*
|
|
||||||
X235764438Y-50081609D02*
|
|
||||||
X235716819Y-50176847D01*
|
|
||||||
X235716819Y-50414942D01*
|
|
||||||
X235764438Y-50510180D01*
|
|
||||||
X235859676Y-50557800D01*
|
|
||||||
X235954914Y-50557800D01*
|
|
||||||
X236050152Y-50510180D01*
|
|
||||||
X236097771Y-50414942D01*
|
|
||||||
X236097771Y-50176847D01*
|
|
||||||
X236145390Y-50081609D01*
|
|
||||||
X235716819Y-49462561D02*
|
|
||||||
X235764438Y-49557800D01*
|
|
||||||
X235859676Y-49605419D01*
|
|
||||||
X236716819Y-49605419D01*
|
|
||||||
X235764438Y-48700657D02*
|
|
||||||
X235716819Y-48795895D01*
|
|
||||||
X235716819Y-48986371D01*
|
|
||||||
X235764438Y-49081609D01*
|
|
||||||
X235859676Y-49129228D01*
|
|
||||||
X236240628Y-49129228D01*
|
|
||||||
X236335866Y-49081609D01*
|
|
||||||
X236383485Y-48986371D01*
|
|
||||||
X236383485Y-48795895D01*
|
|
||||||
X236335866Y-48700657D01*
|
|
||||||
X236240628Y-48653038D01*
|
|
||||||
X236145390Y-48653038D01*
|
|
||||||
X236050152Y-49129228D01*
|
|
||||||
X239526819Y-57486371D02*
|
|
||||||
X239526819Y-57962561D01*
|
|
||||||
X240526819Y-57962561D01*
|
|
||||||
X239526819Y-57153038D02*
|
|
||||||
X240526819Y-57153038D01*
|
|
||||||
X239526819Y-56676847D02*
|
|
||||||
X240526819Y-56676847D01*
|
|
||||||
X240526819Y-56295895D01*
|
|
||||||
X240479200Y-56200657D01*
|
|
||||||
X240431580Y-56153038D01*
|
|
||||||
X240336342Y-56105419D01*
|
|
||||||
X240193485Y-56105419D01*
|
|
||||||
X240098247Y-56153038D01*
|
|
||||||
X240050628Y-56200657D01*
|
|
||||||
X240003009Y-56295895D01*
|
|
||||||
X240003009Y-56676847D01*
|
|
||||||
X240526819Y-55486371D02*
|
|
||||||
X240526819Y-55295895D01*
|
|
||||||
X240479200Y-55200657D01*
|
|
||||||
X240383961Y-55105419D01*
|
|
||||||
X240193485Y-55057800D01*
|
|
||||||
X239860152Y-55057800D01*
|
|
||||||
X239669676Y-55105419D01*
|
|
||||||
X239574438Y-55200657D01*
|
|
||||||
X239526819Y-55295895D01*
|
|
||||||
X239526819Y-55486371D01*
|
|
||||||
X239574438Y-55581609D01*
|
|
||||||
X239669676Y-55676847D01*
|
|
||||||
X239860152Y-55724466D01*
|
|
||||||
X240193485Y-55724466D01*
|
|
||||||
X240383961Y-55676847D01*
|
|
||||||
X240479200Y-55581609D01*
|
|
||||||
X240526819Y-55486371D01*
|
|
||||||
X239526819Y-54105419D02*
|
|
||||||
X239526819Y-54676847D01*
|
|
||||||
X239526819Y-54391133D02*
|
|
||||||
X240526819Y-54391133D01*
|
|
||||||
X240383961Y-54486371D01*
|
|
||||||
X240288723Y-54581609D01*
|
|
||||||
X240241104Y-54676847D01*
|
|
||||||
X231098895Y-57021942D02*
|
|
||||||
X231146514Y-57069561D01*
|
|
||||||
X231289371Y-57117180D01*
|
|
||||||
X231384609Y-57117180D01*
|
|
||||||
X231527466Y-57069561D01*
|
|
||||||
X231622704Y-56974323D01*
|
|
||||||
X231670323Y-56879085D01*
|
|
||||||
X231717942Y-56688609D01*
|
|
||||||
X231717942Y-56545752D01*
|
|
||||||
X231670323Y-56355276D01*
|
|
||||||
X231622704Y-56260038D01*
|
|
||||||
X231527466Y-56164800D01*
|
|
||||||
X231384609Y-56117180D01*
|
|
||||||
X231289371Y-56117180D01*
|
|
||||||
X231146514Y-56164800D01*
|
|
||||||
X231098895Y-56212419D01*
|
|
||||||
X230527466Y-57117180D02*
|
|
||||||
X230622704Y-57069561D01*
|
|
||||||
X230670323Y-57021942D01*
|
|
||||||
X230717942Y-56926704D01*
|
|
||||||
X230717942Y-56640990D01*
|
|
||||||
X230670323Y-56545752D01*
|
|
||||||
X230622704Y-56498133D01*
|
|
||||||
X230527466Y-56450514D01*
|
|
||||||
X230384609Y-56450514D01*
|
|
||||||
X230289371Y-56498133D01*
|
|
||||||
X230241752Y-56545752D01*
|
|
||||||
X230194133Y-56640990D01*
|
|
||||||
X230194133Y-56926704D01*
|
|
||||||
X230241752Y-57021942D01*
|
|
||||||
X230289371Y-57069561D01*
|
|
||||||
X230384609Y-57117180D01*
|
|
||||||
X230527466Y-57117180D01*
|
|
||||||
X229765561Y-56450514D02*
|
|
||||||
X229765561Y-57117180D01*
|
|
||||||
X229765561Y-56545752D02*
|
|
||||||
X229717942Y-56498133D01*
|
|
||||||
X229622704Y-56450514D01*
|
|
||||||
X229479847Y-56450514D01*
|
|
||||||
X229384609Y-56498133D01*
|
|
||||||
X229336990Y-56593371D01*
|
|
||||||
X229336990Y-57117180D01*
|
|
||||||
X228860800Y-56450514D02*
|
|
||||||
X228860800Y-57117180D01*
|
|
||||||
X228860800Y-56545752D02*
|
|
||||||
X228813180Y-56498133D01*
|
|
||||||
X228717942Y-56450514D01*
|
|
||||||
X228575085Y-56450514D01*
|
|
||||||
X228479847Y-56498133D01*
|
|
||||||
X228432228Y-56593371D01*
|
|
||||||
X228432228Y-57117180D01*
|
|
||||||
X228194133Y-57212419D02*
|
|
||||||
X227432228Y-57212419D01*
|
|
||||||
X227003657Y-56117180D02*
|
|
||||||
X226908419Y-56117180D01*
|
|
||||||
X226813180Y-56164800D01*
|
|
||||||
X226765561Y-56212419D01*
|
|
||||||
X226717942Y-56307657D01*
|
|
||||||
X226670323Y-56498133D01*
|
|
||||||
X226670323Y-56736228D01*
|
|
||||||
X226717942Y-56926704D01*
|
|
||||||
X226765561Y-57021942D01*
|
|
||||||
X226813180Y-57069561D01*
|
|
||||||
X226908419Y-57117180D01*
|
|
||||||
X227003657Y-57117180D01*
|
|
||||||
X227098895Y-57069561D01*
|
|
||||||
X227146514Y-57021942D01*
|
|
||||||
X227194133Y-56926704D01*
|
|
||||||
X227241752Y-56736228D01*
|
|
||||||
X227241752Y-56498133D01*
|
|
||||||
X227194133Y-56307657D01*
|
|
||||||
X227146514Y-56212419D01*
|
|
||||||
X227098895Y-56164800D01*
|
|
||||||
X227003657Y-56117180D01*
|
|
||||||
X225717942Y-57117180D02*
|
|
||||||
X226289371Y-57117180D01*
|
|
||||||
X226003657Y-57117180D02*
|
|
||||||
X226003657Y-56117180D01*
|
|
||||||
X226098895Y-56260038D01*
|
|
||||||
X226194133Y-56355276D01*
|
|
||||||
X226289371Y-56402895D01*
|
|
||||||
X225384609Y-57117180D02*
|
|
||||||
X224860800Y-56450514D01*
|
|
||||||
X225384609Y-56450514D02*
|
|
||||||
X224860800Y-57117180D01*
|
|
||||||
X224289371Y-56117180D02*
|
|
||||||
X224194133Y-56117180D01*
|
|
||||||
X224098895Y-56164800D01*
|
|
||||||
X224051276Y-56212419D01*
|
|
||||||
X224003657Y-56307657D01*
|
|
||||||
X223956038Y-56498133D01*
|
|
||||||
X223956038Y-56736228D01*
|
|
||||||
X224003657Y-56926704D01*
|
|
||||||
X224051276Y-57021942D01*
|
|
||||||
X224098895Y-57069561D01*
|
|
||||||
X224194133Y-57117180D01*
|
|
||||||
X224289371Y-57117180D01*
|
|
||||||
X224384609Y-57069561D01*
|
|
||||||
X224432228Y-57021942D01*
|
|
||||||
X224479847Y-56926704D01*
|
|
||||||
X224527466Y-56736228D01*
|
|
||||||
X224527466Y-56498133D01*
|
|
||||||
X224479847Y-56307657D01*
|
|
||||||
X224432228Y-56212419D01*
|
|
||||||
X224384609Y-56164800D01*
|
|
||||||
X224289371Y-56117180D01*
|
|
||||||
X223575085Y-56212419D02*
|
|
||||||
X223527466Y-56164800D01*
|
|
||||||
X223432228Y-56117180D01*
|
|
||||||
X223194133Y-56117180D01*
|
|
||||||
X223098895Y-56164800D01*
|
|
||||||
X223051276Y-56212419D01*
|
|
||||||
X223003657Y-56307657D01*
|
|
||||||
X223003657Y-56402895D01*
|
|
||||||
X223051276Y-56545752D01*
|
|
||||||
X223622704Y-57117180D01*
|
|
||||||
X223003657Y-57117180D01*
|
|
||||||
X230860800Y-58493371D02*
|
|
||||||
X230527466Y-58493371D01*
|
|
||||||
X230384609Y-59017180D02*
|
|
||||||
X230860800Y-59017180D01*
|
|
||||||
X230860800Y-58017180D01*
|
|
||||||
X230384609Y-58017180D01*
|
|
||||||
X230051276Y-58017180D02*
|
|
||||||
X229384609Y-59017180D01*
|
|
||||||
X229384609Y-58017180D02*
|
|
||||||
X230051276Y-59017180D01*
|
|
||||||
X229146514Y-58017180D02*
|
|
||||||
X228575085Y-58017180D01*
|
|
||||||
X228860800Y-59017180D02*
|
|
||||||
X228860800Y-58017180D01*
|
|
||||||
X228479847Y-59112419D02*
|
|
||||||
X227717942Y-59112419D01*
|
|
||||||
X227479847Y-59017180D02*
|
|
||||||
X227479847Y-58017180D01*
|
|
||||||
X227098895Y-58017180D01*
|
|
||||||
X227003657Y-58064800D01*
|
|
||||||
X226956038Y-58112419D01*
|
|
||||||
X226908419Y-58207657D01*
|
|
||||||
X226908419Y-58350514D01*
|
|
||||||
X226956038Y-58445752D01*
|
|
||||||
X227003657Y-58493371D01*
|
|
||||||
X227098895Y-58540990D01*
|
|
||||||
X227479847Y-58540990D01*
|
|
||||||
X226575085Y-58017180D02*
|
|
||||||
X226336990Y-59017180D01*
|
|
||||||
X226146514Y-58302895D01*
|
|
||||||
X225956038Y-59017180D01*
|
|
||||||
X225717942Y-58017180D01*
|
|
||||||
X224765561Y-59017180D02*
|
|
||||||
X225098895Y-58540990D01*
|
|
||||||
X225336990Y-59017180D02*
|
|
||||||
X225336990Y-58017180D01*
|
|
||||||
X224956038Y-58017180D01*
|
|
||||||
X224860800Y-58064800D01*
|
|
||||||
X224813180Y-58112419D01*
|
|
||||||
X224765561Y-58207657D01*
|
|
||||||
X224765561Y-58350514D01*
|
|
||||||
X224813180Y-58445752D01*
|
|
||||||
X224860800Y-58493371D01*
|
|
||||||
X224956038Y-58540990D01*
|
|
||||||
X225336990Y-58540990D01*
|
|
||||||
X223813180Y-59017180D02*
|
|
||||||
X224384609Y-59017180D01*
|
|
||||||
X224098895Y-59017180D02*
|
|
||||||
X224098895Y-58017180D01*
|
|
||||||
X224194133Y-58160038D01*
|
|
||||||
X224289371Y-58255276D01*
|
|
||||||
X224384609Y-58302895D01*
|
|
||||||
M02*
|
|
File diff suppressed because it is too large
Load Diff
@ -1,15 +0,0 @@
|
|||||||
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,5.1.10*
|
|
||||||
G04 #@! TF.CreationDate,2021-06-10T23:09:58+02:00*
|
|
||||||
G04 #@! TF.ProjectId,PlantCtrlESP32,506c616e-7443-4747-926c-45535033322e,rev?*
|
|
||||||
G04 #@! TF.SameCoordinates,Original*
|
|
||||||
G04 #@! TF.FileFunction,Paste,Bot*
|
|
||||||
G04 #@! TF.FilePolarity,Positive*
|
|
||||||
%FSLAX46Y46*%
|
|
||||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
|
||||||
G04 Created by KiCad (PCBNEW 5.1.10) date 2021-06-10 23:09:58*
|
|
||||||
%MOMM*%
|
|
||||||
%LPD*%
|
|
||||||
G01*
|
|
||||||
G04 APERTURE LIST*
|
|
||||||
G04 APERTURE END LIST*
|
|
||||||
M02*
|
|
@ -1,436 +0,0 @@
|
|||||||
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,5.1.10*
|
|
||||||
G04 #@! TF.CreationDate,2021-06-10T23:09:58+02:00*
|
|
||||||
G04 #@! TF.ProjectId,PlantCtrlESP32,506c616e-7443-4747-926c-45535033322e,rev?*
|
|
||||||
G04 #@! TF.SameCoordinates,Original*
|
|
||||||
G04 #@! TF.FileFunction,Legend,Bot*
|
|
||||||
G04 #@! TF.FilePolarity,Positive*
|
|
||||||
%FSLAX46Y46*%
|
|
||||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
|
||||||
G04 Created by KiCad (PCBNEW 5.1.10) date 2021-06-10 23:09:58*
|
|
||||||
%MOMM*%
|
|
||||||
%LPD*%
|
|
||||||
G01*
|
|
||||||
G04 APERTURE LIST*
|
|
||||||
%ADD10C,0.500000*%
|
|
||||||
%ADD11C,0.120000*%
|
|
||||||
%ADD12C,0.150000*%
|
|
||||||
G04 APERTURE END LIST*
|
|
||||||
D10*
|
|
||||||
X237963476Y-80549523D02*
|
|
||||||
X237963476Y-76549523D01*
|
|
||||||
X236439666Y-76549523D01*
|
|
||||||
X236058714Y-76740000D01*
|
|
||||||
X235868238Y-76930476D01*
|
|
||||||
X235677761Y-77311428D01*
|
|
||||||
X235677761Y-77882857D01*
|
|
||||||
X235868238Y-78263809D01*
|
|
||||||
X236058714Y-78454285D01*
|
|
||||||
X236439666Y-78644761D01*
|
|
||||||
X237963476Y-78644761D01*
|
|
||||||
X233392047Y-80549523D02*
|
|
||||||
X233773000Y-80359047D01*
|
|
||||||
X233963476Y-79978095D01*
|
|
||||||
X233963476Y-76549523D01*
|
|
||||||
X230153952Y-80549523D02*
|
|
||||||
X230153952Y-78454285D01*
|
|
||||||
X230344428Y-78073333D01*
|
|
||||||
X230725380Y-77882857D01*
|
|
||||||
X231487285Y-77882857D01*
|
|
||||||
X231868238Y-78073333D01*
|
|
||||||
X230153952Y-80359047D02*
|
|
||||||
X230534904Y-80549523D01*
|
|
||||||
X231487285Y-80549523D01*
|
|
||||||
X231868238Y-80359047D01*
|
|
||||||
X232058714Y-79978095D01*
|
|
||||||
X232058714Y-79597142D01*
|
|
||||||
X231868238Y-79216190D01*
|
|
||||||
X231487285Y-79025714D01*
|
|
||||||
X230534904Y-79025714D01*
|
|
||||||
X230153952Y-78835238D01*
|
|
||||||
X228249190Y-77882857D02*
|
|
||||||
X228249190Y-80549523D01*
|
|
||||||
X228249190Y-78263809D02*
|
|
||||||
X228058714Y-78073333D01*
|
|
||||||
X227677761Y-77882857D01*
|
|
||||||
X227106333Y-77882857D01*
|
|
||||||
X226725380Y-78073333D01*
|
|
||||||
X226534904Y-78454285D01*
|
|
||||||
X226534904Y-80549523D01*
|
|
||||||
X225201571Y-77882857D02*
|
|
||||||
X223677761Y-77882857D01*
|
|
||||||
X224630142Y-76549523D02*
|
|
||||||
X224630142Y-79978095D01*
|
|
||||||
X224439666Y-80359047D01*
|
|
||||||
X224058714Y-80549523D01*
|
|
||||||
X223677761Y-80549523D01*
|
|
||||||
X220058714Y-80168571D02*
|
|
||||||
X220249190Y-80359047D01*
|
|
||||||
X220820619Y-80549523D01*
|
|
||||||
X221201571Y-80549523D01*
|
|
||||||
X221773000Y-80359047D01*
|
|
||||||
X222153952Y-79978095D01*
|
|
||||||
X222344428Y-79597142D01*
|
|
||||||
X222534904Y-78835238D01*
|
|
||||||
X222534904Y-78263809D01*
|
|
||||||
X222344428Y-77501904D01*
|
|
||||||
X222153952Y-77120952D01*
|
|
||||||
X221773000Y-76740000D01*
|
|
||||||
X221201571Y-76549523D01*
|
|
||||||
X220820619Y-76549523D01*
|
|
||||||
X220249190Y-76740000D01*
|
|
||||||
X220058714Y-76930476D01*
|
|
||||||
X218915857Y-77882857D02*
|
|
||||||
X217392047Y-77882857D01*
|
|
||||||
X218344428Y-76549523D02*
|
|
||||||
X218344428Y-79978095D01*
|
|
||||||
X218153952Y-80359047D01*
|
|
||||||
X217773000Y-80549523D01*
|
|
||||||
X217392047Y-80549523D01*
|
|
||||||
X216058714Y-80549523D02*
|
|
||||||
X216058714Y-77882857D01*
|
|
||||||
X216058714Y-78644761D02*
|
|
||||||
X215868238Y-78263809D01*
|
|
||||||
X215677761Y-78073333D01*
|
|
||||||
X215296809Y-77882857D01*
|
|
||||||
X214915857Y-77882857D01*
|
|
||||||
X213011095Y-80549523D02*
|
|
||||||
X213392047Y-80359047D01*
|
|
||||||
X213582523Y-79978095D01*
|
|
||||||
X213582523Y-76549523D01*
|
|
||||||
X209011095Y-76549523D02*
|
|
||||||
X207677761Y-80549523D01*
|
|
||||||
X206344428Y-76549523D01*
|
|
||||||
X204249190Y-76549523D02*
|
|
||||||
X203868238Y-76549523D01*
|
|
||||||
X203487285Y-76740000D01*
|
|
||||||
X203296809Y-76930476D01*
|
|
||||||
X203106333Y-77311428D01*
|
|
||||||
X202915857Y-78073333D01*
|
|
||||||
X202915857Y-79025714D01*
|
|
||||||
X203106333Y-79787619D01*
|
|
||||||
X203296809Y-80168571D01*
|
|
||||||
X203487285Y-80359047D01*
|
|
||||||
X203868238Y-80549523D01*
|
|
||||||
X204249190Y-80549523D01*
|
|
||||||
X204630142Y-80359047D01*
|
|
||||||
X204820619Y-80168571D01*
|
|
||||||
X205011095Y-79787619D01*
|
|
||||||
X205201571Y-79025714D01*
|
|
||||||
X205201571Y-78073333D01*
|
|
||||||
X205011095Y-77311428D01*
|
|
||||||
X204820619Y-76930476D01*
|
|
||||||
X204630142Y-76740000D01*
|
|
||||||
X204249190Y-76549523D01*
|
|
||||||
X201201571Y-80168571D02*
|
|
||||||
X201011095Y-80359047D01*
|
|
||||||
X201201571Y-80549523D01*
|
|
||||||
X201392047Y-80359047D01*
|
|
||||||
X201201571Y-80168571D01*
|
|
||||||
X201201571Y-80549523D01*
|
|
||||||
X197201571Y-80549523D02*
|
|
||||||
X199487285Y-80549523D01*
|
|
||||||
X198344428Y-80549523D02*
|
|
||||||
X198344428Y-76549523D01*
|
|
||||||
X198725380Y-77120952D01*
|
|
||||||
X199106333Y-77501904D01*
|
|
||||||
X199487285Y-77692380D01*
|
|
||||||
X194725380Y-76549523D02*
|
|
||||||
X194344428Y-76549523D01*
|
|
||||||
X193963476Y-76740000D01*
|
|
||||||
X193773000Y-76930476D01*
|
|
||||||
X193582523Y-77311428D01*
|
|
||||||
X193392047Y-78073333D01*
|
|
||||||
X193392047Y-79025714D01*
|
|
||||||
X193582523Y-79787619D01*
|
|
||||||
X193773000Y-80168571D01*
|
|
||||||
X193963476Y-80359047D01*
|
|
||||||
X194344428Y-80549523D01*
|
|
||||||
X194725380Y-80549523D01*
|
|
||||||
X195106333Y-80359047D01*
|
|
||||||
X195296809Y-80168571D01*
|
|
||||||
X195487285Y-79787619D01*
|
|
||||||
X195677761Y-79025714D01*
|
|
||||||
X195677761Y-78073333D01*
|
|
||||||
X195487285Y-77311428D01*
|
|
||||||
X195296809Y-76930476D01*
|
|
||||||
X195106333Y-76740000D01*
|
|
||||||
X194725380Y-76549523D01*
|
|
||||||
D11*
|
|
||||||
X223260800Y-64014800D02*
|
|
||||||
X223260800Y-62764800D01*
|
|
||||||
X224510800Y-64014800D02*
|
|
||||||
X223260800Y-64014800D01*
|
|
||||||
X230410800Y-58514800D02*
|
|
||||||
X227360800Y-58514800D01*
|
|
||||||
X230410800Y-61464800D02*
|
|
||||||
X230410800Y-58514800D01*
|
|
||||||
X231160800Y-61464800D02*
|
|
||||||
X230410800Y-61464800D01*
|
|
||||||
X224310800Y-58514800D02*
|
|
||||||
X227360800Y-58514800D01*
|
|
||||||
X224310800Y-61464800D02*
|
|
||||||
X224310800Y-58514800D01*
|
|
||||||
X223560800Y-61464800D02*
|
|
||||||
X224310800Y-61464800D01*
|
|
||||||
X231160800Y-63714800D02*
|
|
||||||
X229360800Y-63714800D01*
|
|
||||||
X231160800Y-62964800D02*
|
|
||||||
X231160800Y-63714800D01*
|
|
||||||
X229360800Y-62964800D02*
|
|
||||||
X231160800Y-62964800D01*
|
|
||||||
X229360800Y-63714800D02*
|
|
||||||
X229360800Y-62964800D01*
|
|
||||||
X225360800Y-63714800D02*
|
|
||||||
X223560800Y-63714800D01*
|
|
||||||
X225360800Y-62964800D02*
|
|
||||||
X225360800Y-63714800D01*
|
|
||||||
X223560800Y-62964800D02*
|
|
||||||
X225360800Y-62964800D01*
|
|
||||||
X223560800Y-63714800D02*
|
|
||||||
X223560800Y-62964800D01*
|
|
||||||
X227860800Y-63714800D02*
|
|
||||||
X226860800Y-63714800D01*
|
|
||||||
X227860800Y-62964800D02*
|
|
||||||
X227860800Y-63714800D01*
|
|
||||||
X226860800Y-62964800D02*
|
|
||||||
X227860800Y-62964800D01*
|
|
||||||
X226860800Y-63714800D02*
|
|
||||||
X226860800Y-62964800D01*
|
|
||||||
X231170800Y-63724800D02*
|
|
||||||
X223550800Y-63724800D01*
|
|
||||||
X231170800Y-57754800D02*
|
|
||||||
X231170800Y-63724800D01*
|
|
||||||
X223550800Y-57754800D02*
|
|
||||||
X231170800Y-57754800D01*
|
|
||||||
X223550800Y-63724800D02*
|
|
||||||
X223550800Y-57754800D01*
|
|
||||||
D12*
|
|
||||||
X185356285Y-137866380D02*
|
|
||||||
X185689619Y-137390190D01*
|
|
||||||
X185927714Y-137866380D02*
|
|
||||||
X185927714Y-136866380D01*
|
|
||||||
X185546761Y-136866380D01*
|
|
||||||
X185451523Y-136914000D01*
|
|
||||||
X185403904Y-136961619D01*
|
|
||||||
X185356285Y-137056857D01*
|
|
||||||
X185356285Y-137199714D01*
|
|
||||||
X185403904Y-137294952D01*
|
|
||||||
X185451523Y-137342571D01*
|
|
||||||
X185546761Y-137390190D01*
|
|
||||||
X185927714Y-137390190D01*
|
|
||||||
X184546761Y-137818761D02*
|
|
||||||
X184642000Y-137866380D01*
|
|
||||||
X184832476Y-137866380D01*
|
|
||||||
X184927714Y-137818761D01*
|
|
||||||
X184975333Y-137723523D01*
|
|
||||||
X184975333Y-137342571D01*
|
|
||||||
X184927714Y-137247333D01*
|
|
||||||
X184832476Y-137199714D01*
|
|
||||||
X184642000Y-137199714D01*
|
|
||||||
X184546761Y-137247333D01*
|
|
||||||
X184499142Y-137342571D01*
|
|
||||||
X184499142Y-137437809D01*
|
|
||||||
X184975333Y-137533047D01*
|
|
||||||
X184118190Y-137818761D02*
|
|
||||||
X184022952Y-137866380D01*
|
|
||||||
X183832476Y-137866380D01*
|
|
||||||
X183737238Y-137818761D01*
|
|
||||||
X183689619Y-137723523D01*
|
|
||||||
X183689619Y-137675904D01*
|
|
||||||
X183737238Y-137580666D01*
|
|
||||||
X183832476Y-137533047D01*
|
|
||||||
X183975333Y-137533047D01*
|
|
||||||
X184070571Y-137485428D01*
|
|
||||||
X184118190Y-137390190D01*
|
|
||||||
X184118190Y-137342571D01*
|
|
||||||
X184070571Y-137247333D01*
|
|
||||||
X183975333Y-137199714D01*
|
|
||||||
X183832476Y-137199714D01*
|
|
||||||
X183737238Y-137247333D01*
|
|
||||||
X182880095Y-137818761D02*
|
|
||||||
X182975333Y-137866380D01*
|
|
||||||
X183165809Y-137866380D01*
|
|
||||||
X183261047Y-137818761D01*
|
|
||||||
X183308666Y-137723523D01*
|
|
||||||
X183308666Y-137342571D01*
|
|
||||||
X183261047Y-137247333D01*
|
|
||||||
X183165809Y-137199714D01*
|
|
||||||
X182975333Y-137199714D01*
|
|
||||||
X182880095Y-137247333D01*
|
|
||||||
X182832476Y-137342571D01*
|
|
||||||
X182832476Y-137437809D01*
|
|
||||||
X183308666Y-137533047D01*
|
|
||||||
X182546761Y-137199714D02*
|
|
||||||
X182165809Y-137199714D01*
|
|
||||||
X182403904Y-136866380D02*
|
|
||||||
X182403904Y-137723523D01*
|
|
||||||
X182356285Y-137818761D01*
|
|
||||||
X182261047Y-137866380D01*
|
|
||||||
X182165809Y-137866380D01*
|
|
||||||
X181308666Y-137866380D02*
|
|
||||||
X181880095Y-137866380D01*
|
|
||||||
X181594380Y-137866380D02*
|
|
||||||
X181594380Y-136866380D01*
|
|
||||||
X181689619Y-137009238D01*
|
|
||||||
X181784857Y-137104476D01*
|
|
||||||
X181880095Y-137152095D01*
|
|
||||||
X197683238Y-137596571D02*
|
|
||||||
X197540380Y-137644190D01*
|
|
||||||
X197492761Y-137691809D01*
|
|
||||||
X197445142Y-137787047D01*
|
|
||||||
X197445142Y-137929904D01*
|
|
||||||
X197492761Y-138025142D01*
|
|
||||||
X197540380Y-138072761D01*
|
|
||||||
X197635619Y-138120380D01*
|
|
||||||
X198016571Y-138120380D01*
|
|
||||||
X198016571Y-137120380D01*
|
|
||||||
X197683238Y-137120380D01*
|
|
||||||
X197588000Y-137168000D01*
|
|
||||||
X197540380Y-137215619D01*
|
|
||||||
X197492761Y-137310857D01*
|
|
||||||
X197492761Y-137406095D01*
|
|
||||||
X197540380Y-137501333D01*
|
|
||||||
X197588000Y-137548952D01*
|
|
||||||
X197683238Y-137596571D01*
|
|
||||||
X198016571Y-137596571D01*
|
|
||||||
X196873714Y-138120380D02*
|
|
||||||
X196968952Y-138072761D01*
|
|
||||||
X197016571Y-138025142D01*
|
|
||||||
X197064190Y-137929904D01*
|
|
||||||
X197064190Y-137644190D01*
|
|
||||||
X197016571Y-137548952D01*
|
|
||||||
X196968952Y-137501333D01*
|
|
||||||
X196873714Y-137453714D01*
|
|
||||||
X196730857Y-137453714D01*
|
|
||||||
X196635619Y-137501333D01*
|
|
||||||
X196588000Y-137548952D01*
|
|
||||||
X196540380Y-137644190D01*
|
|
||||||
X196540380Y-137929904D01*
|
|
||||||
X196588000Y-138025142D01*
|
|
||||||
X196635619Y-138072761D01*
|
|
||||||
X196730857Y-138120380D01*
|
|
||||||
X196873714Y-138120380D01*
|
|
||||||
X195968952Y-138120380D02*
|
|
||||||
X196064190Y-138072761D01*
|
|
||||||
X196111809Y-138025142D01*
|
|
||||||
X196159428Y-137929904D01*
|
|
||||||
X196159428Y-137644190D01*
|
|
||||||
X196111809Y-137548952D01*
|
|
||||||
X196064190Y-137501333D01*
|
|
||||||
X195968952Y-137453714D01*
|
|
||||||
X195826095Y-137453714D01*
|
|
||||||
X195730857Y-137501333D01*
|
|
||||||
X195683238Y-137548952D01*
|
|
||||||
X195635619Y-137644190D01*
|
|
||||||
X195635619Y-137929904D01*
|
|
||||||
X195683238Y-138025142D01*
|
|
||||||
X195730857Y-138072761D01*
|
|
||||||
X195826095Y-138120380D01*
|
|
||||||
X195968952Y-138120380D01*
|
|
||||||
X195349904Y-137453714D02*
|
|
||||||
X194968952Y-137453714D01*
|
|
||||||
X195207047Y-137120380D02*
|
|
||||||
X195207047Y-137977523D01*
|
|
||||||
X195159428Y-138072761D01*
|
|
||||||
X195064190Y-138120380D01*
|
|
||||||
X194968952Y-138120380D01*
|
|
||||||
X194111809Y-138120380D02*
|
|
||||||
X194683238Y-138120380D01*
|
|
||||||
X194397523Y-138120380D02*
|
|
||||||
X194397523Y-137120380D01*
|
|
||||||
X194492761Y-137263238D01*
|
|
||||||
X194588000Y-137358476D01*
|
|
||||||
X194683238Y-137406095D01*
|
|
||||||
X243336819Y-57486371D02*
|
|
||||||
X243336819Y-57962561D01*
|
|
||||||
X244336819Y-57962561D01*
|
|
||||||
X243336819Y-57153038D02*
|
|
||||||
X244336819Y-57153038D01*
|
|
||||||
X243336819Y-56676847D02*
|
|
||||||
X244336819Y-56676847D01*
|
|
||||||
X244336819Y-56295895D01*
|
|
||||||
X244289200Y-56200657D01*
|
|
||||||
X244241580Y-56153038D01*
|
|
||||||
X244146342Y-56105419D01*
|
|
||||||
X244003485Y-56105419D01*
|
|
||||||
X243908247Y-56153038D01*
|
|
||||||
X243860628Y-56200657D01*
|
|
||||||
X243813009Y-56295895D01*
|
|
||||||
X243813009Y-56676847D01*
|
|
||||||
X244336819Y-55486371D02*
|
|
||||||
X244336819Y-55295895D01*
|
|
||||||
X244289200Y-55200657D01*
|
|
||||||
X244193961Y-55105419D01*
|
|
||||||
X244003485Y-55057800D01*
|
|
||||||
X243670152Y-55057800D01*
|
|
||||||
X243479676Y-55105419D01*
|
|
||||||
X243384438Y-55200657D01*
|
|
||||||
X243336819Y-55295895D01*
|
|
||||||
X243336819Y-55486371D01*
|
|
||||||
X243384438Y-55581609D01*
|
|
||||||
X243479676Y-55676847D01*
|
|
||||||
X243670152Y-55724466D01*
|
|
||||||
X244003485Y-55724466D01*
|
|
||||||
X244193961Y-55676847D01*
|
|
||||||
X244289200Y-55581609D01*
|
|
||||||
X244336819Y-55486371D01*
|
|
||||||
X243336819Y-54105419D02*
|
|
||||||
X243336819Y-54676847D01*
|
|
||||||
X243336819Y-54391133D02*
|
|
||||||
X244336819Y-54391133D01*
|
|
||||||
X244193961Y-54486371D01*
|
|
||||||
X244098723Y-54581609D01*
|
|
||||||
X244051104Y-54676847D01*
|
|
||||||
X230860800Y-64743371D02*
|
|
||||||
X230527466Y-64743371D01*
|
|
||||||
X230384609Y-65267180D02*
|
|
||||||
X230860800Y-65267180D01*
|
|
||||||
X230860800Y-64267180D01*
|
|
||||||
X230384609Y-64267180D01*
|
|
||||||
X230051276Y-64267180D02*
|
|
||||||
X229384609Y-65267180D01*
|
|
||||||
X229384609Y-64267180D02*
|
|
||||||
X230051276Y-65267180D01*
|
|
||||||
X229146514Y-64267180D02*
|
|
||||||
X228575085Y-64267180D01*
|
|
||||||
X228860800Y-65267180D02*
|
|
||||||
X228860800Y-64267180D01*
|
|
||||||
X228479847Y-65362419D02*
|
|
||||||
X227717942Y-65362419D01*
|
|
||||||
X227479847Y-65267180D02*
|
|
||||||
X227479847Y-64267180D01*
|
|
||||||
X227098895Y-64267180D01*
|
|
||||||
X227003657Y-64314800D01*
|
|
||||||
X226956038Y-64362419D01*
|
|
||||||
X226908419Y-64457657D01*
|
|
||||||
X226908419Y-64600514D01*
|
|
||||||
X226956038Y-64695752D01*
|
|
||||||
X227003657Y-64743371D01*
|
|
||||||
X227098895Y-64790990D01*
|
|
||||||
X227479847Y-64790990D01*
|
|
||||||
X226575085Y-64267180D02*
|
|
||||||
X226336990Y-65267180D01*
|
|
||||||
X226146514Y-64552895D01*
|
|
||||||
X225956038Y-65267180D01*
|
|
||||||
X225717942Y-64267180D01*
|
|
||||||
X224765561Y-65267180D02*
|
|
||||||
X225098895Y-64790990D01*
|
|
||||||
X225336990Y-65267180D02*
|
|
||||||
X225336990Y-64267180D01*
|
|
||||||
X224956038Y-64267180D01*
|
|
||||||
X224860800Y-64314800D01*
|
|
||||||
X224813180Y-64362419D01*
|
|
||||||
X224765561Y-64457657D01*
|
|
||||||
X224765561Y-64600514D01*
|
|
||||||
X224813180Y-64695752D01*
|
|
||||||
X224860800Y-64743371D01*
|
|
||||||
X224956038Y-64790990D01*
|
|
||||||
X225336990Y-64790990D01*
|
|
||||||
X223813180Y-65267180D02*
|
|
||||||
X224384609Y-65267180D01*
|
|
||||||
X224098895Y-65267180D02*
|
|
||||||
X224098895Y-64267180D01*
|
|
||||||
X224194133Y-64410038D01*
|
|
||||||
X224289371Y-64505276D01*
|
|
||||||
X224384609Y-64552895D01*
|
|
||||||
M02*
|
|
File diff suppressed because it is too large
Load Diff
@ -1,748 +0,0 @@
|
|||||||
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,5.1.10*
|
|
||||||
G04 #@! TF.CreationDate,2021-06-10T23:09:58+02:00*
|
|
||||||
G04 #@! TF.ProjectId,PlantCtrlESP32,506c616e-7443-4747-926c-45535033322e,rev?*
|
|
||||||
G04 #@! TF.SameCoordinates,Original*
|
|
||||||
G04 #@! TF.FileFunction,OtherDrawing,Comment*
|
|
||||||
%FSLAX46Y46*%
|
|
||||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
|
||||||
G04 Created by KiCad (PCBNEW 5.1.10) date 2021-06-10 23:09:58*
|
|
||||||
%MOMM*%
|
|
||||||
%LPD*%
|
|
||||||
G01*
|
|
||||||
G04 APERTURE LIST*
|
|
||||||
%ADD10C,0.100000*%
|
|
||||||
%ADD11C,0.150000*%
|
|
||||||
G04 APERTURE END LIST*
|
|
||||||
D10*
|
|
||||||
X169862000Y-119918000D02*
|
|
||||||
X159082000Y-119918000D01*
|
|
||||||
X169862000Y-91918000D02*
|
|
||||||
X169862000Y-119918000D01*
|
|
||||||
X169862000Y-91918000D02*
|
|
||||||
X159082000Y-91918000D01*
|
|
||||||
X159082000Y-91918000D02*
|
|
||||||
X159082000Y-119918000D01*
|
|
||||||
X159082000Y-118443000D02*
|
|
||||||
X160172000Y-119918000D01*
|
|
||||||
X159082000Y-116443000D02*
|
|
||||||
X161787000Y-119918000D01*
|
|
||||||
X159082000Y-114443000D02*
|
|
||||||
X163402000Y-119918000D01*
|
|
||||||
X159082000Y-112443000D02*
|
|
||||||
X165017000Y-119918000D01*
|
|
||||||
X159082000Y-110443000D02*
|
|
||||||
X166632000Y-119918000D01*
|
|
||||||
X159082000Y-108443000D02*
|
|
||||||
X168247000Y-119918000D01*
|
|
||||||
X159082000Y-106443000D02*
|
|
||||||
X169862000Y-119918000D01*
|
|
||||||
X159082000Y-104443000D02*
|
|
||||||
X169862000Y-117918000D01*
|
|
||||||
X159082000Y-102443000D02*
|
|
||||||
X169862000Y-115918000D01*
|
|
||||||
X169862000Y-113918000D02*
|
|
||||||
X159082000Y-100443000D01*
|
|
||||||
X159082000Y-98443000D02*
|
|
||||||
X169862000Y-111918000D01*
|
|
||||||
X159082000Y-96443000D02*
|
|
||||||
X169862000Y-109918000D01*
|
|
||||||
X159082000Y-94443000D02*
|
|
||||||
X169862000Y-107918000D01*
|
|
||||||
X159082000Y-92443000D02*
|
|
||||||
X169862000Y-105918000D01*
|
|
||||||
X160172000Y-91918000D02*
|
|
||||||
X169862000Y-103918000D01*
|
|
||||||
X161787000Y-91918000D02*
|
|
||||||
X169862000Y-101918000D01*
|
|
||||||
X163402000Y-91918000D02*
|
|
||||||
X169862000Y-99918000D01*
|
|
||||||
X165017000Y-91918000D02*
|
|
||||||
X169862000Y-97918000D01*
|
|
||||||
X166632000Y-91918000D02*
|
|
||||||
X169862000Y-95918000D01*
|
|
||||||
X168247000Y-91918000D02*
|
|
||||||
X169862000Y-93918000D01*
|
|
||||||
D11*
|
|
||||||
X260475480Y-68863421D02*
|
|
||||||
X260475480Y-68768183D01*
|
|
||||||
X260523100Y-68672945D01*
|
|
||||||
X260570719Y-68625326D01*
|
|
||||||
X260665957Y-68577707D01*
|
|
||||||
X260856433Y-68530088D01*
|
|
||||||
X261094528Y-68530088D01*
|
|
||||||
X261285004Y-68577707D01*
|
|
||||||
X261380242Y-68625326D01*
|
|
||||||
X261427861Y-68672945D01*
|
|
||||||
X261475480Y-68768183D01*
|
|
||||||
X261475480Y-68863421D01*
|
|
||||||
X261427861Y-68958659D01*
|
|
||||||
X261380242Y-69006278D01*
|
|
||||||
X261285004Y-69053897D01*
|
|
||||||
X261094528Y-69101516D01*
|
|
||||||
X260856433Y-69101516D01*
|
|
||||||
X260665957Y-69053897D01*
|
|
||||||
X260570719Y-69006278D01*
|
|
||||||
X260523100Y-68958659D01*
|
|
||||||
X260475480Y-68863421D01*
|
|
||||||
X261380242Y-68101516D02*
|
|
||||||
X261427861Y-68053897D01*
|
|
||||||
X261475480Y-68101516D01*
|
|
||||||
X261427861Y-68149135D01*
|
|
||||||
X261380242Y-68101516D01*
|
|
||||||
X261475480Y-68101516D01*
|
|
||||||
X260475480Y-67434850D02*
|
|
||||||
X260475480Y-67339611D01*
|
|
||||||
X260523100Y-67244373D01*
|
|
||||||
X260570719Y-67196754D01*
|
|
||||||
X260665957Y-67149135D01*
|
|
||||||
X260856433Y-67101516D01*
|
|
||||||
X261094528Y-67101516D01*
|
|
||||||
X261285004Y-67149135D01*
|
|
||||||
X261380242Y-67196754D01*
|
|
||||||
X261427861Y-67244373D01*
|
|
||||||
X261475480Y-67339611D01*
|
|
||||||
X261475480Y-67434850D01*
|
|
||||||
X261427861Y-67530088D01*
|
|
||||||
X261380242Y-67577707D01*
|
|
||||||
X261285004Y-67625326D01*
|
|
||||||
X261094528Y-67672945D01*
|
|
||||||
X260856433Y-67672945D01*
|
|
||||||
X260665957Y-67625326D01*
|
|
||||||
X260570719Y-67577707D01*
|
|
||||||
X260523100Y-67530088D01*
|
|
||||||
X260475480Y-67434850D01*
|
|
||||||
X260475480Y-66196754D02*
|
|
||||||
X260475480Y-66672945D01*
|
|
||||||
X260951671Y-66720564D01*
|
|
||||||
X260904052Y-66672945D01*
|
|
||||||
X260856433Y-66577707D01*
|
|
||||||
X260856433Y-66339611D01*
|
|
||||||
X260904052Y-66244373D01*
|
|
||||||
X260951671Y-66196754D01*
|
|
||||||
X261046909Y-66149135D01*
|
|
||||||
X261285004Y-66149135D01*
|
|
||||||
X261380242Y-66196754D01*
|
|
||||||
X261427861Y-66244373D01*
|
|
||||||
X261475480Y-66339611D01*
|
|
||||||
X261475480Y-66577707D01*
|
|
||||||
X261427861Y-66672945D01*
|
|
||||||
X261380242Y-66720564D01*
|
|
||||||
X260904052Y-65577707D02*
|
|
||||||
X260856433Y-65672945D01*
|
|
||||||
X260808814Y-65720564D01*
|
|
||||||
X260713576Y-65768183D01*
|
|
||||||
X260665957Y-65768183D01*
|
|
||||||
X260570719Y-65720564D01*
|
|
||||||
X260523100Y-65672945D01*
|
|
||||||
X260475480Y-65577707D01*
|
|
||||||
X260475480Y-65387230D01*
|
|
||||||
X260523100Y-65291992D01*
|
|
||||||
X260570719Y-65244373D01*
|
|
||||||
X260665957Y-65196754D01*
|
|
||||||
X260713576Y-65196754D01*
|
|
||||||
X260808814Y-65244373D01*
|
|
||||||
X260856433Y-65291992D01*
|
|
||||||
X260904052Y-65387230D01*
|
|
||||||
X260904052Y-65577707D01*
|
|
||||||
X260951671Y-65672945D01*
|
|
||||||
X260999290Y-65720564D01*
|
|
||||||
X261094528Y-65768183D01*
|
|
||||||
X261285004Y-65768183D01*
|
|
||||||
X261380242Y-65720564D01*
|
|
||||||
X261427861Y-65672945D01*
|
|
||||||
X261475480Y-65577707D01*
|
|
||||||
X261475480Y-65387230D01*
|
|
||||||
X261427861Y-65291992D01*
|
|
||||||
X261380242Y-65244373D01*
|
|
||||||
X261285004Y-65196754D01*
|
|
||||||
X261094528Y-65196754D01*
|
|
||||||
X260999290Y-65244373D01*
|
|
||||||
X260951671Y-65291992D01*
|
|
||||||
X260904052Y-65387230D01*
|
|
||||||
X261475480Y-64768183D02*
|
|
||||||
X260808814Y-64768183D01*
|
|
||||||
X260475480Y-64768183D02*
|
|
||||||
X260523100Y-64815802D01*
|
|
||||||
X260570719Y-64768183D01*
|
|
||||||
X260523100Y-64720564D01*
|
|
||||||
X260475480Y-64768183D01*
|
|
||||||
X260570719Y-64768183D01*
|
|
||||||
X260808814Y-64291992D02*
|
|
||||||
X261475480Y-64291992D01*
|
|
||||||
X260904052Y-64291992D02*
|
|
||||||
X260856433Y-64244373D01*
|
|
||||||
X260808814Y-64149135D01*
|
|
||||||
X260808814Y-64006278D01*
|
|
||||||
X260856433Y-63911040D01*
|
|
||||||
X260951671Y-63863421D01*
|
|
||||||
X261475480Y-63863421D01*
|
|
||||||
X260427861Y-62672945D02*
|
|
||||||
X261713576Y-63530088D01*
|
|
||||||
X261475480Y-61815802D02*
|
|
||||||
X261475480Y-62387230D01*
|
|
||||||
X261475480Y-62101516D02*
|
|
||||||
X260475480Y-62101516D01*
|
|
||||||
X260618338Y-62196754D01*
|
|
||||||
X260713576Y-62291992D01*
|
|
||||||
X260761195Y-62387230D01*
|
|
||||||
X261380242Y-61387230D02*
|
|
||||||
X261427861Y-61339611D01*
|
|
||||||
X261475480Y-61387230D01*
|
|
||||||
X261427861Y-61434850D01*
|
|
||||||
X261380242Y-61387230D01*
|
|
||||||
X261475480Y-61387230D01*
|
|
||||||
X260808814Y-60482469D02*
|
|
||||||
X261475480Y-60482469D01*
|
|
||||||
X260427861Y-60720564D02*
|
|
||||||
X261142147Y-60958659D01*
|
|
||||||
X261142147Y-60339611D01*
|
|
||||||
X260475480Y-59530088D02*
|
|
||||||
X260475480Y-59720564D01*
|
|
||||||
X260523100Y-59815802D01*
|
|
||||||
X260570719Y-59863421D01*
|
|
||||||
X260713576Y-59958659D01*
|
|
||||||
X260904052Y-60006278D01*
|
|
||||||
X261285004Y-60006278D01*
|
|
||||||
X261380242Y-59958659D01*
|
|
||||||
X261427861Y-59911040D01*
|
|
||||||
X261475480Y-59815802D01*
|
|
||||||
X261475480Y-59625326D01*
|
|
||||||
X261427861Y-59530088D01*
|
|
||||||
X261380242Y-59482469D01*
|
|
||||||
X261285004Y-59434850D01*
|
|
||||||
X261046909Y-59434850D01*
|
|
||||||
X260951671Y-59482469D01*
|
|
||||||
X260904052Y-59530088D01*
|
|
||||||
X260856433Y-59625326D01*
|
|
||||||
X260856433Y-59815802D01*
|
|
||||||
X260904052Y-59911040D01*
|
|
||||||
X260951671Y-59958659D01*
|
|
||||||
X261046909Y-60006278D01*
|
|
||||||
X261475480Y-59006278D02*
|
|
||||||
X260808814Y-59006278D01*
|
|
||||||
X260904052Y-59006278D02*
|
|
||||||
X260856433Y-58958659D01*
|
|
||||||
X260808814Y-58863421D01*
|
|
||||||
X260808814Y-58720564D01*
|
|
||||||
X260856433Y-58625326D01*
|
|
||||||
X260951671Y-58577707D01*
|
|
||||||
X261475480Y-58577707D01*
|
|
||||||
X260951671Y-58577707D02*
|
|
||||||
X260856433Y-58530088D01*
|
|
||||||
X260808814Y-58434850D01*
|
|
||||||
X260808814Y-58291992D01*
|
|
||||||
X260856433Y-58196754D01*
|
|
||||||
X260951671Y-58149135D01*
|
|
||||||
X261475480Y-58149135D01*
|
|
||||||
X261475480Y-57672945D02*
|
|
||||||
X260808814Y-57672945D01*
|
|
||||||
X260904052Y-57672945D02*
|
|
||||||
X260856433Y-57625326D01*
|
|
||||||
X260808814Y-57530088D01*
|
|
||||||
X260808814Y-57387230D01*
|
|
||||||
X260856433Y-57291992D01*
|
|
||||||
X260951671Y-57244373D01*
|
|
||||||
X261475480Y-57244373D01*
|
|
||||||
X260951671Y-57244373D02*
|
|
||||||
X260856433Y-57196754D01*
|
|
||||||
X260808814Y-57101516D01*
|
|
||||||
X260808814Y-56958659D01*
|
|
||||||
X260856433Y-56863421D01*
|
|
||||||
X260951671Y-56815802D01*
|
|
||||||
X261475480Y-56815802D01*
|
|
||||||
X270305280Y-72063761D02*
|
|
||||||
X270305280Y-71968523D01*
|
|
||||||
X270352900Y-71873285D01*
|
|
||||||
X270400519Y-71825666D01*
|
|
||||||
X270495757Y-71778047D01*
|
|
||||||
X270686233Y-71730428D01*
|
|
||||||
X270924328Y-71730428D01*
|
|
||||||
X271114804Y-71778047D01*
|
|
||||||
X271210042Y-71825666D01*
|
|
||||||
X271257661Y-71873285D01*
|
|
||||||
X271305280Y-71968523D01*
|
|
||||||
X271305280Y-72063761D01*
|
|
||||||
X271257661Y-72159000D01*
|
|
||||||
X271210042Y-72206619D01*
|
|
||||||
X271114804Y-72254238D01*
|
|
||||||
X270924328Y-72301857D01*
|
|
||||||
X270686233Y-72301857D01*
|
|
||||||
X270495757Y-72254238D01*
|
|
||||||
X270400519Y-72206619D01*
|
|
||||||
X270352900Y-72159000D01*
|
|
||||||
X270305280Y-72063761D01*
|
|
||||||
X271210042Y-71301857D02*
|
|
||||||
X271257661Y-71254238D01*
|
|
||||||
X271305280Y-71301857D01*
|
|
||||||
X271257661Y-71349476D01*
|
|
||||||
X271210042Y-71301857D01*
|
|
||||||
X271305280Y-71301857D01*
|
|
||||||
X270400519Y-70873285D02*
|
|
||||||
X270352900Y-70825666D01*
|
|
||||||
X270305280Y-70730428D01*
|
|
||||||
X270305280Y-70492333D01*
|
|
||||||
X270352900Y-70397095D01*
|
|
||||||
X270400519Y-70349476D01*
|
|
||||||
X270495757Y-70301857D01*
|
|
||||||
X270590995Y-70301857D01*
|
|
||||||
X270733852Y-70349476D01*
|
|
||||||
X271305280Y-70920904D01*
|
|
||||||
X271305280Y-70301857D01*
|
|
||||||
X271305280Y-69349476D02*
|
|
||||||
X271305280Y-69920904D01*
|
|
||||||
X271305280Y-69635190D02*
|
|
||||||
X270305280Y-69635190D01*
|
|
||||||
X270448138Y-69730428D01*
|
|
||||||
X270543376Y-69825666D01*
|
|
||||||
X270590995Y-69920904D01*
|
|
||||||
X270638614Y-68492333D02*
|
|
||||||
X271305280Y-68492333D01*
|
|
||||||
X270257661Y-68730428D02*
|
|
||||||
X270971947Y-68968523D01*
|
|
||||||
X270971947Y-68349476D01*
|
|
||||||
X271305280Y-67968523D02*
|
|
||||||
X270638614Y-67968523D01*
|
|
||||||
X270305280Y-67968523D02*
|
|
||||||
X270352900Y-68016142D01*
|
|
||||||
X270400519Y-67968523D01*
|
|
||||||
X270352900Y-67920904D01*
|
|
||||||
X270305280Y-67968523D01*
|
|
||||||
X270400519Y-67968523D01*
|
|
||||||
X270638614Y-67492333D02*
|
|
||||||
X271305280Y-67492333D01*
|
|
||||||
X270733852Y-67492333D02*
|
|
||||||
X270686233Y-67444714D01*
|
|
||||||
X270638614Y-67349476D01*
|
|
||||||
X270638614Y-67206619D01*
|
|
||||||
X270686233Y-67111380D01*
|
|
||||||
X270781471Y-67063761D01*
|
|
||||||
X271305280Y-67063761D01*
|
|
||||||
X270257661Y-65873285D02*
|
|
||||||
X271543376Y-66730428D01*
|
|
||||||
X270305280Y-65063761D02*
|
|
||||||
X270305280Y-65539952D01*
|
|
||||||
X270781471Y-65587571D01*
|
|
||||||
X270733852Y-65539952D01*
|
|
||||||
X270686233Y-65444714D01*
|
|
||||||
X270686233Y-65206619D01*
|
|
||||||
X270733852Y-65111380D01*
|
|
||||||
X270781471Y-65063761D01*
|
|
||||||
X270876709Y-65016142D01*
|
|
||||||
X271114804Y-65016142D01*
|
|
||||||
X271210042Y-65063761D01*
|
|
||||||
X271257661Y-65111380D01*
|
|
||||||
X271305280Y-65206619D01*
|
|
||||||
X271305280Y-65444714D01*
|
|
||||||
X271257661Y-65539952D01*
|
|
||||||
X271210042Y-65587571D01*
|
|
||||||
X271210042Y-64587571D02*
|
|
||||||
X271257661Y-64539952D01*
|
|
||||||
X271305280Y-64587571D01*
|
|
||||||
X271257661Y-64635190D01*
|
|
||||||
X271210042Y-64587571D01*
|
|
||||||
X271305280Y-64587571D01*
|
|
||||||
X270638614Y-63682809D02*
|
|
||||||
X271305280Y-63682809D01*
|
|
||||||
X270257661Y-63920904D02*
|
|
||||||
X270971947Y-64159000D01*
|
|
||||||
X270971947Y-63539952D01*
|
|
||||||
X270638614Y-62730428D02*
|
|
||||||
X271305280Y-62730428D01*
|
|
||||||
X270257661Y-62968523D02*
|
|
||||||
X270971947Y-63206619D01*
|
|
||||||
X270971947Y-62587571D01*
|
|
||||||
X270733852Y-62063761D02*
|
|
||||||
X270686233Y-62159000D01*
|
|
||||||
X270638614Y-62206619D01*
|
|
||||||
X270543376Y-62254238D01*
|
|
||||||
X270495757Y-62254238D01*
|
|
||||||
X270400519Y-62206619D01*
|
|
||||||
X270352900Y-62159000D01*
|
|
||||||
X270305280Y-62063761D01*
|
|
||||||
X270305280Y-61873285D01*
|
|
||||||
X270352900Y-61778047D01*
|
|
||||||
X270400519Y-61730428D01*
|
|
||||||
X270495757Y-61682809D01*
|
|
||||||
X270543376Y-61682809D01*
|
|
||||||
X270638614Y-61730428D01*
|
|
||||||
X270686233Y-61778047D01*
|
|
||||||
X270733852Y-61873285D01*
|
|
||||||
X270733852Y-62063761D01*
|
|
||||||
X270781471Y-62159000D01*
|
|
||||||
X270829090Y-62206619D01*
|
|
||||||
X270924328Y-62254238D01*
|
|
||||||
X271114804Y-62254238D01*
|
|
||||||
X271210042Y-62206619D01*
|
|
||||||
X271257661Y-62159000D01*
|
|
||||||
X271305280Y-62063761D01*
|
|
||||||
X271305280Y-61873285D01*
|
|
||||||
X271257661Y-61778047D01*
|
|
||||||
X271210042Y-61730428D01*
|
|
||||||
X271114804Y-61682809D01*
|
|
||||||
X270924328Y-61682809D01*
|
|
||||||
X270829090Y-61730428D01*
|
|
||||||
X270781471Y-61778047D01*
|
|
||||||
X270733852Y-61873285D01*
|
|
||||||
X271305280Y-61254238D02*
|
|
||||||
X270638614Y-61254238D01*
|
|
||||||
X270733852Y-61254238D02*
|
|
||||||
X270686233Y-61206619D01*
|
|
||||||
X270638614Y-61111380D01*
|
|
||||||
X270638614Y-60968523D01*
|
|
||||||
X270686233Y-60873285D01*
|
|
||||||
X270781471Y-60825666D01*
|
|
||||||
X271305280Y-60825666D01*
|
|
||||||
X270781471Y-60825666D02*
|
|
||||||
X270686233Y-60778047D01*
|
|
||||||
X270638614Y-60682809D01*
|
|
||||||
X270638614Y-60539952D01*
|
|
||||||
X270686233Y-60444714D01*
|
|
||||||
X270781471Y-60397095D01*
|
|
||||||
X271305280Y-60397095D01*
|
|
||||||
X271305280Y-59920904D02*
|
|
||||||
X270638614Y-59920904D01*
|
|
||||||
X270733852Y-59920904D02*
|
|
||||||
X270686233Y-59873285D01*
|
|
||||||
X270638614Y-59778047D01*
|
|
||||||
X270638614Y-59635190D01*
|
|
||||||
X270686233Y-59539952D01*
|
|
||||||
X270781471Y-59492333D01*
|
|
||||||
X271305280Y-59492333D01*
|
|
||||||
X270781471Y-59492333D02*
|
|
||||||
X270686233Y-59444714D01*
|
|
||||||
X270638614Y-59349476D01*
|
|
||||||
X270638614Y-59206619D01*
|
|
||||||
X270686233Y-59111380D01*
|
|
||||||
X270781471Y-59063761D01*
|
|
||||||
X271305280Y-59063761D01*
|
|
||||||
X267295380Y-77835911D02*
|
|
||||||
X267295380Y-77740673D01*
|
|
||||||
X267343000Y-77645435D01*
|
|
||||||
X267390619Y-77597816D01*
|
|
||||||
X267485857Y-77550197D01*
|
|
||||||
X267676333Y-77502578D01*
|
|
||||||
X267914428Y-77502578D01*
|
|
||||||
X268104904Y-77550197D01*
|
|
||||||
X268200142Y-77597816D01*
|
|
||||||
X268247761Y-77645435D01*
|
|
||||||
X268295380Y-77740673D01*
|
|
||||||
X268295380Y-77835911D01*
|
|
||||||
X268247761Y-77931150D01*
|
|
||||||
X268200142Y-77978769D01*
|
|
||||||
X268104904Y-78026388D01*
|
|
||||||
X267914428Y-78074007D01*
|
|
||||||
X267676333Y-78074007D01*
|
|
||||||
X267485857Y-78026388D01*
|
|
||||||
X267390619Y-77978769D01*
|
|
||||||
X267343000Y-77931150D01*
|
|
||||||
X267295380Y-77835911D01*
|
|
||||||
X268200142Y-77074007D02*
|
|
||||||
X268247761Y-77026388D01*
|
|
||||||
X268295380Y-77074007D01*
|
|
||||||
X268247761Y-77121626D01*
|
|
||||||
X268200142Y-77074007D01*
|
|
||||||
X268295380Y-77074007D01*
|
|
||||||
X267295380Y-76407340D02*
|
|
||||||
X267295380Y-76312102D01*
|
|
||||||
X267343000Y-76216864D01*
|
|
||||||
X267390619Y-76169245D01*
|
|
||||||
X267485857Y-76121626D01*
|
|
||||||
X267676333Y-76074007D01*
|
|
||||||
X267914428Y-76074007D01*
|
|
||||||
X268104904Y-76121626D01*
|
|
||||||
X268200142Y-76169245D01*
|
|
||||||
X268247761Y-76216864D01*
|
|
||||||
X268295380Y-76312102D01*
|
|
||||||
X268295380Y-76407340D01*
|
|
||||||
X268247761Y-76502578D01*
|
|
||||||
X268200142Y-76550197D01*
|
|
||||||
X268104904Y-76597816D01*
|
|
||||||
X267914428Y-76645435D01*
|
|
||||||
X267676333Y-76645435D01*
|
|
||||||
X267485857Y-76597816D01*
|
|
||||||
X267390619Y-76550197D01*
|
|
||||||
X267343000Y-76502578D01*
|
|
||||||
X267295380Y-76407340D01*
|
|
||||||
X267390619Y-75693054D02*
|
|
||||||
X267343000Y-75645435D01*
|
|
||||||
X267295380Y-75550197D01*
|
|
||||||
X267295380Y-75312102D01*
|
|
||||||
X267343000Y-75216864D01*
|
|
||||||
X267390619Y-75169245D01*
|
|
||||||
X267485857Y-75121626D01*
|
|
||||||
X267581095Y-75121626D01*
|
|
||||||
X267723952Y-75169245D01*
|
|
||||||
X268295380Y-75740673D01*
|
|
||||||
X268295380Y-75121626D01*
|
|
||||||
X268295380Y-74169245D02*
|
|
||||||
X268295380Y-74740673D01*
|
|
||||||
X268295380Y-74454959D02*
|
|
||||||
X267295380Y-74454959D01*
|
|
||||||
X267438238Y-74550197D01*
|
|
||||||
X267533476Y-74645435D01*
|
|
||||||
X267581095Y-74740673D01*
|
|
||||||
X268295380Y-73740673D02*
|
|
||||||
X267628714Y-73740673D01*
|
|
||||||
X267295380Y-73740673D02*
|
|
||||||
X267343000Y-73788292D01*
|
|
||||||
X267390619Y-73740673D01*
|
|
||||||
X267343000Y-73693054D01*
|
|
||||||
X267295380Y-73740673D01*
|
|
||||||
X267390619Y-73740673D01*
|
|
||||||
X267628714Y-73264483D02*
|
|
||||||
X268295380Y-73264483D01*
|
|
||||||
X267723952Y-73264483D02*
|
|
||||||
X267676333Y-73216864D01*
|
|
||||||
X267628714Y-73121626D01*
|
|
||||||
X267628714Y-72978769D01*
|
|
||||||
X267676333Y-72883530D01*
|
|
||||||
X267771571Y-72835911D01*
|
|
||||||
X268295380Y-72835911D01*
|
|
||||||
X267247761Y-71645435D02*
|
|
||||||
X268533476Y-72502578D01*
|
|
||||||
X267295380Y-71121626D02*
|
|
||||||
X267295380Y-71026388D01*
|
|
||||||
X267343000Y-70931150D01*
|
|
||||||
X267390619Y-70883530D01*
|
|
||||||
X267485857Y-70835911D01*
|
|
||||||
X267676333Y-70788292D01*
|
|
||||||
X267914428Y-70788292D01*
|
|
||||||
X268104904Y-70835911D01*
|
|
||||||
X268200142Y-70883530D01*
|
|
||||||
X268247761Y-70931150D01*
|
|
||||||
X268295380Y-71026388D01*
|
|
||||||
X268295380Y-71121626D01*
|
|
||||||
X268247761Y-71216864D01*
|
|
||||||
X268200142Y-71264483D01*
|
|
||||||
X268104904Y-71312102D01*
|
|
||||||
X267914428Y-71359721D01*
|
|
||||||
X267676333Y-71359721D01*
|
|
||||||
X267485857Y-71312102D01*
|
|
||||||
X267390619Y-71264483D01*
|
|
||||||
X267343000Y-71216864D01*
|
|
||||||
X267295380Y-71121626D01*
|
|
||||||
X268200142Y-70359721D02*
|
|
||||||
X268247761Y-70312102D01*
|
|
||||||
X268295380Y-70359721D01*
|
|
||||||
X268247761Y-70407340D01*
|
|
||||||
X268200142Y-70359721D01*
|
|
||||||
X268295380Y-70359721D01*
|
|
||||||
X267295380Y-69407340D02*
|
|
||||||
X267295380Y-69883530D01*
|
|
||||||
X267771571Y-69931150D01*
|
|
||||||
X267723952Y-69883530D01*
|
|
||||||
X267676333Y-69788292D01*
|
|
||||||
X267676333Y-69550197D01*
|
|
||||||
X267723952Y-69454959D01*
|
|
||||||
X267771571Y-69407340D01*
|
|
||||||
X267866809Y-69359721D01*
|
|
||||||
X268104904Y-69359721D01*
|
|
||||||
X268200142Y-69407340D01*
|
|
||||||
X268247761Y-69454959D01*
|
|
||||||
X268295380Y-69550197D01*
|
|
||||||
X268295380Y-69788292D01*
|
|
||||||
X268247761Y-69883530D01*
|
|
||||||
X268200142Y-69931150D01*
|
|
||||||
X267295380Y-69026388D02*
|
|
||||||
X267295380Y-68407340D01*
|
|
||||||
X267676333Y-68740673D01*
|
|
||||||
X267676333Y-68597816D01*
|
|
||||||
X267723952Y-68502578D01*
|
|
||||||
X267771571Y-68454959D01*
|
|
||||||
X267866809Y-68407340D01*
|
|
||||||
X268104904Y-68407340D01*
|
|
||||||
X268200142Y-68454959D01*
|
|
||||||
X268247761Y-68502578D01*
|
|
||||||
X268295380Y-68597816D01*
|
|
||||||
X268295380Y-68883530D01*
|
|
||||||
X268247761Y-68978769D01*
|
|
||||||
X268200142Y-69026388D01*
|
|
||||||
X267295380Y-68074007D02*
|
|
||||||
X267295380Y-67454959D01*
|
|
||||||
X267676333Y-67788292D01*
|
|
||||||
X267676333Y-67645435D01*
|
|
||||||
X267723952Y-67550197D01*
|
|
||||||
X267771571Y-67502578D01*
|
|
||||||
X267866809Y-67454959D01*
|
|
||||||
X268104904Y-67454959D01*
|
|
||||||
X268200142Y-67502578D01*
|
|
||||||
X268247761Y-67550197D01*
|
|
||||||
X268295380Y-67645435D01*
|
|
||||||
X268295380Y-67931150D01*
|
|
||||||
X268247761Y-68026388D01*
|
|
||||||
X268200142Y-68074007D01*
|
|
||||||
X268295380Y-67026388D02*
|
|
||||||
X267628714Y-67026388D01*
|
|
||||||
X267723952Y-67026388D02*
|
|
||||||
X267676333Y-66978769D01*
|
|
||||||
X267628714Y-66883530D01*
|
|
||||||
X267628714Y-66740673D01*
|
|
||||||
X267676333Y-66645435D01*
|
|
||||||
X267771571Y-66597816D01*
|
|
||||||
X268295380Y-66597816D01*
|
|
||||||
X267771571Y-66597816D02*
|
|
||||||
X267676333Y-66550197D01*
|
|
||||||
X267628714Y-66454959D01*
|
|
||||||
X267628714Y-66312102D01*
|
|
||||||
X267676333Y-66216864D01*
|
|
||||||
X267771571Y-66169245D01*
|
|
||||||
X268295380Y-66169245D01*
|
|
||||||
X268295380Y-65693054D02*
|
|
||||||
X267628714Y-65693054D01*
|
|
||||||
X267723952Y-65693054D02*
|
|
||||||
X267676333Y-65645435D01*
|
|
||||||
X267628714Y-65550197D01*
|
|
||||||
X267628714Y-65407340D01*
|
|
||||||
X267676333Y-65312102D01*
|
|
||||||
X267771571Y-65264483D01*
|
|
||||||
X268295380Y-65264483D01*
|
|
||||||
X267771571Y-65264483D02*
|
|
||||||
X267676333Y-65216864D01*
|
|
||||||
X267628714Y-65121626D01*
|
|
||||||
X267628714Y-64978769D01*
|
|
||||||
X267676333Y-64883530D01*
|
|
||||||
X267771571Y-64835911D01*
|
|
||||||
X268295380Y-64835911D01*
|
|
||||||
X266660380Y-65339230D02*
|
|
||||||
X266660380Y-65243992D01*
|
|
||||||
X266708000Y-65148754D01*
|
|
||||||
X266755619Y-65101135D01*
|
|
||||||
X266850857Y-65053516D01*
|
|
||||||
X267041333Y-65005897D01*
|
|
||||||
X267279428Y-65005897D01*
|
|
||||||
X267469904Y-65053516D01*
|
|
||||||
X267565142Y-65101135D01*
|
|
||||||
X267612761Y-65148754D01*
|
|
||||||
X267660380Y-65243992D01*
|
|
||||||
X267660380Y-65339230D01*
|
|
||||||
X267612761Y-65434469D01*
|
|
||||||
X267565142Y-65482088D01*
|
|
||||||
X267469904Y-65529707D01*
|
|
||||||
X267279428Y-65577326D01*
|
|
||||||
X267041333Y-65577326D01*
|
|
||||||
X266850857Y-65529707D01*
|
|
||||||
X266755619Y-65482088D01*
|
|
||||||
X266708000Y-65434469D01*
|
|
||||||
X266660380Y-65339230D01*
|
|
||||||
X267565142Y-64577326D02*
|
|
||||||
X267612761Y-64529707D01*
|
|
||||||
X267660380Y-64577326D01*
|
|
||||||
X267612761Y-64624945D01*
|
|
||||||
X267565142Y-64577326D01*
|
|
||||||
X267660380Y-64577326D01*
|
|
||||||
X266660380Y-63910659D02*
|
|
||||||
X266660380Y-63815421D01*
|
|
||||||
X266708000Y-63720183D01*
|
|
||||||
X266755619Y-63672564D01*
|
|
||||||
X266850857Y-63624945D01*
|
|
||||||
X267041333Y-63577326D01*
|
|
||||||
X267279428Y-63577326D01*
|
|
||||||
X267469904Y-63624945D01*
|
|
||||||
X267565142Y-63672564D01*
|
|
||||||
X267612761Y-63720183D01*
|
|
||||||
X267660380Y-63815421D01*
|
|
||||||
X267660380Y-63910659D01*
|
|
||||||
X267612761Y-64005897D01*
|
|
||||||
X267565142Y-64053516D01*
|
|
||||||
X267469904Y-64101135D01*
|
|
||||||
X267279428Y-64148754D01*
|
|
||||||
X267041333Y-64148754D01*
|
|
||||||
X266850857Y-64101135D01*
|
|
||||||
X266755619Y-64053516D01*
|
|
||||||
X266708000Y-64005897D01*
|
|
||||||
X266660380Y-63910659D01*
|
|
||||||
X266660380Y-62672564D02*
|
|
||||||
X266660380Y-63148754D01*
|
|
||||||
X267136571Y-63196373D01*
|
|
||||||
X267088952Y-63148754D01*
|
|
||||||
X267041333Y-63053516D01*
|
|
||||||
X267041333Y-62815421D01*
|
|
||||||
X267088952Y-62720183D01*
|
|
||||||
X267136571Y-62672564D01*
|
|
||||||
X267231809Y-62624945D01*
|
|
||||||
X267469904Y-62624945D01*
|
|
||||||
X267565142Y-62672564D01*
|
|
||||||
X267612761Y-62720183D01*
|
|
||||||
X267660380Y-62815421D01*
|
|
||||||
X267660380Y-63053516D01*
|
|
||||||
X267612761Y-63148754D01*
|
|
||||||
X267565142Y-63196373D01*
|
|
||||||
X267660380Y-62196373D02*
|
|
||||||
X266993714Y-62196373D01*
|
|
||||||
X266660380Y-62196373D02*
|
|
||||||
X266708000Y-62243992D01*
|
|
||||||
X266755619Y-62196373D01*
|
|
||||||
X266708000Y-62148754D01*
|
|
||||||
X266660380Y-62196373D01*
|
|
||||||
X266755619Y-62196373D01*
|
|
||||||
X266993714Y-61720183D02*
|
|
||||||
X267660380Y-61720183D01*
|
|
||||||
X267088952Y-61720183D02*
|
|
||||||
X267041333Y-61672564D01*
|
|
||||||
X266993714Y-61577326D01*
|
|
||||||
X266993714Y-61434469D01*
|
|
||||||
X267041333Y-61339230D01*
|
|
||||||
X267136571Y-61291611D01*
|
|
||||||
X267660380Y-61291611D01*
|
|
||||||
X266612761Y-60101135D02*
|
|
||||||
X267898476Y-60958278D01*
|
|
||||||
X267660380Y-59243992D02*
|
|
||||||
X267660380Y-59815421D01*
|
|
||||||
X267660380Y-59529707D02*
|
|
||||||
X266660380Y-59529707D01*
|
|
||||||
X266803238Y-59624945D01*
|
|
||||||
X266898476Y-59720183D01*
|
|
||||||
X266946095Y-59815421D01*
|
|
||||||
X267565142Y-58815421D02*
|
|
||||||
X267612761Y-58767802D01*
|
|
||||||
X267660380Y-58815421D01*
|
|
||||||
X267612761Y-58863040D01*
|
|
||||||
X267565142Y-58815421D01*
|
|
||||||
X267660380Y-58815421D01*
|
|
||||||
X266755619Y-58386850D02*
|
|
||||||
X266708000Y-58339230D01*
|
|
||||||
X266660380Y-58243992D01*
|
|
||||||
X266660380Y-58005897D01*
|
|
||||||
X266708000Y-57910659D01*
|
|
||||||
X266755619Y-57863040D01*
|
|
||||||
X266850857Y-57815421D01*
|
|
||||||
X266946095Y-57815421D01*
|
|
||||||
X267088952Y-57863040D01*
|
|
||||||
X267660380Y-58434469D01*
|
|
||||||
X267660380Y-57815421D01*
|
|
||||||
X266660380Y-57482088D02*
|
|
||||||
X266660380Y-56815421D01*
|
|
||||||
X267660380Y-57243992D01*
|
|
||||||
X267660380Y-56434469D02*
|
|
||||||
X266993714Y-56434469D01*
|
|
||||||
X267088952Y-56434469D02*
|
|
||||||
X267041333Y-56386850D01*
|
|
||||||
X266993714Y-56291611D01*
|
|
||||||
X266993714Y-56148754D01*
|
|
||||||
X267041333Y-56053516D01*
|
|
||||||
X267136571Y-56005897D01*
|
|
||||||
X267660380Y-56005897D01*
|
|
||||||
X267136571Y-56005897D02*
|
|
||||||
X267041333Y-55958278D01*
|
|
||||||
X266993714Y-55863040D01*
|
|
||||||
X266993714Y-55720183D01*
|
|
||||||
X267041333Y-55624945D01*
|
|
||||||
X267136571Y-55577326D01*
|
|
||||||
X267660380Y-55577326D01*
|
|
||||||
X267660380Y-55101135D02*
|
|
||||||
X266993714Y-55101135D01*
|
|
||||||
X267088952Y-55101135D02*
|
|
||||||
X267041333Y-55053516D01*
|
|
||||||
X266993714Y-54958278D01*
|
|
||||||
X266993714Y-54815421D01*
|
|
||||||
X267041333Y-54720183D01*
|
|
||||||
X267136571Y-54672564D01*
|
|
||||||
X267660380Y-54672564D01*
|
|
||||||
X267136571Y-54672564D02*
|
|
||||||
X267041333Y-54624945D01*
|
|
||||||
X266993714Y-54529707D01*
|
|
||||||
X266993714Y-54386850D01*
|
|
||||||
X267041333Y-54291611D01*
|
|
||||||
X267136571Y-54243992D01*
|
|
||||||
X267660380Y-54243992D01*
|
|
||||||
M02*
|
|
@ -1,14 +0,0 @@
|
|||||||
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,5.1.10*
|
|
||||||
G04 #@! TF.CreationDate,2021-06-10T23:09:58+02:00*
|
|
||||||
G04 #@! TF.ProjectId,PlantCtrlESP32,506c616e-7443-4747-926c-45535033322e,rev?*
|
|
||||||
G04 #@! TF.SameCoordinates,Original*
|
|
||||||
G04 #@! TF.FileFunction,Other,ECO1*
|
|
||||||
%FSLAX46Y46*%
|
|
||||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
|
||||||
G04 Created by KiCad (PCBNEW 5.1.10) date 2021-06-10 23:09:58*
|
|
||||||
%MOMM*%
|
|
||||||
%LPD*%
|
|
||||||
G01*
|
|
||||||
G04 APERTURE LIST*
|
|
||||||
G04 APERTURE END LIST*
|
|
||||||
M02*
|
|
@ -1,14 +0,0 @@
|
|||||||
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,5.1.10*
|
|
||||||
G04 #@! TF.CreationDate,2021-06-10T23:09:58+02:00*
|
|
||||||
G04 #@! TF.ProjectId,PlantCtrlESP32,506c616e-7443-4747-926c-45535033322e,rev?*
|
|
||||||
G04 #@! TF.SameCoordinates,Original*
|
|
||||||
G04 #@! TF.FileFunction,Other,ECO2*
|
|
||||||
%FSLAX46Y46*%
|
|
||||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
|
||||||
G04 Created by KiCad (PCBNEW 5.1.10) date 2021-06-10 23:09:58*
|
|
||||||
%MOMM*%
|
|
||||||
%LPD*%
|
|
||||||
G01*
|
|
||||||
G04 APERTURE LIST*
|
|
||||||
G04 APERTURE END LIST*
|
|
||||||
M02*
|
|
@ -1,28 +0,0 @@
|
|||||||
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,5.1.10*
|
|
||||||
G04 #@! TF.CreationDate,2021-06-10T23:09:58+02:00*
|
|
||||||
G04 #@! TF.ProjectId,PlantCtrlESP32,506c616e-7443-4747-926c-45535033322e,rev?*
|
|
||||||
G04 #@! TF.SameCoordinates,Original*
|
|
||||||
G04 #@! TF.FileFunction,Profile,NP*
|
|
||||||
%FSLAX46Y46*%
|
|
||||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
|
||||||
G04 Created by KiCad (PCBNEW 5.1.10) date 2021-06-10 23:09:58*
|
|
||||||
%MOMM*%
|
|
||||||
%LPD*%
|
|
||||||
G01*
|
|
||||||
G04 APERTURE LIST*
|
|
||||||
G04 #@! TA.AperFunction,Profile*
|
|
||||||
%ADD10C,0.050000*%
|
|
||||||
G04 #@! TD*
|
|
||||||
G04 APERTURE END LIST*
|
|
||||||
D10*
|
|
||||||
X170180000Y-40640000D02*
|
|
||||||
X269240000Y-40640000D01*
|
|
||||||
X170180000Y-43180000D02*
|
|
||||||
X170180000Y-40640000D01*
|
|
||||||
X170180000Y-139700000D02*
|
|
||||||
X170180000Y-43180000D01*
|
|
||||||
X269240000Y-139700000D02*
|
|
||||||
X269240000Y-40640000D01*
|
|
||||||
X170180000Y-139700000D02*
|
|
||||||
X269240000Y-139700000D01*
|
|
||||||
M02*
|
|
@ -1,32 +0,0 @@
|
|||||||
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,5.1.10*
|
|
||||||
G04 #@! TF.CreationDate,2021-06-10T23:09:58+02:00*
|
|
||||||
G04 #@! TF.ProjectId,PlantCtrlESP32,506c616e-7443-4747-926c-45535033322e,rev?*
|
|
||||||
G04 #@! TF.SameCoordinates,Original*
|
|
||||||
G04 #@! TF.FileFunction,Glue,Top*
|
|
||||||
G04 #@! TF.FilePolarity,Positive*
|
|
||||||
%FSLAX46Y46*%
|
|
||||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
|
||||||
G04 Created by KiCad (PCBNEW 5.1.10) date 2021-06-10 23:09:58*
|
|
||||||
%MOMM*%
|
|
||||||
%LPD*%
|
|
||||||
G01*
|
|
||||||
G04 APERTURE LIST*
|
|
||||||
%ADD10C,0.380000*%
|
|
||||||
G04 APERTURE END LIST*
|
|
||||||
D10*
|
|
||||||
X211413132Y-73660000D02*
|
|
||||||
G75*
|
|
||||||
G03*
|
|
||||||
X211413132Y-73660000I-212132J0D01*
|
|
||||||
G01*
|
|
||||||
X211751000Y-73660000D02*
|
|
||||||
G75*
|
|
||||||
G03*
|
|
||||||
X211751000Y-73660000I-550000J0D01*
|
|
||||||
G01*
|
|
||||||
X212101000Y-73660000D02*
|
|
||||||
G75*
|
|
||||||
G03*
|
|
||||||
X212101000Y-73660000I-900000J0D01*
|
|
||||||
G01*
|
|
||||||
M02*
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,14 +0,0 @@
|
|||||||
G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,5.1.10*
|
|
||||||
G04 #@! TF.CreationDate,2021-06-10T23:09:58+02:00*
|
|
||||||
G04 #@! TF.ProjectId,PlantCtrlESP32,506c616e-7443-4747-926c-45535033322e,rev?*
|
|
||||||
G04 #@! TF.SameCoordinates,Original*
|
|
||||||
G04 #@! TF.FileFunction,Other,User*
|
|
||||||
%FSLAX46Y46*%
|
|
||||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
|
||||||
G04 Created by KiCad (PCBNEW 5.1.10) date 2021-06-10 23:09:58*
|
|
||||||
%MOMM*%
|
|
||||||
%LPD*%
|
|
||||||
G01*
|
|
||||||
G04 APERTURE LIST*
|
|
||||||
G04 APERTURE END LIST*
|
|
||||||
M02*
|
|
@ -1,20 +0,0 @@
|
|||||||
M48
|
|
||||||
; DRILL file {KiCad 5.1.10} date Thu Jun 10 23:11:37 2021
|
|
||||||
; FORMAT={-:-/ absolute / inch / decimal}
|
|
||||||
; #@! TF.CreationDate,2021-06-10T23:11:37+02:00
|
|
||||||
; #@! TF.GenerationSoftware,Kicad,Pcbnew,5.1.10
|
|
||||||
; #@! TF.FileFunction,NonPlated,1,2,NPTH
|
|
||||||
FMAT,2
|
|
||||||
INCH
|
|
||||||
T1C0.0941
|
|
||||||
T2C0.1358
|
|
||||||
%
|
|
||||||
G90
|
|
||||||
G05
|
|
||||||
T1
|
|
||||||
X9.8951Y-2.461
|
|
||||||
T2
|
|
||||||
X7.394Y-2.461
|
|
||||||
X9.5672Y-1.831
|
|
||||||
T0
|
|
||||||
M30
|
|
@ -1,304 +0,0 @@
|
|||||||
M48
|
|
||||||
; DRILL file {KiCad 5.1.10} date Thu Jun 10 23:11:37 2021
|
|
||||||
; FORMAT={-:-/ absolute / inch / decimal}
|
|
||||||
; #@! TF.CreationDate,2021-06-10T23:11:37+02:00
|
|
||||||
; #@! TF.GenerationSoftware,Kicad,Pcbnew,5.1.10
|
|
||||||
; #@! TF.FileFunction,Plated,1,2,PTH
|
|
||||||
FMAT,2
|
|
||||||
INCH
|
|
||||||
T1C0.0157
|
|
||||||
T2C0.0295
|
|
||||||
T3C0.0315
|
|
||||||
T4C0.0374
|
|
||||||
T5C0.0394
|
|
||||||
T6C0.0591
|
|
||||||
T7C0.0591
|
|
||||||
T8C0.0787
|
|
||||||
T9C0.1181
|
|
||||||
%
|
|
||||||
G90
|
|
||||||
G05
|
|
||||||
T1
|
|
||||||
X6.7418Y-4.8632
|
|
||||||
X6.755Y-4.285
|
|
||||||
X6.8055Y-4.415
|
|
||||||
X6.825Y-3.525
|
|
||||||
X6.845Y-3.93
|
|
||||||
X6.8754Y-4.7304
|
|
||||||
X6.8757Y-4.3343
|
|
||||||
X6.905Y-4.58
|
|
||||||
X6.96Y-4.585
|
|
||||||
X6.98Y-3.19
|
|
||||||
X6.985Y-3.91
|
|
||||||
X7.005Y-4.37
|
|
||||||
X7.025Y-2.385
|
|
||||||
X7.025Y-4.75
|
|
||||||
X7.04Y-4.6
|
|
||||||
X7.045Y-5.035
|
|
||||||
X7.05Y-3.48
|
|
||||||
X7.055Y-4.38
|
|
||||||
X7.055Y-4.89
|
|
||||||
X7.08Y-2.99
|
|
||||||
X7.11Y-5.025
|
|
||||||
X7.13Y-2.45
|
|
||||||
X7.13Y-4.96
|
|
||||||
X7.14Y-4.77
|
|
||||||
X7.15Y-2.92
|
|
||||||
X7.1528Y-5.1602
|
|
||||||
X7.17Y-5.43
|
|
||||||
X7.21Y-4.3
|
|
||||||
X7.22Y-4.77
|
|
||||||
X7.225Y-4.35
|
|
||||||
X7.225Y-4.35
|
|
||||||
X7.2274Y-4.2647
|
|
||||||
X7.23Y-3.06
|
|
||||||
X7.25Y-5.16
|
|
||||||
X7.255Y-4.41
|
|
||||||
X7.2866Y-5.2154
|
|
||||||
X7.29Y-3.41
|
|
||||||
X7.3Y-4.41
|
|
||||||
X7.315Y-2.385
|
|
||||||
X7.32Y-4.77
|
|
||||||
X7.3282Y-3.95
|
|
||||||
X7.34Y-4.075
|
|
||||||
X7.35Y-3.73
|
|
||||||
X7.3621Y-4.3489
|
|
||||||
X7.37Y-3.67
|
|
||||||
X7.37Y-4.12
|
|
||||||
X7.42Y-4.77
|
|
||||||
X7.4275Y-5.0525
|
|
||||||
X7.43Y-4.92
|
|
||||||
X7.43Y-4.96
|
|
||||||
X7.45Y-3.15
|
|
||||||
X7.5Y-3.78
|
|
||||||
X7.52Y-4.77
|
|
||||||
X7.5434Y-4.5416
|
|
||||||
X7.55Y-4.35
|
|
||||||
X7.58Y-4.58
|
|
||||||
X7.59Y-4.15
|
|
||||||
X7.59Y-5.29
|
|
||||||
X7.5965Y-4.9528
|
|
||||||
X7.62Y-4.77
|
|
||||||
X7.64Y-4.18
|
|
||||||
X7.66Y-2.095
|
|
||||||
X7.665Y-1.99
|
|
||||||
X7.69Y-5.41
|
|
||||||
X7.7Y-2.36
|
|
||||||
X7.72Y-4.77
|
|
||||||
X7.78Y-2.525
|
|
||||||
X7.78Y-5.37
|
|
||||||
X7.825Y-3.25
|
|
||||||
X7.875Y-3.45
|
|
||||||
X7.975Y-3.45
|
|
||||||
X7.975Y-4.45
|
|
||||||
X8.025Y-1.97
|
|
||||||
X8.0625Y-2.8075
|
|
||||||
X8.07Y-2.09
|
|
||||||
X8.072Y-4.652
|
|
||||||
X8.09Y-5.2
|
|
||||||
X8.125Y-3.4
|
|
||||||
X8.145Y-2.32
|
|
||||||
X8.15Y-5.09
|
|
||||||
X8.18Y-4.44
|
|
||||||
X8.22Y-3.92
|
|
||||||
X8.24Y-4.72
|
|
||||||
X8.2779Y-3.7421
|
|
||||||
X8.2779Y-3.9179
|
|
||||||
X8.2779Y-4.1879
|
|
||||||
X8.29Y-5.44
|
|
||||||
X8.3Y-5.26
|
|
||||||
X8.31Y-3.275
|
|
||||||
X8.31Y-3.645
|
|
||||||
X8.3299Y-3.8453
|
|
||||||
X8.33Y-4.58
|
|
||||||
X8.35Y-4.645
|
|
||||||
X8.375Y-3.66
|
|
||||||
X8.38Y-5.37
|
|
||||||
X8.4Y-1.72
|
|
||||||
X8.43Y-4.7
|
|
||||||
X8.48Y-4.595
|
|
||||||
X8.49Y-1.815
|
|
||||||
X8.54Y-3.85
|
|
||||||
X8.57Y-1.78
|
|
||||||
X8.615Y-4.375
|
|
||||||
X8.637Y-4.8689
|
|
||||||
X8.6726Y-3.6326
|
|
||||||
X8.695Y-4.59
|
|
||||||
X8.695Y-4.7
|
|
||||||
X8.8Y-3.15
|
|
||||||
X8.83Y-3.85
|
|
||||||
X8.841Y-1.761
|
|
||||||
X8.847Y-1.646
|
|
||||||
X8.915Y-4.38
|
|
||||||
X8.9526Y-3.6326
|
|
||||||
X8.955Y-4.705
|
|
||||||
X8.9559Y-4.861
|
|
||||||
X8.96Y-4.58
|
|
||||||
X9.06Y-2.97
|
|
||||||
X9.11Y-2.1
|
|
||||||
X9.11Y-2.34
|
|
||||||
X9.13Y-3.85
|
|
||||||
X9.2Y-3.34
|
|
||||||
X9.22Y-4.37
|
|
||||||
X9.2526Y-3.6326
|
|
||||||
X9.2551Y-4.8335
|
|
||||||
X9.27Y-4.585
|
|
||||||
X9.27Y-4.705
|
|
||||||
X9.28Y-3.21
|
|
||||||
X9.319Y-1.656
|
|
||||||
X9.32Y-3.46
|
|
||||||
X9.325Y-1.764
|
|
||||||
X9.35Y-2.48
|
|
||||||
X9.44Y-3.85
|
|
||||||
X9.45Y-3.21
|
|
||||||
X9.47Y-2.59
|
|
||||||
X9.515Y-3.375
|
|
||||||
X9.52Y-4.38
|
|
||||||
X9.525Y-3.46
|
|
||||||
X9.525Y-4.585
|
|
||||||
X9.53Y-4.7
|
|
||||||
X9.5374Y-3.6326
|
|
||||||
X9.5588Y-3.2462
|
|
||||||
X9.58Y-4.85
|
|
||||||
X9.59Y-4.955
|
|
||||||
X9.715Y-2.025
|
|
||||||
X9.74Y-3.85
|
|
||||||
X9.75Y-4.7
|
|
||||||
X9.79Y-3.465
|
|
||||||
X9.84Y-4.385
|
|
||||||
X9.84Y-4.85
|
|
||||||
X9.845Y-1.835
|
|
||||||
X9.851Y-1.657
|
|
||||||
X9.854Y-1.744
|
|
||||||
X9.8774Y-3.6326
|
|
||||||
X9.885Y-4.955
|
|
||||||
X9.925Y-4.58
|
|
||||||
X10.03Y-3.27
|
|
||||||
X10.03Y-3.41
|
|
||||||
X10.05Y-3.85
|
|
||||||
X10.12Y-4.375
|
|
||||||
X10.125Y-4.22
|
|
||||||
X10.14Y-4.01
|
|
||||||
X10.17Y-4.85
|
|
||||||
X10.185Y-4.525
|
|
||||||
X10.185Y-4.955
|
|
||||||
X10.21Y-3.265
|
|
||||||
X10.315Y-4.715
|
|
||||||
X10.328Y-2.639
|
|
||||||
X10.3328Y-2.1392
|
|
||||||
X10.3378Y-3.8453
|
|
||||||
X10.34Y-3.41
|
|
||||||
X10.345Y-4.275
|
|
||||||
X10.355Y-3.585
|
|
||||||
X10.36Y-4.485
|
|
||||||
X10.365Y-2.6
|
|
||||||
X10.375Y-3.29
|
|
||||||
X10.4Y-3.945
|
|
||||||
X10.4028Y-3.85
|
|
||||||
X10.42Y-3.405
|
|
||||||
X10.475Y-3.63
|
|
||||||
X10.48Y-3.015
|
|
||||||
X10.505Y-4.41
|
|
||||||
X10.5051Y-3.5849
|
|
||||||
X10.51Y-3.195
|
|
||||||
X10.57Y-3.559
|
|
||||||
X10.572Y-2.412
|
|
||||||
T2
|
|
||||||
X8.47Y-1.645
|
|
||||||
X8.52Y-1.645
|
|
||||||
X8.57Y-1.645
|
|
||||||
T3
|
|
||||||
X8.655Y-3.03
|
|
||||||
X10.145Y-3.47
|
|
||||||
X10.1474Y-3.6326
|
|
||||||
T4
|
|
||||||
X6.861Y-2.737
|
|
||||||
X6.861Y-2.8354
|
|
||||||
X6.861Y-2.9339
|
|
||||||
X7.5247Y-5.07
|
|
||||||
X7.6231Y-5.07
|
|
||||||
X7.7216Y-5.07
|
|
||||||
X7.82Y-5.07
|
|
||||||
X8.45Y-4.9031
|
|
||||||
X8.45Y-5.0016
|
|
||||||
X8.45Y-5.1
|
|
||||||
X8.75Y-4.9031
|
|
||||||
X8.75Y-5.0016
|
|
||||||
X8.75Y-5.1
|
|
||||||
X9.05Y-4.9031
|
|
||||||
X9.05Y-5.0016
|
|
||||||
X9.05Y-5.1
|
|
||||||
X9.35Y-4.9031
|
|
||||||
X9.35Y-5.0016
|
|
||||||
X9.35Y-5.1
|
|
||||||
X9.65Y-4.9031
|
|
||||||
X9.65Y-5.0016
|
|
||||||
X9.65Y-5.1
|
|
||||||
X9.95Y-4.9031
|
|
||||||
X9.95Y-5.0016
|
|
||||||
X9.95Y-5.1
|
|
||||||
X10.25Y-4.9031
|
|
||||||
X10.25Y-5.0016
|
|
||||||
X10.25Y-5.1
|
|
||||||
T5
|
|
||||||
X6.95Y-3.4
|
|
||||||
X7.1381Y-2.805
|
|
||||||
X7.1469Y-3.4
|
|
||||||
X7.335Y-2.805
|
|
||||||
X7.5781Y-2.795
|
|
||||||
X7.775Y-2.795
|
|
||||||
X7.825Y-3.775
|
|
||||||
X7.825Y-3.875
|
|
||||||
X7.9Y-4.55
|
|
||||||
X7.925Y-3.775
|
|
||||||
X7.925Y-3.875
|
|
||||||
X8.0Y-4.55
|
|
||||||
X8.025Y-3.775
|
|
||||||
X8.025Y-3.875
|
|
||||||
X8.1Y-4.55
|
|
||||||
X8.125Y-3.775
|
|
||||||
X8.125Y-3.875
|
|
||||||
X8.39Y-3.4
|
|
||||||
X8.45Y-4.3516
|
|
||||||
X8.45Y-4.45
|
|
||||||
X8.5869Y-3.4
|
|
||||||
X8.707Y-2.665
|
|
||||||
X8.75Y-4.3516
|
|
||||||
X8.75Y-4.45
|
|
||||||
X8.807Y-2.665
|
|
||||||
X8.85Y-3.4
|
|
||||||
X8.902Y-2.412
|
|
||||||
X8.907Y-2.665
|
|
||||||
X9.0004Y-2.412
|
|
||||||
X9.007Y-2.665
|
|
||||||
X9.0469Y-3.4
|
|
||||||
X9.05Y-4.3516
|
|
||||||
X9.05Y-4.45
|
|
||||||
X9.35Y-4.3516
|
|
||||||
X9.35Y-4.45
|
|
||||||
X9.65Y-4.3516
|
|
||||||
X9.65Y-4.45
|
|
||||||
X9.95Y-4.3516
|
|
||||||
X9.95Y-4.45
|
|
||||||
X10.225Y-2.815
|
|
||||||
X10.225Y-2.915
|
|
||||||
X10.225Y-3.015
|
|
||||||
X10.225Y-3.115
|
|
||||||
X10.25Y-4.3516
|
|
||||||
X10.25Y-4.45
|
|
||||||
T6
|
|
||||||
X9.1502Y-2.8
|
|
||||||
X10.04Y-2.8
|
|
||||||
T7
|
|
||||||
X9.448Y-2.107
|
|
||||||
X9.448Y-2.307
|
|
||||||
T8
|
|
||||||
X6.9321Y-2.146
|
|
||||||
X10.029Y-2.146
|
|
||||||
T9
|
|
||||||
X6.85Y-1.75
|
|
||||||
X6.85Y-5.34
|
|
||||||
X10.45Y-1.75
|
|
||||||
X10.45Y-5.34
|
|
||||||
T0
|
|
||||||
M30
|
|
Binary file not shown.
158
board/kicad-stuff/BQ34Z100PWR-G1.kicad_sym
Normal file
158
board/kicad-stuff/BQ34Z100PWR-G1.kicad_sym
Normal file
@ -0,0 +1,158 @@
|
|||||||
|
|
||||||
|
(kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor)
|
||||||
|
(symbol "BQ34Z100PWR-G1" (pin_names (offset 1.016)) (in_bom yes) (on_board yes)
|
||||||
|
(property "Reference" "U" (id 0) (at -12.7 26.4 0.0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify bottom left))
|
||||||
|
)
|
||||||
|
(property "Value" "BQ34Z100PWR-G1" (id 1) (at -12.7 -29.4 0.0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify bottom left))
|
||||||
|
)
|
||||||
|
(property "Footprint" "BQ34Z100PWR-G1:SOP65P640X120-14N" (id 2) (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify bottom) hide)
|
||||||
|
)
|
||||||
|
(property "MF" "Texas Instruments" (id 4) (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify bottom) hide)
|
||||||
|
)
|
||||||
|
(property "Description" "\nMulti-chemistry Impedance Track™ standalone fuel gauge | battery gas gauge\n" (id 5) (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify bottom) hide)
|
||||||
|
)
|
||||||
|
(property "Package" "TSSOP-14 Texas Instruments" (id 6) (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify bottom) hide)
|
||||||
|
)
|
||||||
|
(property "Price" "None" (id 7) (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify bottom) hide)
|
||||||
|
)
|
||||||
|
(property "SnapEDA_Link" "https://www.snapeda.com/parts/BQ34Z100PWR-G1/Texas+Instruments/view-part/?ref=snap" (id 8) (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify bottom) hide)
|
||||||
|
)
|
||||||
|
(property "MP" "BQ34Z100PWR-G1" (id 9) (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify bottom) hide)
|
||||||
|
)
|
||||||
|
(property "Purchase-URL" "https://www.snapeda.com/api/url_track_click_mouser/?unipart_id=327977&manufacturer=Texas Instruments&part_name=BQ34Z100PWR-G1&search_term=None" (id 10) (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify bottom) hide)
|
||||||
|
)
|
||||||
|
(property "Availability" "In Stock" (id 11) (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify bottom) hide)
|
||||||
|
)
|
||||||
|
(property "Check_prices" "https://www.snapeda.com/parts/BQ34Z100PWR-G1/Texas+Instruments/view-part/?ref=eda" (id 12) (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify bottom) hide)
|
||||||
|
)
|
||||||
|
(symbol "BQ34Z100PWR-G1_0_0"
|
||||||
|
(rectangle (start -12.7 -25.4) (end 12.7 25.4)
|
||||||
|
(stroke (width 0.41)) (fill (type background))
|
||||||
|
)
|
||||||
|
(pin input line (at -17.78 22.86 0) (length 5.08)
|
||||||
|
(name "REGIN"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "6"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -17.78 17.78 0) (length 5.08)
|
||||||
|
(name "BAT"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "4"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -17.78 12.7 0) (length 5.08)
|
||||||
|
(name "CE"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "5"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -17.78 7.62 0) (length 5.08)
|
||||||
|
(name "P1"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "3"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -17.78 5.08 0) (length 5.08)
|
||||||
|
(name "P2"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "1"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -17.78 2.54 0) (length 5.08)
|
||||||
|
(name "P3/SDA"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "14"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -17.78 -2.54 0) (length 5.08)
|
||||||
|
(name "REG25"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "7"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -17.78 -7.62 0) (length 5.08)
|
||||||
|
(name "SRN"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "10"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -17.78 -12.7 0) (length 5.08)
|
||||||
|
(name "SRP"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "9"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -17.78 -17.78 0) (length 5.08)
|
||||||
|
(name "VEN"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "2"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 17.78 5.08 180.0) (length 5.08)
|
||||||
|
(name "P4/SCL"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "13"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 17.78 2.54 180.0) (length 5.08)
|
||||||
|
(name "P5/HDQ"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "12"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 17.78 1.77636e-15 180.0) (length 5.08)
|
||||||
|
(name "P6/TS"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "11"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin power_in line (at 17.78 -20.32 180.0) (length 5.08)
|
||||||
|
(name "VSS"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "8"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
7027
board/kicad-stuff/BQ34Z100PWR-G1.step
Normal file
7027
board/kicad-stuff/BQ34Z100PWR-G1.step
Normal file
File diff suppressed because it is too large
Load Diff
186
board/kicad-stuff/DW01.kicad_sym
Normal file
186
board/kicad-stuff/DW01.kicad_sym
Normal file
@ -0,0 +1,186 @@
|
|||||||
|
(kicad_symbol_lib (version 20220914) (generator kicad_symbol_editor)
|
||||||
|
(symbol "CN61CN33" (in_bom yes) (on_board yes)
|
||||||
|
(property "Reference" "U" (at 2.54 12.7 0)
|
||||||
|
(effects (font (size 1.27 1.27)))
|
||||||
|
)
|
||||||
|
(property "Value" "CN61CN33" (at 5.08 10.16 0)
|
||||||
|
(effects (font (size 1.27 1.27)))
|
||||||
|
)
|
||||||
|
(property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 7.62 2.54 0)
|
||||||
|
(effects (font (size 1.27 1.27)) hide)
|
||||||
|
)
|
||||||
|
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm809.pdf" (at 7.62 2.54 0)
|
||||||
|
(effects (font (size 1.27 1.27)) hide)
|
||||||
|
)
|
||||||
|
(property "ki_keywords" "reset supervisor" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) hide)
|
||||||
|
)
|
||||||
|
(property "ki_description" "Microprocessor Reset (active-low) Circuit, SOT-23" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) hide)
|
||||||
|
)
|
||||||
|
(property "ki_fp_filters" "SOT?23*" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) hide)
|
||||||
|
)
|
||||||
|
(symbol "CN61CN33_0_1"
|
||||||
|
(rectangle (start 5.08 7.62) (end -5.08 -7.62)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type background))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(symbol "CN61CN33_1_1"
|
||||||
|
(pin output line (at 0 -10.16 90) (length 2.54)
|
||||||
|
(name "RESET" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "1" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin power_in line (at 7.62 0 180) (length 2.54)
|
||||||
|
(name "GND" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "2" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin power_in line (at 0 10.16 270) (length 2.54)
|
||||||
|
(name "VCC" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "3" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(symbol "DS2438" (pin_names (offset 1.016)) (in_bom yes) (on_board yes)
|
||||||
|
(property "Reference" "U" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)))
|
||||||
|
)
|
||||||
|
(property "Value" "DS2438" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)))
|
||||||
|
)
|
||||||
|
(property "Footprint" "" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) hide)
|
||||||
|
)
|
||||||
|
(property "Datasheet" "" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) hide)
|
||||||
|
)
|
||||||
|
(symbol "DS2438_0_1"
|
||||||
|
(rectangle (start -11.43 -2.54) (end 12.7 -30.48)
|
||||||
|
(stroke (width 0) (type solid))
|
||||||
|
(fill (type background))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(symbol "DS2438_1_1"
|
||||||
|
(pin power_in line (at -13.97 -6.35 0) (length 2.54)
|
||||||
|
(name "GND" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "1" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin unspecified line (at -13.97 -12.7 0) (length 2.54)
|
||||||
|
(name "Vsens+" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "2" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin unspecified line (at -13.97 -19.05 0) (length 2.54)
|
||||||
|
(name "Vsense-" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "3" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin input line (at -13.97 -25.4 0) (length 2.54)
|
||||||
|
(name "Vad" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "4" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin power_in line (at 15.24 -25.4 180) (length 2.54)
|
||||||
|
(name "Vdd" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "5" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin unspecified line (at 15.24 -19.05 180) (length 2.54)
|
||||||
|
(name "NC" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "6" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin unspecified line (at 15.24 -12.7 180) (length 2.54)
|
||||||
|
(name "NC" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "7" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 15.24 -6.35 180) (length 2.54)
|
||||||
|
(name "DQ" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "8" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(symbol "DW01" (pin_names (offset 1.016)) (in_bom yes) (on_board yes)
|
||||||
|
(property "Reference" "IC" (at 21.59 7.62 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||||
|
)
|
||||||
|
(property "Value" "DW01" (at 21.59 5.08 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||||
|
)
|
||||||
|
(property "Footprint" "SOT95P280X135-6N" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom) hide)
|
||||||
|
)
|
||||||
|
(property "Datasheet" "" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom) hide)
|
||||||
|
)
|
||||||
|
(property "HEIGHT" "1.35mm" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom) hide)
|
||||||
|
)
|
||||||
|
(property "DESCRIPTION" "ic" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom) hide)
|
||||||
|
)
|
||||||
|
(property "MANUFACTURER_PART_NUMBER" "DW01" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom) hide)
|
||||||
|
)
|
||||||
|
(property "MANUFACTURER_NAME" "Slkor" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom) hide)
|
||||||
|
)
|
||||||
|
(property "ki_locked" "" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)))
|
||||||
|
)
|
||||||
|
(symbol "DW01_0_0"
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 5.08 2.54)
|
||||||
|
(xy 5.08 -7.62)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 5.08 2.54)
|
||||||
|
(xy 20.32 2.54)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 20.32 -7.62)
|
||||||
|
(xy 5.08 -7.62)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 20.32 -7.62)
|
||||||
|
(xy 20.32 2.54)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 0 0 0) (length 5.08)
|
||||||
|
(name "OD" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "1" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 0 -2.54 0) (length 5.08)
|
||||||
|
(name "CSI" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "2" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 0 -5.08 0) (length 5.08)
|
||||||
|
(name "OC" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "3" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 25.4 -5.08 180) (length 5.08)
|
||||||
|
(name "TD" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "4" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 25.4 -2.54 180) (length 5.08)
|
||||||
|
(name "VDD" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "5" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 25.4 0 180) (length 5.08)
|
||||||
|
(name "VSS" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "6" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
454
board/kicad-stuff/ESP32/ESP32-DEVKITC-32D.kicad_sym
Normal file
454
board/kicad-stuff/ESP32/ESP32-DEVKITC-32D.kicad_sym
Normal file
@ -0,0 +1,454 @@
|
|||||||
|
(kicad_symbol_lib (version 20220914) (generator kicad_symbol_editor)
|
||||||
|
(symbol "ESP32-DEVKITC-32D" (pin_names (offset 1.016)) (in_bom yes) (on_board yes)
|
||||||
|
(property "Reference" "U" (at -15.2654 26.0604 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||||
|
)
|
||||||
|
(property "Value" "ESP32-DEVKITC-32D" (at -15.2654 -27.9654 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||||
|
)
|
||||||
|
(property "Footprint" "MODULE_ESP32-DEVKITC-32D" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom) hide)
|
||||||
|
)
|
||||||
|
(property "Datasheet" "4" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom) hide)
|
||||||
|
)
|
||||||
|
(property "Field4" "Espressif Systems" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom) hide)
|
||||||
|
)
|
||||||
|
(property "ki_locked" "" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)))
|
||||||
|
)
|
||||||
|
(symbol "ESP32-DEVKITC-32D_0_0"
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -15.24 -25.4)
|
||||||
|
(xy -15.24 25.4)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -15.24 25.4)
|
||||||
|
(xy 15.24 25.4)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 15.24 -25.4)
|
||||||
|
(xy -15.24 -25.4)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 15.24 25.4)
|
||||||
|
(xy 15.24 -25.4)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(pin power_in line (at -20.32 22.86 0) (length 5.08)
|
||||||
|
(name "3V3" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "1" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -20.32 0 0) (length 5.08)
|
||||||
|
(name "IO26" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "10" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -20.32 -2.54 0) (length 5.08)
|
||||||
|
(name "IO27" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "11" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -20.32 -5.08 0) (length 5.08)
|
||||||
|
(name "IO14" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "12" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -20.32 -7.62 0) (length 5.08)
|
||||||
|
(name "IO12" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "13" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin power_in line (at -20.32 -10.16 0) (length 5.08)
|
||||||
|
(name "GND1" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "14" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -20.32 -12.7 0) (length 5.08)
|
||||||
|
(name "IO13" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "15" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -20.32 -15.24 0) (length 5.08)
|
||||||
|
(name "SD2" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "16" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -20.32 -17.78 0) (length 5.08)
|
||||||
|
(name "SD3" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "17" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -20.32 -20.32 0) (length 5.08)
|
||||||
|
(name "CMD" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "18" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin power_in line (at -20.32 -22.86 0) (length 5.08)
|
||||||
|
(name "EXT_5V" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "19" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin input line (at -20.32 20.32 0) (length 5.08)
|
||||||
|
(name "EN" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "2" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin power_in line (at 20.32 22.86 180) (length 5.08)
|
||||||
|
(name "GND3" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "20" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 20.32 20.32 180) (length 5.08)
|
||||||
|
(name "IO23" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "21" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 20.32 17.78 180) (length 5.08)
|
||||||
|
(name "IO22" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "22" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin output line (at 20.32 15.24 180) (length 5.08)
|
||||||
|
(name "TXD0" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "23" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin input line (at 20.32 12.7 180) (length 5.08)
|
||||||
|
(name "RXD0" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "24" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 20.32 10.16 180) (length 5.08)
|
||||||
|
(name "IO21" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "25" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin power_in line (at 20.32 7.62 180) (length 5.08)
|
||||||
|
(name "GND2" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "26" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 20.32 5.08 180) (length 5.08)
|
||||||
|
(name "IO19" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "27" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 20.32 2.54 180) (length 5.08)
|
||||||
|
(name "IO18" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "28" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 20.32 0 180) (length 5.08)
|
||||||
|
(name "IO5" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "29" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin input line (at -20.32 17.78 0) (length 5.08)
|
||||||
|
(name "SENSOR_VP" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "3" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 20.32 -2.54 180) (length 5.08)
|
||||||
|
(name "IO17" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "30" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 20.32 -5.08 180) (length 5.08)
|
||||||
|
(name "IO16" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "31" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 20.32 -7.62 180) (length 5.08)
|
||||||
|
(name "IO4" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "32" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 20.32 -10.16 180) (length 5.08)
|
||||||
|
(name "IO0" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "33" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 20.32 -12.7 180) (length 5.08)
|
||||||
|
(name "IO2" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "34" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 20.32 -15.24 180) (length 5.08)
|
||||||
|
(name "IO15" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "35" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 20.32 -17.78 180) (length 5.08)
|
||||||
|
(name "SD1" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "36" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 20.32 -20.32 180) (length 5.08)
|
||||||
|
(name "SD0" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "37" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin input clock (at 20.32 -22.86 180) (length 5.08)
|
||||||
|
(name "CLK" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "38" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin input line (at -20.32 15.24 0) (length 5.08)
|
||||||
|
(name "SENSOR_VN" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "4" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -20.32 12.7 0) (length 5.08)
|
||||||
|
(name "IO34" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "5" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -20.32 10.16 0) (length 5.08)
|
||||||
|
(name "IO35" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "6" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -20.32 7.62 0) (length 5.08)
|
||||||
|
(name "IO32" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "7" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -20.32 5.08 0) (length 5.08)
|
||||||
|
(name "IO33" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "8" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -20.32 2.54 0) (length 5.08)
|
||||||
|
(name "IO25" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "9" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(symbol "SL2300" (pin_names (offset 1.016)) (in_bom yes) (on_board yes)
|
||||||
|
(property "Reference" "Q" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)))
|
||||||
|
)
|
||||||
|
(property "Value" "SL2300" (at 7.62 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)))
|
||||||
|
)
|
||||||
|
(property "Footprint" "" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) hide)
|
||||||
|
)
|
||||||
|
(property "Datasheet" "" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) hide)
|
||||||
|
)
|
||||||
|
(symbol "SL2300_1_1"
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -1.016 0)
|
||||||
|
(xy -3.81 0)
|
||||||
|
)
|
||||||
|
(stroke (width 0) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -1.016 1.905)
|
||||||
|
(xy -1.016 -1.905)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -0.508 -1.27)
|
||||||
|
(xy -0.508 -2.286)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -0.508 0.508)
|
||||||
|
(xy -0.508 -0.508)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -0.508 2.286)
|
||||||
|
(xy -0.508 1.27)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 1.27 2.54)
|
||||||
|
(xy 1.27 1.778)
|
||||||
|
)
|
||||||
|
(stroke (width 0) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 1.27 -2.54)
|
||||||
|
(xy 1.27 0)
|
||||||
|
(xy -0.508 0)
|
||||||
|
)
|
||||||
|
(stroke (width 0) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -0.508 -1.778)
|
||||||
|
(xy 2.032 -1.778)
|
||||||
|
(xy 2.032 1.778)
|
||||||
|
(xy -0.508 1.778)
|
||||||
|
)
|
||||||
|
(stroke (width 0) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -0.254 0)
|
||||||
|
(xy 0.762 0.381)
|
||||||
|
(xy 0.762 -0.381)
|
||||||
|
(xy -0.254 0)
|
||||||
|
)
|
||||||
|
(stroke (width 0) (type solid))
|
||||||
|
(fill (type outline))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 1.524 0.508)
|
||||||
|
(xy 1.651 0.381)
|
||||||
|
(xy 2.413 0.381)
|
||||||
|
(xy 2.54 0.254)
|
||||||
|
)
|
||||||
|
(stroke (width 0) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 2.032 0.381)
|
||||||
|
(xy 1.651 -0.254)
|
||||||
|
(xy 2.413 -0.254)
|
||||||
|
(xy 2.032 0.381)
|
||||||
|
)
|
||||||
|
(stroke (width 0) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(circle (center 0.381 0) (radius 2.794)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(circle (center 1.27 -1.778) (radius 0.254)
|
||||||
|
(stroke (width 0) (type solid))
|
||||||
|
(fill (type outline))
|
||||||
|
)
|
||||||
|
(circle (center 1.27 1.778) (radius 0.254)
|
||||||
|
(stroke (width 0) (type solid))
|
||||||
|
(fill (type outline))
|
||||||
|
)
|
||||||
|
(pin input line (at -6.35 0 0) (length 2.54)
|
||||||
|
(name "G" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "1" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin passive line (at 1.27 -5.08 90) (length 2.54)
|
||||||
|
(name "S" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "2" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin passive line (at 1.27 5.08 270) (length 2.54)
|
||||||
|
(name "D" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "3" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(symbol "SR04M-2" (pin_names (offset 1.016)) (in_bom yes) (on_board yes)
|
||||||
|
(property "Reference" "H" (at 6.35 27.94 0)
|
||||||
|
(effects (font (size 1.27 1.27)))
|
||||||
|
)
|
||||||
|
(property "Value" "SR04M-2" (at 7.62 -21.59 0)
|
||||||
|
(effects (font (size 1.27 1.27)))
|
||||||
|
)
|
||||||
|
(property "Footprint" "" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) hide)
|
||||||
|
)
|
||||||
|
(property "Datasheet" "" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) hide)
|
||||||
|
)
|
||||||
|
(symbol "SR04M-2_0_1"
|
||||||
|
(rectangle (start -22.86 26.67) (end 41.91 -20.32)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(symbol "SR04M-2-HeaderConn_01x04_Female" (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes)
|
||||||
|
(property "Reference" "J" (at 0 5.08 0)
|
||||||
|
(effects (font (size 1.27 1.27)))
|
||||||
|
)
|
||||||
|
(property "Value" "SR04M-2-HeaderConn_01x04_Female" (at 0 -7.62 0)
|
||||||
|
(effects (font (size 1.27 1.27)))
|
||||||
|
)
|
||||||
|
(property "Footprint" "ESP32:SR04M-2PinHeader_1x04_P2.54mm_Vertical" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) hide)
|
||||||
|
)
|
||||||
|
(property "Datasheet" "~" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) hide)
|
||||||
|
)
|
||||||
|
(property "ki_keywords" "connector" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) hide)
|
||||||
|
)
|
||||||
|
(property "ki_description" "Generic connector, single row, 01x04, script generated (kicad-library-utils/schlib/autogen/connector/)" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) hide)
|
||||||
|
)
|
||||||
|
(property "ki_fp_filters" "Connector*:*_1x??_*" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) hide)
|
||||||
|
)
|
||||||
|
(symbol "SR04M-2-HeaderConn_01x04_Female_1_1"
|
||||||
|
(arc (start 0 -4.572) (mid -0.5058 -5.08) (end 0 -5.588)
|
||||||
|
(stroke (width 0.1524) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(arc (start 0 -2.032) (mid -0.5058 -2.54) (end 0 -3.048)
|
||||||
|
(stroke (width 0.1524) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -1.27 -5.08)
|
||||||
|
(xy -0.508 -5.08)
|
||||||
|
)
|
||||||
|
(stroke (width 0.1524) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -1.27 -2.54)
|
||||||
|
(xy -0.508 -2.54)
|
||||||
|
)
|
||||||
|
(stroke (width 0.1524) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -1.27 0)
|
||||||
|
(xy -0.508 0)
|
||||||
|
)
|
||||||
|
(stroke (width 0.1524) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -1.27 2.54)
|
||||||
|
(xy -0.508 2.54)
|
||||||
|
)
|
||||||
|
(stroke (width 0.1524) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(arc (start 0 0.508) (mid -0.5058 0) (end 0 -0.508)
|
||||||
|
(stroke (width 0.1524) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(arc (start 0 3.048) (mid -0.5058 2.54) (end 0 2.032)
|
||||||
|
(stroke (width 0.1524) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(pin power_in line (at -5.08 2.54 0) (length 3.81)
|
||||||
|
(name "VCC" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "1" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin input line (at -5.08 0 0) (length 3.81)
|
||||||
|
(name "RX" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "2" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin output line (at -5.08 -2.54 0) (length 3.81)
|
||||||
|
(name "TX" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "3" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin power_in line (at -5.08 -5.08 0) (length 3.81)
|
||||||
|
(name "GND" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "4" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
74
board/kicad-stuff/LP38690DT-3.3.kicad_sym
Normal file
74
board/kicad-stuff/LP38690DT-3.3.kicad_sym
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
(kicad_symbol_lib (version 20220914) (generator kicad_symbol_editor)
|
||||||
|
(symbol "LP38690DT-3.3" (pin_names (offset 1.016)) (in_bom yes) (on_board yes)
|
||||||
|
(property "Reference" "U" (at -10.16 5.08 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||||
|
)
|
||||||
|
(property "Value" "LP38690DT-3.3" (at -10.16 -7.62 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||||
|
)
|
||||||
|
(property "Footprint" "DPAK457P991X255-3N" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom) hide)
|
||||||
|
)
|
||||||
|
(property "Datasheet" "IPC-7351B" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom) hide)
|
||||||
|
)
|
||||||
|
(property "Field4" "Texas Instruments" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom) hide)
|
||||||
|
)
|
||||||
|
(property "Field5" "M" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom) hide)
|
||||||
|
)
|
||||||
|
(property "Field6" "2.55mm" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom) hide)
|
||||||
|
)
|
||||||
|
(property "ki_locked" "" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)))
|
||||||
|
)
|
||||||
|
(symbol "LP38690DT-3.3_0_0"
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -10.16 -5.08)
|
||||||
|
(xy 10.16 -5.08)
|
||||||
|
)
|
||||||
|
(stroke (width 0.1524) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -10.16 5.08)
|
||||||
|
(xy -10.16 -5.08)
|
||||||
|
)
|
||||||
|
(stroke (width 0.1524) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 10.16 -5.08)
|
||||||
|
(xy 10.16 5.08)
|
||||||
|
)
|
||||||
|
(stroke (width 0.1524) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 10.16 5.08)
|
||||||
|
(xy -10.16 5.08)
|
||||||
|
)
|
||||||
|
(stroke (width 0.1524) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(pin output line (at 15.24 2.54 180) (length 5.08)
|
||||||
|
(name "OUT" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "1" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin input line (at -15.24 2.54 0) (length 5.08)
|
||||||
|
(name "IN" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "3" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin power_in line (at 15.24 -2.54 180) (length 5.08)
|
||||||
|
(name "GND" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "4" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
37
board/kicad-stuff/SOP65P640X120-14N.kicad_mod
Normal file
37
board/kicad-stuff/SOP65P640X120-14N.kicad_mod
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
|
||||||
|
(footprint SOP65P640X120-14N (layer F.Cu) (tedit 65346025)
|
||||||
|
(descr "")
|
||||||
|
(attr smd)
|
||||||
|
(fp_text reference REF** (at -0.595 -3.435 0) (layer F.SilkS)
|
||||||
|
(effects (font (size 1.0 1.0) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text value SOP65P640X120-14N (at 7.025 3.435 0) (layer F.Fab)
|
||||||
|
(effects (font (size 1.0 1.0) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(pad 1 smd roundrect (roundrect_rratio 0.05) (at -2.87 -1.95) (size 1.57 0.41) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 2 smd roundrect (roundrect_rratio 0.05) (at -2.87 -1.3) (size 1.57 0.41) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 3 smd roundrect (roundrect_rratio 0.05) (at -2.87 -0.65) (size 1.57 0.41) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 4 smd roundrect (roundrect_rratio 0.05) (at -2.87 0.0) (size 1.57 0.41) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 5 smd roundrect (roundrect_rratio 0.05) (at -2.87 0.65) (size 1.57 0.41) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 6 smd roundrect (roundrect_rratio 0.05) (at -2.87 1.3) (size 1.57 0.41) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 7 smd roundrect (roundrect_rratio 0.05) (at -2.87 1.95) (size 1.57 0.41) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 8 smd roundrect (roundrect_rratio 0.05) (at 2.87 1.95) (size 1.57 0.41) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 9 smd roundrect (roundrect_rratio 0.05) (at 2.87 1.3) (size 1.57 0.41) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 10 smd roundrect (roundrect_rratio 0.05) (at 2.87 0.65) (size 1.57 0.41) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 11 smd roundrect (roundrect_rratio 0.05) (at 2.87 0.0) (size 1.57 0.41) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 12 smd roundrect (roundrect_rratio 0.05) (at 2.87 -0.65) (size 1.57 0.41) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 13 smd roundrect (roundrect_rratio 0.05) (at 2.87 -1.3) (size 1.57 0.41) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 14 smd roundrect (roundrect_rratio 0.05) (at 2.87 -1.95) (size 1.57 0.41) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(fp_circle (center -4.24 -2.26) (end -4.14 -2.26) (layer F.SilkS) (width 0.2))
|
||||||
|
(fp_circle (center -4.24 -2.26) (end -4.14 -2.26) (layer F.Fab) (width 0.2))
|
||||||
|
(fp_line (start -2.2 -2.5) (end 2.2 -2.5) (layer F.Fab) (width 0.127))
|
||||||
|
(fp_line (start -2.2 2.5) (end 2.2 2.5) (layer F.Fab) (width 0.127))
|
||||||
|
(fp_line (start -2.2 -2.5) (end 2.2 -2.5) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -2.2 2.5) (end 2.2 2.5) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -2.2 -2.5) (end -2.2 2.5) (layer F.Fab) (width 0.127))
|
||||||
|
(fp_line (start 2.2 -2.5) (end 2.2 2.5) (layer F.Fab) (width 0.127))
|
||||||
|
(fp_line (start -3.905 -2.75) (end 3.905 -2.75) (layer F.CrtYd) (width 0.05))
|
||||||
|
(fp_line (start -3.905 2.75) (end 3.905 2.75) (layer F.CrtYd) (width 0.05))
|
||||||
|
(fp_line (start -3.905 -2.75) (end -3.905 2.75) (layer F.CrtYd) (width 0.05))
|
||||||
|
(fp_line (start 3.905 -2.75) (end 3.905 2.75) (layer F.CrtYd) (width 0.05))
|
||||||
|
)
|
29
board/kicad-stuff/SSOP10.kicad_mod
Normal file
29
board/kicad-stuff/SSOP10.kicad_mod
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
|
||||||
|
(footprint SSOP10 (layer F.Cu) (tedit 652971AF)
|
||||||
|
(descr "")
|
||||||
|
(attr smd)
|
||||||
|
(fp_text reference REF** (at -3.2004 0.0 900) (layer F.SilkS)
|
||||||
|
(effects (font (size 0.64 0.64) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text value SSOP10 (at 3.1496 -0.4064 900) (layer F.Fab)
|
||||||
|
(effects (font (size 0.64 0.64) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(pad 2 smd rect (at -1.0 2.8) (size 0.6 1.75) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 9 smd rect (at -1.0 -2.8) (size 0.6 1.75) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 1 smd rect (at -2.0 2.8) (size 0.6 1.75) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 3 smd rect (at 0.0 2.8) (size 0.6 1.75) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 4 smd rect (at 1.0 2.8) (size 0.6 1.75) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 10 smd rect (at -2.0 -2.8) (size 0.6 1.75) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 8 smd rect (at 0.0 -2.8) (size 0.6 1.75) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 7 smd rect (at 1.0 -2.8) (size 0.6 1.75) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 5 smd rect (at 2.0 2.8) (size 0.6 1.75) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 6 smd rect (at 2.0 -2.8) (size 0.6 1.75) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(fp_line (start 2.527 -1.9) (end 2.527 1.4) (layer F.Fab) (width 0.2032))
|
||||||
|
(fp_line (start 2.527 1.4) (end 2.527 1.9) (layer F.Fab) (width 0.2032))
|
||||||
|
(fp_line (start 2.527 1.9) (end -2.527 1.9) (layer F.Fab) (width 0.2032))
|
||||||
|
(fp_line (start -2.527 1.9) (end -2.527 1.4) (layer F.Fab) (width 0.2032))
|
||||||
|
(fp_line (start -2.527 1.4) (end -2.527 -1.9) (layer F.Fab) (width 0.2032))
|
||||||
|
(fp_line (start -2.527 -1.9) (end 2.527 -1.9) (layer F.Fab) (width 0.2032))
|
||||||
|
(fp_line (start 2.527 1.4) (end -2.527 1.4) (layer F.Fab) (width 0.2032))
|
||||||
|
(fp_line (start -1.905 1.016) (end -1.905 -1.016) (layer F.SilkS) (width 0.3048))
|
||||||
|
)
|
104
board/kicad-stuff/SX1308.kicad_sym
Normal file
104
board/kicad-stuff/SX1308.kicad_sym
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
(kicad_symbol_lib (version 20220914) (generator kicad_symbol_editor)
|
||||||
|
(symbol "SX1308" (pin_names (offset 1.016)) (in_bom yes) (on_board yes)
|
||||||
|
(property "Reference" "U" (at -17.78 20.32 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||||
|
)
|
||||||
|
(property "Value" "SX1308" (at -17.8054 17.8054 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||||
|
)
|
||||||
|
(property "Footprint" "SOT-23-6" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom) hide)
|
||||||
|
)
|
||||||
|
(property "Datasheet" "" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom) hide)
|
||||||
|
)
|
||||||
|
(property "ki_locked" "" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)))
|
||||||
|
)
|
||||||
|
(symbol "SX1308_0_0"
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -17.78 -7.62)
|
||||||
|
(xy -17.78 15.24)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -17.78 15.24)
|
||||||
|
(xy 0 15.24)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -13.7922 0.1778)
|
||||||
|
(xy -11.2522 0.1778)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -11.303 1.6764)
|
||||||
|
(xy -8.763 1.6764)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -11.2522 0.1778)
|
||||||
|
(xy -11.303 1.6764)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 0 -7.62)
|
||||||
|
(xy -17.78 -7.62)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 0 15.24)
|
||||||
|
(xy 0 -7.62)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(text "ON/OFF" (at -10.8712 -0.0508 0)
|
||||||
|
(effects (font (size 0.8128 0.8128)) (justify left bottom))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 5.08 12.7 180) (length 5.08)
|
||||||
|
(name "SW" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "1" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -22.86 -5.08 0) (length 5.08)
|
||||||
|
(name "GND" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "2" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 5.08 -2.54 180) (length 5.08)
|
||||||
|
(name "FB" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "3" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -22.86 2.54 0) (length 5.08)
|
||||||
|
(name "EN" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "4" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -22.86 12.7 0) (length 5.08)
|
||||||
|
(name "IN" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "5" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 5.08 5.08 180) (length 5.08)
|
||||||
|
(name "N/C" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "6" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
168
board/kicad-stuff/ds2438.kicad_sym
Normal file
168
board/kicad-stuff/ds2438.kicad_sym
Normal file
@ -0,0 +1,168 @@
|
|||||||
|
(kicad_symbol_lib (version 20220914) (generator kicad_symbol_editor)
|
||||||
|
(symbol "ds2438az+" (pin_names (offset 0.254)) (in_bom yes) (on_board yes)
|
||||||
|
(property "Reference" "U" (at 30.48 10.16 0)
|
||||||
|
(effects (font (size 1.524 1.524)))
|
||||||
|
)
|
||||||
|
(property "Value" "ds2438az+" (at 30.48 7.62 0)
|
||||||
|
(effects (font (size 1.524 1.524)))
|
||||||
|
)
|
||||||
|
(property "Footprint" "21-0041B_8_MXM" (at 30.48 6.096 0)
|
||||||
|
(effects (font (size 1.524 1.524)) hide)
|
||||||
|
)
|
||||||
|
(property "Datasheet" "" (at 0 0 0)
|
||||||
|
(effects (font (size 1.524 1.524)))
|
||||||
|
)
|
||||||
|
(property "ki_locked" "" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)))
|
||||||
|
)
|
||||||
|
(property "ki_fp_filters" "21-0041B_8_MXM 21-0041B_8_MXM-M 21-0041B_8_MXM-L" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) hide)
|
||||||
|
)
|
||||||
|
(symbol "ds2438az+_1_1"
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 7.112 -7.62)
|
||||||
|
(xy 6.0452 -8.128)
|
||||||
|
)
|
||||||
|
(stroke (width 0.127) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 7.112 -7.62)
|
||||||
|
(xy 6.0452 -7.112)
|
||||||
|
)
|
||||||
|
(stroke (width 0.127) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 7.112 -5.08)
|
||||||
|
(xy 6.0452 -5.588)
|
||||||
|
)
|
||||||
|
(stroke (width 0.127) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 7.112 -5.08)
|
||||||
|
(xy 6.0452 -4.572)
|
||||||
|
)
|
||||||
|
(stroke (width 0.127) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 7.112 -2.54)
|
||||||
|
(xy 6.0452 -3.048)
|
||||||
|
)
|
||||||
|
(stroke (width 0.127) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 7.112 -2.54)
|
||||||
|
(xy 6.0452 -2.032)
|
||||||
|
)
|
||||||
|
(stroke (width 0.127) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 7.62 -12.7)
|
||||||
|
(xy 53.34 -12.7)
|
||||||
|
)
|
||||||
|
(stroke (width 0.127) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 7.62 5.08)
|
||||||
|
(xy 7.62 -12.7)
|
||||||
|
)
|
||||||
|
(stroke (width 0.127) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 53.34 -12.7)
|
||||||
|
(xy 53.34 5.08)
|
||||||
|
)
|
||||||
|
(stroke (width 0.127) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 53.34 5.08)
|
||||||
|
(xy 7.62 5.08)
|
||||||
|
)
|
||||||
|
(stroke (width 0.127) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 53.848 0)
|
||||||
|
(xy 54.9148 -0.508)
|
||||||
|
)
|
||||||
|
(stroke (width 0.127) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 53.848 0)
|
||||||
|
(xy 54.9148 0.508)
|
||||||
|
)
|
||||||
|
(stroke (width 0.127) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 55.4228 -0.508)
|
||||||
|
(xy 56.4642 0)
|
||||||
|
)
|
||||||
|
(stroke (width 0.127) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 55.4228 0.508)
|
||||||
|
(xy 56.4642 0)
|
||||||
|
)
|
||||||
|
(stroke (width 0.127) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(pin power_in line (at 0 0 0) (length 7.62)
|
||||||
|
(name "GND" (effects (font (size 1.4986 1.4986))))
|
||||||
|
(number "1" (effects (font (size 1.4986 1.4986))))
|
||||||
|
)
|
||||||
|
(pin input line (at 0 -2.54 0) (length 7.62)
|
||||||
|
(name "VSENS+" (effects (font (size 1.4986 1.4986))))
|
||||||
|
(number "2" (effects (font (size 1.4986 1.4986))))
|
||||||
|
)
|
||||||
|
(pin input line (at 0 -5.08 0) (length 7.62)
|
||||||
|
(name "VSENS-" (effects (font (size 1.4986 1.4986))))
|
||||||
|
(number "3" (effects (font (size 1.4986 1.4986))))
|
||||||
|
)
|
||||||
|
(pin input line (at 0 -7.62 0) (length 7.62)
|
||||||
|
(name "VAD" (effects (font (size 1.4986 1.4986))))
|
||||||
|
(number "4" (effects (font (size 1.4986 1.4986))))
|
||||||
|
)
|
||||||
|
(pin power_in line (at 60.96 -7.62 180) (length 7.62)
|
||||||
|
(name "VDD" (effects (font (size 1.4986 1.4986))))
|
||||||
|
(number "5" (effects (font (size 1.4986 1.4986))))
|
||||||
|
)
|
||||||
|
(pin no_connect line (at 60.96 -5.08 180) (length 7.62)
|
||||||
|
(name "NC" (effects (font (size 1.4986 1.4986))))
|
||||||
|
(number "6" (effects (font (size 1.4986 1.4986))))
|
||||||
|
)
|
||||||
|
(pin no_connect line (at 60.96 -2.54 180) (length 7.62)
|
||||||
|
(name "NC" (effects (font (size 1.4986 1.4986))))
|
||||||
|
(number "7" (effects (font (size 1.4986 1.4986))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 60.96 0 180) (length 7.62)
|
||||||
|
(name "DQ" (effects (font (size 1.4986 1.4986))))
|
||||||
|
(number "8" (effects (font (size 1.4986 1.4986))))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
Binary file not shown.
1704
board/production/PlantCtrlESP32_2023-10-26_23-11-30/netlist.ipc
Normal file
1704
board/production/PlantCtrlESP32_2023-10-26_23-11-30/netlist.ipc
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,8 +1,11 @@
|
|||||||
(sym_lib_table
|
(sym_lib_table
|
||||||
(lib (name "LP38690DT-3.3")(type "Legacy")(uri "${KIPRJMOD}/kicad-stuff/LP38690DT-3.3.lib")(options "")(descr ""))
|
(version 7)
|
||||||
(lib (name "ESP32-DEVKITC-32D")(type "Legacy")(uri "${KIPRJMOD}/kicad-stuff/ESP32/ESP32-DEVKITC-32D.lib")(options "")(descr ""))
|
(lib (name "LP38690DT-3.3")(type "KiCad")(uri "${KIPRJMOD}/kicad-stuff/LP38690DT-3.3.kicad_sym")(options "")(descr ""))
|
||||||
(lib (name "DW01")(type "Legacy")(uri "${KIPRJMOD}/kicad-stuff/DW01.lib")(options "")(descr ""))
|
(lib (name "ESP32-DEVKITC-32D")(type "KiCad")(uri "${KIPRJMOD}/kicad-stuff/ESP32/ESP32-DEVKITC-32D.kicad_sym")(options "")(descr ""))
|
||||||
(lib (name "SX1308")(type "Legacy")(uri "${KIPRJMOD}/kicad-stuff/SX1308.lib")(options "")(descr ""))
|
(lib (name "DW01")(type "KiCad")(uri "${KIPRJMOD}/kicad-stuff/DW01.kicad_sym")(options "")(descr ""))
|
||||||
(lib (name "ds2438")(type "Legacy")(uri "${KIPRJMOD}/kicad-stuff/ds2438.lib")(options "")(descr ""))
|
(lib (name "SX1308")(type "KiCad")(uri "${KIPRJMOD}/kicad-stuff/SX1308.kicad_sym")(options "")(descr ""))
|
||||||
(lib (name "PlantCtrlESP32-rescue")(type "Legacy")(uri "${KIPRJMOD}/PlantCtrlESP32-rescue.lib")(options "")(descr ""))
|
(lib (name "ds2438")(type "KiCad")(uri "${KIPRJMOD}/kicad-stuff/ds2438.kicad_sym")(options "")(descr ""))
|
||||||
)
|
(lib (name "CN3306")(type "KiCad")(uri "${KIPRJMOD}/CN3306.kicad_sym")(options "")(descr ""))
|
||||||
|
(lib (name "CN3795")(type "KiCad")(uri "${KIPRJMOD}/CN3795.kicad_sym")(options "")(descr ""))
|
||||||
|
(lib (name "BQ34Z100PWR-G1")(type "KiCad")(uri "${KIPRJMOD}/kicad-stuff/BQ34Z100PWR-G1.kicad_sym")(options "")(descr ""))
|
||||||
|
)
|
||||||
|
Binary file not shown.
20
rust/.cargo/config.toml
Normal file
20
rust/.cargo/config.toml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
[build]
|
||||||
|
target = "xtensa-esp32-espidf"
|
||||||
|
|
||||||
|
[target.xtensa-esp32-espidf]
|
||||||
|
linker = "ldproxy"
|
||||||
|
#runner = "espflash flash --monitor --partition-table partitions.csv" # Select this runner for espflash v2.x.x
|
||||||
|
# runner = espflash erase-parts otadata
|
||||||
|
runner = "espflash flash --monitor --baud 921600 --partition-table partitions.csv" # Select this runner for espflash v2.x.x
|
||||||
|
#runner = "cargo runner"
|
||||||
|
rustflags = [ "--cfg", "espidf_time64"] # Extending time_t for ESP IDF 5: https://github.com/esp-rs/rust/issues/110
|
||||||
|
|
||||||
|
[unstable]
|
||||||
|
build-std = ["std", "panic_abort"]
|
||||||
|
|
||||||
|
[env]
|
||||||
|
MCU="esp32"
|
||||||
|
# Note: this variable is not used by the pio builder (`cargo build --features pio`)
|
||||||
|
ESP_IDF_VERSION = "v5.1.1"
|
||||||
|
CHRONO_TZ_TIMEZONE_FILTER="UTC|Europe/Berlin"
|
||||||
|
CARGO_WORKSPACE_DIR = { value = "", relative = true }
|
8
rust/.idea/.gitignore
vendored
Normal file
8
rust/.idea/.gitignore
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# Default ignored files
|
||||||
|
/shelf/
|
||||||
|
/workspace.xml
|
||||||
|
# Editor-based HTTP Client requests
|
||||||
|
/httpRequests/
|
||||||
|
# Datasource local storage ignored files
|
||||||
|
/dataSources/
|
||||||
|
/dataSources.local.xml
|
6
rust/.idea/inspectionProfiles/Project_Default.xml
Normal file
6
rust/.idea/inspectionProfiles/Project_Default.xml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<component name="InspectionProjectProfileManager">
|
||||||
|
<profile version="1.0">
|
||||||
|
<option name="myName" value="Project Default" />
|
||||||
|
<inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
|
||||||
|
</profile>
|
||||||
|
</component>
|
8
rust/.idea/modules.xml
Normal file
8
rust/.idea/modules.xml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/.idea/plant-ctrl2.iml" filepath="$PROJECT_DIR$/.idea/plant-ctrl2.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
11
rust/.idea/plant-ctrl2.iml
Normal file
11
rust/.idea/plant-ctrl2.iml
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="EMPTY_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager">
|
||||||
|
<content url="file://$MODULE_DIR$">
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/target" />
|
||||||
|
</content>
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
</module>
|
6
rust/.idea/vcs.xml
Normal file
6
rust/.idea/vcs.xml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
83
rust/Cargo.toml
Normal file
83
rust/Cargo.toml
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
[package]
|
||||||
|
name = "plant-ctrl2"
|
||||||
|
version = "0.1.0"
|
||||||
|
authors = ["Empire Phoenix"]
|
||||||
|
edition = "2021"
|
||||||
|
resolver = "2"
|
||||||
|
rust-version = "1.71"
|
||||||
|
|
||||||
|
[profile.release]
|
||||||
|
# Explicitly disable LTO which the Xtensa codegen backend has issues
|
||||||
|
#lto = "thin"
|
||||||
|
opt-level = "s"
|
||||||
|
strip = false
|
||||||
|
#codegen-units = 1
|
||||||
|
debug = true
|
||||||
|
overflow-checks = true
|
||||||
|
panic = "unwind"
|
||||||
|
incremental = true
|
||||||
|
|
||||||
|
[profile.dev]
|
||||||
|
# Explicitly disable LTO which the Xtensa codegen backend has issues
|
||||||
|
#lto = "thin"
|
||||||
|
opt-level = "s"
|
||||||
|
strip = false
|
||||||
|
#codegen-units = 1
|
||||||
|
debug = true
|
||||||
|
overflow-checks = true
|
||||||
|
panic = "unwind"
|
||||||
|
incremental = true
|
||||||
|
|
||||||
|
[package.metadata.cargo_runner]
|
||||||
|
# The string `$TARGET_FILE` will be replaced with the path from cargo.
|
||||||
|
command = [
|
||||||
|
"cargo",
|
||||||
|
"espflash",
|
||||||
|
"save-image",
|
||||||
|
"--chip",
|
||||||
|
"esp32",
|
||||||
|
"image.bin"
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
[package.metadata.espflash]
|
||||||
|
partition_table = "partitions.csv"
|
||||||
|
|
||||||
|
[features]
|
||||||
|
default = ["std", "embassy", "esp-idf-svc/native"]
|
||||||
|
|
||||||
|
pio = ["esp-idf-svc/pio"]
|
||||||
|
std = ["alloc", "esp-idf-svc/binstart", "esp-idf-svc/std"]
|
||||||
|
alloc = ["esp-idf-svc/alloc"]
|
||||||
|
nightly = ["esp-idf-svc/nightly"]
|
||||||
|
experimental = ["esp-idf-svc/experimental"]
|
||||||
|
embassy = ["esp-idf-svc/embassy-sync", "esp-idf-svc/critical-section", "esp-idf-svc/embassy-time-driver"]
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
log = { version = "0.4", default-features = false }
|
||||||
|
esp-idf-svc = { version = "0.48.0", default-features = false }
|
||||||
|
serde = { version = "1.0.192", features = ["derive"] }
|
||||||
|
average = { version = "0.14.1" , features = ["std"] }
|
||||||
|
#esp32 = "0.28.0"
|
||||||
|
bit_field = "0.10.2"
|
||||||
|
ds18b20 = "0.1.1"
|
||||||
|
embedded-svc = { version = "0.27.0", features = ["experimental"] }
|
||||||
|
esp-idf-hal = "0.43.0"
|
||||||
|
esp-idf-sys = { version = "0.34.0", features = ["binstart", "native"] }
|
||||||
|
esp_idf_build = "0.1.3"
|
||||||
|
chrono = { version = "0.4.23", default-features = false , features = ["iana-time-zone" , "alloc"] }
|
||||||
|
chrono-tz = {version="0.8.0", default-features = false , features = [ "filter-by-regex" ]}
|
||||||
|
embedded-hal = "1.0.0"
|
||||||
|
one-wire-bus = "0.1.1"
|
||||||
|
anyhow = { version = "1.0.75", features = ["std", "backtrace"] }
|
||||||
|
schemars = "0.8.16"
|
||||||
|
heapless = { version = "0.8", features = ["serde"] }
|
||||||
|
serde_json = "1.0.108"
|
||||||
|
strum = { version = "0.26.1", features = ["derive"] }
|
||||||
|
once_cell = "1.19.0"
|
||||||
|
measurements = "0.11.0"
|
||||||
|
bq34z100 = "0.2.1"
|
||||||
|
|
||||||
|
[build-dependencies]
|
||||||
|
embuild = "0.31.3"
|
||||||
|
vergen = { version = "8.2.6", features = ["build", "git", "gitcl"] }
|
42
rust/build.rs
Normal file
42
rust/build.rs
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
use std::process::Command;
|
||||||
|
|
||||||
|
use vergen::EmitBuilder;
|
||||||
|
fn main() {
|
||||||
|
println!("cargo:rerun-if-changed=./src/src_webpack");
|
||||||
|
Command::new("rm")
|
||||||
|
.arg("./src/webserver/bundle.js")
|
||||||
|
.output()
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
match Command::new("cmd").spawn() {
|
||||||
|
Ok(_) => {
|
||||||
|
println!("Assuming build on windows");
|
||||||
|
let output = Command::new("cmd")
|
||||||
|
.arg("/K")
|
||||||
|
.arg("npx")
|
||||||
|
.arg("webpack")
|
||||||
|
.current_dir("./src_webpack")
|
||||||
|
.output()
|
||||||
|
.unwrap();
|
||||||
|
println!("status: {}", output.status);
|
||||||
|
println!("stdout: {}", String::from_utf8_lossy(&output.stdout));
|
||||||
|
println!("stderr: {}", String::from_utf8_lossy(&output.stderr));
|
||||||
|
assert!(output.status.success());
|
||||||
|
}
|
||||||
|
Err(_) => {
|
||||||
|
println!("Assuming build on linux");
|
||||||
|
let output = Command::new("npx")
|
||||||
|
.arg("webpack")
|
||||||
|
.current_dir("./src_webpack")
|
||||||
|
.output()
|
||||||
|
.unwrap();
|
||||||
|
println!("status: {}", output.status);
|
||||||
|
println!("stdout: {}", String::from_utf8_lossy(&output.stdout));
|
||||||
|
println!("stderr: {}", String::from_utf8_lossy(&output.stderr));
|
||||||
|
assert!(output.status.success());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
embuild::espidf::sysenv::output();
|
||||||
|
let _ = EmitBuilder::builder().all_git().all_build().emit();
|
||||||
|
}
|
6
rust/partitions.csv
Normal file
6
rust/partitions.csv
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
nvs, data, nvs, , 16k,
|
||||||
|
otadata, data, ota, , 8k,
|
||||||
|
phy_init, data, phy, , 4k,
|
||||||
|
ota_0, app, ota_0, , 1792K,
|
||||||
|
ota_1, app, ota_1, , 1792K,
|
||||||
|
storage, data, spiffs, , 400K,
|
|
3
rust/rust-toolchain.toml
Normal file
3
rust/rust-toolchain.toml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[toolchain]
|
||||||
|
channel = "nightly"
|
||||||
|
toolchain = "esp"
|
8
rust/sdkconfig.defaults
Normal file
8
rust/sdkconfig.defaults
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# Rust often needs a bit of an extra main task stack size compared to C (the default is 3K)
|
||||||
|
CONFIG_ESP_MAIN_TASK_STACK_SIZE=25000
|
||||||
|
|
||||||
|
# Use this to set FreeRTOS kernel tick frequency to 1000 Hz (100 Hz by default).
|
||||||
|
# This allows to use 1 ms granuality for thread sleeps (10 ms by default).
|
||||||
|
CONFIG_FREERTOS_HZ=1000
|
||||||
|
|
||||||
|
CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE=y
|
18
rust/setup.txt
Normal file
18
rust/setup.txt
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
cargo install cargo-generate
|
||||||
|
cargo install ldproxy
|
||||||
|
cargo install espup
|
||||||
|
cargo install espflash
|
||||||
|
cargo install cargo-espflash
|
||||||
|
|
||||||
|
cargo generate esp-rs/esp-idf-template cargo
|
||||||
|
export PATH="$PATH:$HOME/.cargo/bin"
|
||||||
|
|
||||||
|
espup install
|
||||||
|
rustup toolchain link esp ~/.rustup/toolchains/esp/
|
||||||
|
cargo install ldproxy
|
||||||
|
|
||||||
|
cargo espflash save-image --chip esp32 image.bin
|
||||||
|
|
||||||
|
|
||||||
|
esptool.py --chip ESP32-C3 elf2image --output my-app.bin target/release/my-app
|
||||||
|
$ espflash save-image ESP32-C3 target/release/my-app my-app.bin
|
90
rust/src/config.rs
Normal file
90
rust/src/config.rs
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
use std::{fmt, str::FromStr};
|
||||||
|
|
||||||
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
|
use crate::PLANT_COUNT;
|
||||||
|
|
||||||
|
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
|
||||||
|
pub struct Config {
|
||||||
|
pub mqtt_url: heapless::String<128>,
|
||||||
|
pub base_topic: heapless::String<64>,
|
||||||
|
pub max_consecutive_pump_count: u8,
|
||||||
|
|
||||||
|
pub tank_allow_pumping_if_sensor_error: bool,
|
||||||
|
pub tank_sensor_enabled: bool,
|
||||||
|
pub tank_useable_ml: u32,
|
||||||
|
pub tank_warn_percent: u8,
|
||||||
|
pub tank_empty_percent: u8,
|
||||||
|
pub tank_full_percent: u8,
|
||||||
|
|
||||||
|
pub night_lamp_hour_start: u8,
|
||||||
|
pub night_lamp_hour_end: u8,
|
||||||
|
pub night_lamp_only_when_dark: bool,
|
||||||
|
|
||||||
|
pub plants: [Plant; PLANT_COUNT],
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Default for Config {
|
||||||
|
fn default() -> Self {
|
||||||
|
Self {
|
||||||
|
base_topic: heapless::String::from_str("plant/one").unwrap(),
|
||||||
|
mqtt_url: heapless::String::from_str("mqtt://192.168.1.1:1883").unwrap(),
|
||||||
|
tank_allow_pumping_if_sensor_error: true,
|
||||||
|
tank_sensor_enabled: true,
|
||||||
|
tank_warn_percent: 50,
|
||||||
|
night_lamp_hour_start: 21,
|
||||||
|
night_lamp_hour_end: 2,
|
||||||
|
night_lamp_only_when_dark: true,
|
||||||
|
plants: [Plant::default(); PLANT_COUNT],
|
||||||
|
max_consecutive_pump_count: 15,
|
||||||
|
tank_useable_ml: 5000,
|
||||||
|
tank_empty_percent: 0_u8,
|
||||||
|
tank_full_percent: 100_u8,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#[derive(Serialize, Deserialize, Copy, Clone, Debug, PartialEq)]
|
||||||
|
pub enum Mode {
|
||||||
|
OFF,
|
||||||
|
TargetMoisture,
|
||||||
|
TimerOnly,
|
||||||
|
TimerAndDeadzone,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Serialize, Deserialize, Copy, Clone, Debug, PartialEq)]
|
||||||
|
pub struct Plant {
|
||||||
|
pub mode: Mode,
|
||||||
|
pub target_moisture: u8,
|
||||||
|
pub pump_time_s: u16,
|
||||||
|
pub pump_cooldown_min: u16,
|
||||||
|
pub pump_hour_start: u8,
|
||||||
|
pub pump_hour_end: u8,
|
||||||
|
pub sensor_b: bool,
|
||||||
|
pub sensor_p: bool,
|
||||||
|
}
|
||||||
|
impl Default for Plant {
|
||||||
|
fn default() -> Self {
|
||||||
|
Self {
|
||||||
|
target_moisture: 40,
|
||||||
|
pump_time_s: 60,
|
||||||
|
pump_cooldown_min: 60,
|
||||||
|
pump_hour_start: 8,
|
||||||
|
pump_hour_end: 20,
|
||||||
|
mode: Mode::OFF,
|
||||||
|
sensor_b: false,
|
||||||
|
sensor_p: false,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Serialize, Deserialize, Debug)]
|
||||||
|
pub struct WifiConfig {
|
||||||
|
pub ssid: heapless::String<32>,
|
||||||
|
pub password: Option<heapless::String<64>>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl fmt::Display for WifiConfig {
|
||||||
|
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||||
|
write!(f, "({}, ****)", self.ssid)
|
||||||
|
}
|
||||||
|
}
|
266
rust/src/espota.rs
Normal file
266
rust/src/espota.rs
Normal file
@ -0,0 +1,266 @@
|
|||||||
|
use core::fmt;
|
||||||
|
use core::mem;
|
||||||
|
use core::ptr;
|
||||||
|
use esp_idf_sys::{
|
||||||
|
esp_ota_abort, esp_ota_begin, esp_ota_end, esp_ota_get_next_update_partition, esp_ota_handle_t,
|
||||||
|
esp_ota_mark_app_invalid_rollback_and_reboot, esp_ota_mark_app_valid_cancel_rollback,
|
||||||
|
esp_ota_set_boot_partition, esp_ota_write, esp_partition_t, esp_restart, ESP_ERR_FLASH_OP_FAIL,
|
||||||
|
ESP_ERR_FLASH_OP_TIMEOUT, ESP_ERR_INVALID_ARG, ESP_ERR_INVALID_SIZE, ESP_ERR_INVALID_STATE,
|
||||||
|
ESP_ERR_NOT_FOUND, ESP_ERR_NO_MEM, ESP_ERR_OTA_PARTITION_CONFLICT, ESP_ERR_OTA_ROLLBACK_FAILED,
|
||||||
|
ESP_ERR_OTA_ROLLBACK_INVALID_STATE, ESP_ERR_OTA_SELECT_INFO_INVALID,
|
||||||
|
ESP_ERR_OTA_VALIDATE_FAILED, ESP_FAIL, ESP_OK, OTA_SIZE_UNKNOWN,
|
||||||
|
};
|
||||||
|
|
||||||
|
pub type Result<T> = core::result::Result<T, Error>;
|
||||||
|
|
||||||
|
/// An error that can happen during ESP OTA operations.
|
||||||
|
#[derive(Debug)]
|
||||||
|
pub struct Error {
|
||||||
|
kind: ErrorKind,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Error {
|
||||||
|
pub(crate) fn from_kind(kind: ErrorKind) -> Self {
|
||||||
|
Self { kind }
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Returns the kind of error as an enum, that can be matched on.
|
||||||
|
pub fn kind(&self) -> ErrorKind {
|
||||||
|
self.kind
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl fmt::Display for Error {
|
||||||
|
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
|
self.kind.fmt(f)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl std::error::Error for Error {}
|
||||||
|
|
||||||
|
#[derive(Debug, Copy, Clone, Eq, PartialEq)]
|
||||||
|
#[non_exhaustive]
|
||||||
|
pub enum ErrorKind {
|
||||||
|
/// No suitable partition for writing OTA update to found.
|
||||||
|
NoOtaPartition,
|
||||||
|
/// Cannot allocate memory for OTA operation.
|
||||||
|
AllocFailed,
|
||||||
|
/// Rollback enabled, but the currently running application is still pending. The currently
|
||||||
|
/// running application must confirm itself before downloading and flashing a new app.
|
||||||
|
InvalidRollbackState,
|
||||||
|
/// First byte of image contains invalid app image magic byte.
|
||||||
|
InvalidMagicByte,
|
||||||
|
/// Flash write operation timed out.
|
||||||
|
FlashTimeout,
|
||||||
|
/// Flash write operation failed.
|
||||||
|
FlashFailed,
|
||||||
|
/// OTA data partition has invalid contents.
|
||||||
|
InvalidOtaPartitionData,
|
||||||
|
/// The [`OtaUpdate`] handle was finalized before any app image was written to it.
|
||||||
|
NothingWritten,
|
||||||
|
/// OTA image is invalid (either not a valid app image, or - if secure boot is enabled - signature failed to verify.)
|
||||||
|
InvalidImage,
|
||||||
|
/// If flash encryption is enabled, this result indicates an internal error writing the final encrypted bytes to flash.
|
||||||
|
WritingEncryptedFailed,
|
||||||
|
/// The rollback failed.
|
||||||
|
RollbackFailed,
|
||||||
|
/// The rollback is not possible due to flash does not have any apps.
|
||||||
|
RollbackFailedNoApps,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl fmt::Display for ErrorKind {
|
||||||
|
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
|
use ErrorKind::*;
|
||||||
|
match self {
|
||||||
|
NoOtaPartition => "No suitable partition for writing OTA update to found",
|
||||||
|
AllocFailed => "Cannot allocate memory for OTA operation",
|
||||||
|
InvalidRollbackState => {
|
||||||
|
"Rollback enabled, but the currently running application is still pending"
|
||||||
|
}
|
||||||
|
InvalidMagicByte => "First byte of image contains invalid app image magic byte",
|
||||||
|
FlashTimeout => "Flash write operation timed out",
|
||||||
|
FlashFailed => "Flash write operation failed",
|
||||||
|
InvalidOtaPartitionData => "OTA data partition has invalid contents",
|
||||||
|
NothingWritten => "OtaUpdate was never written to",
|
||||||
|
InvalidImage => "OTA image is invalid",
|
||||||
|
WritingEncryptedFailed => "Internal error writing the final encrypted bytes to flash",
|
||||||
|
RollbackFailed => "The rollback failed",
|
||||||
|
RollbackFailedNoApps => {
|
||||||
|
"The rollback is not possible due to flash does not have any apps"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.fmt(f)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Represents an ongoing OTA update.
|
||||||
|
///
|
||||||
|
/// Dropping this object before calling [`finalize`](OtaUpdate::finalize) will abort the update.
|
||||||
|
#[derive(Debug)]
|
||||||
|
pub struct OtaUpdate {
|
||||||
|
partition: *const esp_partition_t,
|
||||||
|
ota_handle: esp_ota_handle_t,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl OtaUpdate {
|
||||||
|
/// Starts an OTA update to the next OTA compatible partition.
|
||||||
|
///
|
||||||
|
/// Finds next partition round-robin, starting from the current running partition.
|
||||||
|
/// The entire partition is erased.
|
||||||
|
pub fn begin() -> Result<Self> {
|
||||||
|
let partition = unsafe { esp_ota_get_next_update_partition(ptr::null()) };
|
||||||
|
if partition.is_null() {
|
||||||
|
return Err(Error::from_kind(ErrorKind::NoOtaPartition));
|
||||||
|
}
|
||||||
|
|
||||||
|
let mut ota_handle = 0;
|
||||||
|
match unsafe { esp_ota_begin(partition, OTA_SIZE_UNKNOWN as usize, &mut ota_handle) } {
|
||||||
|
ESP_OK => Ok(()),
|
||||||
|
ESP_ERR_INVALID_ARG => panic!("Invalid partition or out_handle"),
|
||||||
|
ESP_ERR_NO_MEM => Err(Error::from_kind(ErrorKind::AllocFailed)),
|
||||||
|
ESP_ERR_OTA_PARTITION_CONFLICT => Err(Error::from_kind(ErrorKind::NoOtaPartition)),
|
||||||
|
ESP_ERR_NOT_FOUND => panic!("Partition argument not found in partition table"),
|
||||||
|
ESP_ERR_OTA_SELECT_INFO_INVALID => {
|
||||||
|
Err(Error::from_kind(ErrorKind::InvalidOtaPartitionData))
|
||||||
|
}
|
||||||
|
ESP_ERR_INVALID_SIZE => panic!("Partition doesn’t fit in configured flash size"),
|
||||||
|
ESP_ERR_FLASH_OP_TIMEOUT => Err(Error::from_kind(ErrorKind::FlashTimeout)),
|
||||||
|
ESP_ERR_FLASH_OP_FAIL => Err(Error::from_kind(ErrorKind::FlashFailed)),
|
||||||
|
ESP_ERR_OTA_ROLLBACK_INVALID_STATE => {
|
||||||
|
Err(Error::from_kind(ErrorKind::InvalidRollbackState))
|
||||||
|
}
|
||||||
|
code => panic!("Unexpected esp_ota_begin return code: {}", code),
|
||||||
|
}?;
|
||||||
|
|
||||||
|
Ok(Self {
|
||||||
|
partition,
|
||||||
|
ota_handle,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Write app image data to partition.
|
||||||
|
///
|
||||||
|
/// This method can be called multiple times as data is received during the OTA operation.
|
||||||
|
/// Data is written sequentially to the partition.
|
||||||
|
///
|
||||||
|
/// The format of the app image can be read about in the main README and crate documentation.
|
||||||
|
pub fn write(&mut self, app_image_chunk: &[u8]) -> Result<()> {
|
||||||
|
let chunk_ptr = app_image_chunk.as_ptr() as *const _;
|
||||||
|
let chunk_len = app_image_chunk.len();
|
||||||
|
|
||||||
|
match unsafe { esp_ota_write(self.ota_handle, chunk_ptr, chunk_len) } {
|
||||||
|
ESP_OK => Ok(()),
|
||||||
|
ESP_ERR_INVALID_ARG => panic!("Invalid OTA handle"),
|
||||||
|
ESP_ERR_OTA_VALIDATE_FAILED => Err(Error::from_kind(ErrorKind::InvalidMagicByte)),
|
||||||
|
ESP_ERR_FLASH_OP_TIMEOUT => Err(Error::from_kind(ErrorKind::FlashTimeout)),
|
||||||
|
ESP_ERR_FLASH_OP_FAIL => Err(Error::from_kind(ErrorKind::FlashFailed)),
|
||||||
|
ESP_ERR_OTA_SELECT_INFO_INVALID => {
|
||||||
|
Err(Error::from_kind(ErrorKind::InvalidOtaPartitionData))
|
||||||
|
}
|
||||||
|
code => panic!("Unexpected esp_ota_write return code: {code}"),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Finish OTA update and validate newly written app image.
|
||||||
|
///
|
||||||
|
/// Unless you also call [`set_as_boot_partition`](CompletedOtaUpdate::set_as_boot_partition) the new app will not
|
||||||
|
/// start.
|
||||||
|
pub fn finalize(self) -> Result<CompletedOtaUpdate> {
|
||||||
|
match unsafe { esp_ota_end(self.ota_handle) } {
|
||||||
|
ESP_OK => Ok(()),
|
||||||
|
ESP_ERR_NOT_FOUND => panic!("Invalid OTA handle"),
|
||||||
|
ESP_ERR_INVALID_ARG => Err(Error::from_kind(ErrorKind::NothingWritten)),
|
||||||
|
ESP_ERR_OTA_VALIDATE_FAILED => Err(Error::from_kind(ErrorKind::InvalidImage)),
|
||||||
|
ESP_ERR_INVALID_STATE => Err(Error::from_kind(ErrorKind::WritingEncryptedFailed)),
|
||||||
|
code => panic!("Unexpected esp_ota_end return code: {code}"),
|
||||||
|
}?;
|
||||||
|
|
||||||
|
let partition = self.partition;
|
||||||
|
mem::forget(self);
|
||||||
|
|
||||||
|
Ok(CompletedOtaUpdate { partition })
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Returns a raw pointer to the partition that the new app is/will be written to.
|
||||||
|
pub fn raw_partition(&self) -> *const esp_partition_t {
|
||||||
|
self.partition
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Drop for OtaUpdate {
|
||||||
|
fn drop(&mut self) {
|
||||||
|
#[cfg(feature = "log")]
|
||||||
|
log::debug!("Aborting OTA update");
|
||||||
|
|
||||||
|
let abort_result_code = unsafe { esp_ota_abort(self.ota_handle) };
|
||||||
|
if abort_result_code != ESP_OK {
|
||||||
|
#[cfg(feature = "log")]
|
||||||
|
log::error!(
|
||||||
|
"Aborting the OTA update returned an unexpected code: {}",
|
||||||
|
abort_result_code
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub struct CompletedOtaUpdate {
|
||||||
|
partition: *const esp_partition_t,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl CompletedOtaUpdate {
|
||||||
|
/// Sets the boot partition to the newly flashed OTA partition.
|
||||||
|
pub fn set_as_boot_partition(&mut self) -> Result<()> {
|
||||||
|
match unsafe { esp_ota_set_boot_partition(self.partition) } {
|
||||||
|
ESP_OK => Ok(()),
|
||||||
|
ESP_ERR_INVALID_ARG => panic!("Invalid partition sent to esp_ota_set_boot_partition"),
|
||||||
|
ESP_ERR_OTA_VALIDATE_FAILED => Err(Error::from_kind(ErrorKind::InvalidImage)),
|
||||||
|
ESP_ERR_NOT_FOUND => panic!("OTA data partition not found"),
|
||||||
|
ESP_ERR_FLASH_OP_TIMEOUT => Err(Error::from_kind(ErrorKind::FlashTimeout)),
|
||||||
|
ESP_ERR_FLASH_OP_FAIL => Err(Error::from_kind(ErrorKind::FlashFailed)),
|
||||||
|
code => panic!("Unexpected esp_ota_set_boot_partition code: {}", code),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Restarts the CPU. If [`set_as_boot_partition`](CompletedOtaUpdate::set_as_boot_partition) was
|
||||||
|
/// called and completed successfully, the CPU will boot into the newly written app.
|
||||||
|
///
|
||||||
|
/// After successful restart, CPU reset reason will be SW_CPU_RESET. Peripherals
|
||||||
|
/// (except for WiFi, BT, UART0, SPI1, and legacy timers) are not reset.
|
||||||
|
pub fn restart(self) -> ! {
|
||||||
|
unsafe { esp_restart() }
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Returns a raw pointer to the partition that the new app was written to.
|
||||||
|
pub fn raw_partition(&self) -> *const esp_partition_t {
|
||||||
|
self.partition
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Call this function to indicate that the running app is working well.
|
||||||
|
///
|
||||||
|
/// Should be called (at least) the first time a new app starts up after
|
||||||
|
/// being flashed.
|
||||||
|
pub fn mark_app_valid() {
|
||||||
|
match unsafe { esp_ota_mark_app_valid_cancel_rollback() } {
|
||||||
|
ESP_OK => (),
|
||||||
|
code => panic!(
|
||||||
|
"Unexpected esp_ota_mark_app_valid_cancel_rollback code: {}",
|
||||||
|
code
|
||||||
|
),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Call this function to roll back to the previously workable app with reboot.
|
||||||
|
///
|
||||||
|
/// If rolling back failed, it returns an error, otherwise this function never returns,
|
||||||
|
/// as the CPU is rebooting.
|
||||||
|
pub fn rollback_and_reboot() -> Result<core::convert::Infallible> {
|
||||||
|
match unsafe { esp_ota_mark_app_invalid_rollback_and_reboot() } {
|
||||||
|
ESP_FAIL => Err(Error::from_kind(ErrorKind::RollbackFailed)),
|
||||||
|
ESP_ERR_OTA_ROLLBACK_FAILED => Err(Error::from_kind(ErrorKind::RollbackFailedNoApps)),
|
||||||
|
code => panic!(
|
||||||
|
"Unexpected esp_ota_mark_app_invalid_rollback_and_reboot code: {}",
|
||||||
|
code
|
||||||
|
),
|
||||||
|
}
|
||||||
|
}
|
4
rust/src/lib.rs
Normal file
4
rust/src/lib.rs
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
#![allow(dead_code)]
|
||||||
|
extern crate embedded_hal as hal;
|
||||||
|
|
||||||
|
pub mod sipo;
|
1190
rust/src/main.rs
Normal file
1190
rust/src/main.rs
Normal file
File diff suppressed because it is too large
Load Diff
1048
rust/src/plant_hal.rs
Normal file
1048
rust/src/plant_hal.rs
Normal file
File diff suppressed because it is too large
Load Diff
153
rust/src/sipo.rs
Normal file
153
rust/src/sipo.rs
Normal file
@ -0,0 +1,153 @@
|
|||||||
|
//! Serial-in parallel-out shift register
|
||||||
|
|
||||||
|
use core::cell::RefCell;
|
||||||
|
use core::mem::{self, MaybeUninit};
|
||||||
|
use std::convert::Infallible;
|
||||||
|
|
||||||
|
use hal::digital::OutputPin;
|
||||||
|
|
||||||
|
trait ShiftRegisterInternal {
|
||||||
|
fn update(&self, index: usize, command: bool) -> Result<(), ()>;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Output pin of the shift register
|
||||||
|
pub struct ShiftRegisterPin<'a> {
|
||||||
|
shift_register: &'a dyn ShiftRegisterInternal,
|
||||||
|
index: usize,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<'a> ShiftRegisterPin<'a> {
|
||||||
|
fn new(shift_register: &'a dyn ShiftRegisterInternal, index: usize) -> Self {
|
||||||
|
ShiftRegisterPin {
|
||||||
|
shift_register,
|
||||||
|
index,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl embedded_hal::digital::ErrorType for ShiftRegisterPin<'_> {
|
||||||
|
type Error = Infallible;
|
||||||
|
}
|
||||||
|
|
||||||
|
impl OutputPin for ShiftRegisterPin<'_> {
|
||||||
|
fn set_low(&mut self) -> Result<(), Infallible> {
|
||||||
|
self.shift_register.update(self.index, false).unwrap();
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
|
fn set_high(&mut self) -> Result<(), Infallible> {
|
||||||
|
self.shift_register.update(self.index, true).unwrap();
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
macro_rules! ShiftRegisterBuilder {
|
||||||
|
($name: ident, $size: expr) => {
|
||||||
|
/// Serial-in parallel-out shift register
|
||||||
|
pub struct $name<Pin1, Pin2, Pin3>
|
||||||
|
where
|
||||||
|
Pin1: OutputPin,
|
||||||
|
Pin2: OutputPin,
|
||||||
|
Pin3: OutputPin,
|
||||||
|
{
|
||||||
|
clock: RefCell<Pin1>,
|
||||||
|
latch: RefCell<Pin2>,
|
||||||
|
data: RefCell<Pin3>,
|
||||||
|
output_state: RefCell<[bool; $size]>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<Pin1, Pin2, Pin3> ShiftRegisterInternal for $name<Pin1, Pin2, Pin3>
|
||||||
|
where
|
||||||
|
Pin1: OutputPin,
|
||||||
|
Pin2: OutputPin,
|
||||||
|
Pin3: OutputPin,
|
||||||
|
{
|
||||||
|
/// Sets the value of the shift register output at `index` to value `command`
|
||||||
|
fn update(&self, index: usize, command: bool) -> Result<(), ()> {
|
||||||
|
self.output_state.borrow_mut()[index] = command;
|
||||||
|
let output_state = self.output_state.borrow();
|
||||||
|
self.latch.borrow_mut().set_low().map_err(|_e| ())?;
|
||||||
|
|
||||||
|
for i in 1..=output_state.len() {
|
||||||
|
if output_state[output_state.len() - i] {
|
||||||
|
self.data.borrow_mut().set_high().map_err(|_e| ())?;
|
||||||
|
} else {
|
||||||
|
self.data.borrow_mut().set_low().map_err(|_e| ())?;
|
||||||
|
}
|
||||||
|
self.clock.borrow_mut().set_high().map_err(|_e| ())?;
|
||||||
|
self.clock.borrow_mut().set_low().map_err(|_e| ())?;
|
||||||
|
}
|
||||||
|
|
||||||
|
self.latch.borrow_mut().set_high().map_err(|_e| ())?;
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<Pin1, Pin2, Pin3> $name<Pin1, Pin2, Pin3>
|
||||||
|
where
|
||||||
|
Pin1: OutputPin,
|
||||||
|
Pin2: OutputPin,
|
||||||
|
Pin3: OutputPin,
|
||||||
|
{
|
||||||
|
/// Creates a new SIPO shift register from clock, latch, and data output pins
|
||||||
|
pub fn new(clock: Pin1, latch: Pin2, data: Pin3) -> Self {
|
||||||
|
$name {
|
||||||
|
clock: RefCell::new(clock),
|
||||||
|
latch: RefCell::new(latch),
|
||||||
|
data: RefCell::new(data),
|
||||||
|
output_state: RefCell::new([false; $size]),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Get embedded-hal output pins to control the shift register outputs
|
||||||
|
pub fn decompose(&self) -> [ShiftRegisterPin; $size] {
|
||||||
|
// Create an uninitialized array of `MaybeUninit`. The `assume_init` is
|
||||||
|
// safe because the type we are claiming to have initialized here is a
|
||||||
|
// bunch of `MaybeUninit`s, which do not require initialization.
|
||||||
|
let mut pins: [MaybeUninit<ShiftRegisterPin>; $size] =
|
||||||
|
unsafe { MaybeUninit::uninit().assume_init() };
|
||||||
|
|
||||||
|
// Dropping a `MaybeUninit` does nothing, so if there is a panic during this loop,
|
||||||
|
// we have a memory leak, but there is no memory safety issue.
|
||||||
|
for (index, elem) in pins.iter_mut().enumerate() {
|
||||||
|
elem.write(ShiftRegisterPin::new(self, index));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Everything is initialized. Transmute the array to the
|
||||||
|
// initialized type.
|
||||||
|
unsafe { mem::transmute::<_, [ShiftRegisterPin; $size]>(pins) }
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Consume the shift register and return the original clock, latch, and data output pins
|
||||||
|
pub fn release(self) -> (Pin1, Pin2, Pin3) {
|
||||||
|
let Self {
|
||||||
|
clock,
|
||||||
|
latch,
|
||||||
|
data,
|
||||||
|
output_state: _,
|
||||||
|
} = self;
|
||||||
|
(clock.into_inner(), latch.into_inner(), data.into_inner())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
ShiftRegisterBuilder!(ShiftRegister8, 8);
|
||||||
|
ShiftRegisterBuilder!(ShiftRegister16, 16);
|
||||||
|
ShiftRegisterBuilder!(ShiftRegister24, 24);
|
||||||
|
ShiftRegisterBuilder!(ShiftRegister32, 32);
|
||||||
|
ShiftRegisterBuilder!(ShiftRegister40, 40);
|
||||||
|
ShiftRegisterBuilder!(ShiftRegister48, 48);
|
||||||
|
ShiftRegisterBuilder!(ShiftRegister56, 56);
|
||||||
|
ShiftRegisterBuilder!(ShiftRegister64, 64);
|
||||||
|
ShiftRegisterBuilder!(ShiftRegister72, 72);
|
||||||
|
ShiftRegisterBuilder!(ShiftRegister80, 80);
|
||||||
|
ShiftRegisterBuilder!(ShiftRegister88, 88);
|
||||||
|
ShiftRegisterBuilder!(ShiftRegister96, 96);
|
||||||
|
ShiftRegisterBuilder!(ShiftRegister104, 104);
|
||||||
|
ShiftRegisterBuilder!(ShiftRegister112, 112);
|
||||||
|
ShiftRegisterBuilder!(ShiftRegister120, 120);
|
||||||
|
ShiftRegisterBuilder!(ShiftRegister128, 128);
|
||||||
|
|
||||||
|
/// 8 output serial-in parallel-out shift register
|
||||||
|
pub type ShiftRegister<Pin1, Pin2, Pin3> = ShiftRegister8<Pin1, Pin2, Pin3>;
|
95
rust/src/webserver/config.html
Normal file
95
rust/src/webserver/config.html
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
<html>
|
||||||
|
<body>
|
||||||
|
<input type="button" id="test" value="Test">
|
||||||
|
<h2>Current Firmware</h2>
|
||||||
|
<div>
|
||||||
|
<div id="firmware_buildtime">Buildtime loading</div>
|
||||||
|
<div id="firmware_githash">Build githash loading</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2>firmeware OTA v3</h2>
|
||||||
|
|
||||||
|
<form id="upload_form" method="post">
|
||||||
|
<input type="file" name="file1" id="file1"><br>
|
||||||
|
<progress id="progressBar" value="0" max="100" style="width:300px;"></progress>
|
||||||
|
<h3 id="status"></h3>
|
||||||
|
<h3 id="answer"></h3>
|
||||||
|
<p id="loaded_n_total"></p>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h2>config</h2>
|
||||||
|
|
||||||
|
<div id="configform">
|
||||||
|
<h3>Mqtt:</h3>
|
||||||
|
<div>
|
||||||
|
<input type="text" id="mqtt_url">
|
||||||
|
MQTT Url
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<input type="text" id="base_topic">
|
||||||
|
Base Topic
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Tank:</h3>
|
||||||
|
<div>
|
||||||
|
<input type="checkbox" id="tank_sensor_enabled">
|
||||||
|
Enable Tank Sensor
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<input type="checkbox" id="tank_allow_pumping_if_sensor_error">
|
||||||
|
Allow Pumping if Sensor Error
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<input type="number" min="2" max="500000" id="tank_useable_ml">
|
||||||
|
Tank Size mL
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<input type="number" min="1" max="500000" id="tank_warn_percent">
|
||||||
|
Tank Warn Percent (mapped in relation to empty and full)
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<input type="number" min="0" max="100" id="tank_empty_percent">
|
||||||
|
Tank Empty Percent (% max move)
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<input type="number" min="0" max="100" id="tank_full_percent">
|
||||||
|
Tank Full Percent (% max move)
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h3>Light:</h3>
|
||||||
|
<div>
|
||||||
|
Start
|
||||||
|
<select type="time" id="night_lamp_time_start">
|
||||||
|
</select>
|
||||||
|
Stop
|
||||||
|
<select type="time" id="night_lamp_time_end">
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<input type="checkbox" id="night_lamp_only_when_dark">
|
||||||
|
Light only when dark
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h3>Plants:</h3>
|
||||||
|
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<input type="number" min="2" max="100" id="max_consecutive_pump_count">
|
||||||
|
Max consecutive pump count:
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="plants"></div>
|
||||||
|
</div>
|
||||||
|
<button id="submit">Submit</button>
|
||||||
|
<div id="submit_status"></div>
|
||||||
|
<br>
|
||||||
|
<textarea id="json" cols=50 rows=10></textarea>
|
||||||
|
<script src="bundle.js"></script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
BIN
rust/src/webserver/favicon.ico
Normal file
BIN
rust/src/webserver/favicon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
37
rust/src/webserver/initial_config.html
Normal file
37
rust/src/webserver/initial_config.html
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
<html>
|
||||||
|
<body>
|
||||||
|
<input type="button" id="test" value="Test">
|
||||||
|
<h2>Current Firmware</h2>
|
||||||
|
<div>
|
||||||
|
<div id="firmware_buildtime">Buildtime loading</div>
|
||||||
|
<div id="firmware_githash">Build githash loading</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h2>firmeware OTA v3</h2>
|
||||||
|
<form id="upload_form" method="post">
|
||||||
|
<input type="file" name="file1" id="file1"><br>
|
||||||
|
<progress id="progressBar" value="0" max="100" style="width:300px;"></progress>
|
||||||
|
<h3 id="status"></h3>
|
||||||
|
<h3 id="answer"></h3>
|
||||||
|
<p id="loaded_n_total"></p>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<h2>WIFI</h2>
|
||||||
|
<input type="button" id="scan" value="Scan">
|
||||||
|
<br>
|
||||||
|
<label for="ssid">SSID:</label>
|
||||||
|
<input type="text" id="ssid" list="ssidlist">
|
||||||
|
<datalist id="ssidlist">
|
||||||
|
<option value="Not scanned yet">
|
||||||
|
</datalist>
|
||||||
|
<label for="ssid">Password:</label>
|
||||||
|
<input type="text" id="password">
|
||||||
|
<input type="button" id="save" value="Save & Restart">
|
||||||
|
<div id="wifistatus"></div>
|
||||||
|
<br>
|
||||||
|
</div>
|
||||||
|
<script src="bundle.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
291
rust/src/webserver/webserver.rs
Normal file
291
rust/src/webserver/webserver.rs
Normal file
@ -0,0 +1,291 @@
|
|||||||
|
//offer ota and config mode
|
||||||
|
|
||||||
|
use std::{
|
||||||
|
str::from_utf8,
|
||||||
|
sync::{atomic::AtomicBool, Arc},
|
||||||
|
};
|
||||||
|
|
||||||
|
use crate::{espota::OtaUpdate, BOARD_ACCESS};
|
||||||
|
use core::result::Result::Ok;
|
||||||
|
use embedded_svc::http::Method;
|
||||||
|
use esp_idf_svc::http::server::{Configuration, EspHttpServer};
|
||||||
|
use heapless::String;
|
||||||
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
|
use crate::{
|
||||||
|
config::{Config, WifiConfig},
|
||||||
|
plant_hal::PlantCtrlBoardInteraction,
|
||||||
|
};
|
||||||
|
|
||||||
|
#[derive(Serialize, Debug)]
|
||||||
|
struct SSIDList<'a> {
|
||||||
|
ssids: Vec<&'a String<32>>,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Serialize, Debug)]
|
||||||
|
struct VersionInfo<'a> {
|
||||||
|
git_hash: &'a str,
|
||||||
|
build_time: &'a str
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
|
||||||
|
pub struct TestPump{
|
||||||
|
pump: usize
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn httpd_initial(reboot_now: Arc<AtomicBool>) -> Box<EspHttpServer<'static>> {
|
||||||
|
let mut server = shared();
|
||||||
|
server
|
||||||
|
.fn_handler("/", Method::Get, move |request| {
|
||||||
|
let mut response = request.into_ok_response()?;
|
||||||
|
response.write(include_bytes!("initial_config.html"))?;
|
||||||
|
anyhow::Ok(())
|
||||||
|
})
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
server
|
||||||
|
.fn_handler("/wifiscan", Method::Post, move |request| {
|
||||||
|
let mut response = request.into_ok_response()?;
|
||||||
|
let mut board = BOARD_ACCESS.lock().unwrap();
|
||||||
|
match board.wifi_scan() {
|
||||||
|
Err(error) => {
|
||||||
|
response.write(format!("Error scanning wifi: {}", error).as_bytes())?;
|
||||||
|
}
|
||||||
|
Ok(scan_result) => {
|
||||||
|
let mut ssids: Vec<&String<32>> = Vec::new();
|
||||||
|
scan_result.iter().for_each(|s| ssids.push(&s.ssid));
|
||||||
|
let ssid_json = serde_json::to_string(&SSIDList { ssids })?;
|
||||||
|
println!("Sending ssid list {}", &ssid_json);
|
||||||
|
response.write(ssid_json.as_bytes())?;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
anyhow::Ok(())
|
||||||
|
})
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
server
|
||||||
|
.fn_handler("/wifisave", Method::Post, move |mut request| {
|
||||||
|
let mut buf = [0_u8; 2048];
|
||||||
|
let read = request.read(&mut buf);
|
||||||
|
if read.is_err() {
|
||||||
|
let error_text = read.unwrap_err().to_string();
|
||||||
|
println!("Could not parse wificonfig {}", error_text);
|
||||||
|
request
|
||||||
|
.into_status_response(500)?
|
||||||
|
.write(error_text.as_bytes())?;
|
||||||
|
return anyhow::Ok(());
|
||||||
|
}
|
||||||
|
let actual_data = &buf[0..read.unwrap()];
|
||||||
|
println!("raw {:?}", actual_data);
|
||||||
|
println!("Raw data {}", from_utf8(actual_data).unwrap());
|
||||||
|
let wifi_config: Result<WifiConfig, serde_json::Error> =
|
||||||
|
serde_json::from_slice(actual_data);
|
||||||
|
if wifi_config.is_err() {
|
||||||
|
let error_text = wifi_config.unwrap_err().to_string();
|
||||||
|
println!("Could not parse wificonfig {}", error_text);
|
||||||
|
request
|
||||||
|
.into_status_response(500)?
|
||||||
|
.write(error_text.as_bytes())?;
|
||||||
|
return anyhow::Ok(());
|
||||||
|
}
|
||||||
|
let mut board = BOARD_ACCESS.lock().unwrap();
|
||||||
|
board.set_wifi(&wifi_config.unwrap())?;
|
||||||
|
let mut response = request.into_status_response(202)?;
|
||||||
|
response.write("saved".as_bytes())?;
|
||||||
|
reboot_now.store(true, std::sync::atomic::Ordering::Relaxed);
|
||||||
|
anyhow::Ok(())
|
||||||
|
})
|
||||||
|
.unwrap();
|
||||||
|
server
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn httpd(reboot_now: Arc<AtomicBool>) -> Box<EspHttpServer<'static>> {
|
||||||
|
let mut server = shared();
|
||||||
|
|
||||||
|
server
|
||||||
|
.fn_handler("/", Method::Get, move |request| {
|
||||||
|
let mut response = request.into_ok_response()?;
|
||||||
|
response.write(include_bytes!("config.html"))?;
|
||||||
|
anyhow::Ok(())
|
||||||
|
})
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
server
|
||||||
|
.fn_handler("/get_config", Method::Get, move |request| {
|
||||||
|
let mut response = request.into_ok_response()?;
|
||||||
|
let mut board = BOARD_ACCESS.lock().unwrap();
|
||||||
|
match board.get_config() {
|
||||||
|
Ok(config) => {
|
||||||
|
let config_json = serde_json::to_string(&config)?;
|
||||||
|
response.write(config_json.as_bytes())?;
|
||||||
|
}
|
||||||
|
Err(_) => {
|
||||||
|
let config_json = serde_json::to_string(&Config::default())?;
|
||||||
|
response.write(config_json.as_bytes())?;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
anyhow::Ok(())
|
||||||
|
})
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
server
|
||||||
|
.fn_handler("/set_config", Method::Post, move |mut request| {
|
||||||
|
let mut buf = [0_u8; 3072];
|
||||||
|
let read = request.read(&mut buf);
|
||||||
|
if read.is_err() {
|
||||||
|
let error_text = read.unwrap_err().to_string();
|
||||||
|
println!("Could not parse config {}", error_text);
|
||||||
|
request
|
||||||
|
.into_status_response(500)?
|
||||||
|
.write(error_text.as_bytes())?;
|
||||||
|
return anyhow::Ok(());
|
||||||
|
}
|
||||||
|
let actual_data = &buf[0..read.unwrap()];
|
||||||
|
println!("Raw data {}", from_utf8(actual_data).unwrap());
|
||||||
|
let config: Result<Config, serde_json::Error> = serde_json::from_slice(actual_data);
|
||||||
|
if config.is_err() {
|
||||||
|
let error_text = config.unwrap_err().to_string();
|
||||||
|
println!("Could not parse config {}", error_text);
|
||||||
|
request
|
||||||
|
.into_status_response(500)?
|
||||||
|
.write(error_text.as_bytes())?;
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
|
let mut board = BOARD_ACCESS.lock().unwrap();
|
||||||
|
board.set_config(&config.unwrap())?;
|
||||||
|
let mut response = request.into_status_response(202)?;
|
||||||
|
response.write("saved".as_bytes())?;
|
||||||
|
reboot_now.store(true, std::sync::atomic::Ordering::Relaxed);
|
||||||
|
Ok(())
|
||||||
|
})
|
||||||
|
.unwrap();
|
||||||
|
server
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn shared() -> Box<EspHttpServer<'static>> {
|
||||||
|
let server_config = Configuration {
|
||||||
|
stack_size: 8192,
|
||||||
|
..Default::default()
|
||||||
|
};
|
||||||
|
let mut server: Box<EspHttpServer<'static>> =
|
||||||
|
Box::new(EspHttpServer::new(&server_config).unwrap());
|
||||||
|
server
|
||||||
|
.fn_handler("/version", Method::Get, |request| {
|
||||||
|
let mut response = request.into_ok_response()?;
|
||||||
|
let git_hash = env!("VERGEN_GIT_DESCRIBE");
|
||||||
|
let build_time = env!("VERGEN_BUILD_TIMESTAMP");
|
||||||
|
let version_info = VersionInfo{
|
||||||
|
git_hash,
|
||||||
|
build_time,
|
||||||
|
};
|
||||||
|
let version_info_json = serde_json::to_string(&version_info)?;
|
||||||
|
response.write(version_info_json.as_bytes())?;
|
||||||
|
anyhow::Ok(())
|
||||||
|
})
|
||||||
|
.unwrap();
|
||||||
|
server
|
||||||
|
.fn_handler("/bundle.js", Method::Get, |request| {
|
||||||
|
let mut response = request.into_ok_response()?;
|
||||||
|
response.write(include_bytes!("bundle.js"))?;
|
||||||
|
anyhow::Ok(())
|
||||||
|
})
|
||||||
|
.unwrap();
|
||||||
|
server
|
||||||
|
.fn_handler("/favicon.ico", Method::Get, |request| {
|
||||||
|
let mut response = request.into_ok_response()?;
|
||||||
|
response.write(include_bytes!("favicon.ico"))?;
|
||||||
|
anyhow::Ok(())
|
||||||
|
})
|
||||||
|
.unwrap();
|
||||||
|
server
|
||||||
|
.fn_handler("/ota", Method::Post, |mut request| {
|
||||||
|
let ota = OtaUpdate::begin();
|
||||||
|
if ota.is_err() {
|
||||||
|
let error_text = ota.unwrap_err().to_string();
|
||||||
|
request
|
||||||
|
.into_status_response(500)?
|
||||||
|
.write(error_text.as_bytes())?;
|
||||||
|
return anyhow::Ok(());
|
||||||
|
}
|
||||||
|
let mut ota = ota.unwrap();
|
||||||
|
println!("start ota");
|
||||||
|
|
||||||
|
//having a larger buffer is not really faster, requires more stack and prevents the progress bar from working ;)
|
||||||
|
const BUFFER_SIZE: usize = 512;
|
||||||
|
let mut buffer: [u8; BUFFER_SIZE] = [0; BUFFER_SIZE];
|
||||||
|
let mut total_read: usize = 0;
|
||||||
|
loop {
|
||||||
|
let read = request.read(&mut buffer).unwrap();
|
||||||
|
total_read += read;
|
||||||
|
println!("received {read} bytes ota {total_read}");
|
||||||
|
let to_write = &buffer[0..read];
|
||||||
|
|
||||||
|
let write_result = ota.write(to_write);
|
||||||
|
if write_result.is_err() {
|
||||||
|
let error_text = write_result.unwrap_err().to_string();
|
||||||
|
request
|
||||||
|
.into_status_response(500)?
|
||||||
|
.write(error_text.as_bytes())?;
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
|
println!("wrote {read} bytes ota {total_read}");
|
||||||
|
if read == 0 {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
println!("finish ota");
|
||||||
|
let partition = ota.raw_partition();
|
||||||
|
println!("finalizing and changing boot partition to {partition:?}");
|
||||||
|
|
||||||
|
let finalizer = ota.finalize();
|
||||||
|
if finalizer.is_err() {
|
||||||
|
let error_text = finalizer.err().unwrap().to_string();
|
||||||
|
request
|
||||||
|
.into_status_response(500)?
|
||||||
|
.write(error_text.as_bytes())?;
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
|
let mut finalizer = finalizer.unwrap();
|
||||||
|
|
||||||
|
println!("changing boot partition");
|
||||||
|
finalizer.set_as_boot_partition().unwrap();
|
||||||
|
finalizer.restart();
|
||||||
|
})
|
||||||
|
.unwrap();
|
||||||
|
server
|
||||||
|
.fn_handler("/boardtest", Method::Post, move |_| {
|
||||||
|
let mut board = BOARD_ACCESS.lock().unwrap();
|
||||||
|
board.test()?;
|
||||||
|
anyhow::Ok(())
|
||||||
|
})
|
||||||
|
.unwrap();
|
||||||
|
server
|
||||||
|
.fn_handler("/pumptest", Method::Post, |mut request| {
|
||||||
|
let mut buf = [0_u8; 3072];
|
||||||
|
let read = request.read(&mut buf);
|
||||||
|
if read.is_err() {
|
||||||
|
let error_text = read.unwrap_err().to_string();
|
||||||
|
println!("Could not parse testrequest {}", error_text);
|
||||||
|
request
|
||||||
|
.into_status_response(500)?
|
||||||
|
.write(error_text.as_bytes())?;
|
||||||
|
return anyhow::Ok(());
|
||||||
|
}
|
||||||
|
let actual_data = &buf[0..read.unwrap()];
|
||||||
|
println!("Raw data {}", from_utf8(actual_data).unwrap());
|
||||||
|
let pump_test: Result<TestPump, serde_json::Error> = serde_json::from_slice(actual_data);
|
||||||
|
if pump_test.is_err() {
|
||||||
|
let error_text = pump_test.unwrap_err().to_string();
|
||||||
|
println!("Could not parse TestPump {}", error_text);
|
||||||
|
request
|
||||||
|
.into_status_response(500)?
|
||||||
|
.write(error_text.as_bytes())?;
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
|
let mut board = BOARD_ACCESS.lock().unwrap();
|
||||||
|
board.test_pump(pump_test.unwrap().pump)?;
|
||||||
|
anyhow::Ok(())
|
||||||
|
})
|
||||||
|
.unwrap();
|
||||||
|
server
|
||||||
|
}
|
1540
rust/src_webpack/package-lock.json
generated
Normal file
1540
rust/src_webpack/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
11
rust/src_webpack/package.json
Normal file
11
rust/src_webpack/package.json
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"devDependencies": {
|
||||||
|
"ts-loader": "^9.5.1",
|
||||||
|
"typescript": "^5.3.3",
|
||||||
|
"webpack": "^5.89.0",
|
||||||
|
"webpack-cli": "^5.1.4"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"source-map-loader": "^4.0.1"
|
||||||
|
}
|
||||||
|
}
|
347
rust/src_webpack/src/form.ts
Normal file
347
rust/src_webpack/src/form.ts
Normal file
@ -0,0 +1,347 @@
|
|||||||
|
interface PlantConfig {
|
||||||
|
mqtt_url: string,
|
||||||
|
base_topic: string,
|
||||||
|
tank_sensor_enabled: boolean,
|
||||||
|
tank_allow_pumping_if_sensor_error: boolean,
|
||||||
|
tank_useable_ml: number,
|
||||||
|
tank_warn_percent: number,
|
||||||
|
tank_empty_percent: number,
|
||||||
|
tank_full_percent: number,
|
||||||
|
night_lamp_hour_start: number,
|
||||||
|
night_lamp_hour_end: number,
|
||||||
|
night_lamp_only_when_dark: boolean,
|
||||||
|
max_consecutive_pump_count: number,
|
||||||
|
|
||||||
|
plants: {
|
||||||
|
mode: string,
|
||||||
|
target_moisture: number,
|
||||||
|
pump_time_s: number,
|
||||||
|
pump_cooldown_min: number,
|
||||||
|
pump_hour_start: number,
|
||||||
|
pump_hour_end: number,
|
||||||
|
sensor_b: boolean,
|
||||||
|
sensor_p: boolean
|
||||||
|
}[]
|
||||||
|
}
|
||||||
|
|
||||||
|
interface TestPump{
|
||||||
|
pump: number
|
||||||
|
}
|
||||||
|
|
||||||
|
let plants = document.getElementById("plants") as HTMLInputElement;
|
||||||
|
|
||||||
|
let fromWrapper = (() => {
|
||||||
|
|
||||||
|
let plantcount = 0;
|
||||||
|
|
||||||
|
function addTimeOptions(select: HTMLSelectElement) {
|
||||||
|
for (let i = 0; i < 24; i++) {
|
||||||
|
let option = document.createElement("option");
|
||||||
|
option.innerText = i.toString();
|
||||||
|
select.appendChild(option);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
let mqtt_url = document.getElementById("mqtt_url") as HTMLInputElement;
|
||||||
|
mqtt_url.onchange = updateJson
|
||||||
|
let base_topic = document.getElementById("base_topic") as HTMLInputElement;
|
||||||
|
base_topic.onchange = updateJson
|
||||||
|
let max_consecutive_pump_count = document.getElementById("max_consecutive_pump_count") as HTMLInputElement;
|
||||||
|
max_consecutive_pump_count.onchange = updateJson
|
||||||
|
|
||||||
|
let tank_useable_ml = document.getElementById("tank_useable_ml") as HTMLInputElement;
|
||||||
|
tank_useable_ml.onchange = updateJson
|
||||||
|
let tank_empty_percent = document.getElementById("tank_empty_percent") as HTMLInputElement;
|
||||||
|
tank_empty_percent.onchange = updateJson
|
||||||
|
let tank_full_percent = document.getElementById("tank_full_percent") as HTMLInputElement;
|
||||||
|
tank_full_percent.onchange = updateJson
|
||||||
|
let tank_warn_percent = document.getElementById("tank_warn_percent") as HTMLInputElement;
|
||||||
|
tank_warn_percent.onchange = updateJson
|
||||||
|
let tank_sensor_enabled = document.getElementById("tank_sensor_enabled") as HTMLInputElement;
|
||||||
|
tank_sensor_enabled.onchange = updateJson
|
||||||
|
let tank_allow_pumping_if_sensor_error = document.getElementById("tank_allow_pumping_if_sensor_error") as HTMLInputElement;
|
||||||
|
tank_allow_pumping_if_sensor_error.onchange = updateJson
|
||||||
|
let night_lamp_only_when_dark = document.getElementById("night_lamp_only_when_dark") as HTMLInputElement;
|
||||||
|
night_lamp_only_when_dark.onchange = updateJson
|
||||||
|
let night_lamp_time_start = document.getElementById("night_lamp_time_start") as HTMLSelectElement;
|
||||||
|
night_lamp_time_start.onchange = updateJson
|
||||||
|
addTimeOptions(night_lamp_time_start);
|
||||||
|
let night_lamp_time_end = document.getElementById("night_lamp_time_end") as HTMLSelectElement;
|
||||||
|
night_lamp_time_end.onchange = updateJson
|
||||||
|
addTimeOptions(night_lamp_time_end);
|
||||||
|
|
||||||
|
let json = document.getElementById('json') as HTMLInputElement
|
||||||
|
|
||||||
|
function createForm(current: PlantConfig) {
|
||||||
|
for (let i = 0; i < current.plants.length; i++) {
|
||||||
|
let plant = document.createElement("div");
|
||||||
|
plants.appendChild(plant);
|
||||||
|
let header = document.createElement("h4");
|
||||||
|
header.textContent = "Plant " + (i + 1);
|
||||||
|
plant.appendChild(header);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{
|
||||||
|
let holder = document.createElement("div");
|
||||||
|
plant.appendChild(holder);
|
||||||
|
|
||||||
|
let testButton = document.createElement("button");
|
||||||
|
testButton.innerText = "Test";
|
||||||
|
testButton.id = "plant_" + i + "_test";
|
||||||
|
testButton.onclick = function (){
|
||||||
|
var body:TestPump = {
|
||||||
|
pump: i
|
||||||
|
}
|
||||||
|
|
||||||
|
var pretty = JSON.stringify(body, undefined, 1);
|
||||||
|
fetch("/pumptest", {
|
||||||
|
method :"POST",
|
||||||
|
body: pretty
|
||||||
|
})
|
||||||
|
.then(response => response.text())
|
||||||
|
.then(text => submit_status.innerText = text)
|
||||||
|
};
|
||||||
|
holder.appendChild(testButton);
|
||||||
|
|
||||||
|
let br = document.createElement("br");
|
||||||
|
holder.appendChild(br);
|
||||||
|
|
||||||
|
let inputf = document.createElement("select");
|
||||||
|
inputf.id = "plant_" + i + "_mode";
|
||||||
|
inputf.onchange = updateJson;
|
||||||
|
holder.appendChild(inputf)
|
||||||
|
|
||||||
|
let optionOff = document.createElement("option");
|
||||||
|
optionOff.value = "OFF";
|
||||||
|
optionOff.innerText = "Off";
|
||||||
|
inputf.appendChild(optionOff);
|
||||||
|
|
||||||
|
let optionTargetMoisture = document.createElement("option");
|
||||||
|
optionTargetMoisture.value = "TargetMoisture";
|
||||||
|
optionTargetMoisture.innerText = "Target Moisture";
|
||||||
|
inputf.appendChild(optionTargetMoisture);
|
||||||
|
|
||||||
|
let optionTimerOnly = document.createElement("option");
|
||||||
|
optionTimerOnly.value = "TimerOnly";
|
||||||
|
optionTimerOnly.innerText = "Timer";
|
||||||
|
inputf.appendChild(optionTimerOnly);
|
||||||
|
|
||||||
|
let text = document.createElement("span");
|
||||||
|
holder.appendChild(text)
|
||||||
|
text.innerHTML += "Mode"
|
||||||
|
}
|
||||||
|
{
|
||||||
|
let holder = document.createElement("div");
|
||||||
|
plant.appendChild(holder);
|
||||||
|
let inputf = document.createElement("input");
|
||||||
|
inputf.id = "plant_" + i + "_target_moisture";
|
||||||
|
inputf.onchange = updateJson;
|
||||||
|
inputf.type = "number";
|
||||||
|
inputf.min = "0";
|
||||||
|
inputf.max = "100";
|
||||||
|
holder.appendChild(inputf)
|
||||||
|
|
||||||
|
let text = document.createElement("span");
|
||||||
|
holder.appendChild(text)
|
||||||
|
text.innerHTML += "Target Moisture"
|
||||||
|
}
|
||||||
|
{
|
||||||
|
let holder = document.createElement("div");
|
||||||
|
plant.appendChild(holder);
|
||||||
|
let input = document.createElement("input");
|
||||||
|
input.id = "plant_" + i + "_pump_time_s";
|
||||||
|
input.onchange = updateJson;
|
||||||
|
input.type = "number";
|
||||||
|
input.min = "0";
|
||||||
|
input.max = "600";
|
||||||
|
holder.appendChild(input)
|
||||||
|
|
||||||
|
let text = document.createElement("span");
|
||||||
|
holder.appendChild(text)
|
||||||
|
text.innerHTML += "Pump Time (s)"
|
||||||
|
}
|
||||||
|
{
|
||||||
|
let holder = document.createElement("div");
|
||||||
|
plant.appendChild(holder);
|
||||||
|
let input = document.createElement("input");
|
||||||
|
input.id = "plant_" + i + "_pump_cooldown_min";
|
||||||
|
input.onchange = updateJson;
|
||||||
|
input.type = "number";
|
||||||
|
input.min = "0";
|
||||||
|
input.max = "600";
|
||||||
|
holder.appendChild(input)
|
||||||
|
|
||||||
|
let text = document.createElement("span");
|
||||||
|
holder.appendChild(text)
|
||||||
|
text.innerHTML += "Pump Cooldown (m)"
|
||||||
|
}
|
||||||
|
{
|
||||||
|
let holder = document.createElement("div");
|
||||||
|
plant.appendChild(holder);
|
||||||
|
let input = document.createElement("select");
|
||||||
|
input.id = "plant_" + i + "_pump_hour_start";
|
||||||
|
addTimeOptions(input);
|
||||||
|
input.onchange = updateJson;
|
||||||
|
holder.appendChild(input)
|
||||||
|
|
||||||
|
let text = document.createElement("span");
|
||||||
|
holder.appendChild(text)
|
||||||
|
text.innerHTML += "Pump Hour Start"
|
||||||
|
}
|
||||||
|
{
|
||||||
|
let holder = document.createElement("div");
|
||||||
|
plant.appendChild(holder);
|
||||||
|
let input = document.createElement("select");
|
||||||
|
input.id = "plant_" + i + "_pump_hour_end";
|
||||||
|
addTimeOptions(input);
|
||||||
|
input.onchange = updateJson;
|
||||||
|
holder.appendChild(input)
|
||||||
|
|
||||||
|
let text = document.createElement("span");
|
||||||
|
holder.appendChild(text)
|
||||||
|
text.innerHTML += "Pump Hour End"
|
||||||
|
}
|
||||||
|
{
|
||||||
|
let holder = document.createElement("div");
|
||||||
|
plant.appendChild(holder);
|
||||||
|
let input = document.createElement("input");
|
||||||
|
input.id = "plant_" + i + "_sensor_b";
|
||||||
|
input.type = "checkbox";
|
||||||
|
input.onchange = updateJson;
|
||||||
|
holder.appendChild(input)
|
||||||
|
|
||||||
|
let text = document.createElement("span");
|
||||||
|
holder.appendChild(text)
|
||||||
|
text.innerHTML += "Sensor B installed"
|
||||||
|
}
|
||||||
|
{
|
||||||
|
let holder = document.createElement("div");
|
||||||
|
plant.appendChild(holder);
|
||||||
|
let input = document.createElement("input");
|
||||||
|
input.id = "plant_" + i + "_sensor_p";
|
||||||
|
input.type = "checkbox";
|
||||||
|
input.onchange = updateJson;
|
||||||
|
holder.appendChild(input)
|
||||||
|
|
||||||
|
let text = document.createElement("span");
|
||||||
|
holder.appendChild(text)
|
||||||
|
text.innerHTML += "Sensor P installed"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sync(current);
|
||||||
|
}
|
||||||
|
|
||||||
|
function sync(current: PlantConfig) {
|
||||||
|
plantcount = current.plants.length
|
||||||
|
mqtt_url.value = current.mqtt_url;
|
||||||
|
base_topic.value = current.base_topic;
|
||||||
|
max_consecutive_pump_count.value = current.max_consecutive_pump_count.toString();
|
||||||
|
|
||||||
|
tank_useable_ml.disabled = !current.tank_sensor_enabled;
|
||||||
|
tank_warn_percent.disabled = !current.tank_sensor_enabled;
|
||||||
|
tank_sensor_enabled.checked = current.tank_sensor_enabled;
|
||||||
|
tank_allow_pumping_if_sensor_error.checked = current.tank_allow_pumping_if_sensor_error;
|
||||||
|
tank_useable_ml.value = current.tank_useable_ml.toString();
|
||||||
|
tank_warn_percent.value = current.tank_warn_percent.toString();
|
||||||
|
tank_empty_percent.value = current.tank_empty_percent.toString();
|
||||||
|
tank_full_percent.value = current.tank_full_percent.toString();
|
||||||
|
|
||||||
|
night_lamp_time_start.value = current.night_lamp_hour_start.toString();
|
||||||
|
night_lamp_time_end.value = current.night_lamp_hour_end.toString();
|
||||||
|
|
||||||
|
for (let i = 0; i < current.plants.length; i++) {
|
||||||
|
let plant_mode = document.getElementById("plant_" + i + "_mode") as HTMLSelectElement;
|
||||||
|
plant_mode.value = current.plants[i].mode;
|
||||||
|
let plant_target_moisture = document.getElementById("plant_" + i + "_target_moisture") as HTMLInputElement;
|
||||||
|
plant_target_moisture.value = current.plants[i].target_moisture.toString();
|
||||||
|
let plant_pump_time_s = document.getElementById("plant_" + i + "_pump_time_s") as HTMLInputElement;
|
||||||
|
plant_pump_time_s.value = current.plants[i].pump_time_s.toString();
|
||||||
|
let plant_pump_cooldown_min = document.getElementById("plant_" + i + "_pump_cooldown_min") as HTMLInputElement;
|
||||||
|
plant_pump_cooldown_min.value = current.plants[i].pump_cooldown_min.toString();
|
||||||
|
let plant_pump_hour_start = document.getElementById("plant_" + i + "_pump_hour_start") as HTMLInputElement;
|
||||||
|
plant_pump_hour_start.value = current.plants[i].pump_hour_start.toString();
|
||||||
|
let plant_pump_hour_end = document.getElementById("plant_" + i + "_pump_hour_end") as HTMLInputElement;
|
||||||
|
plant_pump_hour_end.value = current.plants[i].pump_hour_end.toString();
|
||||||
|
|
||||||
|
let plant_sensor_b = document.getElementById("plant_" + i + "_sensor_b") as HTMLInputElement;
|
||||||
|
plant_sensor_b.checked = current.plants[i].sensor_b;
|
||||||
|
let plant_sensor_p = document.getElementById("plant_" + i + "_sensor_p") as HTMLInputElement;
|
||||||
|
plant_sensor_p.checked = current.plants[i].sensor_p;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateJson() {
|
||||||
|
var current: PlantConfig = {
|
||||||
|
max_consecutive_pump_count: +max_consecutive_pump_count.value,
|
||||||
|
mqtt_url: mqtt_url.value,
|
||||||
|
base_topic: base_topic.value,
|
||||||
|
tank_allow_pumping_if_sensor_error: tank_allow_pumping_if_sensor_error.checked,
|
||||||
|
tank_sensor_enabled: tank_sensor_enabled.checked,
|
||||||
|
tank_useable_ml: +tank_useable_ml.value,
|
||||||
|
tank_warn_percent: +tank_warn_percent.value,
|
||||||
|
tank_empty_percent: +tank_empty_percent.value,
|
||||||
|
tank_full_percent: +tank_full_percent.value,
|
||||||
|
night_lamp_hour_start: +night_lamp_time_start.value,
|
||||||
|
night_lamp_hour_end: +night_lamp_time_end.value,
|
||||||
|
night_lamp_only_when_dark: night_lamp_only_when_dark.checked,
|
||||||
|
plants: []
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let i = 0; i < plantcount; i++) {
|
||||||
|
console.log("Adding plant " + i)
|
||||||
|
let plant_mode = document.getElementById("plant_" + i + "_mode") as HTMLSelectElement;
|
||||||
|
let plant_target_moisture = document.getElementById("plant_" + i + "_target_moisture") as HTMLInputElement;
|
||||||
|
let plant_pump_time_s = document.getElementById("plant_" + i + "_pump_time_s") as HTMLInputElement;
|
||||||
|
let plant_pump_cooldown_min = document.getElementById("plant_" + i + "_pump_cooldown_min") as HTMLInputElement;
|
||||||
|
let plant_pump_hour_start = document.getElementById("plant_" + i + "_pump_hour_start") as HTMLInputElement;
|
||||||
|
let plant_pump_hour_end = document.getElementById("plant_" + i + "_pump_hour_end") as HTMLInputElement;
|
||||||
|
let plant_sensor_b = document.getElementById("plant_" + i + "_sensor_b") as HTMLInputElement;
|
||||||
|
let plant_sensor_p = document.getElementById("plant_" + i + "_sensor_p") as HTMLInputElement;
|
||||||
|
|
||||||
|
current.plants[i] = {
|
||||||
|
mode: plant_mode.value,
|
||||||
|
target_moisture: +plant_target_moisture.value,
|
||||||
|
pump_time_s: +plant_pump_time_s.value,
|
||||||
|
pump_cooldown_min: +plant_pump_cooldown_min.value,
|
||||||
|
pump_hour_start: +plant_pump_hour_start.value,
|
||||||
|
pump_hour_end: +plant_pump_hour_end.value,
|
||||||
|
sensor_b: plant_sensor_b.checked,
|
||||||
|
sensor_p: plant_sensor_p.checked
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sync(current);
|
||||||
|
console.log(current);
|
||||||
|
|
||||||
|
var pretty = JSON.stringify(current, undefined, 1);
|
||||||
|
json.value = pretty;
|
||||||
|
}
|
||||||
|
|
||||||
|
let submitFormBtn = document.getElementById("submit") as HTMLButtonElement
|
||||||
|
let submit_status = document.getElementById("submit_status")
|
||||||
|
|
||||||
|
if (submitFormBtn) {
|
||||||
|
|
||||||
|
submitFormBtn.onclick = function (){
|
||||||
|
updateJson()
|
||||||
|
fetch("/set_config", {
|
||||||
|
method :"POST",
|
||||||
|
body: json.value
|
||||||
|
})
|
||||||
|
.then(response => response.text())
|
||||||
|
.then(text => submit_status.innerText = text)
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
fetch("/get_config")
|
||||||
|
.then(response => response.json())
|
||||||
|
.then(json => { createForm(json as PlantConfig); }
|
||||||
|
)
|
||||||
|
})
|
||||||
|
if (plants) {
|
||||||
|
fromWrapper()
|
||||||
|
}
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user