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 ""))
|
||||||
)
|
)
|
||||||
|
@ -1,41 +1,16 @@
|
|||||||
; PlatformIO Project Configuration File
|
|
||||||
;
|
|
||||||
; Build options: build flags, source filter
|
|
||||||
; Upload options: custom upload port, speed and extra flags
|
|
||||||
; Library options: dependencies, extra library storages
|
|
||||||
; Advanced options: extra scripting
|
|
||||||
;
|
|
||||||
; Please visit documentation for the other options and examples
|
|
||||||
; https://docs.platformio.org/page/projectconf.html
|
|
||||||
|
|
||||||
[env:esp32doit-devkit-v1]
|
[env:esp32doit-devkit-v1]
|
||||||
platform = espressif32@6.3.2
|
platform = espressif32
|
||||||
board = esp32doit-devkit-v1
|
board = esp32doit-devkit-v1
|
||||||
framework = arduino
|
framework = arduino
|
||||||
build_flags = -DPIO_FRAMEWORK_ARDUINO_LWIP2_LOW_MEMORY
|
build_flags = -DPIO_FRAMEWORK_ARDUINO_LWIP2_LOW_MEMORY
|
||||||
-DPLANT0_SENSORTYPE=FREQUENCY_MOD_RESISTANCE_PROBE
|
|
||||||
-DPLANT1_SENSORTYPE=FREQUENCY_MOD_RESISTANCE_PROBE
|
|
||||||
-DPLANT2_SENSORTYPE=FREQUENCY_MOD_RESISTANCE_PROBE
|
|
||||||
-DPLANT3_SENSORTYPE=FREQUENCY_MOD_RESISTANCE_PROBE
|
|
||||||
-DPLANT4_SENSORTYPE=FREQUENCY_MOD_RESISTANCE_PROBE
|
|
||||||
-DPLANT5_SENSORTYPE=FREQUENCY_MOD_RESISTANCE_PROBE
|
|
||||||
-DPLANT6_SENSORTYPE=FREQUENCY_MOD_RESISTANCE_PROBE
|
|
||||||
-DTIMED_LIGHT_PIN=CUSTOM1_PIN5
|
|
||||||
-DFLOWMETER_PIN=CUSTOM1_PIN1
|
|
||||||
-DANALOG_WATER=GPIO_NUM_34
|
|
||||||
|
|
||||||
board_build.partitions = defaultWithSmallerSpiffs.csv
|
board_build.partitions = defaultWithSmallerSpiffs.csv
|
||||||
|
|
||||||
;#https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/partition-tables.html
|
|
||||||
|
|
||||||
|
|
||||||
; the latest development brankitchen-lightch (convention V3.0.x)
|
; the latest development brankitchen-lightch (convention V3.0.x)
|
||||||
lib_deps = bblanchon/ArduinoJson@^6.20.1
|
lib_deps = ArduinoJson@6.16.1
|
||||||
paulstoffregen/OneWire@^2.3.6
|
OneWire
|
||||||
milesburton/DallasTemperature@^3.11.0
|
DallasTemperature
|
||||||
pololu/VL53L0X@^1.3.1
|
pololu/VL53L0X
|
||||||
https://github.com/homieiot/homie-esp8266.git#develop
|
https://github.com/homieiot/homie-esp8266.git#develop
|
||||||
|
|
||||||
[platformio]
|
; add additional parameter, like the upload port
|
||||||
|
upload_port=/dev/ttyUSB1
|
||||||
extra_configs = custom_platformio.ini
|
|
||||||
|
@ -17,8 +17,6 @@ if [ ! -f $firmwareFile ]; then
|
|||||||
echo "the script $0 must be started in host/ sub directory"
|
echo "the script $0 must be started in host/ sub directory"
|
||||||
exit 2
|
exit 2
|
||||||
fi
|
fi
|
||||||
echo "Firmware changed:"
|
|
||||||
ls -l $firmwareFile
|
|
||||||
|
|
||||||
mosquitto_pub -h $mqttHost -t "${mqttPrefix}${homieId}/stay/alive/set" -m "1" -r
|
mosquitto_pub -h $mqttHost -t "${mqttPrefix}${homieId}/stay/alive/set" -m "1" -r
|
||||||
echo "Waiting ..."
|
echo "Waiting ..."
|
||||||
|
@ -54,15 +54,6 @@
|
|||||||
#define SENSOR_PLANT5 GPIO_NUM_39 /**< SENSOR_VIN */
|
#define SENSOR_PLANT5 GPIO_NUM_39 /**< SENSOR_VIN */
|
||||||
#define SENSOR_PLANT6 GPIO_NUM_36 /**< SENSOR_VP */
|
#define SENSOR_PLANT6 GPIO_NUM_36 /**< SENSOR_VP */
|
||||||
|
|
||||||
#ifdef HWREVISION07
|
|
||||||
#define OUTPUT_PUMP0 GPIO_NUM_17 /**< GPIO 17 */
|
|
||||||
#define OUTPUT_PUMP1 GPIO_NUM_5 /**< GPIO 5 */
|
|
||||||
#define OUTPUT_PUMP2 GPIO_NUM_18 /**< GPIO 18 */
|
|
||||||
#define OUTPUT_PUMP3 GPIO_NUM_19 /**< GPIO 19 */
|
|
||||||
#define OUTPUT_PUMP4 GPIO_NUM_21 /**< GPIO 21 */
|
|
||||||
#define OUTPUT_PUMP5 GPIO_NUM_22 /**< GPIO 22 */
|
|
||||||
#define OUTPUT_PUMP6 GPIO_NUM_23 /**< GPIO 23 */
|
|
||||||
#else
|
|
||||||
#define OUTPUT_PUMP0 GPIO_NUM_15 /**< GPIO 15 */
|
#define OUTPUT_PUMP0 GPIO_NUM_15 /**< GPIO 15 */
|
||||||
#define OUTPUT_PUMP1 GPIO_NUM_5 /**< GPIO 5 */
|
#define OUTPUT_PUMP1 GPIO_NUM_5 /**< GPIO 5 */
|
||||||
#define OUTPUT_PUMP2 GPIO_NUM_18 /**< GPIO 18 */
|
#define OUTPUT_PUMP2 GPIO_NUM_18 /**< GPIO 18 */
|
||||||
@ -70,35 +61,18 @@
|
|||||||
#define OUTPUT_PUMP4 GPIO_NUM_21 /**< GPIO 21 */
|
#define OUTPUT_PUMP4 GPIO_NUM_21 /**< GPIO 21 */
|
||||||
#define OUTPUT_PUMP5 GPIO_NUM_22 /**< GPIO 22 */
|
#define OUTPUT_PUMP5 GPIO_NUM_22 /**< GPIO 22 */
|
||||||
#define OUTPUT_PUMP6 GPIO_NUM_23 /**< GPIO 23 */
|
#define OUTPUT_PUMP6 GPIO_NUM_23 /**< GPIO 23 */
|
||||||
#endif
|
|
||||||
|
|
||||||
#define OUTPUT_ENABLE_PUMP GPIO_NUM_13 /**< GPIO 13 - Enable Pumps */
|
|
||||||
#ifdef HWREVISION07
|
|
||||||
#define OUTPUT_ENABLE_SENSOR GPIO_NUM_16 /**< GPIO 16 - Enable Sensors */
|
|
||||||
#define SENSOR_ONEWIRE GPIO_NUM_2 /** GPIO 02 - Temperatur sensor, Battery and other cool onewire stuff */
|
|
||||||
#else
|
|
||||||
#define OUTPUT_ENABLE_SENSOR GPIO_NUM_14 /**< GPIO 14 - Enable Sensors */
|
#define OUTPUT_ENABLE_SENSOR GPIO_NUM_14 /**< GPIO 14 - Enable Sensors */
|
||||||
#define SENSOR_ONEWIRE GPIO_NUM_4 /**< GPIO 12 - Temperatur sensor, Battery and other cool onewire stuff */
|
#define OUTPUT_ENABLE_PUMP GPIO_NUM_13 /**< GPIO 13 - Enable Pumps */
|
||||||
#endif
|
|
||||||
#ifdef ANALOG_WATER
|
|
||||||
#define SENSOR_TANK_ANALOG ANALOG_WATER /**< GPIO 34 - analog water sensor (GPIO_NUM_34) */
|
|
||||||
#else
|
|
||||||
#ifdef HWREVISION07
|
|
||||||
|
|
||||||
#else
|
#define SENSOR_ONEWIRE GPIO_NUM_4 /**< GPIO 12 - Temperatur sensor, Battery and other cool onewire stuff */
|
||||||
#define SENSOR_TANK_SDA GPIO_NUM_17 /**< GPIO 17 - water sensor SDA */
|
#define SENSOR_TANK_SDA GPIO_NUM_17 /**< GPIO 17 - water sensor SDA */
|
||||||
#define SENSOR_TANK_SCL GPIO_NUM_16 /**< GPIO 16 - water sensor SCL */
|
#define SENSOR_TANK_SCL GPIO_NUM_16 /**< GPIO 16 - water sensor SCL */
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
#define BUTTON GPIO_NUM_0 /**< GPIO 0 - Fix button of NodeMCU */
|
#define BUTTON GPIO_NUM_0 /**< GPIO 0 - Fix button of NodeMCU */
|
||||||
|
|
||||||
#define CUSTOM1_PIN1 GPIO_NUM_34 /** direct gpio */
|
#define CUSTOM1_PIN1 GPIO_NUM_34 /** direct gpio */
|
||||||
#define CUSTOM1_PIN3 GPIO_NUM_35 /** direct gpio */
|
#define CUSTOM1_PIN3 GPIO_NUM_35 /** direct gpio */
|
||||||
#ifdef HWREVISION07
|
|
||||||
#define CUSTOM1_PIN5 GPIO_NUM_4 /** mosfet controlled */
|
|
||||||
#else
|
|
||||||
#define CUSTOM1_PIN5 GPIO_NUM_2 /** mosfet controlled */
|
#define CUSTOM1_PIN5 GPIO_NUM_2 /** mosfet controlled */
|
||||||
#endif
|
|
||||||
#define CUSTOM1_PIN7 GPIO_NUM_12 /** mosfet controlled */
|
#define CUSTOM1_PIN7 GPIO_NUM_12 /** mosfet controlled */
|
||||||
|
|
||||||
/* @} */
|
/* @} */
|
||||||
@ -111,11 +85,7 @@
|
|||||||
#define FLOWMETER_PULSES_PER_ML 2.2
|
#define FLOWMETER_PULSES_PER_ML 2.2
|
||||||
#define FIRMWARE_FEATURE1 "Flow"
|
#define FIRMWARE_FEATURE1 "Flow"
|
||||||
#else
|
#else
|
||||||
#ifdef ANALOG_WATER
|
|
||||||
#define FIRMWARE_FEATURE1 "Water"
|
|
||||||
#else
|
|
||||||
#define FIRMWARE_FEATURE1 ""
|
#define FIRMWARE_FEATURE1 ""
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef TIMED_LIGHT_PIN
|
#ifdef TIMED_LIGHT_PIN
|
||||||
@ -124,16 +94,9 @@
|
|||||||
#define FIRMWARE_FEATURE2 ""
|
#define FIRMWARE_FEATURE2 ""
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#define FIRMWARE_BASENAME "PlantControl"
|
#define FIRMWARE_BASENAME "PlantControl"
|
||||||
#define FIRMWARE_NAME FIRMWARE_BASENAME FIRMWARE_FEATURE1 FIRMWARE_FEATURE2
|
#define FIRMWARE_NAME FIRMWARE_BASENAME FIRMWARE_FEATURE1 FIRMWARE_FEATURE2
|
||||||
#define FIRMWARE_VERSIONNMUMBER "3.013"
|
#define FIRMWARE_VERSION "3.01 HW0.10b"
|
||||||
|
|
||||||
#ifdef HWREVISION07
|
|
||||||
#define FIRMWARE_VERSION FIRMWARE_VERSIONNMUMBER " HW0.7"
|
|
||||||
#else
|
|
||||||
#define FIRMWARE_VERSION FIRMWARE_VERSIONNMUMBER " HW0.10b"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define MOIST_SENSOR_MAX_FRQ 5200 // 60kHz (500Hz margin)
|
#define MOIST_SENSOR_MAX_FRQ 5200 // 60kHz (500Hz margin)
|
||||||
#define MOIST_SENSOR_MIN_FRQ 500 // 0.5kHz (500Hz margin)
|
#define MOIST_SENSOR_MIN_FRQ 500 // 0.5kHz (500Hz margin)
|
||||||
@ -141,29 +104,21 @@
|
|||||||
#define ANALOG_SENSOR_MAX_MV 1300 //successive approximation of good range
|
#define ANALOG_SENSOR_MAX_MV 1300 //successive approximation of good range
|
||||||
#define ANALOG_SENSOR_MIN_MV 100 //successive approximation of good range
|
#define ANALOG_SENSOR_MIN_MV 100 //successive approximation of good range
|
||||||
|
|
||||||
#ifdef HWREVISION07
|
#define SOLAR_VOLT_FACTOR 11
|
||||||
#define SOLAR_VOLT_FACTOR (4.0306f) /**< 100k and 33k voltage dividor */
|
|
||||||
#else
|
|
||||||
#define SOLAR_VOLT_FACTOR (11.0f) /**< Configuratiion before dd3888ba52f51338788820a933c0a6f4bee78ed5 */
|
|
||||||
#endif
|
|
||||||
#define BATTSENSOR_INDEX_SOLAR 0
|
#define BATTSENSOR_INDEX_SOLAR 0
|
||||||
#define BATTSENSOR_INDEX_BATTERY 1
|
#define BATTSENSOR_INDEX_BATTERY 1
|
||||||
|
|
||||||
#define MQTT_TIMEOUT (1000 * 60) /**< After 10 seconds, MQTT is expected to be connected */
|
#define MQTT_TIMEOUT (1000 * 60) /**< After 10 seconds, MQTT is expected to be connected */
|
||||||
#define ESP_STALE_TIMEOUT (MQTT_TIMEOUT+(700*1000))
|
#define ESP_STALE_TIMEOUT (MQTT_TIMEOUT+(700*1000))
|
||||||
#define ESP_ADC_MAX 4095
|
|
||||||
|
|
||||||
#define MAX_PLANTS 7
|
#define MAX_PLANTS 7
|
||||||
#define SOLAR_CHARGE_MIN_VOLTAGE 7 /**< Sun is rising (morning detected) */
|
#define SOLAR_CHARGE_MIN_VOLTAGE 7 /**< Sun is rising (morning detected) */
|
||||||
#define SOLAR_CHARGE_MAX_VOLTAGE 9 /**< Sun is shining (noon) */
|
#define SOLAR_CHARGE_MAX_VOLTAGE 9 /**< Sun is shining (noon) */
|
||||||
#define SOLAR_MAX_VOLTAGE_POSSIBLE 100 /**< higher values are treated as not connected sensor */
|
#define SOLAR_MAX_VOLTAGE_POSSIBLE 100 /**< higher values are treated as not connected sensor */
|
||||||
#define VOLT_MAX_BATT 4.2f
|
#define VOLT_MAX_BATT 4.2f
|
||||||
#define VOLT_SENSORS_BATT 3.6f /**< Minimum battery voltage for sensor (and pump) usage */
|
#define VOLT_MIN_BATT 3.0f /**< Minimum battery voltage for normal operation */
|
||||||
#define VOLT_MIN_BATT 3.4f /**< Minimum battery voltage for normal operation */
|
#define LOWVOLT_SLEEP_FACTOR 3 /**< Factor for nightsleep delay, if the battery drops below minimum (@see VOLT_MIN_BATT) */
|
||||||
#define LOWVOLT_SLEEP_FACTOR 6 /**< Factor for nightsleep delay, if the battery drops below minimum (@see VOLT_MIN_BATT) */
|
#define LOWVOLT_SLEEP_MINIMUM 1800 /**< At low voltage sleep at least for 30 minutes */
|
||||||
#define LOWVOLT_SLEEP_MINIMUM 7200 /**< At low voltage sleep at least for 120 minutes (two hours) */
|
|
||||||
|
|
||||||
#define WATER_LEVEL_MINIMUM 500 /**< Minimum Analog value (1023 is the maximum)*/
|
|
||||||
|
|
||||||
#define MAX_CONFIG_SETTING_ITEMS 100 /**< Parameter, that can be configured in Homie */
|
#define MAX_CONFIG_SETTING_ITEMS 100 /**< Parameter, that can be configured in Homie */
|
||||||
#define MAX_JSON_CONFIG_FILE_SIZE_CUSTOM 2500
|
#define MAX_JSON_CONFIG_FILE_SIZE_CUSTOM 2500
|
||||||
|
@ -75,6 +75,9 @@ HomieNode stayAlive("stay", "alive", "alive"); /**< Necessary for Mqtt Active C
|
|||||||
HomieSetting<long> deepSleepTime("sleep", "time in seconds to sleep");
|
HomieSetting<long> deepSleepTime("sleep", "time in seconds to sleep");
|
||||||
HomieSetting<long> deepSleepNightTime("nightsleep", "time in seconds to sleep (0 uses same setting: deepsleep at night, too)");
|
HomieSetting<long> deepSleepNightTime("nightsleep", "time in seconds to sleep (0 uses same setting: deepsleep at night, too)");
|
||||||
HomieSetting<long> pumpIneffectiveWarning("pumpConsecutiveWarn", "if the pump was triggered this amount directly after each cooldown, without resolving dryness, warn");
|
HomieSetting<long> pumpIneffectiveWarning("pumpConsecutiveWarn", "if the pump was triggered this amount directly after each cooldown, without resolving dryness, warn");
|
||||||
|
HomieSetting<long> waterLevelMax("tankmax", "distance (mm) at maximum water level");
|
||||||
|
HomieSetting<long> waterLevelMin("tankmin", "distance (mm) at minimum water level (pumps still covered)");
|
||||||
|
HomieSetting<long> waterLevelWarn("tankwarn", "warn (mm) if below this water level %");
|
||||||
HomieSetting<long> waterLevelVol("tankVolume", "(ml) between minimum and maximum");
|
HomieSetting<long> waterLevelVol("tankVolume", "(ml) between minimum and maximum");
|
||||||
HomieSetting<const char *> lipoSensorAddr("lipoDSAddr", "1wire address for lipo temperature sensor");
|
HomieSetting<const char *> lipoSensorAddr("lipoDSAddr", "1wire address for lipo temperature sensor");
|
||||||
HomieSetting<const char *> waterSensorAddr("tankDSAddr", "1wire address for water temperature sensor");
|
HomieSetting<const char *> waterSensorAddr("tankDSAddr", "1wire address for water temperature sensor");
|
||||||
|
@ -46,10 +46,5 @@
|
|||||||
#define LOG_SLEEP_CYCLE 102
|
#define LOG_SLEEP_CYCLE 102
|
||||||
#define LOG_MISSING_PUMP -4
|
#define LOG_MISSING_PUMP -4
|
||||||
#define LOG_BOOT_ERROR_DETECTION 10000
|
#define LOG_BOOT_ERROR_DETECTION 10000
|
||||||
#define LOG_BOOT_ERROR_IMG_UNDEFINED (LOG_BOOT_ERROR_DETECTION + 1)
|
|
||||||
#define LOG_BOOT_ERROR_IMG_NEW (LOG_BOOT_ERROR_DETECTION + 2)
|
|
||||||
#define LOG_BOOT_ERROR_IMG_INVALID (LOG_BOOT_ERROR_DETECTION + 3)
|
|
||||||
#define LOG_BOOT_ERROR_IMG_VALID (LOG_BOOT_ERROR_DETECTION + 4)
|
|
||||||
#define LOG_BOOT_ERROR_IMG_PENDING_VERIFY (LOG_BOOT_ERROR_DETECTION + 5)
|
|
||||||
#define LOG_SOLAR_CHARGER_MISSING 300
|
#define LOG_SOLAR_CHARGER_MISSING 300
|
||||||
#endif
|
#endif
|
||||||
|
@ -22,9 +22,6 @@ build_flags = -DPIO_FRAMEWORK_ARDUINO_LWIP2_LOW_MEMORY
|
|||||||
-DPLANT6_SENSORTYPE=FREQUENCY_MOD_RESISTANCE_PROBE
|
-DPLANT6_SENSORTYPE=FREQUENCY_MOD_RESISTANCE_PROBE
|
||||||
-DTIMED_LIGHT_PIN=CUSTOM1_PIN5
|
-DTIMED_LIGHT_PIN=CUSTOM1_PIN5
|
||||||
-DFLOWMETER_PIN=CUSTOM1_PIN1
|
-DFLOWMETER_PIN=CUSTOM1_PIN1
|
||||||
-DANALOG_WATER=GPIO_NUM_34
|
|
||||||
; Optional: Compatibilitymode for hardware revision 0.7
|
|
||||||
;-DHWREVISION07=1
|
|
||||||
|
|
||||||
board_build.partitions = defaultWithSmallerSpiffs.csv
|
board_build.partitions = defaultWithSmallerSpiffs.csv
|
||||||
|
|
||||||
|
@ -54,10 +54,8 @@ void Plant::init(void)
|
|||||||
{ return ((candidate >= 0) && (candidate <= 100)); });
|
{ return ((candidate >= 0) && (candidate <= 100)); });
|
||||||
|
|
||||||
/* Initialize Hardware */
|
/* Initialize Hardware */
|
||||||
pinMode(this->mPinPump, OUTPUT);
|
|
||||||
digitalWrite(this->mPinPump, LOW);
|
|
||||||
ledcSetup(this->mPlantId, PWM_FREQ, PWM_BITS);
|
ledcSetup(this->mPlantId, PWM_FREQ, PWM_BITS);
|
||||||
ledcAttachPin(this->mPinPump, this->mPlantId);
|
ledcAttachPin(mPinPump, this->mPlantId);
|
||||||
ledcWrite(this->mPlantId, 0);
|
ledcWrite(this->mPlantId, 0);
|
||||||
pinMode(this->mPinSensor, INPUT);
|
pinMode(this->mPinSensor, INPUT);
|
||||||
}
|
}
|
||||||
|
@ -51,10 +51,7 @@ extern "C" bool verifyRollbackLater(){
|
|||||||
* DEFINES
|
* DEFINES
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
#define AMOUNT_SENOR_QUERYS 8
|
#define AMOUNT_SENOR_QUERYS 8
|
||||||
#ifdef ANALOG_WATER
|
|
||||||
#else
|
|
||||||
#define MAX_TANK_DEPTH 5000
|
#define MAX_TANK_DEPTH 5000
|
||||||
#endif
|
|
||||||
#define REBOOT_LOOP_DETECTION_ERROR 5
|
#define REBOOT_LOOP_DETECTION_ERROR 5
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
@ -80,9 +77,9 @@ RTC_DATA_ATTR long consecutiveWateringPlant[MAX_PLANTS] = {0};
|
|||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* LOCAL VARIABLES
|
* LOCAL VARIABLES
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
bool volatile vmDownloadMode = false; /**< Controller must not sleep */
|
bool volatile mDownloadMode = false; /**< Controller must not sleep */
|
||||||
bool volatile vmSensorsRead = false; /**< Sensors are read without Wifi or MQTT */
|
bool volatile mSensorsRead = false; /**< Sensors are read without Wifi or MQTT */
|
||||||
int volatile vmPumpToRun = -1; /** pump to run at the end of the cycle */
|
int volatile pumpToRun = -1; /** pump to run at the end of the cycle */
|
||||||
int volatile selfTestPumpRun = -1; /** pump to run at the end of the cycle */
|
int volatile selfTestPumpRun = -1; /** pump to run at the end of the cycle */
|
||||||
|
|
||||||
bool mConfigured = false;
|
bool mConfigured = false;
|
||||||
@ -151,23 +148,23 @@ void finsihedCycleSucessfully()
|
|||||||
esp_ota_img_states_t ota_state;
|
esp_ota_img_states_t ota_state;
|
||||||
if (esp_ota_get_state_partition(running, &ota_state) == ESP_OK)
|
if (esp_ota_get_state_partition(running, &ota_state) == ESP_OK)
|
||||||
{
|
{
|
||||||
log(LOG_LEVEL_DEBUG, "Get State Partition was Successfull", LOG_BOOT_ERROR_DETECTION);
|
log(LOG_LEVEL_INFO, "Get State Partition was Successfull", LOG_BOOT_ERROR_DETECTION);
|
||||||
|
|
||||||
if(ota_state == ESP_OTA_IMG_UNDEFINED){
|
if(ota_state == ESP_OTA_IMG_UNDEFINED){
|
||||||
log(LOG_LEVEL_DEBUG, "ESP_OTA_IMG_UNDEFINED should not happen with rollback", LOG_BOOT_ERROR_IMG_UNDEFINED);
|
log(LOG_LEVEL_INFO, "ESP_OTA_IMG_UNDEFINED should not happen with rollback", LOG_BOOT_ERROR_DETECTION);
|
||||||
}
|
}
|
||||||
if(ota_state == ESP_OTA_IMG_NEW){
|
if(ota_state == ESP_OTA_IMG_NEW){
|
||||||
log(LOG_LEVEL_DEBUG, "ESP_OTA_IMG_NEW", LOG_BOOT_ERROR_IMG_NEW);
|
log(LOG_LEVEL_INFO, "ESP_OTA_IMG_NEW", LOG_BOOT_ERROR_DETECTION);
|
||||||
}
|
}
|
||||||
if(ota_state == ESP_OTA_IMG_INVALID){
|
if(ota_state == ESP_OTA_IMG_INVALID){
|
||||||
log(LOG_LEVEL_DEBUG, "ESP_OTA_IMG_INVALID", LOG_BOOT_ERROR_IMG_INVALID);
|
log(LOG_LEVEL_INFO, "ESP_OTA_IMG_INVALID", LOG_BOOT_ERROR_DETECTION);
|
||||||
}
|
}
|
||||||
if(ota_state == ESP_OTA_IMG_VALID){
|
if(ota_state == ESP_OTA_IMG_VALID){
|
||||||
log(LOG_LEVEL_DEBUG, "ESP_OTA_IMG_VALID", LOG_BOOT_ERROR_IMG_VALID);
|
log(LOG_LEVEL_INFO, "ESP_OTA_IMG_VALID", LOG_BOOT_ERROR_DETECTION);
|
||||||
}
|
}
|
||||||
if (ota_state == ESP_OTA_IMG_PENDING_VERIFY)
|
if (ota_state == ESP_OTA_IMG_PENDING_VERIFY)
|
||||||
{
|
{
|
||||||
log(LOG_LEVEL_DEBUG, "ESP_OTA_IMG_PENDING_VERIFY Diagnostics completed successfully! Marking as valid", LOG_BOOT_ERROR_IMG_PENDING_VERIFY);
|
log(LOG_LEVEL_INFO, "ESP_OTA_IMG_PENDING_VERIFY Diagnostics completed successfully! Marking as valid", LOG_BOOT_ERROR_DETECTION);
|
||||||
esp_ota_mark_app_valid_cancel_rollback();
|
esp_ota_mark_app_valid_cancel_rollback();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -175,11 +172,11 @@ void finsihedCycleSucessfully()
|
|||||||
|
|
||||||
void espDeepSleep(bool afterPump = false)
|
void espDeepSleep(bool afterPump = false)
|
||||||
{
|
{
|
||||||
/* download mode or normal operation should restore device status*/
|
if (mDownloadMode)
|
||||||
finsihedCycleSucessfully();
|
|
||||||
if (vmDownloadMode)
|
|
||||||
{
|
{
|
||||||
log(LOG_LEVEL_DEBUG, "abort deepsleep, DownloadMode active", LOG_DEBUG_CODE);
|
log(LOG_LEVEL_DEBUG, "abort deepsleep, DownloadMode active", LOG_DEBUG_CODE);
|
||||||
|
// if we manage to get to the download mode, the device can be restored
|
||||||
|
finsihedCycleSucessfully();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (aliveWasRead())
|
if (aliveWasRead())
|
||||||
@ -204,7 +201,7 @@ void espDeepSleep(bool afterPump = false)
|
|||||||
|
|
||||||
esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_ON);
|
esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_ON);
|
||||||
|
|
||||||
unsigned long secondsToSleep = -1;
|
long secondsToSleep = -1;
|
||||||
|
|
||||||
if (afterPump)
|
if (afterPump)
|
||||||
{
|
{
|
||||||
@ -213,8 +210,9 @@ void espDeepSleep(bool afterPump = false)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ( ((int) (mBatteryVoltage * 100)) < ((int) (VOLT_MIN_BATT * 100)) )
|
if (mBatteryVoltage < VOLT_MIN_BATT)
|
||||||
{
|
{
|
||||||
|
log(LOG_LEVEL_INFO, String(String(mBatteryVoltage) + "V! Almost empty -> deepSleepNight " + String(LOWVOLT_SLEEP_FACTOR)) + " times", LOG_SLEEP_LOWVOLTAGE);
|
||||||
/* use the largest sleeping duration */
|
/* use the largest sleeping duration */
|
||||||
if (deepSleepNightTime.get() > deepSleepTime.get()) {
|
if (deepSleepNightTime.get() > deepSleepTime.get()) {
|
||||||
secondsToSleep = (deepSleepNightTime.get() * LOWVOLT_SLEEP_FACTOR);
|
secondsToSleep = (deepSleepNightTime.get() * LOWVOLT_SLEEP_FACTOR);
|
||||||
@ -225,7 +223,6 @@ void espDeepSleep(bool afterPump = false)
|
|||||||
if (secondsToSleep < LOWVOLT_SLEEP_MINIMUM) {
|
if (secondsToSleep < LOWVOLT_SLEEP_MINIMUM) {
|
||||||
secondsToSleep = LOWVOLT_SLEEP_MINIMUM;
|
secondsToSleep = LOWVOLT_SLEEP_MINIMUM;
|
||||||
}
|
}
|
||||||
log(LOG_LEVEL_INFO, String(String(mBatteryVoltage) + "V! Almost empty -> deepSleepNight " + String(LOWVOLT_SLEEP_FACTOR)) + " times (" + secondsToSleep + "s)", LOG_SLEEP_LOWVOLTAGE);
|
|
||||||
}
|
}
|
||||||
else if (mSolarVoltage < SOLAR_CHARGE_MIN_VOLTAGE)
|
else if (mSolarVoltage < SOLAR_CHARGE_MIN_VOLTAGE)
|
||||||
{
|
{
|
||||||
@ -239,14 +236,12 @@ void espDeepSleep(bool afterPump = false)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#define SECOND2USECOND_FACTOR (1000U * 1000U)
|
finsihedCycleSucessfully();
|
||||||
|
|
||||||
/* sleep always at least one second */
|
/* sleep always at least one second */
|
||||||
if (secondsToSleep <= 0) {
|
if (secondsToSleep < 0) {
|
||||||
secondsToSleep = (unsigned long) (UINT64_MAX / SECOND2USECOND_FACTOR);
|
secondsToSleep = 1;
|
||||||
}
|
}
|
||||||
esp_sleep_enable_timer_wakeup((secondsToSleep * SECOND2USECOND_FACTOR));
|
esp_sleep_enable_timer_wakeup((secondsToSleep * 1000U * 1000U));
|
||||||
#undef SECOND2USECOND_FACTOR
|
|
||||||
if (aliveWasRead())
|
if (aliveWasRead())
|
||||||
{
|
{
|
||||||
delay(1000);
|
delay(1000);
|
||||||
@ -359,35 +354,68 @@ void readPowerSwitchedSensors()
|
|||||||
Plant plant = mPlants[i];
|
Plant plant = mPlants[i];
|
||||||
switch (plant.getSensorMode())
|
switch (plant.getSensorMode())
|
||||||
{
|
{
|
||||||
case FREQUENCY_MOD_RESISTANCE_PROBE:
|
case FREQUENCY_MOD_RESISTANCE_PROBE: {
|
||||||
Serial << "Plant " << i << " measurement: " << mPlants[i].getCurrentMoistureRaw() << " hz " << mPlants[i].getCurrentMoisturePCT() << "%" << endl;
|
Serial << "Plant " << i << " measurement: " << mPlants[i].getCurrentMoistureRaw() << " hz " << mPlants[i].getCurrentMoisturePCT() << "%" << endl;
|
||||||
break;
|
break;
|
||||||
case ANALOG_RESISTANCE_PROBE :
|
}
|
||||||
|
case ANALOG_RESISTANCE_PROBE : {
|
||||||
Serial << "Plant " << i << " measurement: " << mPlants[i].getCurrentMoistureRaw() << " mV " << mPlants[i].getCurrentMoisturePCT() << "%" << endl;
|
Serial << "Plant " << i << " measurement: " << mPlants[i].getCurrentMoistureRaw() << " mV " << mPlants[i].getCurrentMoisturePCT() << "%" << endl;
|
||||||
break;
|
break;
|
||||||
default:
|
}
|
||||||
case NONE:
|
case NONE : {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Wire.begin(SENSOR_TANK_SDA, SENSOR_TANK_SCL);
|
||||||
|
// Source: https://www.st.com/resource/en/datasheet/vl53l0x.pdf
|
||||||
|
tankSensor.setAddress(0x52);
|
||||||
|
tankSensor.setBus(&Wire);
|
||||||
|
delay(50);
|
||||||
|
Serial << "Distance sensor init" << endl;
|
||||||
|
long start = millis();
|
||||||
|
bool distanceReady = false;
|
||||||
|
while ((start + WATERSENSOR_TIMEOUT) > millis())
|
||||||
|
{
|
||||||
|
if (tankSensor.init())
|
||||||
|
{
|
||||||
|
distanceReady = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
else
|
||||||
|
|
||||||
#ifdef ANALOG_WATER
|
|
||||||
Serial << "Analog water measurement " << WATERSENSOR_CYCLE << " cycles.." << endl;
|
|
||||||
Serial.flush();
|
|
||||||
|
|
||||||
/* Read analog Water sensor*/
|
|
||||||
for(int i=0; i < WATERSENSOR_CYCLE; i++)
|
|
||||||
{
|
{
|
||||||
int value = analogRead(SENSOR_TANK_ANALOG);
|
delay(200);
|
||||||
Serial << "Round " << i << " measurement: " << value << " mV " << endl;
|
}
|
||||||
waterRawSensor.add(value);
|
}
|
||||||
delay(5);
|
if (distanceReady)
|
||||||
|
{
|
||||||
|
waterRawSensor.clear();
|
||||||
|
tankSensor.setSignalRateLimit(0.1);
|
||||||
|
// increase laser pulse periods (defaults are 14 and 10 PCLKs)
|
||||||
|
tankSensor.setVcselPulsePeriod(VL53L0X::VcselPeriodPreRange, 18);
|
||||||
|
tankSensor.setVcselPulsePeriod(VL53L0X::VcselPeriodFinalRange, 14);
|
||||||
|
tankSensor.setMeasurementTimingBudget(200000);
|
||||||
|
Serial << "Distance sensor measuring" << endl;
|
||||||
|
for (int readCnt = 0; readCnt < WATERSENSOR_CYCLE; readCnt++)
|
||||||
|
|
||||||
|
{
|
||||||
|
if (!tankSensor.timeoutOccurred())
|
||||||
|
{
|
||||||
|
uint16_t distance = tankSensor.readRangeSingleMillimeters();
|
||||||
|
if (distance < MAX_TANK_DEPTH)
|
||||||
|
{
|
||||||
|
waterRawSensor.add(distance);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
delay(50);
|
||||||
|
}
|
||||||
|
Serial << "Distance sensor " << waterRawSensor.getMedian() << " mm" << endl;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
log(LOG_LEVEL_WARN, LOG_TANKSENSOR_FAIL_DETECT, LOG_TANKSENSOR_FAIL_DETECT_CODE);
|
||||||
}
|
}
|
||||||
Serial << "Analog water measurement done" << endl;
|
|
||||||
#else
|
|
||||||
Serial << "Analog water measurement deactivated" << endl;
|
|
||||||
#endif
|
|
||||||
Serial.flush();
|
|
||||||
|
|
||||||
/* deactivate the sensors */
|
/* deactivate the sensors */
|
||||||
digitalWrite(OUTPUT_ENABLE_SENSOR, LOW);
|
digitalWrite(OUTPUT_ENABLE_SENSOR, LOW);
|
||||||
@ -403,12 +431,12 @@ void onHomieEvent(const HomieEvent &event)
|
|||||||
case HomieEventType::SENDING_STATISTICS:
|
case HomieEventType::SENDING_STATISTICS:
|
||||||
break;
|
break;
|
||||||
case HomieEventType::MQTT_READY:
|
case HomieEventType::MQTT_READY:
|
||||||
if (vmSensorsRead)
|
if (mSensorsRead)
|
||||||
{
|
{
|
||||||
Serial.printf("Timeout occured... too late!\r\n");
|
Serial.printf("Timeout occured... too late!\r\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
vmSensorsRead = true; // MQTT is working, deactivate timeout logic
|
mSensorsRead = true; // MQTT is working, deactivate timeout logic
|
||||||
|
|
||||||
configTime(UTC_OFFSET_DE, UTF_OFFSET_DE_DST, ntpServer.get());
|
configTime(UTC_OFFSET_DE, UTF_OFFSET_DE_DST, ntpServer.get());
|
||||||
startMQTTRoundtripTest();
|
startMQTTRoundtripTest();
|
||||||
@ -419,7 +447,7 @@ void onHomieEvent(const HomieEvent &event)
|
|||||||
mPlants[i].deactivatePump();
|
mPlants[i].deactivatePump();
|
||||||
}
|
}
|
||||||
otaRunning = true;
|
otaRunning = true;
|
||||||
vmDownloadMode = true;
|
mDownloadMode = true;
|
||||||
break;
|
break;
|
||||||
case HomieEventType::OTA_SUCCESSFUL:
|
case HomieEventType::OTA_SUCCESSFUL:
|
||||||
digitalWrite(OUTPUT_ENABLE_SENSOR, LOW);
|
digitalWrite(OUTPUT_ENABLE_SENSOR, LOW);
|
||||||
@ -436,21 +464,12 @@ int determineNextPump(bool isLowLight)
|
|||||||
int pumpToUse = -1;
|
int pumpToUse = -1;
|
||||||
for (int i = 0; i < MAX_PLANTS; i++)
|
for (int i = 0; i < MAX_PLANTS; i++)
|
||||||
{
|
{
|
||||||
Plant plant = mPlants[i];
|
|
||||||
switch (plant.getSensorMode())
|
|
||||||
{
|
|
||||||
case FREQUENCY_MOD_RESISTANCE_PROBE:
|
|
||||||
log(LOG_LEVEL_DEBUG,
|
|
||||||
String("Plant " + String(i) + " measurement: " + String(plant.getCurrentMoistureRaw()) + " hz " + String(plant.getCurrentMoisturePCT()) + "%"),
|
|
||||||
LOG_DEBUG_CODE);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool wateralarm = consecutiveWateringPlant[i] >= pumpIneffectiveWarning.get();
|
bool wateralarm = consecutiveWateringPlant[i] >= pumpIneffectiveWarning.get();
|
||||||
if (wateralarm)
|
if (wateralarm)
|
||||||
{
|
{
|
||||||
log(LOG_LEVEL_ERROR, String(String(i) + " Plant still dry after " + String(consecutiveWateringPlant[i]) + " watering attempts"), LOG_PUMP_INEFFECTIVE);
|
log(LOG_LEVEL_ERROR, String(String(i) + " Plant still dry after " + String(consecutiveWateringPlant[i]) + " watering attempts"), LOG_PUMP_INEFFECTIVE);
|
||||||
}
|
}
|
||||||
|
Plant plant = mPlants[i];
|
||||||
if (!plant.isPumpTriggerActive())
|
if (!plant.isPumpTriggerActive())
|
||||||
{
|
{
|
||||||
plant.publishState(PLANTSTATE_NUM_DEACTIVATED, PLANTSTATE_STR_DEACTIVATED);
|
plant.publishState(PLANTSTATE_NUM_DEACTIVATED, PLANTSTATE_STR_DEACTIVATED);
|
||||||
@ -511,7 +530,7 @@ int determineNextPump(bool isLowLight)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (vmDownloadMode)
|
if (mDownloadMode)
|
||||||
{
|
{
|
||||||
plant.publishState(PLANTSTATE_NUM_ACTIVE_SUPESSED, PLANTSTATE_STR_ACTIVE_SUPESSED);
|
plant.publishState(PLANTSTATE_NUM_ACTIVE_SUPESSED, PLANTSTATE_STR_ACTIVE_SUPESSED);
|
||||||
}
|
}
|
||||||
@ -571,15 +590,15 @@ bool aliveHandler(const HomieRange &range, const String &value)
|
|||||||
|
|
||||||
if (value.equals("ON") || value.equals("On") || value.equals("1"))
|
if (value.equals("ON") || value.equals("On") || value.equals("1"))
|
||||||
{
|
{
|
||||||
vmDownloadMode = true;
|
mDownloadMode = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (vmDownloadMode)
|
if (mDownloadMode)
|
||||||
{
|
{
|
||||||
esp_restart();
|
esp_restart();
|
||||||
}
|
}
|
||||||
vmDownloadMode = false;
|
mDownloadMode = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@ -656,11 +675,11 @@ void initPumpLogic()
|
|||||||
pcnt_counter_resume(unit);
|
pcnt_counter_resume(unit);
|
||||||
#endif
|
#endif
|
||||||
pumpStartTime = millis();
|
pumpStartTime = millis();
|
||||||
pumpTarget = millis() + (mPlants[vmPumpToRun].getPumpDuration() * 1000);
|
pumpTarget = millis() + (mPlants[pumpToRun].getPumpDuration() * 1000);
|
||||||
#ifdef FLOWMETER_PIN
|
#ifdef FLOWMETER_PIN
|
||||||
log(LOG_LEVEL_INFO, "Starting pump " + String(pumpToRun) + " for " + String(mPlants[pumpToRun].getPumpDuration()) + "s or " + String(pumpTargetMl) + "ml", LOG_PUMP_STARTED_CODE);
|
log(LOG_LEVEL_INFO, "Starting pump " + String(pumpToRun) + " for " + String(mPlants[pumpToRun].getPumpDuration()) + "s or " + String(pumpTargetMl) + "ml", LOG_PUMP_STARTED_CODE);
|
||||||
#else
|
#else
|
||||||
log(LOG_LEVEL_INFO, "Starting pump " + String(vmPumpToRun) + " for " + String(mPlants[vmPumpToRun].getPumpDuration()) + "s", LOG_PUMP_STARTED_CODE);
|
log(LOG_LEVEL_INFO, "Starting pump " + String(pumpToRun) + " for " + String(mPlants[pumpToRun].getPumpDuration()) + "s", LOG_PUMP_STARTED_CODE);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
@ -670,7 +689,7 @@ void initPumpLogic()
|
|||||||
delay(100);
|
delay(100);
|
||||||
WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 1);
|
WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 1);
|
||||||
|
|
||||||
mPlants[vmPumpToRun].activatePump();
|
mPlants[pumpToRun].activatePump();
|
||||||
}
|
}
|
||||||
|
|
||||||
void pumpActiveLoop()
|
void pumpActiveLoop()
|
||||||
@ -681,7 +700,7 @@ void pumpActiveLoop()
|
|||||||
{
|
{
|
||||||
initPumpLogic();
|
initPumpLogic();
|
||||||
pumpStarted = true;
|
pumpStarted = true;
|
||||||
rtcLastWateringPlant[vmPumpToRun] = getCurrentTime();
|
rtcLastWateringPlant[pumpToRun] = getCurrentTime();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool mqttUpdateTick = false;
|
bool mqttUpdateTick = false;
|
||||||
@ -723,12 +742,12 @@ void pumpActiveLoop()
|
|||||||
|
|
||||||
if (millis() > pumpTarget)
|
if (millis() > pumpTarget)
|
||||||
{
|
{
|
||||||
mPlants[vmPumpToRun].setProperty("watertime").send(String(duration));
|
mPlants[pumpToRun].setProperty("watertime").send(String(duration));
|
||||||
targetReached = true;
|
targetReached = true;
|
||||||
}
|
}
|
||||||
else if (mqttUpdateTick)
|
else if (mqttUpdateTick)
|
||||||
{
|
{
|
||||||
mPlants[vmPumpToRun].setProperty("watertime").send(String(duration));
|
mPlants[pumpToRun].setProperty("watertime").send(String(duration));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (targetReached)
|
if (targetReached)
|
||||||
@ -736,11 +755,11 @@ void pumpActiveLoop()
|
|||||||
|
|
||||||
// disable all
|
// disable all
|
||||||
digitalWrite(OUTPUT_ENABLE_PUMP, LOW);
|
digitalWrite(OUTPUT_ENABLE_PUMP, LOW);
|
||||||
mPlants[vmPumpToRun].deactivatePump();
|
mPlants[pumpToRun].deactivatePump();
|
||||||
// disable loop, to prevent multi processing
|
// disable loop, to prevent multi processing
|
||||||
pumpStarted = false;
|
pumpStarted = false;
|
||||||
// if runtime is larger than cooldown, else it would run continously
|
// if runtime is larger than cooldown, else it would run continously
|
||||||
rtcLastWateringPlant[vmPumpToRun] = getCurrentTime();
|
rtcLastWateringPlant[pumpToRun] = getCurrentTime();
|
||||||
espDeepSleep(true);
|
espDeepSleep(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -772,11 +791,6 @@ void safeSetup()
|
|||||||
digitalWrite(OUTPUT_ENABLE_PUMP, LOW);
|
digitalWrite(OUTPUT_ENABLE_PUMP, LOW);
|
||||||
|
|
||||||
pinMode(OUTPUT_ENABLE_SENSOR, OUTPUT);
|
pinMode(OUTPUT_ENABLE_SENSOR, OUTPUT);
|
||||||
digitalWrite(OUTPUT_ENABLE_SENSOR, LOW);
|
|
||||||
|
|
||||||
#ifdef ANALOG_WATER
|
|
||||||
pinMode(SENSOR_TANK_ANALOG, INPUT);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static_assert(HomieInternals::MAX_CONFIG_SETTING_SIZE >= MAX_CONFIG_SETTING_ITEMS, "Limits.hpp not adjusted MAX_CONFIG_SETTING_ITEMS");
|
static_assert(HomieInternals::MAX_CONFIG_SETTING_SIZE >= MAX_CONFIG_SETTING_ITEMS, "Limits.hpp not adjusted MAX_CONFIG_SETTING_ITEMS");
|
||||||
if (HomieInternals::MAX_CONFIG_SETTING_SIZE < MAX_CONFIG_SETTING_ITEMS)
|
if (HomieInternals::MAX_CONFIG_SETTING_SIZE < MAX_CONFIG_SETTING_ITEMS)
|
||||||
@ -805,6 +819,9 @@ void safeSetup()
|
|||||||
deepSleepNightTime.setDefaultValue(600);
|
deepSleepNightTime.setDefaultValue(600);
|
||||||
ntpServer.setDefaultValue("pool.ntp.org");
|
ntpServer.setDefaultValue("pool.ntp.org");
|
||||||
|
|
||||||
|
/* waterLevelMax 1000 */ /* 100cm in mm */
|
||||||
|
waterLevelMin.setDefaultValue(50); /* 5cm in mm */
|
||||||
|
waterLevelWarn.setDefaultValue(500); /* 50cm in mm */
|
||||||
waterLevelVol.setDefaultValue(5000); /* 5l in ml */
|
waterLevelVol.setDefaultValue(5000); /* 5l in ml */
|
||||||
lipoSensorAddr.setDefaultValue("");
|
lipoSensorAddr.setDefaultValue("");
|
||||||
waterSensorAddr.setDefaultValue("");
|
waterSensorAddr.setDefaultValue("");
|
||||||
@ -831,6 +848,10 @@ void safeSetup()
|
|||||||
{
|
{
|
||||||
mPlants[i].initSensors();
|
mPlants[i].initSensors();
|
||||||
}
|
}
|
||||||
|
readPowerSwitchedSensors();
|
||||||
|
Serial << "Reading Homie Config..." << endl;
|
||||||
|
Homie.setup();
|
||||||
|
|
||||||
|
|
||||||
/************************* Start One-Wire bus ***************/
|
/************************* Start One-Wire bus ***************/
|
||||||
int tempInitStartTime = millis();
|
int tempInitStartTime = millis();
|
||||||
@ -845,19 +866,6 @@ void safeSetup()
|
|||||||
delay(50);
|
delay(50);
|
||||||
}
|
}
|
||||||
|
|
||||||
readOneWireSensors();
|
|
||||||
mBatteryVoltage = battery.getVoltage(BATTSENSOR_INDEX_BATTERY);
|
|
||||||
|
|
||||||
if ( ((int) (mBatteryVoltage * 100)) >= ((int) (VOLT_SENSORS_BATT * 100)) )
|
|
||||||
{
|
|
||||||
/* read all sensors with additional power source */
|
|
||||||
readPowerSwitchedSensors();
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Start Homie and Wifi */
|
|
||||||
Serial << "Reading Homie Config..." << endl;
|
|
||||||
Homie.setup();
|
|
||||||
|
|
||||||
Serial << "DS18S20 count: " << sensorCount << " found in " << (millis() - tempInitStartTime) << " ms" << endl;
|
Serial << "DS18S20 count: " << sensorCount << " found in " << (millis() - tempInitStartTime) << " ms" << endl;
|
||||||
Serial.flush();
|
Serial.flush();
|
||||||
/* Measure temperature TODO idea: move this into setup */
|
/* Measure temperature TODO idea: move this into setup */
|
||||||
@ -939,7 +947,7 @@ void safeSetup()
|
|||||||
delay(100);
|
delay(100);
|
||||||
WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 1);
|
WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 1);
|
||||||
Serial.println("Initial Setup. Start Accesspoint...");
|
Serial.println("Initial Setup. Start Accesspoint...");
|
||||||
vmDownloadMode = true;
|
mDownloadMode = true;
|
||||||
}
|
}
|
||||||
stayAlive.advertise("alive").setName("Alive").setDatatype(NUMBER_TYPE).settable(aliveHandler);
|
stayAlive.advertise("alive").setName("Alive").setDatatype(NUMBER_TYPE).settable(aliveHandler);
|
||||||
setupFinishedTimestamp = millis();
|
setupFinishedTimestamp = millis();
|
||||||
@ -975,7 +983,7 @@ void selfTest()
|
|||||||
|
|
||||||
if (selfTestPumpRun >= 0 && selfTestPumpRun < MAX_PLANTS)
|
if (selfTestPumpRun >= 0 && selfTestPumpRun < MAX_PLANTS)
|
||||||
{
|
{
|
||||||
Serial << "self test mode pump deactivate " << vmPumpToRun << endl;
|
Serial << "self test mode pump deactivate " << pumpToRun << endl;
|
||||||
Serial.flush();
|
Serial.flush();
|
||||||
mPlants[selfTestPumpRun].deactivatePump();
|
mPlants[selfTestPumpRun].deactivatePump();
|
||||||
}
|
}
|
||||||
@ -1007,7 +1015,7 @@ void loop()
|
|||||||
{
|
{
|
||||||
Homie.loop();
|
Homie.loop();
|
||||||
/* Toggel Senor LED to visualize mode 3 */
|
/* Toggel Senor LED to visualize mode 3 */
|
||||||
if (vmDownloadMode)
|
if (mDownloadMode)
|
||||||
{
|
{
|
||||||
if (nextBlink < millis())
|
if (nextBlink < millis())
|
||||||
{
|
{
|
||||||
@ -1032,9 +1040,9 @@ void loop()
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
unsigned long timeSinceSetup = millis() - setupFinishedTimestamp;
|
unsigned long timeSinceSetup = millis() - setupFinishedTimestamp;
|
||||||
if ((timeSinceSetup > MQTT_TIMEOUT) && (!vmSensorsRead))
|
if ((timeSinceSetup > MQTT_TIMEOUT) && (!mSensorsRead))
|
||||||
{
|
{
|
||||||
vmSensorsRead = true;
|
mSensorsRead = true;
|
||||||
/* Disable Wifi and put modem into sleep mode */
|
/* Disable Wifi and put modem into sleep mode */
|
||||||
WiFi.mode(WIFI_OFF);
|
WiFi.mode(WIFI_OFF);
|
||||||
Serial << "Wifi mode set to " << WIFI_OFF << " mqqt was no reached within " << timeSinceSetup << "ms , fallback to offline mode " << endl;
|
Serial << "Wifi mode set to " << WIFI_OFF << " mqqt was no reached within " << timeSinceSetup << "ms , fallback to offline mode " << endl;
|
||||||
@ -1044,14 +1052,14 @@ void loop()
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Timeout always stopping the ESP -> no endless power consumption */
|
/** Timeout always stopping the ESP -> no endless power consumption */
|
||||||
if (millis() > ESP_STALE_TIMEOUT && !vmDownloadMode)
|
if (millis() > ESP_STALE_TIMEOUT && !mDownloadMode)
|
||||||
{
|
{
|
||||||
Serial << (millis() / 1000) << "not terminated watchdog reset" << endl;
|
Serial << (millis() / 1000) << "not terminated watchdog reset" << endl;
|
||||||
Serial.flush();
|
Serial.flush();
|
||||||
esp_restart();
|
esp_restart();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (vmPumpToRun != -1)
|
if (pumpToRun != -1)
|
||||||
{
|
{
|
||||||
pumpActiveLoop();
|
pumpActiveLoop();
|
||||||
}
|
}
|
||||||
@ -1074,8 +1082,9 @@ void plantcontrol()
|
|||||||
|
|
||||||
readOneWireSensors();
|
readOneWireSensors();
|
||||||
|
|
||||||
Serial << "W : " << waterRawSensor.getAverage() << " mm " << endl;
|
Serial << "W : " << waterRawSensor.getAverage() << " mm (" << String(waterLevelMax.get() - waterRawSensor.getAverage()) << " mm left)" << endl;
|
||||||
|
|
||||||
|
mBatteryVoltage = battery.getVoltage(BATTSENSOR_INDEX_BATTERY);
|
||||||
float chipTemp = battery.getTemperature();
|
float chipTemp = battery.getTemperature();
|
||||||
Serial << "Chip Temperatur " << chipTemp << " °C " << endl;
|
Serial << "Chip Temperatur " << chipTemp << " °C " << endl;
|
||||||
|
|
||||||
@ -1084,36 +1093,22 @@ void plantcontrol()
|
|||||||
/* Publish water values, if available */
|
/* Publish water values, if available */
|
||||||
if (waterRawSensor.getCount() > 0)
|
if (waterRawSensor.getCount() > 0)
|
||||||
{
|
{
|
||||||
if (!isnan(waterRawSensor.getAverage()))
|
float remaining = (waterLevelMax.get() - waterRawSensor.getAverage());
|
||||||
|
float actualDifference = waterLevelMax.get() - waterLevelMin.get();
|
||||||
|
float ratio = remaining/actualDifference;
|
||||||
|
sensorWater.setProperty("useable").send(String(actualDifference));
|
||||||
|
if (!isnan(remaining))
|
||||||
{
|
{
|
||||||
/* measuring the distance from top -> smaller value means more water: */
|
/* measuring the distance from top -> smaller value means more water: */
|
||||||
long averageWater = waterRawSensor.getAverage();
|
sensorWater.setProperty("remaining").send(String(ratio*100));
|
||||||
if (averageWater < ESP_ADC_MAX) {
|
|
||||||
long percentage = (averageWater * averageWater);
|
|
||||||
percentage = percentage / 570000;
|
|
||||||
/* Add offset */
|
|
||||||
if (percentage > 0)
|
|
||||||
{
|
|
||||||
percentage += 4;
|
|
||||||
}
|
|
||||||
sensorWater.setProperty("remaining").send(String(percentage));
|
|
||||||
} else {
|
|
||||||
sensorWater.setProperty("remaining").send(String("100"));
|
|
||||||
}
|
|
||||||
|
|
||||||
sensorWater.setProperty("raw").send(String(waterRawSensor.getAverage()));
|
|
||||||
}
|
}
|
||||||
}
|
if (!isnan(waterRawSensor.getAverage()))
|
||||||
|
|
||||||
if ( ((int) (mBatteryVoltage * 100)) < ((int) (VOLT_MIN_BATT * 100)) )
|
|
||||||
{
|
{
|
||||||
sensorLipo.setProperty("percent").send("0");
|
sensorWater.setProperty("distance").send(String(waterRawSensor.getAverage()));
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
sensorLipo.setProperty("percent").send(String(100 * (((mBatteryVoltage - VOLT_MIN_BATT) / (VOLT_MAX_BATT - VOLT_MIN_BATT)))));
|
|
||||||
}
|
}
|
||||||
|
sensorLipo.setProperty("percent").send(String(100 * mBatteryVoltage / VOLT_MAX_BATT));
|
||||||
sensorLipo.setProperty("volt").send(String(mBatteryVoltage));
|
sensorLipo.setProperty("volt").send(String(mBatteryVoltage));
|
||||||
sensorLipo.setProperty("current").send(String(battery.getCurrent()));
|
sensorLipo.setProperty("current").send(String(battery.getCurrent()));
|
||||||
sensorLipo.setProperty("Ah").send(String(battery.getAh()));
|
sensorLipo.setProperty("Ah").send(String(battery.getAh()));
|
||||||
@ -1133,7 +1128,7 @@ void plantcontrol()
|
|||||||
Serial.flush();
|
Serial.flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool isLowLight = (mSolarVoltage <= SOLAR_CHARGE_MIN_VOLTAGE);
|
bool isLowLight = (mSolarVoltage <= SOLAR_CHARGE_MAX_VOLTAGE);
|
||||||
#if defined(TIMED_LIGHT_PIN)
|
#if defined(TIMED_LIGHT_PIN)
|
||||||
|
|
||||||
bool shouldLight = determineTimedLightState(isLowLight);
|
bool shouldLight = determineTimedLightState(isLowLight);
|
||||||
@ -1150,25 +1145,25 @@ bool isLowLight = (mSolarVoltage <= SOLAR_CHARGE_MIN_VOLTAGE);
|
|||||||
if (waterRawSensor.getCount() > 0)
|
if (waterRawSensor.getCount() > 0)
|
||||||
{
|
{
|
||||||
//surface of water is still nearer the sensor than required to cover the pumps
|
//surface of water is still nearer the sensor than required to cover the pumps
|
||||||
hasWater = waterRawSensor.getAverage() > WATER_LEVEL_MINIMUM;
|
hasWater = waterRawSensor.getAverage() < waterLevelMin.get();
|
||||||
|
if (waterRawSensor.getAverage() > waterLevelMax.get()) {
|
||||||
|
log(LOG_LEVEL_ERROR, LOG_PUMP_FULLTANK_MESSAGE, LOG_PUMP_FULLTANK_CODE);
|
||||||
|
hasWater = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mBatteryVoltage >= VOLT_SENSORS_BATT)
|
|
||||||
{
|
|
||||||
// FIXME no water warning message
|
// FIXME no water warning message
|
||||||
vmPumpToRun = determineNextPump(isLowLight);
|
pumpToRun = determineNextPump(isLowLight);
|
||||||
}
|
|
||||||
|
|
||||||
// early aborts
|
// early aborts
|
||||||
if (vmPumpToRun != -1)
|
if (pumpToRun != -1)
|
||||||
{
|
{
|
||||||
if(isLiquid){
|
if(isLiquid){
|
||||||
if (hasWater)
|
if (hasWater)
|
||||||
{
|
{
|
||||||
if (vmDownloadMode)
|
if (mDownloadMode)
|
||||||
{
|
{
|
||||||
log(LOG_LEVEL_INFO, LOG_PUMP_AND_DOWNLOADMODE, LOG_PUMP_AND_DOWNLOADMODE_CODE);
|
log(LOG_LEVEL_INFO, LOG_PUMP_AND_DOWNLOADMODE, LOG_PUMP_AND_DOWNLOADMODE_CODE);
|
||||||
vmPumpToRun = -1;
|
pumpToRun = -1;
|
||||||
} else {
|
} else {
|
||||||
/* Pump can be used :) */
|
/* Pump can be used :) */
|
||||||
}
|
}
|
||||||
@ -1176,18 +1171,18 @@ bool isLowLight = (mSolarVoltage <= SOLAR_CHARGE_MIN_VOLTAGE);
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
log(LOG_LEVEL_ERROR, LOG_PUMP_BUTNOTANK_MESSAGE, LOG_PUMP_BUTNOTANK_CODE);
|
log(LOG_LEVEL_ERROR, LOG_PUMP_BUTNOTANK_MESSAGE, LOG_PUMP_BUTNOTANK_CODE);
|
||||||
vmPumpToRun = -1;
|
pumpToRun = -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
log(LOG_LEVEL_ERROR, LOG_VERY_COLD_WATER, LOG_VERY_COLD_WATER_CODE);
|
log(LOG_LEVEL_ERROR, LOG_VERY_COLD_WATER, LOG_VERY_COLD_WATER_CODE);
|
||||||
vmPumpToRun = -1;
|
pumpToRun = -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// go directly to sleep, skipping the pump loop
|
// go directly to sleep, skipping the pump loop
|
||||||
if (vmPumpToRun == -1)
|
if (pumpToRun == -1)
|
||||||
{
|
{
|
||||||
espDeepSleep();
|
espDeepSleep();
|
||||||
}
|
}
|
||||||
|
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
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user