diff --git a/.claude/r2/_base_board_pre_fanwin_0912.json b/.claude/r2/_base_board_pre_fanwin_0912.json new file mode 100644 index 0000000..8d27493 --- /dev/null +++ b/.claude/r2/_base_board_pre_fanwin_0912.json @@ -0,0 +1 @@ +{"note": "2026-09-12 风扇窗口重布之前的板面(含用户手布的 43 段)", "segs": [[2, 12.49899964, 46.566000339999995, 12.62499888, 46.37499995999999, 0.29999939999999997, "+12V"], [2, 12.62499888, 40.62499876, 12.49899964, 40.434000919999995, 0.29999939999999997, "VIN_SW"], [2, 49.75100032, 45.4889997, 49.20000066, 45.4889997, 0.19999959999999997, "+3V3_HUB"], [2, 49.75100032, 43.0300003, 49.75100032, 45.4889997, 0.19999959999999997, "+3V3_HUB"], [2, 49.75100032, 45.4889997, 49.75100032, 47.339001079999996, 0.19999959999999997, "+3V3_HUB"], [2, 49.20000066, 46.32999878, 49.100000859999994, 46.89899942, 0.29999939999999997, "GND"], [2, 52.24999964, 44.830999999999996, 52.94900001999999, 44.830999999999996, 0.19999959999999997, "+3V3_HUB"], [2, 52.24999964, 43.0300003, 52.24999964, 44.830999999999996, 0.19999959999999997, "+3V3_HUB"], [2, 52.24999964, 44.830999999999996, 52.24999964, 46.89899942, 0.19999959999999997, "+3V3_HUB"], [2, 52.94900001999999, 45.66899934, 53.29899932, 46.94899932, 0.29999939999999997, "GND"], [2, 53.749000960000004, 43.0300003, 53.749000960000004, 41.33099938, 0.24999949999999999, "GND"], [2, 53.602001, 41.33099938, 53.749000960000004, 41.33099938, 0.24999949999999999, "GND"], [2, 53.749000960000004, 41.33099938, 55.95100062, 41.33099938, 0.24999949999999999, "GND"], [2, 53.749000960000004, 41.33099938, 53.749000960000004, 40.68100068, 0.24999949999999999, "GND"], [2, 47.74900026, 43.0300003, 47.74900026, 43.75500012, 0.27999944, "USB1_DP"], [2, 47.74900026, 43.75500012, 45.27900012, 46.22500026, 0.27999944, "USB1_DP"], [1, 47.50099974, 84.59099922, 47.50099974, 86.04000064, 0.27999944, "USB1_DP"], [2, 48.250000019999995, 43.0300003, 48.250000019999995, 44.00499962, 0.27999944, "USB1_DM"], [1, 48.49899876, 84.59099922, 48.49899876, 86.04000064, 0.27999944, "USB1_DM"], [2, 48.74999902, 43.0300003, 48.74999902, 44.254999119999994, 0.27999944, "USB2_DP"], [2, 48.74999902, 44.254999119999994, 46.40000117999999, 46.6049995, 0.27999944, "USB2_DP"], [2, 47.50099974, 63.769999459999994, 47.50099974, 64.270001, 0.27999944, "USB2_DP"], [1, 47.50099974, 64.270001, 47.50099974, 65.72000064, 0.27999944, "USB2_DP"], [2, 49.250998779999996, 43.0300003, 49.250998779999996, 44.50500116, 0.27999944, "USB2_DM"], [2, 49.250998779999996, 44.50500116, 46.901000939999996, 46.854999, 0.27999944, "USB2_DM"], [1, 48.49899876, 64.270001, 48.49899876, 65.72000064, 0.27999944, "USB2_DM"], [1, 47.50099974, 48.198999359999995, 47.50099974, 45.40000064, 0.27999944, "USB3_DP"], [1, 48.49899876, 48.8990005, 48.49899876, 45.40000064, 0.27999944, "USB3_DM"], [1, 47.50099974, 6.75999918, 47.50099974, 4.7600006399999994, 0.27999944, "USB5_DP"], [1, 48.49899876, 6.75999918, 48.49899876, 4.7600006399999994, 0.27999944, "USB5_DM"], [1, 61.29999932, 30.398999399999997, 47.50099974, 30.398999399999997, 0.27999944, "USB4_DP"], [1, 47.50099974, 30.398999399999997, 47.50099974, 25.08000064, 0.27999944, "USB4_DP"], [1, 62.000000459999995, 29.599001, 48.49899876, 29.599001, 0.27999944, "USB4_DM"], [1, 48.49899876, 29.599001, 48.49899876, 25.08000064, 0.27999944, "USB4_DM"], [2, 47.051000640000005, 41.33099938, 46.3509995, 41.33099938, 0.19999959999999997, "VDD18PLL"], [2, 46.3509995, 41.33099938, 46.04100012, 41.640998759999995, 0.19999959999999997, "VDD18PLL"], [2, 46.04100012, 41.640998759999995, 45.72, 41.640998759999995, 0.19999959999999997, "VDD18PLL"], [2, 47.051000640000005, 41.831000919999994, 46.4509993, 41.831000919999994, 0.19999959999999997, "RBIAS"], [2, 46.4509993, 41.831000919999994, 45.90299938, 42.379000839999996, 0.19999959999999997, "RBIAS"], [2, 45.90299938, 42.379000839999996, 45.90299938, 42.85000066, 0.19999959999999997, "RBIAS"], [2, 45.90299938, 42.85000066, 45.732999719999995, 42.85000066, 0.19999959999999997, "RBIAS"], [2, 46.4509993, 36.330001, 47.051000640000005, 36.330001, 0.19999959999999997, "+3V3_HUB"], [2, 45.93999956, 35.81900125999999, 46.4509993, 36.330001, 0.19999959999999997, "+3V3_HUB"], [2, 72.62500080000001, 59.25000088, 70.75000074, 57.37500082, 0.27999944, "USB6_DP"], [2, 70.75000074, 57.37500082, 70.75000074, 57.12499878, 0.27999944, "USB6_DP"], [1, 70.62499972, 57.0000003, 70.75000074, 57.12499878, 0.27999944, "USB6_DP"], [1, 70.62499972, 52.87499966, 70.62499972, 57.0000003, 0.27999944, "USB6_DP"], [1, 70.50000124, 52.75000117999999, 70.62499972, 52.87499966, 0.27999944, "USB6_DP"], [1, 70.50000124, 52.49999913999999, 70.50000124, 52.75000117999999, 0.27999944, "USB6_DP"], [1, 70.37500022, 52.37500066, 70.50000124, 52.49999913999999, 0.27999944, "USB6_DP"], [1, 70.37500022, 46.249998940000005, 70.37500022, 52.37500066, 0.27999944, "USB6_DP"], [1, 70.24999919999999, 46.125000459999995, 70.37500022, 46.249998940000005, 0.27999944, "USB6_DP"], [1, 69.2500012, 46.125000459999995, 70.24999919999999, 46.125000459999995, 0.27999944, "USB6_DP"], [1, 60.874998899999994, 37.750000699999994, 69.2500012, 46.125000459999995, 0.27999944, "USB6_DP"], [2, 73.38600004, 60.24900066, 72.62500080000001, 59.25000088, 0.27999944, "USB6_DP"], [2, 74.24999882, 59.25000088, 71.87499976, 56.874999280000004, 0.27999944, "USB6_DM"], [2, 71.87499976, 56.874999280000004, 71.87499976, 56.375000279999995, 0.27999944, "USB6_DM"], [2, 71.87499976, 56.375000279999995, 71.37500076, 55.87499874, 0.27999944, "USB6_DM"], [1, 71.24999974, 55.75000025999999, 71.37500076, 55.87499874, 0.27999944, "USB6_DM"], [1, 71.24999974, 52.37500066, 71.24999974, 55.75000025999999, 0.27999944, "USB6_DM"], [1, 71.12500125999999, 52.24999964, 71.24999974, 52.37500066, 0.27999944, "USB6_DM"], [1, 71.12500125999999, 52.00000014, 71.12500125999999, 52.24999964, 0.27999944, "USB6_DM"], [1, 71.00000023999999, 51.87499912, 71.12500125999999, 52.00000014, 0.27999944, "USB6_DM"], [1, 71.00000023999999, 45.749999939999995, 71.00000023999999, 51.87499912, 0.27999944, "USB6_DM"], [1, 62.000000459999995, 36.750000160000006, 71.00000023999999, 45.749999939999995, 0.27999944, "USB6_DM"], [2, 74.65600004, 60.24900066, 74.24999882, 59.25000088, 0.27999944, "USB6_DM"], [2, 7.248999980000001, 65.75000057999999, 7.25000074, 64.75000003999999, 0.49999899999999997, "+12V"], [2, 1.7499990399999998, 69.49899993999999, 1.7499990399999998, 70.62499972, 0.49999899999999997, "+12V"], [2, 18.24999906, 65.75000057999999, 18.24999906, 64.75000003999999, 0.49999899999999997, "+12V"], [2, 4.85400096, 49.23300034, 5.499999159999999, 50.12500007999999, 0.49999899999999997, "+12V"], [2, 3.5840009599999996, 49.23300034, 3.6249990999999997, 47.874999499999994, 0.49999899999999997, "+12V"], [2, 2.3140009600000004, 49.23300034, 2.3749990600000004, 47.874999499999994, 0.49999899999999997, "+12V"], [2, 17.389000020000005, 43.49999936, 18.7500006, 43.49999936, 0.29999939999999997, "+12V"], [2, 6.35, 67.55100028, 6.4999997, 66.8749996, 0.49999899999999997, "+12V"], [2, 3.6500003199999993, 68.50100092, 4.62499964, 68.50000015999998, 0.49999899999999997, "+12V"], [2, 18.34900064, 67.55100028, 18.375000080000003, 66.8749996, 0.49999899999999997, "+12V"], [2, 15.649000959999999, 68.50100092, 16.50000002, 68.50000015999998, 0.49999899999999997, "+12V"], [2, 48.74999902, 32.84000036, 48.74999902, 34.13000032, 0.29999939999999997, "+3V3_HUB"], [2, 3.183001, 65.24999903999999, 3.6500003199999993, 67.55100028, 0.5660008999999999, "FB3V3"], [2, 12.49899964, 40.434000919999995, 12.08000124, 38.750001239999996, 0.49999899999999997, "VIN_SW"], [2, 15.499999480000001, 37.24999916, 15.499999480000001, 37.37500018, 2.00000108, "VIN_SW"], [2, 15.499999480000001, 37.37500018, 15.249999979999998, 37.624999679999995, 2.00000108, "VIN_SW"], [2, 15.249999979999998, 37.624999679999995, 15.249999979999998, 38.0000002, 2.00000108, "VIN_SW"], [2, 15.249999979999998, 38.0000002, 15.12499896, 38.12500122, 2.00000108, "VIN_SW"], [2, 15.12499896, 38.12500122, 15.12499896, 39.37500126, 2.00000108, "VIN_SW"], [2, 15.12499896, 39.37500126, 13.624999419999998, 40.875000799999995, 2.00000108, "VIN_SW"], [2, 12.2500009, 40.875000799999995, 12.87500092, 40.875000799999995, 2.00000108, "VIN_SW"], [2, 12.87500092, 40.875000799999995, 13.624999419999998, 40.875000799999995, 2.00000108, "VIN_SW"], [2, 11.499999859999999, 40.12499976, 12.2500009, 40.875000799999995, 2.00000108, "VIN_SW"], [2, 11.499999859999999, 39.37500126, 11.499999859999999, 40.12499976, 2.00000108, "VIN_SW"], [2, 18.62499958, 32.75000054, 18.62499958, 31.124999980000002, 2.00000108, "VIN_SW"], [2, 15.499999480000001, 32.75000054, 15.375001000000001, 32.75000054, 2.00000108, "VIN_SW"], [2, 15.375001000000001, 32.75000054, 15.12499896, 32.500001039999994, 2.00000108, "VIN_SW"], [2, 15.12499896, 32.500001039999994, 14.87499946, 32.500001039999994, 2.00000108, "VIN_SW"], [2, 14.87499946, 32.500001039999994, 14.75000098, 32.375000019999995, 2.00000108, "VIN_SW"], [2, 14.75000098, 32.375000019999995, 12.2500009, 32.375000019999995, 2.00000108, "VIN_SW"], [2, 11.74999936, 31.87500102, 11.499999859999999, 32.12500052, 2.00000108, "VIN_SW"], [2, 12.2500009, 32.375000019999995, 11.74999936, 31.87500102, 2.00000108, "VIN_SW"], [2, 11.499999859999999, 32.12500052, 10.49999932, 32.12500052, 2.00000108, "VIN_SW"], [2, 10.49999932, 32.12500052, 10.37500084, 32.249998999999995, 2.00000108, "VIN_SW"], [2, 10.37500084, 32.249998999999995, 10.1249988, 32.249998999999995, 2.00000108, "VIN_SW"], [2, 10.1249988, 32.249998999999995, 7.500000239999999, 34.8750001, 2.00000108, "VIN_SW"], [2, 17.750000059999998, 35.00099934, 15.499999480000001, 37.24999916, 2.00000108, "VIN_SW"], [2, 12.08000124, 38.750001239999996, 11.499999859999999, 39.37500126, 0.49999899999999997, "VIN_SW"], [2, 17.750000059999998, 35.00099934, 18.62499958, 32.75000054, 2.00000108, "VIN_SW"], [2, 17.750000059999998, 35.00099934, 15.499999480000001, 32.75000054, 2.00000108, "VIN_SW"], [2, 7.500000239999999, 34.8750001, 7.248999980000001, 35.00099934, 2.00000108, "VIN_SW"], [2, 56.750000799999995, 38.249999700000004, 56.624999779999996, 38.249999700000004, 0.14999969999999999, "VDD18"], [2, 57.27999974, 38.19899904, 56.750000799999995, 38.249999700000004, 0.14999969999999999, "VDD18"], [2, 56.624999779999996, 38.249999700000004, 55.95100062, 38.3310003, 0.14999969999999999, "VDD18"], [2, 16.374999, 67.62500064, 17.25000106, 67.62500064, 0.14999969999999999, "$2N72"], [2, 17.25000106, 67.62500064, 17.37499954, 67.74999912, 0.14999969999999999, "$2N72"], [2, 17.37499954, 67.74999912, 17.37499954, 69.87500122, 0.14999969999999999, "$2N72"], [2, 17.37499954, 69.87500122, 16.374999, 70.87499921999999, 0.14999969999999999, "$2N72"], [2, 17.25000106, 67.62500064, 17.25000106, 64.87500105999999, 0.14999969999999999, "$2N72"], [2, 17.25000106, 64.87500105999999, 16.999999019999997, 64.62499901999999, 0.14999969999999999, "$2N72"], [2, 16.999999019999997, 64.62499901999999, 16.999999019999997, 64.50000054, 0.14999969999999999, "$2N72"], [2, 16.999999019999997, 64.50000054, 16.74999952, 64.25000104, 0.14999969999999999, "$2N72"], [2, 16.74999952, 64.25000104, 16.74999952, 64.12500002, 0.14999969999999999, "$2N72"], [2, 16.74999952, 64.12500002, 16.62500104, 63.999998999999995, 0.14999969999999999, "$2N72"], [2, 16.62500104, 63.999998999999995, 16.62500104, 63.87500052, 0.14999969999999999, "$2N72"], [2, 16.62500104, 63.87500052, 16.50000002, 63.7499995, 0.14999969999999999, "$2N72"], [2, 15.649000959999999, 67.55100028, 16.374999, 67.62500064, 0.14999969999999999, "$2N72"], [2, 16.31700064, 71.24999974, 16.374999, 70.87499921999999, 0.14999969999999999, "$2N72"], [2, 16.31700064, 63.5, 16.50000002, 63.7499995, 0.14999969999999999, "$2N72"], [2, 2.8750006, 65.75000057999999, 2.8750006, 67.87500014, 0.14999969999999999, "FB3V3"], [2, 2.8750006, 67.87500014, 2.7499995799999994, 68.00000116, 0.14999969999999999, "FB3V3"], [2, 2.7499995799999994, 68.00000116, 2.7499995799999994, 69.87500122, 0.14999969999999999, "FB3V3"], [2, 2.7499995799999994, 69.87500122, 2.8750006, 69.99999969999999, 0.14999969999999999, "FB3V3"], [2, 2.8750006, 69.99999969999999, 2.99999908, 69.99999969999999, 0.14999969999999999, "FB3V3"], [2, 2.99999908, 69.99999969999999, 3.8750011399999997, 70.87499921999999, 0.14999969999999999, "FB3V3"], [2, 3.183001, 65.24999903999999, 2.8750006, 65.75000057999999, 0.14999969999999999, "FB3V3"], [2, 3.8180009999999998, 71.24999974, 3.8750011399999997, 70.87499921999999, 0.14999969999999999, "FB3V3"], [1, 57.62500032, 40.25000078, 57.37500082, 39.99999874, 0.29999939999999997, "+3V3_HUB"], [2, 57.37500082, 39.749999239999994, 57.37500082, 39.99999874, 0.29999939999999997, "+3V3_HUB"], [1, 57.37500082, 39.99999874, 55.624999239999994, 39.99999874, 0.29999939999999997, "+3V3_HUB"], [1, 55.624999239999994, 39.99999874, 55.25000126, 39.62500076, 0.29999939999999997, "+3V3_HUB"], [1, 55.25000126, 39.62500076, 55.12500024, 39.62500076, 0.29999939999999997, "+3V3_HUB"], [1, 55.12500024, 39.62500076, 54.99999922, 39.49999973999999, 0.29999939999999997, "+3V3_HUB"], [2, 57.27999974, 39.41100068, 57.37500082, 39.749999239999994, 0.29999939999999997, "+3V3_HUB"], [2, 12.92100032, 38.750001239999996, 13.12500042, 38.12500122, 0.29999939999999997, "GND"], [2, 90.49999934, 56.08100036, 90.49999934, 55.50000076, 0.29999939999999997, "GND"], [2, 56.169999419999996, 55.00099998, 56.12500078, 55.624999239999994, 0.29999939999999997, "GND"], [2, 64.17099942, 55.00099998, 63.87500052, 54.1249997, 0.29999939999999997, "GND"], [2, 66.66999874, 54.50100098, 66.6250001, 53.8750002, 0.29999939999999997, "GND"], [2, 90.66999899999999, 83.99999964, 91.25000037999999, 83.99999964, 0.29999939999999997, "GND"], [2, 91.91999904, 81.74999906000001, 92.50000041999999, 81.74999906000001, 0.29999939999999997, "GND"], [2, 44.250000400000005, 44.000000899999996, 44.879000919999996, 44.05900002, 0.29999939999999997, "GND"], [2, 74.24900059999999, 29.66999908, 74.24999882, 30.25000046, 0.29999939999999997, "GND"], [1, 32.49900028, 93.24099969999999, 31.75, 93.24999892, 0.29999939999999997, "GND"], [1, 35.49899935999999, 93.24099969999999, 35.625001139999995, 91.8750004, 0.29999939999999997, "GND"], [1, 45.49899968, 93.24099969999999, 44.74999939999999, 93.24999892, 0.29999939999999997, "GND"], [1, 46.500000979999996, 93.24099969999999, 46.500000979999996, 94.62499998, 0.29999939999999997, "GND"], [1, 47.50099974, 93.24099969999999, 47.49999898, 94.62499998, 0.29999939999999997, "GND"], [1, 48.49899876, 93.24099969999999, 48.499999519999996, 94.62499998, 0.29999939999999997, "GND"], [1, 50.5000006, 93.24099969999999, 50.5000006, 94.62499998, 0.29999939999999997, "GND"], [1, 51.500999359999994, 93.24099969999999, 51.500001139999995, 94.62499998, 0.29999939999999997, "GND"], [1, 53.499999679999995, 93.24099969999999, 53.499999679999995, 94.62499998, 0.29999939999999997, "GND"], [1, 54.50100098, 93.24099969999999, 54.50000022, 94.62499998, 0.29999939999999997, "GND"], [1, 55.498999999999995, 93.24099969999999, 55.50000076, 94.62499998, 0.29999939999999997, "GND"], [1, 56.49999876, 93.24099969999999, 56.49999876, 94.62499998, 0.29999939999999997, "GND"], [1, 57.50100006, 93.24099969999999, 57.4999993, 94.62499998, 0.29999939999999997, "GND"], [1, 58.49899908, 93.24099969999999, 58.49999984, 94.62499998, 0.29999939999999997, "GND"], [1, 59.49899962, 93.24099969999999, 59.500000379999996, 94.62499998, 0.29999939999999997, "GND"], [1, 60.50000092, 93.24099969999999, 60.50000092, 94.62499998, 0.29999939999999997, "GND"], [1, 61.50099967999999, 93.24099969999999, 61.499998919999996, 94.62499998, 0.29999939999999997, "GND"], [1, 62.49900124, 93.24099969999999, 62.49999946, 94.62499998, 0.29999939999999997, "GND"], [1, 63.5, 93.24099969999999, 63.5, 94.62499998, 0.29999939999999997, "GND"], [1, 64.50099876, 93.24099969999999, 64.50000054, 94.62499998, 0.29999939999999997, "GND"], [1, 35.49899935999999, 86.04000064, 35.625001139999995, 87.37499924, 0.29999939999999997, "GND"], [1, 38.49900098, 86.04000064, 38.4999992, 87.37499924, 0.29999939999999997, "GND"], [1, 45.49899968, 86.04000064, 44.74999939999999, 86.00000071999999, 0.29999939999999997, "GND"], [1, 46.500000979999996, 86.04000064, 46.500000979999996, 87.37499924, 0.29999939999999997, "GND"], [1, 49.50000006, 86.04000064, 49.50000006, 87.37499924, 0.29999939999999997, "GND"], [1, 50.5000006, 86.04000064, 50.5000006, 87.37499924, 0.29999939999999997, "GND"], [1, 51.500999359999994, 86.04000064, 51.500001139999995, 87.37499924, 0.29999939999999997, "GND"], [1, 52.49900091999999, 86.04000064, 52.49999913999999, 87.37499924, 0.29999939999999997, "GND"], [1, 53.499999679999995, 86.04000064, 53.499999679999995, 87.37499924, 0.29999939999999997, "GND"], [1, 54.50100098, 86.04000064, 54.50000022, 87.37499924, 0.29999939999999997, "GND"], [1, 55.498999999999995, 86.04000064, 55.50000076, 87.37499924, 0.29999939999999997, "GND"], [1, 56.49999876, 86.04000064, 56.49999876, 87.37499924, 0.29999939999999997, "GND"], [1, 57.50100006, 86.04000064, 57.4999993, 87.37499924, 0.29999939999999997, "GND"], [1, 58.49899908, 86.04000064, 58.49999984, 87.37499924, 0.29999939999999997, "GND"], [1, 59.49899962, 86.04000064, 59.500000379999996, 87.37499924, 0.29999939999999997, "GND"], [1, 60.50000092, 86.04000064, 60.50000092, 87.37499924, 0.29999939999999997, "GND"], [1, 61.50099967999999, 86.04000064, 61.499998919999996, 87.37499924, 0.29999939999999997, "GND"], [1, 62.49900124, 86.04000064, 62.49999946, 87.37499924, 0.29999939999999997, "GND"], [1, 63.5, 86.04000064, 63.5, 87.37499924, 0.29999939999999997, "GND"], [1, 65.49900032000001, 86.04000064, 65.24999903999999, 87.50000026, 0.29999939999999997, "GND"], [1, 46.500000979999996, 72.9209997, 46.500000979999996, 71.49999924, 0.29999939999999997, "GND"], [1, 47.50099974, 72.9209997, 47.49999898, 71.49999924, 0.29999939999999997, "GND"], [1, 48.49899876, 72.9209997, 48.499999519999996, 71.49999924, 0.29999939999999997, "GND"], [1, 50.5000006, 72.9209997, 50.7500001, 71.49999924, 0.29999939999999997, "GND"], [1, 51.500999359999994, 72.9209997, 51.500001139999995, 71.49999924, 0.29999939999999997, "GND"], [1, 53.499999679999995, 72.9209997, 53.499999679999995, 71.49999924, 0.29999939999999997, "GND"], [1, 54.50100098, 72.9209997, 54.50000022, 71.49999924, 0.29999939999999997, "GND"], [1, 55.498999999999995, 72.9209997, 55.50000076, 71.49999924, 0.29999939999999997, "GND"], [1, 56.49999876, 72.9209997, 56.49999876, 71.49999924, 0.29999939999999997, "GND"], [1, 57.50100006, 72.9209997, 57.4999993, 71.49999924, 0.29999939999999997, "GND"], [1, 58.49899908, 72.9209997, 58.49999984, 71.49999924, 0.29999939999999997, "GND"], [1, 59.49899962, 72.9209997, 59.500000379999996, 71.49999924, 0.29999939999999997, "GND"], [1, 60.50000092, 72.9209997, 60.50000092, 71.49999924, 0.29999939999999997, "GND"], [1, 61.50099967999999, 72.9209997, 61.499998919999996, 71.49999924, 0.29999939999999997, "GND"], [1, 62.49900124, 72.9209997, 62.49999946, 71.49999924, 0.29999939999999997, "GND"], [1, 63.5, 72.9209997, 63.5, 71.49999924, 0.29999939999999997, "GND"], [1, 64.50099876, 72.9209997, 64.37499952, 71.49999924, 0.29999939999999997, "GND"], [1, 50.5000006, 65.72000064, 50.5000006, 64.37499952, 0.29999939999999997, "GND"], [1, 51.500999359999994, 65.72000064, 51.375000119999996, 64.37499952, 0.29999939999999997, "GND"], [1, 56.49999876, 65.72000064, 56.49999876, 64.37499952, 0.29999939999999997, "GND"], [1, 57.50100006, 65.72000064, 57.50100006, 64.42050108000001, 0.29999939999999997, "GND"], [1, 57.50100006, 64.42050108000001, 57.12499878, 64.37499952, 0.29999939999999997, "GND"], [1, 61.50099967999999, 65.72000064, 61.499998919999996, 67.12499910000001, 0.29999939999999997, "GND"], [1, 62.49900124, 65.72000064, 62.49999946, 67.12499910000001, 0.29999939999999997, "GND"], [1, 63.5, 65.72000064, 63.5, 67.12499910000001, 0.29999939999999997, "GND"], [1, 32.49900028, 52.600999699999996, 32.375000019999995, 51.2499991, 0.29999939999999997, "GND"], [1, 47.50099974, 52.600999699999996, 47.50099974, 51.301500139999995, 0.29999939999999997, "GND"], [1, 47.50099974, 51.301500139999995, 48.250000019999995, 51.2499991, 0.29999939999999997, "GND"], [1, 48.49899876, 52.600999699999996, 48.499999519999996, 51.2499991, 0.29999939999999997, "GND"], [1, 60.50000092, 52.600999699999996, 60.6249994, 51.2499991, 0.29999939999999997, "GND"], [1, 61.50099967999999, 52.600999699999996, 61.12500093999999, 51.2499991, 0.29999939999999997, "GND"], [1, 63.5, 52.600999699999996, 63.7499995, 54.00000122, 0.29999939999999997, "GND"], [1, 64.50099876, 52.600999699999996, 64.50099876, 53.90049925999999, 0.29999939999999997, "GND"], [1, 64.50099876, 53.90049925999999, 63.999998999999995, 54.00000122, 0.29999939999999997, "GND"], [1, 35.49899935999999, 45.40000064, 35.625001139999995, 46.750000480000004, 0.29999939999999997, "GND"], [1, 45.49899968, 45.40000064, 44.74999939999999, 45.37499942, 0.29999939999999997, "GND"], [1, 53.499999679999995, 45.40000064, 53.499999679999995, 46.750000480000004, 0.29999939999999997, "GND"], [1, 54.50100098, 45.40000064, 54.50000022, 46.750000480000004, 0.29999939999999997, "GND"], [1, 55.498999999999995, 45.40000064, 55.50000076, 46.750000480000004, 0.29999939999999997, "GND"], [1, 56.49999876, 45.40000064, 56.49999876, 46.750000480000004, 0.29999939999999997, "GND"], [1, 57.50100006, 45.40000064, 57.4999993, 46.750000480000004, 0.29999939999999997, "GND"], [1, 58.49899908, 45.40000064, 58.49999984, 46.750000480000004, 0.29999939999999997, "GND"], [1, 59.49899962, 45.40000064, 59.500000379999996, 46.750000480000004, 0.29999939999999997, "GND"], [1, 60.50000092, 45.40000064, 60.50000092, 46.750000480000004, 0.29999939999999997, "GND"], [1, 65.49900032000001, 45.40000064, 66.24999958000001, 45.37499942, 0.29999939999999997, "GND"], [1, 32.49900028, 32.2809997, 31.75, 32.249998999999995, 0.29999939999999997, "GND"], [1, 35.49899935999999, 32.2809997, 35.625001139999995, 33.62500006, 0.29999939999999997, "GND"], [1, 35.49899935999999, 25.08000064, 35.625001139999995, 23.75000076, 0.29999939999999997, "GND"], [1, 38.49900098, 25.08000064, 38.4999992, 23.75000076, 0.29999939999999997, "GND"], [1, 45.49899968, 25.08000064, 44.74999939999999, 25.124999279999997, 0.29999939999999997, "GND"], [1, 46.500000979999996, 25.08000064, 46.500000979999996, 23.75000076, 0.29999939999999997, "GND"], [1, 49.50000006, 25.08000064, 49.50000006, 23.75000076, 0.29999939999999997, "GND"], [1, 50.5000006, 25.08000064, 50.5000006, 23.75000076, 0.29999939999999997, "GND"], [1, 51.500999359999994, 25.08000064, 51.500001139999995, 23.75000076, 0.29999939999999997, "GND"], [1, 52.49999913999999, 23.75000076, 52.49900091999999, 25.08000064, 0.29999939999999997, "GND"], [1, 55.498999999999995, 25.08000064, 55.624999239999994, 26.50000034, 0.29999939999999997, "GND"], [1, 56.49999876, 26.50000034, 56.49999876, 25.08000064, 0.29999939999999997, "GND"], [1, 57.4999993, 26.50000034, 57.50100006, 25.08000064, 0.29999939999999997, "GND"], [1, 58.49899908, 25.08000064, 58.49899908, 26.379500200000003, 0.29999939999999997, "GND"], [1, 58.49899908, 26.379500200000003, 58.00000083999999, 26.50000034, 0.29999939999999997, "GND"], [1, 60.50000092, 25.08000064, 60.75000042, 26.50000034, 0.29999939999999997, "GND"], [1, 61.50099967999999, 25.08000064, 61.499998919999996, 26.50000034, 0.29999939999999997, "GND"], [1, 62.49900124, 25.08000064, 62.124998940000005, 26.50000034, 0.29999939999999997, "GND"], [1, 32.49900028, 11.9609997, 31.75, 11.99999886, 0.29999939999999997, "GND"], [1, 35.49899935999999, 11.9609997, 35.625001139999995, 10.62500034, 0.29999939999999997, "GND"], [1, 45.49899968, 11.9609997, 44.74999939999999, 11.99999886, 0.29999939999999997, "GND"], [1, 46.500000979999996, 11.9609997, 46.500000979999996, 10.62500034, 0.29999939999999997, "GND"], [1, 47.50099974, 11.9609997, 47.49999898, 10.62500034, 0.29999939999999997, "GND"], [1, 48.49899876, 11.9609997, 48.499999519999996, 10.62500034, 0.29999939999999997, "GND"], [1, 50.5000006, 11.9609997, 50.5000006, 10.62500034, 0.29999939999999997, "GND"], [1, 51.500999359999994, 11.9609997, 51.500001139999995, 10.62500034, 0.29999939999999997, "GND"], [1, 53.499999679999995, 11.9609997, 53.499999679999995, 10.62500034, 0.29999939999999997, "GND"], [1, 54.50100098, 11.9609997, 54.50000022, 10.62500034, 0.29999939999999997, "GND"], [1, 55.498999999999995, 11.9609997, 55.50000076, 10.62500034, 0.29999939999999997, "GND"], [1, 56.49999876, 11.9609997, 56.49999876, 10.62500034, 0.29999939999999997, "GND"], [1, 57.50100006, 11.9609997, 57.4999993, 10.62500034, 0.29999939999999997, "GND"], [1, 58.49899908, 11.9609997, 58.49999984, 10.62500034, 0.29999939999999997, "GND"], [1, 59.49899962, 11.9609997, 59.49899962, 10.66150014, 0.29999939999999997, "GND"], [1, 59.49899962, 10.66150014, 58.749999339999995, 10.62500034, 0.29999939999999997, "GND"], [1, 60.50000092, 11.9609997, 60.75000042, 10.62500034, 0.29999939999999997, "GND"], [1, 61.50099967999999, 11.9609997, 61.499998919999996, 10.62500034, 0.29999939999999997, "GND"], [1, 62.49900124, 11.9609997, 62.49999946, 10.62500034, 0.29999939999999997, "GND"], [1, 63.5, 11.9609997, 63.5, 10.62500034, 0.29999939999999997, "GND"], [1, 64.50099876, 11.9609997, 64.25000104, 10.62500034, 0.29999939999999997, "GND"], [1, 35.49899935999999, 4.7600006399999994, 35.625001139999995, 3.3749995999999998, 0.29999939999999997, "GND"], [1, 38.49900098, 4.7600006399999994, 38.4999992, 3.3749995999999998, 0.29999939999999997, "GND"], [1, 45.49899968, 4.7600006399999994, 44.74999939999999, 4.7500006599999995, 0.29999939999999997, "GND"], [1, 46.500000979999996, 4.7600006399999994, 46.37499995999999, 6.12499918, 0.29999939999999997, "GND"], [1, 49.50000006, 4.7600006399999994, 49.62500108, 6.12499918, 0.29999939999999997, "GND"], [1, 50.5000006, 4.7600006399999994, 50.5000006, 6.12499918, 0.29999939999999997, "GND"], [1, 51.500999359999994, 4.7600006399999994, 51.500001139999995, 6.12499918, 0.29999939999999997, "GND"], [1, 52.49900091999999, 4.7600006399999994, 52.49999913999999, 6.12499918, 0.29999939999999997, "GND"], [1, 53.499999679999995, 4.7600006399999994, 53.499999679999995, 6.12499918, 0.29999939999999997, "GND"], [1, 54.50100098, 4.7600006399999994, 54.50000022, 6.12499918, 0.29999939999999997, "GND"], [1, 55.498999999999995, 4.7600006399999994, 55.50000076, 6.12499918, 0.29999939999999997, "GND"], [1, 56.49999876, 4.7600006399999994, 56.49999876, 6.12499918, 0.29999939999999997, "GND"], [1, 57.50100006, 4.7600006399999994, 57.4999993, 6.12499918, 0.29999939999999997, "GND"], [1, 58.49899908, 4.7600006399999994, 58.49999984, 6.12499918, 0.29999939999999997, "GND"], [1, 59.49899962, 4.7600006399999994, 59.500000379999996, 6.12499918, 0.29999939999999997, "GND"], [1, 60.50000092, 4.7600006399999994, 60.50000092, 6.12499918, 0.29999939999999997, "GND"], [1, 61.50099967999999, 4.7600006399999994, 61.499998919999996, 6.12499918, 0.29999939999999997, "GND"], [1, 62.49900124, 4.7600006399999994, 62.49999946, 6.12499918, 0.29999939999999997, "GND"], [1, 63.5, 4.7600006399999994, 63.5, 6.12499918, 0.29999939999999997, "GND"], [1, 65.49900032000001, 4.7600006399999994, 66.24999958000001, 4.7500006599999995, 0.29999939999999997, "GND"], [2, 8.75000028, 22.18200034, 8.125000259999998, 22.125000200000002, 0.29999939999999997, "GND"], [2, 2.3159999399999998, 65.24999903999999, 2.2500005800000005, 64.62499901999999, 0.29999939999999997, "GND"], [2, 17.18300094, 63.5, 17.125000039999996, 62.87499998, 0.29999939999999997, "GND"], [2, 84.81799901999999, 11.50100062, 84.87499916, 12.124999879999999, 0.29999939999999997, "GND"], [2, 81.81600096, 11.50100062, 81.87500008, 12.124999879999999, 0.29999939999999997, "GND"], [2, 91.50100064, 10.43200098, 92.12499989999999, 10.49999932, 0.29999939999999997, "GND"], [2, 86.75399972, 25.99900058, 86.74999921999999, 25.2500003, 0.29999939999999997, "GND"], [2, 21.609999960000003, 44.50100066, 21.625001199999996, 44.999998899999994, 0.27900122, "GND"], [2, 6.35, 69.45099902, 6.2500002, 70.12500071999999, 0.29999939999999997, "GND"], [2, 89.89600003999999, 60.24900066, 89.75000083999998, 61.37500044, 0.29999939999999997, "GND"], [2, 18.34900064, 69.45099902, 18.375000080000003, 70.12500071999999, 0.29999939999999997, "GND"], [2, 77.0309991, 23.70099908, 77.00000093999999, 24.62500028, 0.29999939999999997, "GND"], [2, 36.076001, 62.18199908, 36.076001, 63.30750102, 0.29999939999999997, "GND"], [2, 36.076001, 63.30750102, 35.500000119999996, 63.37499898, 0.29999939999999997, "GND"], [2, 35.424999, 62.18199908, 35.3749991, 63.37499898, 0.29999939999999997, "GND"], [2, 37.37600094, 56.13699974, 37.37600094, 57.262499139999996, 0.29999939999999997, "GND"], [2, 37.37600094, 57.262499139999996, 37.87499918, 57.4999993, 0.29999939999999997, "GND"], [2, 58.13300032, 42.450999679999995, 58.749999339999995, 42.75000086, 0.29999939999999997, "GND"], [2, 58.1200006, 38.19899904, 58.1200006, 39.41100068, 0.49999899999999997, "GND"], [2, 44.879000919999996, 41.640998759999995, 44.879000919999996, 44.05900002, 0.49999899999999997, "GND"], [2, 44.86699942, 42.85000066, 44.879000919999996, 41.640998759999995, 0.49999899999999997, "GND"], [2, 87.20000086, 7.724000299999999, 87.05000116, 8.373999, 0.29999939999999997, "GND"], [2, 87.05000116, 8.373999, 88.32600064, 6.95500006, 0.29999939999999997, "GND"], [1, 45.49899968, 72.9209997, 46.500000979999996, 72.9209997, 1.99900032, "GND"], [1, 53.499999679999995, 65.72000064, 54.49999006, 65.72000064, 1.99900032, "GND"], [1, 53.499999679999995, 65.72000064, 52.49999405999999, 65.72000064, 1.99900032, "GND"], [1, 52.49999405999999, 65.72000064, 51.500999359999994, 65.72000064, 1.99900032, "GND"], [1, 55.49998806, 65.72000064, 56.49998606, 65.72000064, 1.99900032, "GND"], [1, 55.49998806, 65.72000064, 54.49999006, 65.72000064, 1.99900032, "GND"], [1, 58.49899908, 65.72000064, 57.50100006, 65.72000064, 1.99900032, "GND"], [1, 59.49998006, 65.72000064, 60.49997806, 65.72000064, 1.99900032, "GND"], [1, 59.49998006, 65.72000064, 58.49899908, 65.72000064, 1.99900032, "GND"], [1, 60.50000092, 65.72000064, 61.499976059999995, 65.72000064, 1.99900032, "GND"], [1, 45.49899968, 52.600999699999996, 46.50000606, 52.600999699999996, 1.99900032, "GND"], [1, 46.500000979999996, 52.600999699999996, 47.50099974, 52.600999699999996, 1.99900032, "GND"], [1, 55.49998806, 52.600999699999996, 56.49998606, 52.600999699999996, 1.99900032, "GND"], [1, 55.49998806, 52.600999699999996, 54.50100098, 52.600999699999996, 1.99900032, "GND"], [1, 56.49999876, 52.600999699999996, 57.499984059999996, 52.600999699999996, 1.99900032, "GND"], [1, 58.49998206, 52.600999699999996, 57.499984059999996, 52.600999699999996, 1.99900032, "GND"], [1, 59.49998006, 52.600999699999996, 60.49997806, 52.600999699999996, 1.99900032, "GND"], [1, 59.49998006, 52.600999699999996, 58.49998206, 52.600999699999996, 1.99900032, "GND"], [1, 50.5000006, 45.40000064, 51.49999606, 45.40000064, 1.99900032, "GND"], [1, 52.49999405999999, 45.40000064, 53.49999205999999, 45.40000064, 1.99900032, "GND"], [1, 52.49999405999999, 45.40000064, 51.49999606, 45.40000064, 1.99900032, "GND"], [1, 62.49900124, 45.40000064, 61.499976059999995, 45.40000064, 1.99900032, "GND"], [1, 61.499976059999995, 45.40000064, 60.50000092, 45.40000064, 1.99900032, "GND"], [1, 46.500000979999996, 32.2809997, 47.50099974, 32.2809997, 1.99900032, "GND"], [1, 56.49998606, 32.2809997, 55.49998806, 32.2809997, 1.99900032, "GND"], [1, 55.49998806, 32.2809997, 54.50100098, 32.2809997, 1.99900032, "GND"], [1, 56.49999876, 32.2809997, 57.499984059999996, 32.2809997, 1.99900032, "GND"], [1, 57.499984059999996, 32.2809997, 58.49998206, 32.2809997, 1.99900032, "GND"], [1, 59.49998006, 32.2809997, 60.49997806, 32.2809997, 1.99900032, "GND"], [1, 58.49998206, 32.2809997, 59.49998006, 32.2809997, 1.99900032, "GND"], [1, 60.50000092, 32.2809997, 61.499976059999995, 32.2809997, 1.99900032, "GND"], [1, 62.49997406, 32.2809997, 63.5, 32.2809997, 1.99900032, "GND"], [1, 61.499976059999995, 32.2809997, 62.49997406, 32.2809997, 1.99900032, "GND"], [2, 58.13300032, 34.18100097999999, 58.13300032, 35.400000320000004, 0.5660008999999999, "GND"], [2, 44.879000919999996, 44.05900002, 44.86699942, 42.85000066, 0.49999899999999997, "GND"], [1, 46.500000979999996, 72.9209997, 47.50099974, 72.9209997, 1.99900032, "GND"], [1, 50.5000006, 65.72000064, 51.500999359999994, 65.72000064, 1.99900032, "GND"], [1, 56.49999876, 65.72000064, 57.50100006, 65.72000064, 1.99900032, "GND"], [1, 61.50099967999999, 65.72000064, 62.49900124, 65.72000064, 1.99900032, "GND"], [1, 60.50000092, 52.600999699999996, 61.50099967999999, 52.600999699999996, 1.99900032, "GND"], [1, 61.50099967999999, 52.600999699999996, 62.49997406, 52.600999699999996, 1.99900032, "GND"], [1, 62.49997406, 52.600999699999996, 63.5, 52.600999699999996, 1.99900032, "GND"], [1, 53.499999679999995, 45.40000064, 54.50100098, 45.40000064, 1.99900032, "GND"], [1, 59.49899962, 45.40000064, 60.50000092, 45.40000064, 1.99900032, "GND"], [1, 52.49900091999999, 25.08000064, 53.499999679999995, 25.08000064, 1.99900032, "GND"], [1, 53.499999679999995, 25.08000064, 54.49999006, 25.08000064, 1.99900032, "GND"], [1, 54.49999006, 25.08000064, 55.498999999999995, 25.08000064, 1.99900032, "GND"], [1, 55.498999999999995, 25.08000064, 56.49998606, 25.08000064, 1.99900032, "GND"], [1, 56.49999876, 25.08000064, 57.499984059999996, 25.08000064, 1.99900032, "GND"], [1, 57.50100006, 25.08000064, 58.49899908, 25.08000064, 1.99900032, "GND"], [1, 58.49899908, 25.08000064, 59.49998006, 25.08000064, 1.99900032, "GND"], [1, 59.49998006, 25.08000064, 60.50000092, 25.08000064, 1.99900032, "GND"], [1, 60.50000092, 25.08000064, 61.499976059999995, 25.08000064, 1.99900032, "GND"], [1, 61.50099967999999, 25.08000064, 62.49900124, 25.08000064, 1.99900032, "GND"], [1, 48.499999519999996, 51.2499991, 48.250000019999995, 51.2499991, 0.19999959999999997, "GND"], [2, 48.499999519999996, 51.2499991, 48.250000019999995, 51.2499991, 0.19999959999999997, "GND"], [1, 61.12500093999999, 51.2499991, 60.6249994, 51.2499991, 0.19999959999999997, "GND"], [2, 61.12500093999999, 51.2499991, 60.6249994, 51.2499991, 0.19999959999999997, "GND"], [1, 63.7499995, 54.00000122, 63.87500052, 54.1249997, 0.19999959999999997, "GND"], [2, 63.7499995, 54.00000122, 63.87500052, 54.1249997, 0.19999959999999997, "GND"], [1, 63.999998999999995, 54.00000122, 63.87500052, 54.1249997, 0.19999959999999997, "GND"], [2, 63.999998999999995, 54.00000122, 63.87500052, 54.1249997, 0.19999959999999997, "GND"], [1, 53.499999679999995, 46.750000480000004, 53.29899932, 46.94899932, 0.19999959999999997, "GND"], [2, 53.499999679999995, 46.750000480000004, 53.29899932, 46.94899932, 0.19999959999999997, "GND"], [1, 58.00000083999999, 26.50000034, 57.4999993, 26.50000034, 0.19999959999999997, "GND"], [2, 58.00000083999999, 26.50000034, 57.4999993, 26.50000034, 0.19999959999999997, "GND"], [1, 58.749999339999995, 10.62500034, 58.49999984, 10.62500034, 0.19999959999999997, "GND"], [2, 58.749999339999995, 10.62500034, 58.49999984, 10.62500034, 0.19999959999999997, "GND"], [1, 35.3749991, 63.37499898, 35.500000119999996, 63.37499898, 0.19999959999999997, "GND"], [2, 35.3749991, 63.37499898, 35.500000119999996, 63.37499898, 0.19999959999999997, "GND"], [2, 47.051000640000005, 39.32899932, 46.276000919999994, 39.32899932, 0.19999959999999997, "UP_DM"], [2, 46.276000919999994, 39.32899932, 45.775999379999995, 39.07899982, 0.19999959999999997, "UP_DM"], [2, 55.949888099999995, 42.32991533999999, 57.147086619999996, 42.32991533999999, 0.254, "$4N604"], [2, 57.147086619999996, 42.32991533999999, 57.26718544, 42.450014159999995, 0.254, "$4N604"], [2, 55.949888099999995, 35.32992934, 57.19708651999999, 35.32992934, 0.254, "$4N603"], [2, 57.19708651999999, 35.32992934, 57.26718544, 35.40002826, 0.254, "$4N603"], [2, 4.854991559999999, 54.767789879999995, 3.5849941, 54.767789879999995, 0.254, "$1N213"], [2, 3.5849941, 54.767789879999995, 2.31499664, 54.767789879999995, 0.254, "$1N213"], [2, 2.31499664, 54.767789879999995, 1.04499918, 54.767789879999995, 0.254, "$1N213"], [2, 4.854991559999999, 54.767789879999995, 7.30148654, 54.767789879999995, 0.254, "$1N213"], [2, 7.30148654, 54.767789879999995, 7.5999848, 55.066290679999994, 0.254, "$1N213"], [2, 55.25009016, 34.13003080000001, 57.21718554, 34.13003080000001, 0.254, "$4N602"], [2, 57.21718554, 34.13003080000001, 57.26718544, 34.180030699999996, 0.254, "$4N602"], [2, 48.25010416, 34.13003080000001, 48.25010416, 33.5780253, 0.254, "$4N598"], [2, 48.25010416, 33.5780253, 47.99610416, 33.32402784, 0.254, "$4N598"], [2, 47.99610416, 33.32402784, 46.008813239999995, 33.32402784, 0.254, "$4N598"], [2, 46.008813239999995, 33.32402784, 45.73280922, 33.60003186, 0.254, "$4N598"], [2, 55.25009016, 60.659977739999995, 55.25009016, 61.16797773999999, 0.25200864, "$3N389"], [2, 55.25009016, 61.16797773999999, 54.99609016, 61.421977739999996, 0.25200864, "$3N389"], [2, 55.68278932, 62.61667435999999, 55.68278932, 63.74997155999999, 0.25200864, "$3N389"], [2, 63.250074160000004, 60.659977739999995, 63.250074160000004, 61.67597773999999, 0.25200864, "$3N405"], [2, 63.250074160000004, 61.67597773999999, 63.682773319999995, 62.1086769, 0.25200864, "$3N405"], [2, 63.682773319999995, 62.1086769, 63.682773319999995, 63.74997155999999, 0.25200864, "$3N405"], [2, 47.050004959999995, 35.830129, 46.649172639999996, 35.830129, 0.254, "$4N596"], [2, 46.649172639999996, 35.830129, 45.91507454, 35.0960309, 0.254, "$4N596"], [2, 45.91507454, 35.0960309, 43.886813419999996, 35.0960309, 0.254, "$4N596"], [2, 43.886813419999996, 35.0960309, 43.63281342, 35.35002836, 0.254, "$4N596"], [1, 36.50002606, 65.72006922, 36.50002606, 63.32307376, 0.254, "SCL2"], [1, 36.50002606, 63.32307376, 37.008026060000006, 62.81507376, 0.254, "SCL2"], [1, 37.008026060000006, 62.81507376, 37.77002352, 62.81507376, 0.254, "SCL2"], [1, 37.77002352, 62.81507376, 38.78602352, 63.83107121999999, 0.254, "SCL2"], [1, 38.78602352, 63.83107121999999, 38.78602352, 64.08507121999999, 0.254, "SCL2"], [2, 38.78602352, 64.08507121999999, 39.32492262, 63.546172119999994, 0.254, "SCL2"], [2, 39.32492262, 63.546172119999994, 39.32492262, 62.18257566, 0.254, "SCL2"], [1, 37.500024059999994, 65.72006922, 37.500024059999994, 64.59307122, 0.254, "SDA2"], [1, 37.500024059999994, 64.59307122, 37.75402406, 64.33907122, 0.254, "SDA2"], [2, 37.75402406, 64.33907122, 37.75402406, 64.08507121999999, 0.254, "SDA2"], [2, 37.75402406, 64.08507121999999, 38.67512203999999, 63.16397323999999, 0.254, "SDA2"], [2, 38.67512203999999, 63.16397323999999, 38.67512203999999, 62.18257566, 0.254, "SDA2"], [2, 85.24992856, 7.72408412, 85.24992856, 10.501078819999998, 0.254, "$4N577"], [2, 85.24992856, 10.501078819999998, 85.68282838, 10.933978640000001, 0.254, "$4N577"], [2, 85.68282838, 10.933978640000001, 85.68282838, 11.499977, 0.254, "$4N577"], [1, 64.49997006, 65.72006922, 64.49997006, 64.84707121999999, 0.254, "PRSNT2#"], [1, 64.49997006, 64.84707121999999, 68.05596498, 61.2910763, 0.254, "PRSNT2#"], [1, 68.05596498, 61.2910763, 69.07196244, 61.2910763, 0.254, "PRSNT2#"], [2, 73.38995227999999, 62.0530763, 74.15195227999999, 61.2910763, 0.254, "PRSNT2#"], [2, 74.15195227999999, 61.2910763, 79.08400744, 61.2910763, 0.254, "PRSNT2#"], [2, 79.08400744, 61.2910763, 79.23194212, 61.14314416, 0.254, "PRSNT2#"], [2, 79.23194212, 61.14314416, 79.23194212, 60.75297729999999, 0.254, "PRSNT2#"], [2, 79.23194212, 60.75297729999999, 79.73503991999999, 60.2498795, 0.254, "PRSNT2#"], [2, 79.73503991999999, 60.2498795, 79.73503991999999, 58.05218514, 0.254, "PRSNT2#"], [2, 79.73503991999999, 58.05218514, 78.43284288, 56.74998556, 0.254, "PRSNT2#"], [1, 31.674036219999998, 53.63909261999999, 31.674036219999998, 51.099097699999994, 0.254, "SCL3"], [1, 38.02402352, 59.98907992, 31.674036219999998, 53.63909261999999, 0.254, "SCL3"], [1, 39.548020980000004, 59.98907992, 38.02402352, 59.98907992, 0.254, "SCL3"], [1, 40.56401843999999, 61.005077379999996, 39.548020980000004, 59.98907992, 0.254, "SCL3"], [2, 40.56401843999999, 61.005077379999996, 40.56401843999999, 62.121475960000005, 0.254, "SCL3"], [2, 40.56401843999999, 62.121475960000005, 40.62511814, 62.18257566, 0.254, "SCL3"], [1, 37.500024059999994, 45.40010986, 37.500024059999994, 49.57510024, 0.254, "SDA3"], [1, 37.500024059999994, 49.57510024, 39.02402152, 51.099097699999994, 0.254, "SDA3"], [2, 38.451121979999996, 60.68617783999999, 39.467121979999995, 60.68617783999999, 0.254, "SDA3"], [2, 39.467121979999995, 60.68617783999999, 39.97511944, 61.194177839999995, 0.254, "SDA3"], [2, 39.97511944, 61.194177839999995, 39.97511944, 62.18257566, 0.254, "SDA3"], [1, 36.50002606, 86.04012764, 36.50002606, 75.00714996, 0.254, "SCL1"], [1, 36.50002606, 75.00714996, 35.9920286, 74.49914996, 0.254, "SCL1"], [2, 35.9920286, 74.49914996, 34.85253126, 73.35965261999999, 0.254, "SCL1"], [2, 34.85253126, 73.35965261999999, 34.85253126, 61.2911779, 0.254, "SCL1"], [2, 34.85253126, 61.2911779, 35.10652872, 61.0371779, 0.254, "SCL1"], [2, 35.10652872, 61.0371779, 37.64652364, 61.0371779, 0.254, "SCL1"], [2, 37.64652364, 61.0371779, 38.02512334000001, 61.4157776, 0.254, "SCL1"], [2, 38.02512334000001, 61.4157776, 38.02512334000001, 62.18257566, 0.254, "SCL1"], [1, 37.500024059999994, 86.04012764, 37.500024059999994, 74.49914996, 0.254, "SDA1"], [2, 37.375226239999996, 63.45237245999999, 37.375226239999996, 62.18257566, 0.254, "SDA1"], [1, 42.50001406, 93.23991258, 44.64300952000001, 95.38290803999999, 0.254, "EFUSE_EN1"], [1, 44.64300952000001, 95.38290803999999, 68.40796326, 95.38290803999999, 0.254, "EFUSE_EN1"], [1, 68.40796326, 95.38290803999999, 71.70995563999999, 92.08091566, 0.254, "EFUSE_EN1"], [1, 71.70995563999999, 92.08091566, 71.70995563999999, 67.44296392, 0.254, "EFUSE_EN1"], [1, 71.70995563999999, 67.44296392, 73.37505263999999, 65.77786946, 0.254, "EFUSE_EN1"], [2, 73.37505263999999, 65.77786946, 73.37505263999999, 65.26986946, 0.254, "EFUSE_EN1"], [2, 73.37505263999999, 65.26986946, 72.6601544, 64.55497122, 0.254, "EFUSE_EN1"], [2, 72.6601544, 64.55497122, 72.10505518, 64.55497122, 0.254, "EFUSE_EN1"], [1, 42.50001406, 72.91985416000001, 42.50001406, 72.55485361999999, 0.254, "EFUSE_EN2"], [1, 42.50001406, 72.55485361999999, 47.32600643999999, 67.72886378, 0.254, "EFUSE_EN2"], [2, 47.32600643999999, 67.72886378, 49.22990154, 65.82496868, 0.254, "EFUSE_EN2"], [2, 49.22990154, 65.82496868, 72.10505518, 65.82496868, 0.254, "EFUSE_EN2"], [1, 42.50001406, 52.5998948, 42.50001406, 63.726872799999995, 0.254, "EFUSE_EN3"], [1, 42.50001406, 63.726872799999995, 44.786011519999995, 66.01286771999999, 0.254, "EFUSE_EN3"], [1, 44.786011519999995, 66.01286771999999, 44.786011519999995, 66.93486486, 0.254, "EFUSE_EN3"], [1, 44.786011519999995, 66.93486486, 44.94611026, 67.09496614, 0.254, "EFUSE_EN3"], [1, 44.94611026, 67.09496614, 52.820095020000004, 67.09496614, 0.254, "EFUSE_EN3"], [1, 52.820095020000004, 67.09496614, 53.07409502, 67.34896613999999, 0.254, "EFUSE_EN3"], [2, 53.07409502, 67.34896613999999, 53.58209247999999, 67.85696360000001, 0.254, "EFUSE_EN3"], [2, 53.58209247999999, 67.85696360000001, 63.74207216, 67.85696360000001, 0.254, "EFUSE_EN3"], [2, 63.74207216, 67.85696360000001, 64.50407216, 67.09496614, 0.254, "EFUSE_EN3"], [2, 64.50407216, 67.09496614, 72.10505518, 67.09496614, 0.254, "EFUSE_EN3"], [1, 36.50002606, 25.0801505, 36.50002606, 27.477145959999998, 0.254, "SCL4"], [1, 36.50002606, 27.477145959999998, 38.02402352, 29.001140879999998, 0.254, "SCL4"], [2, 41.8340159, 63.545072299999994, 41.8340159, 62.2736753, 0.254, "SCL4"], [2, 41.8340159, 62.2736753, 41.92511554, 62.18257566, 0.254, "SCL4"], [1, 37.500024059999994, 25.0801505, 37.500024059999994, 26.207148499999995, 0.254, "SDA4"], [1, 37.500024059999994, 26.207148499999995, 38.77002152, 27.477145959999998, 0.254, "SDA4"], [1, 38.77002152, 27.477145959999998, 38.77002152, 30.525138339999998, 0.254, "SDA4"], [1, 38.77002152, 30.525138339999998, 38.51602406, 30.77913834, 0.254, "SDA4"], [2, 41.078718959999996, 63.394973539999995, 41.275116839999995, 63.19857311999999, 0.254, "SDA4"], [2, 41.275116839999995, 63.19857311999999, 41.275116839999995, 62.18257566, 0.254, "SDA4"], [1, 36.50002606, 4.76008954, 36.50002606, 5.88708754, 0.254, "SCL5"], [1, 36.50002606, 5.88708754, 36.75402606000001, 6.14108754, 0.254, "SCL5"], [2, 36.75402606000001, 6.14108754, 36.75402606000001, 47.2570048, 0.254, "SCL5"], [2, 36.75402606000001, 47.2570048, 41.8340159, 52.33699463999999, 0.254, "SCL5"], [2, 41.8340159, 52.33699463999999, 41.8340159, 56.04628872, 0.254, "SCL5"], [2, 41.8340159, 56.04628872, 41.92511554, 56.13738836, 0.254, "SCL5"], [1, 37.500024059999994, 4.76008954, 37.500024059999994, 5.88708754, 0.254, "SDA5"], [1, 37.500024059999994, 5.88708754, 37.75402406, 6.14108754, 0.254, "SDA5"], [2, 43.08281452, 55.62938836, 43.08281452, 50.83979926, 0.254, "SDA5"], [2, 42.57481452, 56.13738836, 43.08281452, 55.62938836, 0.254, "SDA5"], [1, 42.50001406, 11.95987702, 42.50001406, 13.08687502, 0.254, "EFUSE_EN5"], [1, 42.50001406, 13.08687502, 42.75401406, 13.340872479999998, 0.254, "EFUSE_EN5"], [1, 57.99398358, 23.500852160000004, 61.549975960000005, 23.500852160000004, 0.254, "EFUSE_EN5"], [2, 75.40705009999999, 61.99587549999999, 75.40705009999999, 66.84096613999999, 0.254, "EFUSE_EN5"], [2, 75.40705009999999, 66.84096613999999, 72.61305518, 69.63496106, 0.254, "EFUSE_EN5"], [2, 72.61305518, 69.63496106, 72.10505518, 69.63496106, 0.254, "EFUSE_EN5"], [2, 3.6499927, 69.44996015999999, 4.326991600000001, 69.44996015999999, 0.254, "BST3V3"], [2, 4.326991600000001, 69.44996015999999, 6.612986519999999, 71.73595762, 0.254, "BST3V3"], [2, 6.612986519999999, 71.73595762, 6.8158867999999995, 71.73595762, 0.254, "BST3V3"], [2, 6.8158867999999995, 71.73595762, 6.999985999999999, 71.92005682, 0.254, "BST3V3"], [2, 47.050004959999995, 34.83013100000001, 46.369907260000005, 34.15003076, 0.254, "$4N597"], [2, 46.369907260000005, 34.15003076, 43.63281342, 34.15003076, 0.254, "$4N597"], [2, 16.2999674, 48.933701979999995, 20.649958699999996, 48.933701979999995, 0.254, "$1N226"], [2, 7.5999848, 48.933701979999995, 11.949976099999999, 48.933701979999995, 0.254, "$1N224"], [2, 11.949976099999999, 55.066290679999994, 16.2999674, 55.066290679999994, 0.254, "$1N225"], [2, 20.649958699999996, 55.066290679999994, 25.00004906, 55.066290679999994, 0.254, "$1N227"], [1, 49.50000006, 72.91985416000001, 49.50000006, 71.79385183999999, 0.25200864, "VDAC2"], [1, 49.50000006, 71.79385183999999, 54.07199244, 67.221862, 0.25200864, "VDAC2"], [2, 58.26198405999999, 58.713878, 57.695988240000005, 58.713878, 0.25200864, "VDAC2"], [2, 57.695988240000005, 58.713878, 57.499984059999996, 58.909882180000004, 0.25200864, "VDAC2"], [1, 64.49997006, 45.40010986, 64.49997006, 46.52710786, 0.254, "PRSNT3#"], [1, 64.49997006, 46.52710786, 65.26197006, 47.28910532, 0.254, "PRSNT3#"], [2, 65.26197006, 47.28910532, 67.29396498, 47.28910532, 0.254, "PRSNT3#"], [2, 67.29396498, 47.28910532, 73.13595482, 53.13109261999999, 0.254, "PRSNT3#"], [2, 73.13595482, 53.13109261999999, 73.13595482, 53.385092619999995, 0.254, "PRSNT3#"], [2, 76.51164784, 56.433087539999995, 76.25764784, 56.68708753999999, 0.254, "PRSNT3#"], [2, 76.25764784, 56.68708753999999, 75.49564784, 56.68708753999999, 0.254, "PRSNT3#"], [2, 75.49564784, 56.68708753999999, 75.43274982, 56.74998556, 0.254, "PRSNT3#"], [2, 76.25764784, 56.68708753999999, 76.51164784, 56.68708753999999, 0.254, "PRSNT3#"], [2, 76.51164784, 56.68708753999999, 78.03564276, 58.21108245999999, 0.254, "PRSNT3#"], [2, 78.03564276, 58.21108245999999, 78.03564276, 59.8205814, 0.254, "PRSNT3#"], [2, 78.03564276, 59.8205814, 78.46494340000001, 60.2498795, 0.254, "PRSNT3#"], [1, 49.50000006, 52.5998948, 49.50000006, 53.72589711999999, 0.25200864, "VDAC3"], [2, 65.49996805999999, 57.90208383999999, 65.49996805999999, 58.41008383999999, 0.25200864, "VDAC3"], [2, 65.49996805999999, 58.41008383999999, 65.49996805999999, 58.909882180000004, 0.25200864, "VDAC3"], [1, 49.50000006, 11.95987702, 49.50000006, 13.339876799999999, 0.25200864, "VDAC5"], [1, 49.50000006, 13.339876799999999, 57.627984819999995, 21.46786156, 0.25200864, "VDAC5"], [1, 57.627984819999995, 21.46786156, 61.437977200000006, 21.46786156, 0.25200864, "VDAC5"], [2, 61.437977200000006, 21.46786156, 63.97797211999999, 24.007856479999997, 0.25200864, "VDAC5"], [2, 63.97797211999999, 24.007856479999997, 63.97797211999999, 28.57984632, 0.25200864, "VDAC5"], [2, 63.97797211999999, 28.57984632, 65.50196958, 30.103843780000002, 0.25200864, "VDAC5"], [2, 65.50196958, 30.103843780000002, 65.50196958, 46.105813299999994, 0.25200864, "VDAC5"], [2, 65.50196958, 46.105813299999994, 64.48597212, 47.12181075999999, 0.25200864, "VDAC5"], [2, 64.48597212, 47.12181075999999, 64.48597212, 47.37581075999999, 0.25200864, "VDAC5"], [2, 64.48597212, 47.37581075999999, 65.50196958, 48.39180822, 0.25200864, "VDAC5"], [2, 65.50196958, 48.39180822, 65.50196958, 50.16980314, 0.25200864, "VDAC5"], [2, 66.26396704, 59.408080319999996, 65.49996805999999, 59.410081840000004, 0.25200864, "VDAC5"], [2, 65.49996805999999, 59.410081840000004, 65.49996805999999, 59.909880179999995, 0.25200864, "VDAC5"], [1, 64.49997006, 25.0801505, 64.49997006, 26.207148499999995, 0.254, "PRSNT4#"], [1, 64.49997006, 26.207148499999995, 64.75397006, 26.461145959999996, 0.254, "PRSNT4#"], [2, 64.75397006, 26.461145959999996, 66.02396752, 27.73114342, 0.254, "PRSNT4#"], [2, 66.02396752, 27.73114342, 66.02396752, 30.525138339999998, 0.254, "PRSNT4#"], [2, 66.02396752, 30.525138339999998, 76.6919472, 41.19311802, 0.254, "PRSNT4#"], [1, 76.6919472, 53.89309261999999, 77.19994466, 54.401090079999996, 0.254, "PRSNT4#"], [1, 77.19994466, 54.401090079999996, 77.19994466, 58.21108245999999, 0.254, "PRSNT4#"], [2, 77.19994466, 58.21108245999999, 77.19994466, 60.24487824, 0.254, "PRSNT4#"], [2, 6.7729862, 68.49996206, 7.2809862, 69.00796206, 0.254, "SW3V3"], [2, 9.40008026, 68.49996206, 6.7729862, 68.49996206, 0.254, "SW3V3"], [2, 6.7729862, 68.49996206, 6.3499873000000004, 68.49996206, 0.254, "SW3V3"], [2, 7.2809862, 69.00796206, 7.2809862, 70.79885764, 0.254, "SW3V3"], [2, 7.2809862, 70.79885764, 6.999985999999999, 71.07985784, 0.254, "SW3V3"], [2, 19.42986208, 68.49996206, 19.42986208, 73.14995275999999, 0.254, "$2N70"], [2, 20.699859539999995, 68.49996206, 19.42986208, 68.49996206, 0.254, "$2N70"], [2, 19.42986208, 68.49996206, 18.3499633, 68.49996206, 0.254, "$2N70"], [2, 19.42986208, 73.14995275999999, 19.32986228, 73.24995256, 0.254, "$2N70"], [2, 15.649968699999999, 69.44996015999999, 15.649968699999999, 71.73595762, 0.254, "$2N74"], [2, 15.649968699999999, 71.73595762, 17.93596362, 74.02195254, 0.254, "$2N74"], [2, 17.93596362, 74.02195254, 19.71396108, 74.02195254, 0.254, "$2N74"], [2, 19.71396108, 74.02195254, 20.17005872, 73.56585236, 0.254, "$2N74"], [2, 20.17005872, 73.56585236, 20.17005872, 73.24995256, 0.254, "$2N74"], [2, 82.24993456, 7.72408412, 82.24993456, 10.501078819999998, 0.254, "$4N579"], [2, 82.24993456, 10.501078819999998, 82.68283437999999, 10.933978640000001, 0.254, "$4N579"], [2, 82.68283437999999, 10.933978640000001, 82.68283437999999, 11.499977, 0.254, "$4N579"], [2, 53.44789412, 60.453978660000004, 52.2959965, 60.453978660000004, 0.25200864, "$3N384"], [2, 52.2959965, 60.453978660000004, 50.99999706, 61.749975559999996, 0.25200864, "$3N384"], [2, 81.59973774, 7.72408412, 81.59973774, 8.501070119999998, 0.254, "VBUS_UP"], [2, 81.59973774, 8.501070119999998, 81.34573773999999, 8.755070119999997, 0.254, "VBUS_UP"], [2, 81.34573773999999, 8.755070119999997, 79.56774028, 8.755070119999997, 0.254, "VBUS_UP"], [2, 79.56774028, 8.755070119999997, 79.05974282, 8.247070119999998, 0.254, "VBUS_UP"], [2, 79.05974282, 8.247070119999998, 79.05974282, 7.99307012, 0.254, "VBUS_UP"], [2, 79.05974282, 7.99307012, 78.55174281999999, 7.48507266, 0.254, "VBUS_UP"], [2, 78.55174281999999, 7.48507266, 78.55174281999999, 6.215075199999999, 0.254, "VBUS_UP"], [2, 78.55174281999999, 6.215075199999999, 80.07574028, 4.691077739999999, 0.254, "VBUS_UP"], [2, 80.07574028, 4.691077739999999, 83.99179798, 4.691077739999999, 0.254, "VBUS_UP"], [2, 83.99179798, 4.691077739999999, 86.42572758, 7.125007339999999, 0.254, "VBUS_UP"], [2, 86.42572758, 7.125007339999999, 86.42572758, 7.698483459999999, 0.254, "VBUS_UP"], [2, 86.42572758, 7.698483459999999, 86.40012691999999, 7.72408412, 0.254, "VBUS_UP"], [2, 86.40012691999999, 7.72408412, 86.40012691999999, 8.50108282, 0.254, "VBUS_UP"], [2, 86.40012691999999, 8.50108282, 86.90812692, 9.00908282, 0.254, "VBUS_UP"], [2, 86.90812692, 9.00908282, 89.1919222, 9.00908282, 0.254, "VBUS_UP"], [2, 89.1919222, 9.00908282, 89.25002216, 9.067182779999998, 0.254, "VBUS_UP"], [2, 78.55174281999999, 7.48507266, 77.53574535999999, 7.48507266, 0.254, "VBUS_UP"], [2, 77.53574535999999, 7.48507266, 70.93175806, 14.08905996, 0.254, "VBUS_UP"], [1, 70.93175806, 14.08905996, 64.32777075999999, 20.69304472, 0.254, "VBUS_UP"], [1, 64.32777075999999, 20.69304472, 57.97778346, 20.69304472, 0.254, "VBUS_UP"], [1, 64.49997006, 86.04012764, 64.49997006, 81.35713726, 0.254, "PRSNT1#"], [1, 64.49997006, 81.35713726, 68.30996243999999, 77.54714487999999, 0.254, "PRSNT1#"], [2, 81.00993704, 61.5451779, 81.00993704, 60.25477916, 0.254, "PRSNT1#"], [2, 81.00503737999999, 60.2498795, 81.43283688, 59.82207999999999, 0.254, "PRSNT1#"], [2, 81.43283688, 59.82207999999999, 81.43283688, 56.74998556, 0.254, "PRSNT1#"], [1, 42.50001406, 70.68915758, 42.50001406, 65.72006922, 0.254, "INT#"], [1, 42.50001406, 51.131198219999995, 42.50001406, 45.40010986, 0.254, "INT#"], [1, 42.50001406, 30.81123886, 42.50001406, 25.0801505, 0.254, "INT#"], [1, 42.50001406, 10.4912795, 42.50001406, 4.76008954, 0.254, "INT#"], [1, 42.50001406, 84.91312964, 43.26201406, 84.91312964, 0.254, "INT#"], [1, 42.50001406, 86.04012764, 42.50001406, 84.91312964, 0.254, "INT#"], [1, 42.50001406, 84.91312964, 42.50001406, 74.49914996, 0.254, "INT#"], [1, 43.26201406, 84.91312964, 43.51601406, 85.16712964, 0.254, "INT#"], [2, 43.51601406, 85.16712964, 43.51601406, 85.67512964, 0.254, "INT#"], [2, 43.51601406, 85.67512964, 44.53201152, 86.6911271, 0.254, "INT#"], [2, 44.53201152, 86.6911271, 70.94795818, 86.6911271, 0.254, "INT#"], [2, 70.94795818, 86.6911271, 75.93274882, 81.70633646, 0.254, "INT#"], [2, 75.93274882, 81.70633646, 75.93274882, 81.25003816, 0.254, "INT#"], [2, 75.93274882, 81.25003816, 76.69474627999999, 80.48803816, 0.254, "INT#"], [2, 78.47274374, 78.96404324, 78.9807412, 78.96404324, 0.254, "INT#"], [2, 78.9807412, 78.96404324, 79.7427412, 78.20204324, 0.254, "INT#"], [2, 79.7427412, 78.20204324, 79.7427412, 77.7577439, 0.254, "INT#"], [2, 79.7427412, 77.7577439, 79.73503991999999, 77.75004515999998, 0.254, "INT#"], [2, 26.00004706, 75.62304916000001, 42.76401404, 75.62304916000001, 0.254, "FAN_TACH_IN"], [2, 42.76401404, 75.62304916000001, 43.78001149999999, 74.6070517, 0.254, "FAN_TACH_IN"], [1, 43.78001149999999, 74.6070517, 51.90799626, 74.6070517, 0.254, "FAN_TACH_IN"], [2, 51.90799626, 74.6070517, 54.34009198, 72.17495598, 0.254, "FAN_TACH_IN"], [2, 54.34009198, 72.17495598, 72.10505518, 72.17495598, 0.254, "FAN_TACH_IN"], [2, 42.105016119999995, 81.75003715999999, 45.6610085, 85.30602954, 0.254, "FAN_TACH_OUT"], [2, 45.6610085, 85.30602954, 49.72500088, 85.30602954, 0.254, "FAN_TACH_OUT"], [2, 49.72500088, 85.30602954, 59.884980559999995, 75.14604986, 0.254, "FAN_TACH_OUT"], [2, 59.884980559999995, 75.14604986, 63.186972940000004, 75.14604986, 0.254, "FAN_TACH_OUT"], [2, 63.186972940000004, 75.14604986, 63.69497294, 75.65404986, 0.254, "FAN_TACH_OUT"], [2, 66.48896786, 71.59005748, 67.17406682, 70.90495852000001, 0.254, "FAN_TACH_OUT"], [2, 67.17406682, 70.90495852000001, 72.10505518, 70.90495852000001, 0.254, "FAN_TACH_OUT"], [2, 83.5450323, 60.2498795, 83.5450323, 56.61088753999999, 0.254, "UP_VBUS_DET"], [2, 83.5450323, 56.61088753999999, 84.56102976, 55.59489008, 0.254, "UP_VBUS_DET"], [2, 84.56102976, 55.59489008, 84.56102976, 14.621771619999999, 0.254, "UP_VBUS_DET"], [2, 84.56102976, 14.621771619999999, 89.25002216, 9.93277922, 0.254, "UP_VBUS_DET"], [2, 89.25002216, 9.93277922, 91.02801708, 9.93277922, 0.254, "UP_VBUS_DET"], [2, 91.02801708, 9.93277922, 91.39361706, 9.56718178, 0.254, "UP_VBUS_DET"], [2, 91.39361706, 9.56718178, 91.50001766, 9.56718178, 0.254, "UP_VBUS_DET"], [2, 72.10505518, 73.44495344, 59.29008208, 73.44495344, 0.254, "FAN_PWM"], [2, 59.29008208, 73.44495344, 56.75008716, 75.98494835999998, 0.254, "FAN_PWM"], [1, 56.75008716, 75.98494835999998, 56.75008716, 79.28694074, 0.254, "FAN_PWM"], [1, 56.75008716, 79.28694074, 51.670097319999996, 84.36693058, 0.254, "FAN_PWM"], [2, 51.670097319999996, 84.36693058, 50.274999779999995, 85.76202812, 0.254, "FAN_PWM"], [2, 50.274999779999995, 85.76202812, 45.449009939999996, 85.76202812, 0.254, "FAN_PWM"], [2, 45.449009939999996, 85.76202812, 44.17901248, 84.49203066, 0.254, "FAN_PWM"], [2, 72.10505518, 74.71495089999999, 59.54408208, 74.71495089999999, 0.254, "FAN_EN"], [2, 59.54408208, 74.71495089999999, 57.69178454, 76.5672459, 0.254, "FAN_EN"], [2, 57.69178454, 76.5672459, 47.277804859999996, 76.5672459, 0.254, "FAN_EN"], [1, 47.277804859999996, 76.5672459, 43.21381248, 76.5672459, 0.254, "FAN_EN"], [2, 81.00503737999999, 82.9450335, 81.43283688, 83.37283300000001, 0.254, "MUX_RST#"], [2, 81.43283688, 83.37283300000001, 81.43283688, 83.50003366, 0.254, "MUX_RST#"], [2, 81.00503737999999, 81.42103603999999, 79.98903992, 81.42103603999999, 0.254, "MUX_RST#"], [2, 81.00503737999999, 77.75004515999998, 81.00503737999999, 81.42103603999999, 0.254, "MUX_RST#"], [2, 81.00503737999999, 81.42103603999999, 81.00503737999999, 82.9450335, 0.254, "MUX_RST#"], [2, 79.98903992, 81.42103603999999, 79.73503991999999, 81.67503604, 0.254, "MUX_RST#"], [2, 36.725227540000006, 71.32655788, 36.725227540000006, 62.18257566, 0.254, "MUX_RST#"], [2, 63.250074160000004, 57.65998374, 61.9800767, 57.65998374, 0.25200864, "$3N397"], [2, 61.9800767, 57.65998374, 60.45607924, 56.13598882, 0.25200864, "$3N397"], [2, 61.472076699999995, 55.11998882, 61.472076699999995, 54.71069067999999, 0.25200864, "$3N397"], [2, 61.472076699999995, 54.71069067999999, 61.68277732, 54.49999006, 0.25200864, "$3N397"], [2, 61.68277732, 54.49999006, 62.698774779999994, 53.48399259999999, 0.25200864, "$3N397"], [2, 62.698774779999994, 53.48399259999999, 64.81387088, 53.48399259999999, 0.25200864, "$3N397"], [2, 64.81387088, 53.48399259999999, 65.82986834, 54.49999006, 0.25200864, "$3N397"], [2, 53.68279332, 55.9252882, 53.68279332, 54.90929074, 0.25200864, "$3N381"], [2, 53.68279332, 54.90929074, 53.93679332, 54.65529074, 0.25200864, "$3N381"], [2, 53.93679332, 54.65529074, 53.93679332, 54.253991060000004, 0.25200864, "$3N381"], [2, 53.93679332, 54.253991060000004, 53.68279332, 53.99999106, 0.25200864, "$3N381"], [2, 53.93679332, 54.65529074, 54.19079077999999, 54.40129074, 0.25200864, "$3N381"], [2, 54.19079077999999, 54.40129074, 57.73118502, 54.40129074, 0.25200864, "$3N381"], [2, 57.73118502, 54.40129074, 57.82988434, 54.49999006, 0.25200864, "$3N381"], [2, 64.7498705, 57.65998374, 64.7498705, 56.89798628, 0.25200864, "$3N400"], [2, 64.7498705, 56.89798628, 64.60186978, 56.74998556, 0.25200864, "$3N400"], [2, 52.01599706, 55.22599064, 52.01599706, 55.73398809999999, 0.25200864, "$3N400"], [2, 52.01599706, 55.73398809999999, 50.99999706, 56.74998556, 0.25200864, "$3N400"], [2, 49.25000056, 42.030015, 47.75000356, 42.030015, 0.27694382, "+3V3_HUB"], [2, 47.75000356, 42.030015, 47.45010576, 42.32991533999999, 0.27694382, "+3V3_HUB"], [2, 47.45010576, 42.32991533999999, 47.050004959999995, 42.32991533999999, 0.27694382, "+3V3_HUB"], [2, 47.050004959999995, 42.32991533999999, 47.050004959999995, 42.7301152, 0.27694382, "+3V3_HUB"], [2, 47.050004959999995, 42.7301152, 45.72010922, 44.06001094, 0.27694382, "+3V3_HUB"], [1, 64.49997006, 4.76008954, 64.49997006, 5.88708754, 0.254, "PRSNT5#"], [1, 64.49997006, 5.88708754, 64.75397006, 6.14108754, 0.254, "PRSNT5#"], [2, 64.75397006, 6.14108754, 64.75397006, 8.93508246, 0.254, "PRSNT5#"], [2, 83.54993196, 54.40099101999999, 83.54993196, 55.41698848, 0.254, "PRSNT5#"], [2, 83.54993196, 55.41698848, 82.27503484, 56.6918856, 0.254, "PRSNT5#"], [2, 82.27503484, 56.6918856, 82.27503484, 60.2498795, 0.254, "PRSNT5#"], [2, 82.27503484, 60.2498795, 82.27503484, 61.126878000000005, 0.254, "PRSNT5#"], [2, 82.27503484, 61.126878000000005, 73.38505262, 70.01686022, 0.254, "PRSNT5#"], [2, 73.38505262, 70.01686022, 73.38505262, 76.36684752, 0.254, "PRSNT5#"], [2, 72.43275582, 77.31914432, 72.43275582, 81.25003816, 0.254, "PRSNT5#"], [1, 52.518901819999996, 75.75794855999999, 54.296899280000005, 77.53594602, 0.254, "INA_ALERT"], [2, 77.1169527, 79.02004262, 77.29295946, 78.84403585999999, 0.254, "INA_ALERT"], [2, 77.29295946, 78.84403585999999, 77.3709527, 78.84403585999999, 0.254, "INA_ALERT"], [2, 77.70294340000001, 79.17602656, 77.70294340000001, 78.84403585999999, 0.254, "INA_ALERT"], [2, 77.3709527, 78.84403585999999, 77.70294340000001, 79.17602656, 0.254, "INA_ALERT"], [2, 77.70294340000001, 79.17602656, 78.13295016, 79.60603332, 0.254, "INA_ALERT"], [2, 77.70294340000001, 78.84403585999999, 78.46494340000001, 78.08203585999999, 0.254, "INA_ALERT"], [2, 78.46494340000001, 78.08203585999999, 78.46494340000001, 77.75004515999998, 0.254, "INA_ALERT"], [2, 78.13295016, 79.60603332, 78.13295016, 81.18433089999998, 0.254, "INA_ALERT"], [2, 78.13295016, 81.18433089999998, 78.0672429, 81.25003816, 0.254, "INA_ALERT"], [2, 73.38495356, 77.75004515999998, 73.38495356, 79.38904112, 0.254, "IO0"], [2, 73.38495356, 79.38904112, 74.40095102, 80.40503858, 0.254, "IO0"], [1, 85.57702975999999, 80.40503858, 77.46004574, 88.5220226, 0.254, "TXD0"], [1, 77.46004574, 88.5220226, 77.46004574, 95.50000965999999, 0.254, "TXD0"], [2, 86.08502722, 60.2498795, 86.08502722, 73.57285259999999, 0.254, "NTC1"], [2, 86.08502722, 73.57285259999999, 88.93282187999999, 76.42064726, 0.254, "NTC1"], [1, 88.93282187999999, 76.42064726, 88.93282187999999, 78.96064218000001, 0.254, "NTC1"], [2, 88.93282187999999, 81.25003816, 88.93282187999999, 83.10293259999999, 0.254, "NTC1"], [2, 88.93282187999999, 83.10293259999999, 89.8299194, 84.00003266, 0.254, "NTC1"], [2, 86.08502722, 58.10288354, 86.08502722, 60.2498795, 0.254, "NTC1"], [2, 86.84702722, 57.34088607999999, 86.08502722, 58.10288354, 0.254, "NTC1"], [2, 86.84702722, 55.30888862, 86.84702722, 57.34088607999999, 0.254, "NTC1"], [2, 85.24662909999999, 53.70849303999999, 86.84702722, 55.30888862, 0.254, "NTC1"], [2, 85.24662909999999, 26.00004706, 85.24662909999999, 53.70849303999999, 0.254, "NTC1"], [2, 84.81502975999999, 60.2498795, 84.81502975999999, 73.3188526, 0.254, "NTC2"], [2, 84.81502975999999, 73.3188526, 87.86302468, 76.36684752, 0.254, "NTC2"], [1, 87.86302468, 78.90684243999999, 89.64101959999999, 80.68483989999999, 0.254, "NTC2"], [2, 89.64101959999999, 80.68483989999999, 90.01471964, 80.68483989999999, 0.254, "NTC2"], [2, 90.01471964, 80.68483989999999, 91.0799169, 81.75003715999999, 0.254, "NTC2"], [2, 91.0799169, 81.75003715999999, 91.0799169, 82.76603461999999, 0.254, "NTC2"], [2, 91.0799169, 82.76603461999999, 91.8419169, 83.52803208, 0.254, "NTC2"], [2, 91.8419169, 83.52803208, 91.8419169, 84.29003208, 0.254, "NTC2"], [2, 91.8419169, 84.29003208, 91.3339169, 84.79802953999999, 0.254, "NTC2"], [2, 91.3339169, 84.79802953999999, 88.98082279999998, 84.79802953999999, 0.254, "NTC2"], [2, 88.98082279999998, 84.79802953999999, 87.68282437999999, 83.50003366, 0.254, "NTC2"], [1, 62.46307547999999, 23.558952119999997, 61.70107547999999, 22.79695466, 0.254, "NTC2"], [1, 61.70107547999999, 22.79695466, 56.875085639999995, 22.79695466, 0.254, "NTC2"], [2, 55.35108818, 21.2729572, 39.6031212, 5.524990219999999, 0.254, "NTC2"], [2, 87.35502468, 60.2498795, 87.35502468, 54.565090260000005, 0.254, "EN"], [2, 87.35502468, 54.565090260000005, 87.67012437999999, 54.24999055999999, 0.254, "EN"], [2, 87.35502468, 60.2498795, 87.35502468, 72.81085514000002, 0.254, "EN"], [2, 87.35502468, 72.81085514000002, 86.84702722, 73.3188526, 0.254, "EN"], [1, 86.84702722, 80.17683989999998, 84.0530323, 82.97083482, 0.254, "EN"], [2, 84.0530323, 82.97083482, 84.0530323, 91.62981674, 0.254, "EN"], [2, 84.0530323, 91.62981674, 82.93283388, 92.75001516000002, 0.254, "EN"], [2, 82.93283388, 92.75001516000002, 82.93283388, 95.10720881999998, 0.254, "EN"], [2, 82.93283388, 95.10720881999998, 82.54003558000001, 95.50000965999999, 0.254, "EN"], [1, 39.50002006, 91.29011713999998, 39.50002006, 86.04012764, 0.49999899999999997, "+3V3"], [1, 40.50001806, 92.29011514, 39.50002006, 91.29011713999998, 0.49999899999999997, "+3V3"], [1, 40.50001806, 93.23991258, 40.50001806, 92.29011514, 0.49999899999999997, "+3V3"], [1, 41.50001606, 93.23991258, 40.50001806, 93.23991258, 0.49999899999999997, "+3V3"], [1, 39.50002006, 86.04012764, 39.50002006, 76.79014614, 0.49999899999999997, "+3V3"], [1, 39.50002006, 76.79014614, 40.50001806, 75.79014813999999, 0.49999899999999997, "+3V3"], [1, 40.50001806, 75.79014813999999, 40.50001806, 72.91985416000001, 0.49999899999999997, "+3V3"], [1, 40.50001806, 72.91985416000001, 41.50001606, 72.91985416000001, 0.49999899999999997, "+3V3"], [1, 40.50001806, 72.91985416000001, 40.50001806, 67.66986466, 0.49999899999999997, "+3V3"], [1, 40.50001806, 67.66986466, 39.50002006, 66.66986665999998, 0.49999899999999997, "+3V3"], [1, 39.50002006, 66.66986665999998, 39.50002006, 65.72006922, 0.49999899999999997, "+3V3"], [1, 39.50002006, 65.72006922, 39.50002006, 63.54007357999999, 0.35999928, "+3V3"], [2, 36.00002706, 60.04008058, 35.50002806, 59.54008157999999, 0.35999928, "+3V3"], [2, 35.50002806, 59.54008157999999, 35.50002806, 56.21218882, 0.35999928, "+3V3"], [2, 35.50002806, 56.21218882, 35.42523013999999, 56.13738836, 0.35999928, "+3V3"], [2, 35.42523013999999, 56.13738836, 35.11773012, 55.82988833999999, 0.35999928, "+3V3"], [2, 35.11773012, 55.82988833999999, 33.00003306, 55.82988833999999, 0.35999928, "+3V3"], [1, 39.00002106, 63.040074579999995, 39.50002006, 63.040074579999995, 0.35999928, "+3V3"], [1, 39.50002006, 63.54007357999999, 39.00002106, 63.040074579999995, 0.35999928, "+3V3"], [1, 39.00002106, 63.040074579999995, 36.00002706, 60.04008058, 0.35999928, "+3V3"], [1, 39.50002006, 63.040074579999995, 41.50001606, 61.04007858, 0.35999928, "+3V3"], [1, 41.50001606, 61.04007858, 41.50001606, 53.5998928, 0.35999928, "+3V3"], [1, 41.50001606, 53.5998928, 40.50001806, 52.5998948, 0.35999928, "+3V3"], [1, 40.50001806, 52.5998948, 41.50001606, 52.5998948, 0.49999899999999997, "+3V3"], [1, 40.50001806, 52.5998948, 40.50001806, 47.349905299999996, 0.49999899999999997, "+3V3"], [1, 40.50001806, 47.349905299999996, 39.50002006, 46.3499073, 0.49999899999999997, "+3V3"], [1, 39.50002006, 46.3499073, 39.50002006, 45.40010986, 0.49999899999999997, "+3V3"], [1, 39.50002006, 45.40010986, 39.50002006, 44.40011186, 0.4860036, "+3V3"], [1, 39.50002006, 44.40011186, 39.00002106, 43.90011285999999, 0.4860036, "+3V3"], [1, 39.00002106, 43.90011285999999, 39.00002106, 42.90011486, 0.4860036, "+3V3"], [1, 39.00002106, 42.90011486, 39.50002006, 42.40011586, 0.4860036, "+3V3"], [1, 44.00001106, 44.90011085999999, 41.50001606, 42.40011586, 0.4860036, "+3V3"], [1, 44.00001106, 46.18280832, 44.00001106, 44.90011085999999, 0.4860036, "+3V3"], [1, 45.500008060000006, 47.68280531999999, 44.00001106, 46.18280832, 0.4860036, "+3V3"], [1, 45.500008060000006, 50.18280032, 45.500008060000006, 47.68280531999999, 0.4860036, "+3V3"], [1, 44.00001106, 51.68279732, 45.500008060000006, 50.18280032, 0.4860036, "+3V3"], [1, 44.00001106, 53.182794320000006, 44.00001106, 51.68279732, 0.4860036, "+3V3"], [1, 44.81721034, 53.99999106, 44.00001106, 53.182794320000006, 0.4860036, "+3V3"], [1, 49.31720134, 54.49999006, 48.81720234, 53.99999106, 0.4860036, "+3V3"], [2, 49.31720134, 54.49999006, 52.317195340000005, 54.49999006, 0.4860036, "+3V3"], [2, 52.317195340000005, 54.49999006, 52.81719434, 53.99999106, 0.4860036, "+3V3"], [2, 52.81719434, 53.99999106, 52.81719434, 56.49998606, 0.4499991, "+3V3"], [2, 52.81719434, 56.49998606, 53.31719334, 56.99998505999999, 0.4499991, "+3V3"], [2, 53.31719334, 56.99998505999999, 53.81719234, 56.99998505999999, 0.4499991, "+3V3"], [2, 55.329889339999994, 55.48728806, 55.329889339999994, 54.99998906, 0.4499991, "+3V3"], [2, 53.81719234, 56.99998505999999, 54.817190339999996, 55.999987059999995, 0.4499991, "+3V3"], [2, 54.817190339999996, 55.999987059999995, 55.329889339999994, 55.48728806, 0.4499991, "+3V3"], [2, 55.7498885, 56.93268522, 55.7498885, 57.65998374, 0.25200864, "+3V3"], [2, 55.31718933999999, 56.49998606, 56.317187340000004, 56.49998606, 0.4499991, "+3V3"], [2, 54.817190339999996, 55.999987059999995, 55.31718933999999, 56.49998606, 0.25200864, "+3V3"], [2, 55.31718933999999, 56.49998606, 55.7498885, 56.93268522, 0.25200864, "+3V3"], [2, 56.317187340000004, 56.49998606, 57.31718534, 55.49998806, 0.4499991, "+3V3"], [2, 57.31718534, 55.49998806, 58.817182339999995, 55.49998806, 0.4499991, "+3V3"], [2, 58.817182339999995, 55.49998806, 59.81718033999999, 54.49999006, 0.4499991, "+3V3"], [2, 60.31717934, 54.49999006, 60.31717934, 54.99998906, 0.4499991, "+3V3"], [2, 59.81718033999999, 54.49999006, 60.31717934, 54.49999006, 0.4499991, "+3V3"], [2, 60.31717934, 54.49999006, 60.81717834, 54.49999006, 0.4499991, "+3V3"], [2, 60.31717934, 54.99998906, 61.31717734, 55.999987059999995, 0.4499991, "+3V3"], [2, 62.329875339999994, 55.999987059999995, 63.32987333999999, 54.99998906, 0.4499991, "+3V3"], [2, 62.329875339999994, 55.999987059999995, 62.58987481999999, 55.999987059999995, 0.25200864, "+3V3"], [2, 61.31717734, 55.999987059999995, 62.329875339999994, 55.999987059999995, 0.4499991, "+3V3"], [2, 62.58987481999999, 55.999987059999995, 63.7498725, 57.15998473999999, 0.25200864, "+3V3"], [2, 63.7498725, 57.15998473999999, 63.7498725, 57.65998374, 0.25200864, "+3V3"], [1, 40.50001806, 42.40011586, 40.50001806, 32.279935439999996, 0.49999899999999997, "+3V3"], [1, 39.50002006, 42.40011586, 40.50001806, 42.40011586, 0.4860036, "+3V3"], [1, 41.50001606, 42.40011586, 40.50001806, 42.40011586, 0.4860036, "+3V3"], [1, 40.50001806, 32.279935439999996, 41.50001606, 32.279935439999996, 0.49999899999999997, "+3V3"], [1, 40.50001806, 32.279935439999996, 40.50001806, 27.02994594, 0.49999899999999997, "+3V3"], [1, 40.50001806, 27.02994594, 39.50002006, 26.029947939999996, 0.49999899999999997, "+3V3"], [1, 39.50002006, 26.029947939999996, 39.50002006, 25.0801505, 0.49999899999999997, "+3V3"], [2, 63.7498725, 57.15998473999999, 63.7498725, 56.659985739999996, 0.25200864, "+3V3"], [2, 63.7498725, 56.659985739999996, 65.24986949999999, 55.159988739999996, 0.25200864, "+3V3"], [2, 65.24986949999999, 55.159988739999996, 71.7498565, 55.159988739999996, 0.25200864, "+3V3"], [2, 71.7498565, 55.159988739999996, 73.2498535, 56.659985739999996, 0.25200864, "+3V3"], [2, 74.47715102, 56.659985739999996, 74.56715084, 56.74998556, 0.25200864, "+3V3"], [2, 74.24985149999999, 56.659985739999996, 75.2498495, 55.65998774, 0.4860036, "+3V3"], [2, 73.2498535, 56.659985739999996, 74.24985149999999, 56.659985739999996, 0.25200864, "+3V3"], [2, 74.24985149999999, 56.659985739999996, 74.47715102, 56.659985739999996, 0.25200864, "+3V3"], [2, 75.2498495, 55.65998774, 76.7498465, 55.65998774, 0.4860036, "+3V3"], [2, 76.7498465, 55.65998774, 77.5672439, 56.47738768, 0.4860036, "+3V3"], [2, 77.5672439, 56.47738768, 77.5672439, 56.74998556, 0.4860036, "+3V3"], [2, 76.7498465, 55.65998774, 77.24984549999998, 55.65998774, 0.4860036, "+3V3"], [2, 77.24984549999998, 55.65998774, 77.7498445, 55.159988739999996, 0.4860036, "+3V3"], [2, 77.7498445, 55.159988739999996, 77.7498445, 54.56699018, 0.4860036, "+3V3"], [2, 77.7498445, 54.56699018, 77.68284437999999, 54.49999006, 0.4860036, "+3V3"], [2, 77.5672439, 56.47738768, 78.0672429, 55.97738867999999, 0.4860036, "+3V3"], [2, 78.0672429, 55.97738867999999, 79.79464102, 55.97738867999999, 0.4860036, "+3V3"], [2, 79.79464102, 55.97738867999999, 80.5672379, 56.74998556, 0.4860036, "+3V3"], [2, 80.5672379, 56.74998556, 80.5672379, 56.49998606, 0.4860036, "+3V3"], [2, 80.5672379, 56.49998606, 81.0672369, 55.999987059999995, 0.4860036, "+3V3"], [2, 81.0672369, 55.999987059999995, 82.0672349, 55.999987059999995, 0.4860036, "+3V3"], [2, 82.0672349, 55.999987059999995, 82.56723389999999, 55.49998806, 0.4860036, "+3V3"], [2, 88.34262240000001, 54.99998906, 88.34262240000001, 55.999987059999995, 0.4860036, "+3V3"], [2, 88.34262240000001, 55.999987059999995, 88.8426214, 56.49998606, 0.4860036, "+3V3"], [2, 88.8426214, 56.49998606, 89.26272216, 56.92008682, 0.4499991, "+3V3"], [2, 89.26272216, 56.92008682, 90.50001966, 56.92008682, 0.4499991, "+3V3"], [2, 89.26272216, 56.92008682, 88.62502214, 57.5577843, 0.49999899999999997, "+3V3"], [2, 88.62502214, 57.5577843, 88.62502214, 60.2498795, 0.49999899999999997, "+3V3"], [1, 39.50002006, 25.0801505, 39.50002006, 15.830169, 0.49999899999999997, "+3V3"], [1, 39.50002006, 15.830169, 40.50001806, 14.830171, 0.49999899999999997, "+3V3"], [1, 40.50001806, 14.830171, 40.50001806, 11.95987702, 0.49999899999999997, "+3V3"], [1, 40.50001806, 11.95987702, 41.50001606, 11.95987702, 0.49999899999999997, "+3V3"], [1, 40.50001806, 11.95987702, 40.50001806, 6.709887519999999, 0.49999899999999997, "+3V3"], [1, 40.50001806, 6.709887519999999, 39.50002006, 5.709889520000001, 0.49999899999999997, "+3V3"], [1, 39.50002006, 5.709889520000001, 39.50002006, 4.76008954, 0.49999899999999997, "+3V3"], [2, 12.599875740000002, 70.25725852000001, 12.599875740000002, 68.49996206, 0.49999899999999997, "+3V3"], [2, 12.599875740000002, 68.49996206, 12.599875740000002, 66.74266560000001, 0.49999899999999997, "+3V3"], [2, 12.599875740000002, 66.74266560000001, 14.09257278, 65.24996855999999, 0.49999899999999997, "+3V3"], [2, 13.59257378, 71.24995656, 11.592577779999997, 73.24995256, 0.4860036, "+3V3"], [2, 14.09257278, 71.74995556, 13.59257378, 71.24995656, 0.49999899999999997, "+3V3"], [2, 13.59257378, 71.24995656, 12.599875740000002, 70.25725852000001, 0.49999899999999997, "+3V3"], [2, 11.592577779999997, 73.24995256, 6.68278572, 73.24995256, 0.4860036, "+3V3"], [2, 6.68278572, 73.24995256, 4.682789720000001, 71.24995656, 0.4860036, "+3V3"], [2, 33.00003306, 55.82988833999999, 28.7198435, 55.82988833999999, 0.25849072, "+3V3"], [2, 28.7198435, 55.82988833999999, 22.7198555, 49.829900339999995, 0.25849072, "+3V3"], [2, 22.7198555, 49.829900339999995, 22.7198555, 47.829904340000006, 0.25849072, "+3V3"], [2, 22.7198555, 47.829904340000006, 19.719861499999997, 44.82991034, 0.25849072, "+3V3"], [2, 19.719861499999997, 44.82991034, 19.719861499999997, 43.329913340000004, 0.25849072, "+3V3"], [2, 19.719861499999997, 43.329913340000004, 18.889962219999997, 42.50001406, 0.25849072, "+3V3"], [2, 18.889962219999997, 42.50001406, 17.38996522, 42.50001406, 0.25849072, "+3V3"], [2, 17.38996522, 42.50001406, 17.38996522, 41.56011754, 0.25849072, "+3V3"], [2, 17.38996522, 41.56011754, 17.07986678, 41.25001656, 0.25849072, "+3V3"], [2, 87.8426234, 79.99993906, 87.8426234, 80.99993706, 0.4860036, "+3V3"], [2, 87.8426234, 80.99993706, 88.06722289999999, 81.25003816, 0.4860036, "+3V3"], [2, 86.34262639999999, 80.99993706, 86.09252783999999, 81.25003816, 0.4860036, "+3V3"], [2, 86.09252783999999, 81.25003816, 85.68282838, 81.25003816, 0.4860036, "+3V3"], [2, 86.8426254, 80.99993706, 86.8426254, 83.47463366, 0.4860036, "+3V3"], [2, 87.8426234, 80.99993706, 86.8426254, 80.99993706, 0.4860036, "+3V3"], [2, 86.8426254, 80.99993706, 86.34262639999999, 80.99993706, 0.4860036, "+3V3"], [2, 86.8426254, 83.47463366, 86.8172254, 83.50003366, 0.4860036, "+3V3"], [2, 85.68282838, 81.25003816, 85.68282838, 81.75003715999999, 0.4860036, "+3V3"], [2, 85.68282838, 81.75003715999999, 85.18282938, 82.25003615999998, 0.4860036, "+3V3"], [2, 85.18282938, 82.25003615999998, 82.31723439999999, 82.25003615999998, 0.4860036, "+3V3"], [2, 82.31723439999999, 82.25003615999998, 81.81723539999999, 81.75003715999999, 0.4860036, "+3V3"], [2, 81.81723539999999, 81.75003715999999, 81.81723539999999, 81.25003816, 0.4860036, "+3V3"], [2, 82.31723439999999, 82.25003615999998, 82.31723439999999, 83.75003315999999, 0.4860036, "+3V3"], [2, 82.31723439999999, 83.75003315999999, 81.81723539999999, 84.25003216, 0.4860036, "+3V3"], [2, 81.81723539999999, 84.25003216, 80.8172374, 84.25003216, 0.4860036, "+3V3"], [2, 80.8172374, 84.25003216, 80.5672379, 84.00003266, 0.4860036, "+3V3"], [2, 80.5672379, 84.00003266, 80.5672379, 83.50003366, 0.4860036, "+3V3"], [2, 80.5672379, 83.50003366, 78.93284188, 81.8656351, 0.4860036, "+3V3"], [2, 78.93284188, 81.8656351, 78.93284188, 81.25003816, 0.4860036, "+3V3"], [2, 78.93284188, 81.8656351, 78.43284288, 82.3656341, 0.4860036, "+3V3"], [2, 78.43284288, 82.3656341, 77.93284388000001, 82.3656341, 0.4860036, "+3V3"], [2, 77.93284388000001, 82.3656341, 76.93284588, 81.3656361, 0.4860036, "+3V3"], [2, 76.93284588, 81.3656361, 76.93284588, 81.25003816, 0.4860036, "+3V3"], [2, 76.93284588, 81.25003816, 77.43284488, 80.75003916, 0.4860036, "+3V3"], [2, 77.43284488, 80.75003916, 77.43284488, 80.23604475999998, 0.4860036, "+3V3"], [2, 77.43284488, 80.23604475999998, 76.94684128000002, 79.75004116000001, 0.4860036, "+3V3"], [2, 76.94684128000002, 79.75004116000001, 76.06714784, 79.75004116000001, 0.4860036, "+3V3"], [2, 76.06714784, 79.75004116000001, 75.06714984, 80.75003916, 0.4860036, "+3V3"], [2, 75.06714984, 80.75003916, 75.06714984, 81.25003816, 0.4860036, "+3V3"], [2, 75.06714984, 81.25003816, 74.06715184, 82.25003615999998, 0.4860036, "+3V3"], [2, 74.06715184, 82.25003615999998, 72.06715584, 82.25003615999998, 0.4860036, "+3V3"], [2, 72.06715584, 82.25003615999998, 71.56715684, 81.75003715999999, 0.4860036, "+3V3"], [2, 71.56715684, 81.75003715999999, 71.56715684, 81.25003816, 0.4860036, "+3V3"], [2, 81.81723539999999, 84.25003216, 81.81723539999999, 92.50001566, 0.4860036, "+3V3"], [2, 81.81723539999999, 92.50001566, 82.0672349, 92.75001516000002, 0.4860036, "+3V3"], [2, 20.67295078, 43.999912, 20.41895078, 43.745912000000004, 0.254, "SCL"], [2, 20.41895078, 43.745912000000004, 20.41895078, 42.729914539999996, 0.254, "SCL"], [2, 20.41895078, 42.729914539999996, 20.67295078, 42.47591454, 0.254, "SCL"], [2, 21.58585726, 42.47591454, 21.60995678, 42.50001406, 0.254, "SCL"], [2, 36.725227540000006, 57.34239738, 37.487224999999995, 58.10439484, 0.25200864, "SCL"], [1, 53.74319198, 61.15238976, 54.25119198, 60.644389759999996, 0.25200864, "SCL"], [2, 54.25119198, 60.644389759999996, 54.25119198, 61.660387220000004, 0.25200864, "SCL"], [2, 54.25119198, 61.660387220000004, 54.75918943999999, 62.16838722, 0.25200864, "SCL"], [2, 54.75918943999999, 62.16838722, 55.267189439999996, 62.16838722, 0.25200864, "SCL"], [2, 55.267189439999996, 62.16838722, 55.77518944, 61.660387220000004, 0.25200864, "SCL"], [2, 55.77518944, 61.660387220000004, 55.77518944, 60.68527868, 0.25200864, "SCL"], [2, 55.77518944, 60.68527868, 55.7498885, 60.659977739999995, 0.25200864, "SCL"], [2, 55.77518944, 61.660387220000004, 58.569181820000004, 64.45438213999999, 0.25200864, "SCL"], [2, 58.569181820000004, 64.45438213999999, 64.0038725, 64.45438213999999, 0.25200864, "SCL"], [2, 64.0038725, 64.45438213999999, 64.2578725, 64.20038213999999, 0.25200864, "SCL"], [2, 64.2578725, 64.20038213999999, 64.2578725, 61.91438722, 0.25200864, "SCL"], [2, 64.2578725, 61.91438722, 63.7498725, 61.406387220000006, 0.25200864, "SCL"], [2, 63.7498725, 61.406387220000006, 63.7498725, 60.659977739999995, 0.25200864, "SCL"], [2, 63.7498725, 60.659977739999995, 64.25007216, 60.659977739999995, 0.25200864, "SCL"], [2, 74.67184963999999, 69.78837198, 75.9418471, 69.78837198, 0.25200864, "SCL"], [2, 75.9418471, 69.78837198, 83.5450323, 77.39155718, 0.25200864, "SCL"], [2, 83.5450323, 77.39155718, 83.5450323, 77.75004515999998, 0.25200864, "SCL"], [2, 83.5450323, 77.75004515999998, 83.5450323, 79.97784106, 0.254, "SCL"], [2, 83.5450323, 79.97784106, 84.8172294, 81.25003816, 0.254, "SCL"], [2, 56.25008816, 60.659977739999995, 56.749886499999995, 60.659977739999995, 0.25200864, "SDA"], [2, 56.749886499999995, 60.659977739999995, 62.591873799999995, 60.659977739999995, 0.25200864, "SDA"], [1, 62.591873799999995, 60.659977739999995, 63.86187126, 60.659977739999995, 0.25200864, "SDA"], [1, 63.86187126, 60.659977739999995, 64.62387126, 61.421977739999996, 0.25200864, "SDA"], [1, 64.62387126, 61.421977739999996, 64.7498705, 61.421977739999996, 0.25200864, "SDA"], [2, 82.27583494000001, 78.94794218, 82.27503484, 77.75004515999998, 0.25200864, "SDA"], [2, 82.27583494000001, 78.94794218, 82.68283437999999, 79.35494162, 0.254, "SDA"], [2, 82.68283437999999, 79.35494162, 82.68283437999999, 81.25003816, 0.254, "SDA"], [2, 64.75397006, 8.93508246, 80.79320138, 24.97431378, 0.254, "PRSNT5#"], [2, 80.79320138, 24.97431378, 80.79320138, 51.64426044, 0.254, "PRSNT5#"], [2, 80.79320138, 51.64426044, 83.54993196, 54.40099101999999, 0.254, "PRSNT5#"], [1, 33.50003205999999, 4.760059059999999, 33.50003205999999, 9.983597, 2.00000108, "+12V"], [1, 33.50003205999999, 9.983597, 34.00003360000001, 10.48359854, 2.00000108, "+12V"], [1, 34.00003360000001, 13.43628758, 33.50003205999999, 13.936289120000001, 2.00000108, "+12V"], [1, 33.50003205999999, 13.936289120000001, 33.50003205999999, 25.08005906, 2.00000108, "+12V"], [1, 33.50003205999999, 25.08005906, 33.50003205999999, 30.303597, 2.00000108, "+12V"], [1, 33.50003205999999, 30.303597, 34.00003360000001, 30.80359854, 2.00000108, "+12V"], [1, 34.00003360000001, 33.75628758, 33.50003205999999, 34.25628911999999, 2.00000108, "+12V"], [2, 16.50000002, 45.999999439999996, 15.499999480000001, 45.12499992000001, 0.29999939999999997, "VIN_SW"], [2, 13.68799904, 40.99999928, 13.624999419999998, 40.875000799999995, 0.29999939999999997, "VIN_SW"], [1, 45.070600739999996, 39.4383006, 44.89230035999999, 39.26000022, 0.27999944, "UP_DP"], [1, 44.89230035999999, 39.26000022, 44.51729984, 39.26000022, 0.27999944, "UP_DP"], [1, 44.51729984, 39.26000022, 43.739998879999995, 38.48269926, 0.27999944, "UP_DP"], [1, 43.739998879999995, 38.48269926, 43.739998879999995, 36.14230008, 0.27999944, "UP_DP"], [1, 43.739998879999995, 36.14230008, 44.364998899999996, 35.51730005999999, 0.27999944, "UP_DP"], [1, 44.364998899999996, 35.51730005999999, 44.364998899999996, 35.392299040000005, 0.27999944, "UP_DP"], [1, 44.364998899999996, 35.392299040000005, 44.64230086, 35.11499962, 0.27999944, "UP_DP"], [1, 44.64230086, 35.11499962, 49.5173, 35.11499962, 0.27999944, "UP_DP"], [1, 49.5173, 35.11499962, 50.76730004, 33.86499958, 0.27999944, "UP_DP"], [1, 50.76730004, 33.86499958, 64.892301, 33.86499958, 0.27999944, "UP_DP"], [1, 64.892301, 33.86499958, 65.14230049999998, 33.61500007999999, 0.27999944, "UP_DP"], [1, 65.14230049999998, 33.61500007999999, 66.26729952, 33.61500007999999, 0.27999944, "UP_DP"], [1, 66.26729952, 33.61500007999999, 68.2673006, 31.614998999999997, 0.27999944, "UP_DP"], [1, 68.2673006, 31.614998999999997, 70.26729913999999, 31.614998999999997, 0.27999944, "UP_DP"], [1, 70.26729913999999, 31.614998999999997, 70.36500024, 31.51730044, 0.27999944, "UP_DP"], [1, 70.36500024, 31.51730044, 70.36500024, 31.267300940000002, 0.27999944, "UP_DP"], [1, 70.36500024, 31.267300940000002, 71.23999976, 30.39229888, 0.27999944, "UP_DP"], [1, 71.23999976, 30.39229888, 71.23999976, 30.2673004, 0.27999944, "UP_DP"], [1, 71.23999976, 30.2673004, 72.2400003, 29.26729986, 0.27999944, "UP_DP"], [1, 72.2400003, 29.26729986, 72.2400003, 29.142298839999995, 0.27999944, "UP_DP"], [1, 72.2400003, 29.142298839999995, 73.11499982000001, 28.26729932, 0.27999944, "UP_DP"], [1, 73.11499982000001, 28.26729932, 73.11499982000001, 28.14230084, 0.27999944, "UP_DP"], [1, 73.11499982000001, 28.14230084, 75.48999888, 25.76729924, 0.27999944, "UP_DP"], [1, 75.48999888, 25.76729924, 75.48999888, 22.642299140000002, 0.27999944, "UP_DP"], [1, 75.48999888, 22.642299140000002, 75.99000041999999, 22.142300139999996, 0.27999944, "UP_DP"], [1, 75.99000041999999, 22.142300139999996, 75.99000041999999, 22.01729912, 0.27999944, "UP_DP"], [1, 75.99000041999999, 22.01729912, 76.23999991999999, 21.76729962, 0.27999944, "UP_DP"], [1, 76.23999991999999, 21.76729962, 76.23999991999999, 18.392300019999997, 0.27999944, "UP_DP"], [1, 76.23999991999999, 18.392300019999997, 80.11500106, 14.517298879999998, 0.27999944, "UP_DP"], [1, 80.11500106, 14.517298879999998, 80.11500106, 10.64230028, 0.27999944, "UP_DP"], [1, 80.11500106, 10.64230028, 82.57009901999999, 8.187199779999998, 0.27999944, "UP_DP"], [1, 45.775999379999995, 39.07899982, 45.6502008, 39.261900139999995, 0.27999944, "UP_DM"], [1, 45.6502008, 39.261900139999995, 45.429401139999996, 39.06169988, 0.27999944, "UP_DM"], [1, 45.429401139999996, 39.06169988, 45.10769998, 38.74000126, 0.27999944, "UP_DM"], [1, 45.10769998, 38.74000126, 44.73269946, 38.74000126, 0.27999944, "UP_DM"], [1, 44.73269946, 38.74000126, 44.26000038, 38.26729964, 0.27999944, "UP_DM"], [1, 44.26000038, 38.26729964, 44.26000038, 36.357699700000005, 0.27999944, "UP_DM"], [1, 44.26000038, 36.357699700000005, 44.8850004, 35.732699679999996, 0.27999944, "UP_DM"], [1, 44.8850004, 35.607701199999994, 44.85770048, 35.63500112, 0.27999944, "UP_DM"], [1, 44.8850004, 35.732699679999996, 44.8850004, 35.63500112, 0.27999944, "UP_DM"], [1, 49.73269961999999, 35.63500112, 44.8850004, 35.63500112, 0.27999944, "UP_DM"], [1, 44.8850004, 35.63500112, 44.85770048, 35.63500112, 0.27999944, "UP_DM"], [1, 44.8850004, 35.63500112, 44.8850004, 35.607701199999994, 0.27999944, "UP_DM"], [1, 49.73269961999999, 35.63500112, 50.98269966, 34.385001079999995, 0.27999944, "UP_DM"], [1, 50.98269966, 34.385001079999995, 65.10770062, 34.385001079999995, 0.27999944, "UP_DM"], [1, 65.10770062, 34.385001079999995, 65.35770011999999, 34.13499904, 0.27999944, "UP_DM"], [1, 65.35770011999999, 34.13499904, 66.48269914, 34.13499904, 0.27999944, "UP_DM"], [1, 66.48269914, 34.13499904, 68.48270022000001, 32.1350005, 0.27999944, "UP_DM"], [1, 68.48270022000001, 32.1350005, 70.48269876, 32.1350005, 0.27999944, "UP_DM"], [1, 70.48269876, 32.1350005, 70.88499919999998, 31.73270006, 0.27999944, "UP_DM"], [1, 70.88499919999998, 31.73270006, 70.88499919999998, 31.482700559999998, 0.27999944, "UP_DM"], [1, 70.88499919999998, 31.482700559999998, 71.76000126, 30.607701039999995, 0.27999944, "UP_DM"], [1, 71.76000126, 30.607701039999995, 71.76000126, 30.482700019999996, 0.27999944, "UP_DM"], [1, 71.76000126, 30.482700019999996, 72.75999925999999, 29.48269948, 0.27999944, "UP_DM"], [1, 72.75999925999999, 29.48269948, 72.75999925999999, 29.357701, 0.27999944, "UP_DM"], [1, 72.75999925999999, 29.357701, 73.63499877999999, 28.48269894, 0.27999944, "UP_DM"], [1, 73.63499877999999, 28.48269894, 73.63499877999999, 28.357700459999997, 0.27999944, "UP_DM"], [1, 73.63499877999999, 28.357700459999997, 76.01000038, 25.98269886, 0.27999944, "UP_DM"], [1, 76.01000038, 25.98269886, 76.01000038, 22.857698759999998, 0.27999944, "UP_DM"], [1, 76.01000038, 22.857698759999998, 76.50999938, 22.357699759999996, 0.27999944, "UP_DM"], [1, 76.50999938, 22.357699759999996, 76.50999938, 22.23269874, 0.27999944, "UP_DM"], [1, 76.50999938, 22.23269874, 76.75999888, 21.98269924, 0.27999944, "UP_DM"], [1, 76.75999888, 21.98269924, 76.75999888, 18.607699639999996, 0.27999944, "UP_DM"], [1, 76.75999888, 18.607699639999996, 80.63500001999999, 14.73270104, 0.27999944, "UP_DM"], [1, 80.63500001999999, 14.73270104, 80.63500001999999, 10.8576999, 0.27999944, "UP_DM"], [1, 65.49996805999999, 93.23991258, 65.49996805999999, 91.93991518, 0.5999987999999999, "+5V"], [1, 65.49996805999999, 91.93991518, 64.89996925999999, 91.33991637999999, 0.5999987999999999, "+5V"], [1, 64.89996925999999, 91.33991637999999, 53.19999266, 91.33991637999999, 0.5999987999999999, "+5V"], [1, 53.19999266, 91.33991637999999, 52.59999385999999, 91.93991518, 0.5999987999999999, "+5V"], [1, 52.59999385999999, 91.93991518, 52.59999385999999, 93.13991277999999, 0.5999987999999999, "+5V"], [1, 52.59999385999999, 93.13991277999999, 52.49999405999999, 93.23991258, 0.5999987999999999, "+5V"], [1, 65.49996805999999, 93.23991258, 69.69995966, 93.23991258, 0.5999987999999999, "+5V"], [1, 69.69995966, 93.23991258, 70.89995726000001, 92.03991497999999, 0.5999987999999999, "+5V"], [1, 70.89995726000001, 92.03991497999999, 70.89995726000001, 78.83994137999998, 0.5999987999999999, "+5V"], [1, 65.49996805999999, 74.21985156, 64.89996925999999, 74.81985035999999, 0.5999987999999999, "+5V"], [1, 53.19999266, 74.81985035999999, 52.59999385999999, 74.21985156, 0.5999987999999999, "+5V"], [1, 52.59999385999999, 74.21985156, 52.59999385999999, 73.01985395999999, 0.5999987999999999, "+5V"], [1, 52.59999385999999, 73.01985395999999, 52.49999405999999, 72.91985416000001, 0.5999987999999999, "+5V"], [1, 67.29996446, 75.23994857999999, 70.89995726000001, 71.63995578, 0.5999987999999999, "+5V"], [1, 70.89995726000001, 71.63995578, 70.89995726000001, 62.03997498, 0.5999987999999999, "+5V"], [1, 70.89995726000001, 62.03997498, 65.49996805999999, 56.63998578, 0.5999987999999999, "+5V"], [1, 65.49996805999999, 56.63998578, 65.49996805999999, 52.5998948, 0.5999987999999999, "+5V"], [1, 65.49996805999999, 52.5998948, 65.49996805999999, 51.2998974, 0.5999987999999999, "+5V"], [1, 65.49996805999999, 51.2998974, 64.89996925999999, 50.6998986, 0.5999987999999999, "+5V"], [1, 61.89997525999999, 50.6998986, 61.299976459999996, 50.099899799999996, 0.5999987999999999, "+5V"], [1, 61.299976459999996, 50.099899799999996, 53.799991459999994, 50.099899799999996, 0.5999987999999999, "+5V"], [1, 53.799991459999994, 50.099899799999996, 52.59999385999999, 51.2998974, 0.5999987999999999, "+5V"], [1, 52.59999385999999, 51.2998974, 52.59999385999999, 52.499895, 0.5999987999999999, "+5V"], [1, 52.59999385999999, 52.499895, 52.49999405999999, 52.5998948, 0.5999987999999999, "+5V"], [1, 64.29997046, 50.6998986, 64.29997046, 47.699904599999996, 0.5999987999999999, "+5V"], [1, 64.29997046, 47.699904599999996, 63.699971659999996, 47.0999058, 0.5999987999999999, "+5V"], [2, 63.699971659999996, 47.0999058, 63.099972859999994, 46.49990699999999, 0.5999987999999999, "+5V"], [2, 63.099972859999994, 46.49990699999999, 63.099972859999994, 32.87993424, 0.5999987999999999, "+5V"], [2, 63.099972859999994, 32.87993424, 64.29997046, 31.67993664, 0.5999987999999999, "+5V"], [2, 64.29997046, 31.67993664, 64.29997046, 30.479939039999998, 0.5999987999999999, "+5V"], [1, 64.29997046, 30.479939039999998, 64.89996925999999, 30.479939039999998, 0.5999987999999999, "+5V"], [1, 65.49996805999999, 31.07993784, 65.49996805999999, 32.279935439999996, 0.5999987999999999, "+5V"], [2, 73.29995246, 29.87994024, 73.29995246, 29.279941439999998, 0.4499991, "+5V"], [2, 73.29995246, 29.279941439999998, 73.74995156, 28.82994234, 0.4499991, "+5V"], [2, 73.74995156, 28.82994234, 74.24995055999999, 28.82994234, 0.4499991, "+5V"], [2, 74.24995055999999, 28.82994234, 76.50014672, 28.82994234, 0.4499991, "+5V"], [2, 76.50014672, 28.82994234, 77.0300466, 28.300042459999997, 0.4499991, "+5V"], [2, 77.0300466, 28.300042459999997, 78.00004466, 29.270040520000002, 0.5999987999999999, "+5V"], [2, 78.00004466, 29.270040520000002, 78.00004466, 30.25003856, 0.5999987999999999, "+5V"], [1, 65.49996805999999, 13.679972639999999, 53.020094619999995, 13.679972639999999, 0.5999987999999999, "+5V"], [1, 53.020094619999995, 13.679972639999999, 52.49999405999999, 13.15987462, 0.5999987999999999, "+5V"], [1, 52.49999405999999, 13.15987462, 52.49999405999999, 11.95987702, 0.5999987999999999, "+5V"], [1, 55.29998846, 74.81985035999999, 55.29998846, 77.81984436, 0.5999987999999999, "+5V"], [1, 55.29998846, 77.81984436, 54.69998965999999, 78.41984316, 0.5999987999999999, "+5V"], [1, 54.69998965999999, 78.41984316, 43.90001126, 78.41984316, 0.5999987999999999, "+5V"], [1, 43.90001126, 78.41984316, 43.30001246, 77.81984436, 0.5999987999999999, "+5V"], [2, 26.50004606, 67.69996366, 26.50004606, 68.29996246, 0.5999987999999999, "+5V"], [2, 26.50004606, 68.29996246, 26.300046459999997, 68.49996206, 0.5999987999999999, "+5V"], [2, 26.300046459999997, 68.49996206, 26.300046459999997, 64.04257194, 0.5999987999999999, "+5V"], [2, 26.300046459999997, 64.04257194, 26.59264684, 63.74997155999999, 0.5999987999999999, "+5V"], [2, 26.59264684, 63.74997155999999, 26.59264684, 61.24997656, 0.5999987999999999, "+5V"], [1, 28.900041260000002, 65.81986835999999, 24.10005086, 65.81986835999999, 0.4860036, "+5V"], [1, 24.10005086, 65.81986835999999, 18.10006286, 71.81985635999999, 0.4860036, "+5V"], [2, 18.10006286, 71.81985635999999, 17.75266452, 71.81985635999999, 0.4860036, "+5V"], [2, 17.75266452, 71.81985635999999, 17.182764719999998, 71.24995656, 0.4860036, "+5V"], [1, 42.50001406, 32.279935439999996, 42.50001406, 37.97892328, 0.254, "EFUSE_EN4"], [1, 42.50001406, 37.97892328, 48.5960039, 44.07491058, 0.254, "EFUSE_EN4"], [1, 48.5960039, 44.07491058, 66.12196834, 44.07491058, 0.254, "EFUSE_EN4"], [1, 66.12196834, 44.07491058, 66.8839658, 44.83691058, 0.254, "EFUSE_EN4"], [1, 66.8839658, 44.83691058, 66.8839658, 46.10690803999999, 0.254, "EFUSE_EN4"], [1, 66.8839658, 46.10690803999999, 66.12196834, 46.8689055, 0.254, "EFUSE_EN4"], [1, 66.12196834, 46.8689055, 66.12196834, 51.18689788, 0.254, "EFUSE_EN4"], [1, 66.12196834, 51.18689788, 68.91596326, 53.9808928, 0.254, "EFUSE_EN4"], [1, 68.91596326, 53.9808928, 68.91596326, 57.282885179999994, 0.254, "EFUSE_EN4"], [1, 68.91596326, 57.282885179999994, 71.96395564, 60.330880099999995, 0.254, "EFUSE_EN4"], [1, 71.96395564, 60.330880099999995, 71.96395564, 62.87087501999999, 0.254, "EFUSE_EN4"], [1, 71.96395564, 62.87087501999999, 73.37505263999999, 64.28197202, 0.254, "EFUSE_EN4"], [2, 74.13705264, 66.82196694, 72.59405598, 68.36496360000001, 0.254, "EFUSE_EN4"], [2, 72.59405598, 68.36496360000001, 72.10505518, 68.36496360000001, 0.254, "EFUSE_EN4"], [2, 75.92494848, 60.2498795, 75.92494848, 58.86488354, 0.254, "HUB_RST"], [2, 75.92494848, 58.86488354, 74.65495102, 57.594886079999995, 0.254, "HUB_RST"], [1, 63.56087364, 30.24483918, 63.56087364, 29.22884172, 0.254, "HUB_RST"], [1, 63.56087364, 29.22884172, 62.142085519999995, 27.8100536, 0.254, "HUB_RST"], [1, 62.142085519999995, 27.8100536, 61.782876179999995, 27.8100536, 0.254, "HUB_RST"], [1, 61.782876179999995, 27.8100536, 61.12608806, 28.46684426, 0.254, "HUB_RST"], [1, 61.12608806, 28.46684426, 57.71888379999999, 28.46684426, 0.254, "HUB_RST"], [1, 57.71888379999999, 28.46684426, 57.464883799999996, 28.212844259999997, 0.254, "HUB_RST"], [2, 57.464883799999996, 28.212844259999997, 56.70288634, 28.212844259999997, 0.254, "HUB_RST"], [2, 51.01209762, 35.324829019999996, 50.250100159999995, 34.56283155999999, 0.254, "HUB_RST"], [2, 44.61721074, 33.35003236, 44.86721024, 33.60003186, 0.4860036, "+3V3_HUB"], [1, 54.86719023999999, 35.10002886000001, 61.36717724, 35.10002886000001, 0.4499991, "+3V3_HUB"], [1, 61.36717724, 35.10002886000001, 62.54897574, 36.2818299, 0.4499991, "+3V3_HUB"], [1, 62.54897574, 36.2818299, 63.18537274, 36.2818299, 0.4499991, "+3V3_HUB"], [1, 63.18537274, 36.2818299, 63.96717204, 35.50002806, 0.4499991, "+3V3_HUB"], [2, 63.96717204, 35.50002806, 63.96717204, 35.96722804, 0.4499991, "+3V3_HUB"], [2, 63.96717204, 35.96722804, 64.49997006, 36.50002606, 0.4499991, "+3V3_HUB"], [1, 63.96717204, 35.50002806, 66.6998666, 35.50002806, 0.49999899999999997, "+3V3_HUB"], [1, 66.6998666, 35.50002806, 69.46716104, 32.732733620000005, 0.49999899999999997, "+3V3_HUB"], [2, 69.46716104, 32.732733620000005, 69.46716104, 31.73273562, 0.49999899999999997, "+3V3_HUB"], [2, 69.46716104, 31.73273562, 73.96715204, 27.232744619999995, 0.49999899999999997, "+3V3_HUB"], [2, 73.96715204, 27.232744619999995, 74.46715103999999, 27.232744619999995, 0.49999899999999997, "+3V3_HUB"], [2, 74.46715103999999, 27.232744619999995, 74.49995006, 27.1999456, 0.49999899999999997, "+3V3_HUB"], [2, 74.49995006, 27.1999456, 75.83014806, 27.1999456, 0.49999899999999997, "+3V3_HUB"], [2, 75.83014806, 27.1999456, 77.0300466, 26.00004706, 0.49999899999999997, "+3V3_HUB"], [2, 77.0300466, 26.00004706, 79.03004259999999, 26.00004706, 0.49999899999999997, "+3V3_HUB"], [2, 79.03004259999999, 26.00004706, 79.53004159999999, 25.500048059999997, 0.49999899999999997, "+3V3_HUB"], [2, 81.03003859999998, 24.00005106, 81.03003859999998, 24.060050939999996, 0.49999899999999997, "+3V3_HUB"], [2, 81.03003859999998, 24.060050939999996, 82.97003471999999, 26.00004706, 0.49999899999999997, "+3V3_HUB"], [1, 70.89995726000001, 78.83994137999998, 67.29996446, 75.23994857999999, 0.5999987999999999, "+5V"], [1, 67.29996446, 75.23994857999999, 65.49996805999999, 73.43995217999999, 0.5999987999999999, "+5V"], [1, 65.49996805999999, 72.91985416000001, 65.49996805999999, 73.43995217999999, 0.5999987999999999, "+5V"], [1, 64.89996925999999, 74.81985035999999, 55.29998846, 74.81985035999999, 0.5999987999999999, "+5V"], [1, 55.29998846, 74.81985035999999, 53.19999266, 74.81985035999999, 0.5999987999999999, "+5V"], [1, 64.89996925999999, 50.6998986, 64.29997046, 50.6998986, 0.5999987999999999, "+5V"], [1, 64.29997046, 50.6998986, 61.89997525999999, 50.6998986, 0.5999987999999999, "+5V"], [1, 65.49996805999999, 18.479963039999998, 65.49996805999999, 13.679972639999999, 0.4499991, "+5V"], [1, 65.49996805999999, 13.679972639999999, 65.49996805999999, 11.95987702, 0.4499991, "+5V"], [2, 42.76721444, 34.15003076, 42.76721444, 33.850031359999996, 0.4860036, "+3V3_HUB"], [2, 44.61721074, 33.35003236, 44.36721124, 33.10003286, 0.4499991, "+3V3_HUB"], [1, 52.37500066, 27.374999860000003, 52.37500066, 27.125000359999998, 0.29999939999999997, "+3V3_HUB"], [2, 56.249999259999996, 20.625000659999998, 57.12499878, 19.75000114, 0.29999939999999997, "+3V3_HUB"], [2, 57.12499878, 19.75000114, 57.2499998, 19.75000114, 0.29999939999999997, "+3V3_HUB"], [1, 57.2499998, 19.75000114, 63.999998999999995, 19.75000114, 0.29999939999999997, "+3V3_HUB"], [2, 63.999998999999995, 19.75000114, 63.999998999999995, 22.87500124, 0.29999939999999997, "+3V3_HUB"], [2, 63.999998999999995, 22.87500124, 64.62499901999999, 23.500001259999998, 0.29999939999999997, "+3V3_HUB"], [2, 64.62499901999999, 23.500001259999998, 64.62499901999999, 24.49999926, 0.29999939999999997, "+3V3_HUB"], [2, 64.62499901999999, 24.49999926, 65.75000057999999, 25.62500082, 0.29999939999999997, "+3V3_HUB"], [2, 65.75000057999999, 25.62500082, 65.75000057999999, 26.12499982, 0.29999939999999997, "+3V3_HUB"], [1, 65.75000057999999, 27.249998839999996, 65.75000057999999, 27.125000359999998, 0.29999939999999997, "+3V3_HUB"], [1, 65.62499955999999, 27.374999860000003, 65.75000057999999, 27.249998839999996, 0.29999939999999997, "+3V3_HUB"], [1, 63.12499947999999, 27.374999860000003, 65.62499955999999, 27.374999860000003, 0.29999939999999997, "+3V3_HUB"], [2, 63.12499947999999, 27.374999860000003, 63.000001, 27.50000088, 0.29999939999999997, "+3V3_HUB"], [2, 63.000001, 27.50000088, 60.75000042, 27.50000088, 0.29999939999999997, "+3V3_HUB"], [2, 58.875000359999994, 40.12499976, 58.749999339999995, 40.25000078, 0.29999939999999997, "+3V3_HUB"], [1, 58.749999339999995, 40.25000078, 57.62500032, 40.25000078, 0.29999939999999997, "+3V3_HUB"], [1, 54.875000740000004, 40.25000078, 54.250000719999996, 39.62500076, 0.29999939999999997, "+3V3_HUB"], [2, 54.99999922, 40.25000078, 54.99999922, 39.49999973999999, 0.29999939999999997, "+3V3_HUB"], [2, 54.99999922, 39.49999973999999, 55.12500024, 39.37500126, 0.29999939999999997, "+3V3_HUB"], [2, 43.49999936, 30.749999459999998, 43.49999936, 33.125001059999995, 0.29999939999999997, "+3V3_HUB"], [2, 43.49999936, 33.125001059999995, 43.27496552, 33.35003236, 0.29999939999999997, "+3V3_HUB"], [2, 43.267213440000006, 33.35003236, 43.27496552, 33.35003236, 0.4860036, "+3V3_HUB"], [1, 52.49999913999999, 39.62500076, 52.49999913999999, 41.50000082, 0.29999939999999997, "+3V3_HUB"], [1, 54.250000719999996, 39.62500076, 52.49999913999999, 39.62500076, 0.29999939999999997, "+3V3_HUB"], [1, 52.49999913999999, 39.62500076, 48.62500054, 39.62500076, 0.29999939999999997, "+3V3_HUB"], [2, 52.49999913999999, 41.50000082, 52.49999913999999, 42.24999932, 0.29999939999999997, "+3V3_HUB"], [2, 49.48499374, 42.26500818, 49.25000056, 42.030015, 0.29999939999999997, "+3V3_HUB"], [2, 49.74999956, 42.530014, 49.48499374, 42.26500818, 0.27694382, "+3V3_HUB"], [2, 48.74999902, 34.13000032, 48.74999902, 34.85550052, 0.29999939999999997, "+3V3_HUB"], [2, 48.74999902, 34.85550052, 48.62500054, 34.8750001, 0.29999939999999997, "+3V3_HUB"], [2, 55.22550042, 38.82900032, 55.95100062, 38.82900032, 0.29999939999999997, "+3V3_HUB"], [2, 55.12500024, 39.37500126, 55.22550042, 38.82900032, 0.29999939999999997, "+3V3_HUB"], [2, 52.24999964, 42.3045001, 52.24999964, 43.0300003, 0.29999939999999997, "+3V3_HUB"], [2, 52.49999913999999, 42.24999932, 52.24999964, 42.3045001, 0.29999939999999997, "+3V3_HUB"], [2, 36.750000160000006, 58.49999984, 36.12500014, 57.87499981999999, 0.19999959999999997, "SDA"], [2, 36.87500117999999, 58.49999984, 36.750000160000006, 58.49999984, 0.19999959999999997, "SDA"], [2, 36.99999966, 58.62500086, 36.87500117999999, 58.49999984, 0.19999959999999997, "SDA"], [2, 37.24999916, 58.62500086, 36.99999966, 58.62500086, 0.19999959999999997, "SDA"], [2, 37.37500018, 58.749999339999995, 37.24999916, 58.62500086, 0.19999959999999997, "SDA"], [2, 38.12500122, 58.749999339999995, 37.37500018, 58.749999339999995, 0.19999959999999997, "SDA"], [2, 43.124998839999996, 62.74999896, 43.124998839999996, 61.12500093999999, 0.19999959999999997, "SDA"], [2, 43.24999986, 62.87499998, 43.124998839999996, 62.74999896, 0.19999959999999997, "SDA"], [1, 43.24999986, 62.87499998, 54.250000719999996, 62.87499998, 0.19999959999999997, "SDA"], [1, 54.250000719999996, 62.87499998, 54.875000740000004, 63.5, 0.19999959999999997, "SDA"], [1, 54.875000740000004, 63.5, 56.49999876, 63.5, 0.19999959999999997, "SDA"], [1, 56.49999876, 63.5, 56.624999779999996, 63.37499898, 0.19999959999999997, "SDA"], [1, 56.624999779999996, 63.37499898, 56.624999779999996, 61.499998919999996, 0.19999959999999997, "SDA"], [1, 56.624999779999996, 61.499998919999996, 56.750000799999995, 61.37500044, 0.19999959999999997, "SDA"], [2, 56.624999779999996, 61.37500044, 56.750000799999995, 61.37500044, 0.19999959999999997, "SDA"], [2, 56.25100001999999, 60.6600006, 56.25100001999999, 61.3099993, 0.19999959999999997, "SDA"], [2, 56.25100001999999, 61.3099993, 56.624999779999996, 61.37500044, 0.19999959999999997, "SDA"], [1, 49.62500108, 94.49999895999999, 49.62500108, 94.62499998, 0.19999959999999997, "VDAC1"], [2, 73.25000082, 96.12499952, 73.25000082, 85.75000122, 0.19999959999999997, "VDAC1"], [1, 73.25000082, 85.75000122, 73.25000082, 78.25000098, 0.19999959999999997, "VDAC1"], [1, 73.25000082, 78.25000098, 73.3749993, 78.12499996, 0.19999959999999997, "VDAC1"], [1, 73.3749993, 78.12499996, 73.3749993, 77.99999894, 0.19999959999999997, "VDAC1"], [1, 73.3749993, 77.99999894, 74.24999882, 77.12499942, 0.19999959999999997, "VDAC1"], [1, 74.24999882, 77.12499942, 74.24999882, 76.49999940000001, 0.19999959999999997, "VDAC1"], [1, 73.87500084, 70.75000074, 73.74999982, 70.62499972, 0.19999959999999997, "VDAC1"], [1, 73.74999982, 70.62499972, 73.74999982, 67.00000062000001, 0.19999959999999997, "VDAC1"], [1, 73.74999982, 67.00000062000001, 74.24999882, 66.49999908, 0.19999959999999997, "VDAC1"], [1, 74.24999882, 66.49999908, 74.24999882, 61.24999942, 0.19999959999999997, "VDAC1"], [1, 74.24999882, 61.24999942, 72.25000028, 59.25000088, 0.19999959999999997, "VDAC1"], [1, 72.25000028, 59.25000088, 72.25000028, 55.12500024, 0.19999959999999997, "VDAC1"], [1, 72.25000028, 55.12500024, 72.00000078, 54.875000740000004, 0.19999959999999997, "VDAC1"], [1, 72.00000078, 54.875000740000004, 72.00000078, 54.50000022, 0.19999959999999997, "VDAC1"], [2, 72.00000078, 54.50000022, 68.12499964, 54.50000022, 0.19999959999999997, "VDAC1"], [1, 68.12499964, 54.50000022, 67.12499910000001, 55.50000076, 0.19999959999999997, "VDAC1"], [1, 67.12499910000001, 55.50000076, 67.12499910000001, 55.87499874, 0.19999959999999997, "VDAC1"], [2, 67.12499910000001, 55.87499874, 67.12499910000001, 60.874998899999994, 0.19999959999999997, "VDAC1"], [1, 67.12499910000001, 60.874998899999994, 67.00000062000001, 60.874998899999994, 0.19999959999999997, "VDAC1"], [1, 67.00000062000001, 60.874998899999994, 65.50000108, 62.37500098, 0.19999959999999997, "VDAC1"], [1, 65.50000108, 62.37500098, 59.37499936, 62.37500098, 0.19999959999999997, "VDAC1"], [1, 59.37499936, 62.37500098, 57.4999993, 60.50000092, 0.19999959999999997, "VDAC1"], [1, 57.4999993, 60.50000092, 55.50000076, 60.50000092, 0.19999959999999997, "VDAC1"], [1, 55.50000076, 60.50000092, 55.12500024, 60.125000400000005, 0.19999959999999997, "VDAC1"], [1, 55.12500024, 60.125000400000005, 55.12500024, 59.875000899999996, 0.19999959999999997, "VDAC1"], [1, 55.12500024, 59.875000899999996, 54.99999922, 59.74999988, 0.19999959999999997, "VDAC1"], [1, 49.50000006, 93.24099969999999, 49.62500108, 94.49999895999999, 0.19999959999999997, "VDAC1"], [1, 49.12499954, 33.49999904, 48.87500004, 33.75000108, 0.19999959999999997, "VDAC4"], [1, 48.87500004, 33.75000108, 45.999999439999996, 33.75000108, 0.19999959999999997, "VDAC4"], [1, 45.999999439999996, 33.75000108, 45.87500096, 33.87499956, 0.19999959999999997, "VDAC4"], [1, 45.87500096, 33.87499956, 45.25000093999999, 33.87499956, 0.19999959999999997, "VDAC4"], [1, 45.25000093999999, 33.87499956, 45.12499992000001, 34.00000058, 0.19999959999999997, "VDAC4"], [1, 45.12499992000001, 34.00000058, 43.62500038, 34.00000058, 0.19999959999999997, "VDAC4"], [1, 43.62500038, 34.00000058, 43.49999936, 33.87499956, 0.19999959999999997, "VDAC4"], [1, 43.49999936, 33.87499956, 43.49999936, 32.375000019999995, 0.19999959999999997, "VDAC4"], [1, 43.49999936, 32.375000019999995, 43.62500038, 32.249998999999995, 0.19999959999999997, "VDAC4"], [1, 43.62500038, 32.249998999999995, 44.62500092, 32.249998999999995, 0.19999959999999997, "VDAC4"], [2, 44.62500092, 32.249998999999995, 44.62500092, 30.87500048, 0.19999959999999997, "VDAC4"], [2, 44.62500092, 30.87500048, 45.50000044, 30.000000959999998, 0.19999959999999997, "VDAC4"], [1, 45.749999939999995, 9.750000819999999, 65.37500006, 9.750000819999999, 0.19999959999999997, "VDAC4"], [1, 65.37500006, 9.750000819999999, 66.75000112, 11.12499934, 0.19999959999999997, "VDAC4"], [1, 66.75000112, 11.12499934, 78.25000098, 11.12499934, 0.19999959999999997, "VDAC4"], [2, 78.25000098, 11.12499934, 78.25000098, 21.12499966, 0.19999959999999997, "VDAC4"], [1, 78.25000098, 21.12499966, 78.25000098, 26.12499982, 0.19999959999999997, "VDAC4"], [1, 78.25000098, 26.12499982, 78.99999947999999, 26.875000859999997, 0.19999959999999997, "VDAC4"], [2, 78.99999947999999, 26.875000859999997, 78.99999947999999, 52.49999913999999, 0.19999959999999997, "VDAC4"], [1, 78.99999947999999, 52.49999913999999, 72.37499876, 52.49999913999999, 0.19999959999999997, "VDAC4"], [1, 72.37499876, 52.49999913999999, 72.00000078, 52.87499966, 0.19999959999999997, "VDAC4"], [1, 72.00000078, 52.87499966, 72.00000078, 53.25000018, 0.19999959999999997, "VDAC4"], [2, 72.00000078, 53.25000018, 70.50000124, 53.25000018, 0.19999959999999997, "VDAC4"], [2, 70.50000124, 53.25000018, 69.87500122, 53.8750002, 0.19999959999999997, "VDAC4"], [1, 69.87500122, 53.8750002, 69.62499918, 54.1249997, 0.19999959999999997, "VDAC4"], [1, 69.62499918, 54.1249997, 69.62499918, 55.87499874, 0.19999959999999997, "VDAC4"], [2, 69.62499918, 55.87499874, 69.37499967999999, 55.87499874, 0.19999959999999997, "VDAC4"], [2, 66.24999958000001, 61.75000096, 64.99999954, 63.000001, 0.19999959999999997, "VDAC4"], [1, 64.99999954, 63.000001, 59.62499886, 63.000001, 0.19999959999999997, "VDAC4"], [2, 59.62499886, 63.000001, 59.62499886, 61.37500044, 0.19999959999999997, "VDAC4"], [1, 59.62499886, 61.37500044, 58.25000034, 59.99999937999999, 0.19999959999999997, "VDAC4"], [2, 58.25000034, 59.99999937999999, 57.87499981999999, 59.99999937999999, 0.19999959999999997, "VDAC4"], [2, 57.499984059999996, 59.62498362, 57.499984059999996, 59.909880179999995, 0.25200864, "VDAC4"], [2, 57.37500082, 59.500000379999996, 57.499984059999996, 59.62498362, 0.19999959999999997, "VDAC4"], [2, 57.499984059999996, 59.62498362, 57.87499981999999, 59.99999937999999, 0.19999959999999997, "VDAC4"], [1, 49.50000006, 32.2809997, 49.12499954, 33.49999904, 0.19999959999999997, "VDAC4"], [2, 57.499984059999996, 59.411717599999996, 57.37500082, 59.500000379999996, 0.19999959999999997, "VDAC4"], [2, 57.499984059999996, 59.411717599999996, 57.499984059999996, 59.62498362, 0.25200864, "VDAC4"], [1, 52.49999913999999, 31.5000005, 52.49999913999999, 30.999998960000003, 0.19999959999999997, "+5V"], [1, 64.89996925999999, 30.479939039999998, 65.42003172, 30.999998960000003, 0.5999987999999999, "+5V"], [1, 65.42003172, 30.999998960000003, 52.49999913999999, 30.999998960000003, 0.19999959999999997, "+5V"], [1, 65.42003172, 30.999998960000003, 65.49996805999999, 31.07993784, 0.5999987999999999, "+5V"], [2, 74.24999882, 76.49999940000001, 74.5625001, 72.18750104, 0.19999959999999997, "VDAC1"], [1, 73.87500084, 70.75000074, 74.5625001, 72.18750104, 0.19999959999999997, "VDAC1"], [1, 38.12500122, 58.749999339999995, 40.62499876, 59.93750014, 0.19999959999999997, "SDA"], [2, 43.124998839999996, 61.12500093999999, 40.62499876, 59.93750014, 0.19999959999999997, "SDA"], [2, 65.75000057999999, 26.12499982, 66.24999958000001, 26.99999934, 0.29999939999999997, "+3V3_HUB"], [1, 65.75000057999999, 27.125000359999998, 66.24999958000001, 26.99999934, 0.29999939999999997, "+3V3_HUB"], [1, 46.369000480000004, 30.749999459999998, 43.49999936, 30.749999459999998, 0.29999939999999997, "+3V3_HUB"], [2, 49.97799758, 27.106999379999998, 49.97799758, 27.141002359999998, 0.29999939999999997, "+3V3_HUB"], [2, 49.97799758, 27.141002359999998, 46.369000480000004, 30.749999459999998, 0.29999939999999997, "+3V3_HUB"], [1, 52.10700018, 27.106999379999998, 49.97799758, 27.106999379999998, 0.29999939999999997, "+3V3_HUB"], [1, 52.37500066, 27.374999860000003, 52.10700018, 27.106999379999998, 0.29999939999999997, "+3V3_HUB"], [1, 53.499999679999995, 28.49999888, 52.37500066, 27.374999860000003, 0.29999939999999997, "+3V3_HUB"], [2, 49.25014534, 30.458961180000003, 49.07099914, 30.279814979999998, 0.254, "NONREM0"], [2, 49.25014534, 34.13004604, 49.25014534, 33.251708959999995, 0.254, "NONREM0"], [2, 49.25014534, 33.251708959999995, 49.29700072, 33.20485358, 0.254, "NONREM0"], [2, 49.29700072, 31.635148819999998, 49.25014534, 31.588293439999998, 0.254, "NONREM0"], [2, 49.25014534, 31.588293439999998, 49.25014534, 30.458961180000003, 0.254, "NONREM0"], [2, 49.29700072, 33.20485358, 49.29700072, 31.635148819999998, 0.254, "NONREM0"], [2, 49.75001734, 34.13004604, 49.75001734, 30.692798659999998, 0.254, "VBUS_DET"], [2, 49.75001734, 30.692798659999998, 50.165, 30.277815999999998, 0.254, "VBUS_DET"], [2, 50.165, 30.277815999999998, 51.181, 30.277815999999998, 0.254, "VBUS_DET"], [2, 50.25014334, 34.13004604, 50.25014334, 32.42685666, 0.254, "HUB_RST"], [2, 51.9759946, 30.7010054, 51.9759946, 30.689895439999997, 0.254, "HUB_RST"], [2, 51.9759946, 30.689895439999997, 52.196999999999996, 30.468890039999998, 0.254, "HUB_RST"], [2, 52.196999999999996, 30.468890039999998, 52.196999999999996, 30.277815999999998, 0.254, "HUB_RST"], [2, 50.25014334, 32.42685666, 51.9759946, 30.7010054, 0.254, "HUB_RST"], [2, 50.250100159999995, 34.56283155999999, 50.250100159999995, 34.13004604, 0.254, "HUB_RST"], [2, 50.75001534, 34.13004604, 50.75001534, 32.74080066, 0.254, "CFGSEL1"], [2, 51.25014134, 34.13004604, 51.25014134, 33.25667466, 0.254, "CFGSEL0"], [2, 51.25014134, 33.25667466, 54.229, 30.277815999999998, 0.254, "CFGSEL0"], [2, 52.07327152, 33.428040839999994, 52.09477515999999, 33.428040839999994, 0.254, "NONREM1"], [2, 52.09477515999999, 33.428040839999994, 55.245, 30.277815999999998, 0.254, "NONREM1"], [2, 51.750013339999995, 34.13004604, 51.750013339999995, 33.75129902, 0.254, "NONREM1"], [2, 51.750013339999995, 33.75129902, 52.07327152, 33.428040839999994, 0.254, "NONREM1"], [2, 50.75001534, 32.74080066, 53.213, 30.277815999999998, 0.254, "CFGSEL1"], [2, 42.76721444, 33.850031359999996, 43.267213440000006, 33.35003236, 0.4860036, "+3V3_HUB"], [1, 53.499999679999995, 25.08000064, 53.499999679999995, 26.12100186, 0.29999939999999997, "GND"], [1, 53.499999679999995, 26.12100186, 53.1210012, 26.50000034, 0.29999939999999997, "GND"], [2, 57.97778346, 22.61540054, 57.97778346, 20.69304472, 0.254, "VBUS_UP"], [2, 57.97778346, 22.61540054, 51.181, 29.412184, 0.254, "VBUS_UP"], [2, 52.196999999999996, 29.412184, 52.196999999999996, 29.14147334, 0.49999899999999997, "+3V3_HUB"], [2, 52.196999999999996, 29.14147334, 52.83847445999999, 28.49999888, 0.49999899999999997, "+3V3_HUB"], [2, 52.83847445999999, 28.49999888, 53.499999679999995, 28.49999888, 0.49999899999999997, "+3V3_HUB"], [2, 3.6249990999999997, 47.874999499999994, 4.800442520000001, 47.874999499999994, 2.00000108, "+12V"], [2, 9.70646522, 47.1424508, 10.623915760000001, 46.22500026, 2.00000108, "+12V"], [2, 7.12499972, 46.22500026, 10.623915760000001, 46.22500026, 3.6500003199999993, "+12V"], [2, 10.623915760000001, 46.22500026, 12.47499918, 46.22500026, 3.6500003199999993, "+12V"], [2, 1.04499918, 49.23216214, 1.04499918, 44.12204282, 0.254, "BLD_A"], [2, 1.04499918, 44.12204282, 1.08204, 44.085002, 0.254, "BLD_A"], [2, 1.08204, 44.085002, 1.08204, 41.84396, 0.254, "BLD_A"], [2, 1.08204, 41.84396, 1.524, 41.402, 0.254, "BLD_A"], [2, 1.524, 41.402, 3.504184, 41.402, 0.254, "BLD_A"], [2, 2.98196, 44.085002, 2.98196, 42.94022399999999, 0.254, "BLD_REF"], [2, 2.98196, 42.94022399999999, 3.504184, 42.418, 0.254, "BLD_REF"], [2, 2.98196, 44.085002, 3.5257739999999997, 44.628816, 0.254, "BLD_REF"], [2, 3.5257739999999997, 44.628816, 4.444999999999999, 44.628816, 0.254, "BLD_REF"], [2, 5.9000009, 44.999998899999994, 5.92499958, 44.97500022, 2.00000108, "+12V"], [2, 5.92499958, 44.97500022, 5.92499958, 41.91, 2.00000108, "+12V"], [2, 5.871999939999999, 47.1424508, 9.70646522, 47.1424508, 2.00000108, "+12V"], [2, 53.213, 29.412184, 54.229, 29.412184, 0.254, "GND"], [1, 80.63500001999999, 10.8576999, 82.36370115999999, 9.12899876, 0.27999944, "UP_DM"], [1, 82.36370115999999, 9.12899876, 84.24600118, 9.12899876, 0.27999944, "UP_DM"], [2, 83.75006363999998, 7.724086659999999, 83.75006363999998, 8.63306122, 0.27999944, "UP_DM"], [2, 83.75006363999998, 8.63306122, 84.24600118, 9.12899876, 0.27999944, "UP_DM"], [2, 84.75006164, 7.724086659999999, 84.75006164, 8.624938300000002, 0.27999944, "UP_DM"], [2, 84.75006164, 8.624938300000002, 84.24600118, 9.12899876, 0.27999944, "UP_DM"], [2, 84.24006265999998, 6.93325512, 84.24006265999998, 7.71421368, 0.27999944, "UP_DP"], [2, 84.24006265999998, 7.71421368, 84.24993563999999, 7.724086659999999, 0.27999944, "UP_DP"], [2, 83.25099936, 6.4999997, 83.80680724, 6.4999997, 0.27999944, "UP_DP"], [2, 83.80680724, 6.4999997, 84.24006265999998, 6.93325512, 0.27999944, "UP_DP"], [2, 49.62500108, 94.62499998, 49.62500108, 96.25199952, 0.19999959999999997, "VDAC1"], [1, 49.62500108, 96.25199952, 73.12300081999999, 96.25199952, 0.19999959999999997, "VDAC1"], [1, 73.12300081999999, 96.25199952, 73.25000082, 96.12499952, 0.19999959999999997, "VDAC1"], [2, 79.51699869999997, 68.89999936, 79.49200001999999, 68.87500068, 0.29999939999999997, "GND"], [2, 83.57492556, 68.89992316, 82.17487756, 67.49987515999999, 0.254, "GND"], [2, 82.17487756, 67.49987515999999, 80.77482955999999, 66.09982716, 0.254, "GND"], [2, 83.57492556, 67.49987515999999, 82.87490156, 66.79985115999999, 0.254, "GND"], [2, 83.57492556, 66.09982716, 82.87490156, 66.79985115999999, 0.254, "GND"], [2, 82.87490156, 66.79985115999999, 82.17487756, 67.49987515999999, 0.254, "GND"], [2, 82.87490156, 66.79985115999999, 82.17487756, 66.09982716, 0.254, "GND"], [2, 80.77482955999999, 68.89999936, 79.51699869999997, 68.89999936, 0.29999939999999997, "GND"], [2, 82.17487756, 68.89992316, 81.47485356, 68.19989916000002, 0.254, "GND"], [2, 82.17487756, 67.49987515999999, 81.47485356, 68.19989916000002, 0.254, "GND"], [2, 81.47485356, 68.19989916000002, 80.77482955999999, 68.89992316, 0.254, "GND"], [2, 81.47485356, 68.19989916000002, 80.77482955999999, 67.49987515999999, 0.254, "GND"], [1, 45.80999982, 37.710998999999994, 45.84900152, 37.750000699999994, 0.27999944, "USB6_DP"], [1, 45.84900152, 37.750000699999994, 60.874998899999994, 37.750000699999994, 0.27999944, "USB6_DP"], [2, 46.9509348, 37.43006484, 47.051000640000005, 37.329998999999994, 0.19999959999999997, "USB6_DP"], [2, 45.80999982, 37.710998999999994, 46.090933979999996, 37.43006484, 0.19999959999999997, "USB6_DP"], [2, 46.090933979999996, 37.43006484, 46.9509348, 37.43006484, 0.19999959999999997, "USB6_DP"], [1, 45.70684026000001, 36.90139939999999, 45.8582395, 36.750000160000006, 0.27999944, "USB6_DM"], [1, 45.8582395, 36.750000160000006, 62.000000459999995, 36.750000160000006, 0.27999944, "USB6_DM"], [2, 47.051000640000005, 36.83, 45.77823966, 36.83, 0.19999959999999997, "USB6_DM"], [2, 45.77823966, 36.83, 45.70684026000001, 36.90139939999999, 0.19999959999999997, "USB6_DM"], [2, 46.34985142, 38.83006204, 47.04999734, 38.83006204, 0.254, "+3V3_HUB"], [2, 46.0169895, 38.497200119999995, 46.34985142, 38.83006204, 0.254, "+3V3_HUB"], [2, 45.101200119999994, 38.497200119999995, 46.0169895, 38.497200119999995, 0.254, "+3V3_HUB"], [2, 43.600116, 37.464999999999996, 44.068999999999996, 37.464999999999996, 0.49999899999999997, "+3V3_HUB"], [2, 44.46693926, 37.86293926, 45.101200119999994, 38.497200119999995, 0.254, "+3V3_HUB"], [2, 44.068999999999996, 37.464999999999996, 44.46693926, 37.86293926, 0.49999899999999997, "+3V3_HUB"], [2, 43.600116, 37.464999999999996, 43.600116, 36.449, 0.49999899999999997, "+3V3_HUB"], [2, 42.76718396, 35.35000041999999, 43.053, 35.635816459999994, 0.254, "+3V3_HUB"], [2, 43.2868832, 36.1357672, 43.600116, 36.449, 0.254, "+3V3_HUB"], [2, 43.053, 35.635816459999994, 43.053, 35.7688515, 0.254, "+3V3_HUB"], [2, 43.053, 35.7688515, 43.2868832, 36.00273216, 0.254, "+3V3_HUB"], [2, 43.2868832, 36.00273216, 43.2868832, 36.1357672, 0.254, "+3V3_HUB"], [2, 42.76721444, 35.35000041999999, 42.76721444, 34.15003076, 0.4860036, "+3V3_HUB"], [2, 43.600116, 36.449, 44.23011474, 35.81900125999999, 0.254, "+3V3_HUB"], [2, 44.23011474, 35.81900125999999, 45.93999956, 35.81900125999999, 0.254, "+3V3_HUB"], [1, 33.50003205999999, 43.59146476, 34.00003360000001, 44.09146629999999, 2.00000108, "+12V"], [1, 33.50003205999999, 34.25628911999999, 33.50003205999999, 43.59146476, 2.00000108, "+12V"], [1, 33.50003205999999, 43.59146476, 33.50003205999999, 45.40005905999999, 2.00000108, "+12V"], [1, 34.00003360000001, 44.09146629999999, 34.00002852, 52.599943059999994, 2.00000108, "+12V"], [1, 34.00003360000001, 30.80359854, 34.00003360000001, 33.75628758, 2.00000108, "+12V"], [1, 34.00003360000001, 10.48359854, 34.00003360000001, 13.43628758, 2.00000108, "+12V"], [1, 31.674036219999998, 51.099097699999994, 32.004, 50.769133919999994, 0.254, "SCL3"], [1, 32.004, 50.769133919999994, 32.004, 47.879, 0.254, "SCL3"], [2, 32.004, 47.879, 32.257999999999996, 47.625, 0.254, "SCL3"], [2, 32.257999999999996, 47.625, 35.687, 47.625, 0.254, "SCL3"], [1, 35.687, 47.625, 36.50002606, 46.811973939999994, 0.254, "SCL3"], [1, 36.50002606, 46.811973939999994, 36.50002606, 45.40005905999999, 0.254, "SCL3"], [2, 47.04999734, 40.830058040000004, 43.71688234, 40.830058040000004, 0.254, "XTAL1"], [2, 41.51990934, 41.740074, 40.728010999999995, 41.740074, 0.254, "XTAL1"], [1, 45.14465698, 39.68884112, 45.070600739999996, 39.614784879999995, 0.27999944, "UP_DP"], [1, 45.070600739999996, 39.614784879999995, 45.070600739999996, 39.4383006, 0.27999944, "UP_DP"], [2, 45.14465698, 39.68884112, 45.285814939999995, 39.82999908, 0.19999959999999997, "UP_DP"], [2, 45.285814939999995, 39.82999908, 47.051000640000005, 39.82999908, 0.19999959999999997, "UP_DP"], [2, 47.04999734, 40.329932039999996, 44.72645614, 40.329932039999996, 0.254, "XTAL2"], [2, 43.942, 40.004999999999995, 43.48795214, 39.55095214, 0.254, "XTAL2"], [2, 42.925999999999995, 39.318184, 41.52003379999999, 37.9122178, 0.254, "XTAL2"], [2, 41.147999999999996, 37.758115999999994, 41.115195899999996, 37.758115999999994, 0.254, "XTAL2"], [2, 39.027989, 39.30668796, 39.027989, 39.539926, 0.254, "XTAL2"], [2, 42.925999999999995, 41.157652, 42.925999999999995, 40.183816, 0.254, "XTAL1"], [2, 37.338, 6.5571116, 37.75402406, 6.14108754, 0.254, "SDA5"], [2, 43.08281452, 50.83979926, 37.338, 45.09498474, 0.254, "SDA5"], [2, 37.338, 45.09498474, 37.338, 6.5571116, 0.254, "SDA5"], [2, 56.749886499999995, 57.65998374, 56.749886499999995, 57.078979059999995, 0.25200864, "$3N384"], [2, 56.749886499999995, 57.078979059999995, 56.99000032, 56.83886524, 0.25200864, "$3N384"], [1, 49.50000006, 53.72589711999999, 53.19397031999999, 57.41986737999999, 0.25200864, "VDAC3"], [1, 53.19397031999999, 57.41986737999999, 65.0177516, 57.41986737999999, 0.25200864, "VDAC3"], [1, 65.0177516, 57.41986737999999, 65.49996805999999, 57.90208383999999, 0.25200864, "VDAC3"], [2, 55.25009016, 57.65998374, 53.93098687999999, 57.65998374, 0.25200864, "$3N381"], [2, 53.93098687999999, 57.65998374, 53.4720927, 58.118877919999996, 0.25200864, "$3N381"], [1, 53.17350046, 59.74999988, 52.925499939999995, 59.50199935999999, 0.19999959999999997, "VDAC1"], [2, 54.50100098, 59.91100032, 53.68980372, 59.91100032, 0.19999959999999997, "VDAC1"], [2, 53.68980372, 59.91100032, 53.28080276, 59.50199935999999, 0.19999959999999997, "VDAC1"], [2, 53.28080276, 59.50199935999999, 52.925499939999995, 59.50199935999999, 0.19999959999999997, "VDAC1"], [1, 54.99999922, 59.74999988, 53.17350046, 59.74999988, 0.19999959999999997, "VDAC1"], [1, 43.4562123, 58.10440246, 46.5041996, 61.15238976, 0.25200864, "SCL"], [1, 46.5041996, 61.15238976, 53.74319198, 61.15238976, 0.25200864, "SCL"], [2, 43.4562123, 58.10440246, 37.487224999999995, 58.10439484, 0.25200864, "SCL"], [2, 54.49999006, 59.909880179999995, 54.49999006, 59.410081840000004, 0.25200864, "VDAC1"], [2, 57.499984059999996, 58.909882180000004, 57.499984059999996, 58.41008383999999, 0.25200864, "VDAC2"], [2, 55.99999976, 59.33499944, 56.25006275999999, 59.08493644, 0.254, "GND"], [2, 56.25006275999999, 59.08493644, 56.25006275999999, 57.66000406, 0.254, "GND"], [2, 63.999998999999995, 59.33499944, 64.250062, 59.08493644, 0.254, "GND"], [2, 64.250062, 59.08493644, 64.250062, 57.66000406, 0.254, "GND"], [2, 17.91999972, 41.24999878, 17.91999972, 40.5779986, 0.29999939999999997, "GND"], [2, 17.91999972, 40.5779986, 17.99999956, 40.49799876, 0.29999939999999997, "GND"], [2, 58.749999339999995, 27.62700088, 58.875000359999994, 27.7520019, 0.29999939999999997, "+3V3_HUB"], [2, 58.875000359999994, 27.7520019, 58.875000359999994, 40.12499976, 0.29999939999999997, "+3V3_HUB"], [1, 60.75000042, 27.50000088, 60.623000420000004, 27.62700088, 0.29999939999999997, "+3V3_HUB"], [1, 60.623000420000004, 27.62700088, 58.749999339999995, 27.62700088, 0.29999939999999997, "+3V3_HUB"], [1, 38.50002206, 45.40005905999999, 38.50002206, 44.21502206, 0.254, "GND"], [1, 38.50002206, 44.21502206, 37.592, 43.306999999999995, 0.254, "GND"], [2, 89.89495356, 77.75004515999998, 89.89495356, 76.03795561999999, 0.254, "GND"], [2, 89.89495356, 76.03795561999999, 89.6269988, 75.77000086, 0.254, "GND"], [2, 89.89495356, 77.75004515999998, 89.89495356, 79.52304643999999, 0.254, "GND"], [2, 89.89495356, 79.52304643999999, 89.789, 79.62899999999999, 0.254, "GND"], [1, 82.57009901999999, 8.187199779999998, 82.57009901999999, 7.064900779999999, 0.27999944, "UP_DP"], [1, 82.57009901999999, 7.064900779999999, 83.2620001, 6.3729997, 0.27999944, "UP_DP"], [2, 83.2620001, 6.3729997, 83.2620001, 6.48899896, 0.27999944, "UP_DP"], [2, 83.2620001, 6.48899896, 83.25099936, 6.4999997, 0.27999944, "UP_DP"], [2, 83.2620001, 6.3729997, 83.24993764, 6.38506216, 0.27999944, "UP_DP"], [2, 83.24993764, 6.38506216, 83.24993764, 7.724086659999999, 0.27999944, "UP_DP"], [1, 44.57799822, 10.921999999999999, 45.749999939999995, 9.750000819999999, 0.19999959999999997, "VDAC4"], [2, 43.87499988, 25.874997779999998, 43.87499988, 11.251999340000001, 0.19999959999999997, "VDAC4"], [1, 43.87499988, 11.251999340000001, 44.12000066, 11.251999340000001, 0.19999959999999997, "VDAC4"], [1, 44.12000066, 11.251999340000001, 44.449999999999996, 10.921999999999999, 0.19999959999999997, "VDAC4"], [1, 44.449999999999996, 10.921999999999999, 44.57800076, 10.921999999999999, 0.19999959999999997, "VDAC4"], [2, 76.6919472, 53.89309261999999, 76.81718444, 54.018329859999994, 0.254, "PRSNT4#"], [2, 76.6919472, 41.19311802, 76.6919472, 53.89309261999999, 0.254, "PRSNT4#"], [2, 76.6919472, 53.89309261999999, 76.6919472, 54.37469186, 0.254, "PRSNT4#"], [2, 76.6919472, 54.37469186, 76.81718444, 54.499929099999996, 0.254, "PRSNT4#"], [2, 76.81718444, 54.018329859999994, 76.81718444, 54.499929099999996, 0.254, "PRSNT4#"], [2, 73.37505263999999, 64.28197202, 74.13705264, 65.04397202, 0.254, "EFUSE_EN4"], [2, 74.13705264, 65.04396948, 74.13705264, 66.82196694, 0.254, "EFUSE_EN4"], [2, 28.3801439, 65.81986835999999, 28.900041260000002, 65.81986835999999, 0.5999987999999999, "+5V"], [2, 28.3801439, 65.81986835999999, 26.50004606, 67.69996366, 0.5999987999999999, "+5V"], [2, 64.7498705, 61.421977739999996, 64.7498705, 60.66006156, 0.254, "SDA"], [2, 69.08386234, 64.20038213999999, 70.09985979999999, 65.2163796, 0.25200864, "SCL"], [2, 64.2578725, 64.20038213999999, 69.08386234, 64.20038213999999, 0.25200864, "SCL"], [1, 48.81720234, 53.99999106, 44.81721034, 53.99999106, 0.4860036, "+3V3"], [1, 86.84702722, 80.17683989999998, 86.84702722, 73.3188526, 0.254, "EN"], [1, 87.86302468, 78.90684497999999, 87.86302468, 76.36684752, 0.254, "NTC2"], [2, 88.93282187999999, 78.96064218000001, 88.93282187999999, 81.24999498, 0.254, "NTC1"], [2, 85.57702975999999, 80.40503858, 86.08495356, 79.89711478, 0.254, "TXD0"], [2, 86.08495356, 79.89711478, 86.08495356, 77.75004515999998, 0.254, "TXD0"], [2, 84.81502975999999, 78.88104111999999, 84.81502975999999, 77.75012136, 0.254, "RXD0"], [2, 48.62500054, 41.40501498, 49.25000056, 42.030015, 0.29999939999999997, "+3V3_HUB"], [2, 48.62500054, 34.8750001, 48.62500054, 39.62500076, 0.29999939999999997, "+3V3_HUB"], [2, 48.62500054, 41.40501498, 48.62500054, 39.62500076, 0.29999939999999997, "+3V3_HUB"], [1, 57.62500032, 40.25000078, 54.875000740000004, 40.25000078, 0.29999939999999997, "+3V3_HUB"], [2, 43.27496552, 33.35003236, 44.61721074, 33.35003236, 0.4860036, "+3V3_HUB"], [2, 48.250000019999995, 44.00499962, 45.847, 46.40799964, 0.27999944, "USB1_DM"], [2, 45.847, 46.40799964, 45.847, 83.185, 0.27999944, "USB1_DM"], [2, 45.847, 83.185, 46.25300122, 83.59100122, 0.27999944, "USB1_DM"], [2, 45.27900012, 46.22500026, 45.27900012, 83.63300011999999, 0.27999944, "USB1_DP"], [2, 45.27900012, 83.63300011999999, 45.73700022, 84.09100022, 0.27999944, "USB1_DP"], [2, 49.13900002, 7.4000004399999995, 48.49899876, 6.75999918, 0.27999944, "USB5_DM"], [2, 47.50099974, 6.75999918, 47.50099974, 7.241999740000001, 0.27999944, "USB5_DP"], [2, 47.50099974, 7.241999740000001, 48.158999439999995, 7.899999439999999, 0.27999944, "USB5_DP"], [2, 48.158999439999995, 7.899999439999999, 58.95399944, 7.899999439999999, 0.27999944, "USB5_DP"], [2, 58.95399944, 7.899999439999999, 59.500000379999996, 8.44600038, 0.27999944, "USB5_DP"], [2, 59.99999937999999, 7.92999938, 59.47000044, 7.4000004399999995, 0.27999944, "USB5_DM"], [2, 59.47000044, 7.4000004399999995, 49.13900002, 7.4000004399999995, 0.27999944, "USB5_DM"], [2, 59.500000379999996, 8.44600038, 59.500000379999996, 43.24299962, 0.27999944, "USB5_DP"], [2, 59.500000379999996, 43.24299962, 58.98799988, 43.75500012, 0.27999944, "USB5_DP"], [2, 59.50400088, 44.254999119999994, 59.99999937999999, 43.759000619999995, 0.27999944, "USB5_DM"], [2, 59.99999937999999, 43.759000619999995, 59.99999937999999, 7.92999938, 0.27999944, "USB5_DM"], [2, 58.98799988, 43.75500012, 53.57779988, 43.75500012, 0.27999944, "USB5_DP"], [2, 53.57779988, 43.75500012, 53.25100094, 43.428201179999995, 0.27999944, "USB5_DP"], [2, 53.25100094, 43.428201179999995, 53.25100094, 43.0300003, 0.27999944, "USB5_DP"], [2, 52.750999400000005, 43.0300003, 52.750999400000005, 43.733999399999995, 0.27999944, "USB5_DM"], [2, 52.750999400000005, 43.733999399999995, 53.27199912, 44.254999119999994, 0.27999944, "USB5_DM"], [2, 53.27199912, 44.254999119999994, 59.50400088, 44.254999119999994, 0.27999944, "USB5_DM"], [2, 60.83599974, 47.74900026, 61.29999932, 47.285000679999996, 0.27999944, "USB4_DP"], [2, 61.29999932, 47.285000679999996, 61.29999932, 30.398999399999997, 0.27999944, "USB4_DP"], [2, 61.479000740000004, 48.24899926, 62.000000459999995, 47.72799954, 0.27999944, "USB4_DM"], [2, 62.000000459999995, 47.72799954, 62.000000459999995, 29.599001, 0.27999944, "USB4_DM"], [2, 51.75000064, 43.0300003, 51.75000064, 47.30500064, 0.27999944, "USB4_DP"], [2, 51.75000064, 47.30500064, 52.194000259999996, 47.74900026, 0.27999944, "USB4_DP"], [2, 52.194000259999996, 47.74900026, 60.83599974, 47.74900026, 0.27999944, "USB4_DP"], [2, 51.2499991, 43.0300003, 51.2499991, 47.6939991, 0.27999944, "USB4_DM"], [2, 51.2499991, 47.6939991, 51.804999259999995, 48.24899926, 0.27999944, "USB4_DM"], [2, 51.804999259999995, 48.24899926, 61.479000740000004, 48.24899926, 0.27999944, "USB4_DM"], [2, 50.249000339999995, 43.0300003, 50.249000339999995, 47.54099966, 0.27999944, "USB3_DP"], [2, 50.249000339999995, 47.54099966, 49.591000640000004, 48.198999359999995, 0.27999944, "USB3_DP"], [2, 49.591000640000004, 48.198999359999995, 47.50099974, 48.198999359999995, 0.27999944, "USB3_DP"], [2, 50.74899934, 43.0300003, 50.74899934, 48.31100066, 0.27999944, "USB3_DM"], [2, 50.74899934, 48.31100066, 50.160999499999996, 48.8990005, 0.27999944, "USB3_DM"], [2, 50.160999499999996, 48.8990005, 48.49899876, 48.8990005, 0.27999944, "USB3_DM"], [2, 45.50000044, 30.000000959999998, 45.50000044, 27.49999834, 0.19999959999999997, "VDAC4"], [2, 45.50000044, 27.49999834, 43.87499988, 25.874997779999998, 0.19999959999999997, "VDAC4"], [2, 17.20000116, 20.69999924, 19.2999995, 20.69999924, 1.00000054, "SW12"], [2, 22.39300068, 19.4999991, 22.39300068, 19.95000074, 0.14999969999999999, "VCC12"], [2, 22.39300068, 19.95000074, 22.250001219999998, 20.093000200000002, 0.14999969999999999, "VCC12"], [2, 22.250001219999998, 20.093000200000002, 22.250001219999998, 21.58499874, 0.14999969999999999, "VCC12"], [2, 22.250001219999998, 21.58499874, 22.820000080000003, 21.58499874, 0.14999969999999999, "VCC12"], [2, 19.12999984, 22.4749995, 18.7500006, 23.449998819999998, 0.29999939999999997, "GND"], [2, 19.12999984, 18.92499898, 18.7500006, 17.94999966, 0.29999939999999997, "GND"], [2, 22.39300068, 22.60000052, 22.39300068, 23.34999902, 0.24999949999999999, "GND"], [2, 21.89200092, 18.8000005, 21.89200092, 17.94999966, 0.24999949999999999, "GND"], [2, 23.09999952, 20.69999924, 23.70000086, 20.69999924, 0.24999949999999999, "GND"], [2, 23.70000086, 20.69999924, 23.81000064, 20.80999902, 0.24999949999999999, "GND"], [2, 23.81000064, 20.80999902, 26.300000739999998, 20.80999902, 0.24999949999999999, "GND"], [2, 8.60000058, 7.500000239999999, 9.099999579999999, 7.500000239999999, 0.24999949999999999, "GND"], [2, 15.900001219999998, 7.500000239999999, 16.40000022, 7.500000239999999, 0.24999949999999999, "GND"], [2, 23.09999952, 22.19999878, 23.09999952, 23.860000539999998, 0.24999949999999999, "VCC12"], [2, 23.09999952, 23.860000539999998, 24.4299994, 23.860000539999998, 0.24999949999999999, "VCC12"], [2, 21.391999379999998, 22.60000052, 21.391999379999998, 22.850000020000003, 0.24999949999999999, "BST12"], [2, 21.89200092, 22.60000052, 21.89200092, 22.850000020000003, 0.24999949999999999, "BST12"], [2, 21.391999379999998, 22.850000020000003, 21.89200092, 22.850000020000003, 0.24999949999999999, "BST12"], [2, 21.391999379999998, 22.850000020000003, 21.391999379999998, 25.5999996, 0.24999949999999999, "BST12"], [2, 21.391999379999998, 25.5999996, 19.61999886, 25.5999996, 0.24999949999999999, "BST12"], [2, 19.61999886, 25.5999996, 19.61999886, 25.0000008, 0.24999949999999999, "BST12"], [2, 19.75000114, 8.624999259999997, 19.62500012, 8.624999259999997, 0.19999959999999997, "PD_CC2"], [1, 19.62500012, 8.624999259999997, 11.12499934, 8.624999259999997, 0.19999959999999997, "PD_CC2"], [1, 11.12499934, 8.624999259999997, 10.87499984, 8.87499876, 0.19999959999999997, "PD_CC2"], [2, 10.87499984, 8.87499876, 10.87499984, 8.75000028, 0.19999959999999997, "PD_CC2"], [2, 10.87499984, 8.75000028, 10.74999882, 8.624999259999997, 0.19999959999999997, "PD_CC2"], [2, 20.701, 8.40000098, 19.75000114, 8.624999259999997, 0.19999959999999997, "PD_CC2"], [2, 10.749000599999999, 7.724000299999999, 10.74999882, 8.624999259999997, 0.19999959999999997, "PD_CC2"], [2, 19.75000114, 9.499998779999999, 19.62500012, 9.499998779999999, 0.19999959999999997, "PD_CC1"], [1, 19.62500012, 9.499998779999999, 17.25000106, 9.499998779999999, 0.19999959999999997, "PD_CC1"], [1, 17.25000106, 9.499998779999999, 16.999999019999997, 9.24999928, 0.19999959999999997, "PD_CC1"], [1, 16.999999019999997, 9.24999928, 13.75000044, 9.24999928, 0.19999959999999997, "PD_CC1"], [2, 20.701, 9.40099974, 19.75000114, 9.499998779999999, 0.19999959999999997, "PD_CC1"], [2, 13.74899968, 7.724000299999999, 13.75000044, 9.24999928, 0.19999959999999997, "PD_CC1"], [2, 84.37500015999998, 59.25000088, 84.37500015999998, 58.93285139999999, 0.19999959999999997, "NTC2"], [2, 84.37500015999998, 58.93285139999999, 84.37500015999998, 57.0000003, 0.19999959999999997, "NTC2"], [2, 84.81502975999999, 59.37288099999999, 84.37500015999998, 58.93285139999999, 0.254, "NTC2"], [2, 84.37500015999998, 58.93285139999999, 84.3070323, 58.86488354, 0.254, "NTC2"], [1, 84.37500015999998, 57.0000003, 84.37500015999998, 56.874999280000004, 0.19999959999999997, "NTC2"], [1, 84.37500015999998, 56.874999280000004, 84.62499966, 56.624999779999996, 0.19999959999999997, "NTC2"], [1, 84.62499966, 56.624999779999996, 84.62499966, 55.87499874, 0.19999959999999997, "NTC2"], [1, 84.62499966, 55.87499874, 84.87499916, 55.624999239999994, 0.19999959999999997, "NTC2"], [1, 84.87499916, 55.624999239999994, 85.49999918, 55.624999239999994, 0.19999959999999997, "NTC2"], [1, 85.49999918, 55.624999239999994, 87.62499874, 53.499999679999995, 0.19999959999999997, "NTC2"], [2, 87.62499874, 53.499999679999995, 87.62499874, 20.25000014, 0.19999959999999997, "NTC2"], [1, 87.62499874, 20.25000014, 77.49999994, 20.25000014, 0.19999959999999997, "NTC2"], [2, 77.49999994, 20.25000014, 77.37499892, 20.25000014, 0.19999959999999997, "NTC2"], [2, 77.37499892, 20.25000014, 75.49999886, 18.375000080000003, 0.19999959999999997, "NTC2"], [1, 75.49999886, 18.375000080000003, 71.37500076, 18.375000080000003, 0.19999959999999997, "NTC2"], [2, 71.37500076, 18.375000080000003, 71.37500076, 21.625001199999996, 0.19999959999999997, "NTC2"], [1, 71.37500076, 21.625001199999996, 63.000001, 21.625001199999996, 0.19999959999999997, "NTC2"], [1, 63.000001, 21.625001199999996, 62.249999960000004, 22.374999699999996, 0.19999959999999997, "NTC2"], [1, 62.249999960000004, 22.374999699999996, 56.453130679999994, 22.374999699999996, 0.19999959999999997, "NTC2"], [1, 56.453130679999994, 22.374999699999996, 54.3749992, 22.374999699999996, 0.19999959999999997, "NTC2"], [1, 56.875085639999995, 22.79695466, 56.453130679999994, 22.374999699999996, 0.254, "NTC2"], [1, 56.453130679999994, 22.374999699999996, 55.35108818, 21.2729572, 0.254, "NTC2"], [1, 54.3749992, 22.374999699999996, 54.250000719999996, 22.250001219999998, 0.19999959999999997, "NTC2"], [1, 54.250000719999996, 22.250001219999998, 40.37499926, 22.250001219999998, 0.19999959999999997, "NTC2"], [2, 40.37499926, 22.250001219999998, 39.37500126, 22.250001219999998, 0.19999959999999997, "NTC2"], [2, 39.37500126, 22.250001219999998, 38.750001239999996, 21.625001199999996, 0.19999959999999997, "NTC2"], [1, 38.750001239999996, 21.625001199999996, 35.124999599999995, 21.625001199999996, 0.19999959999999997, "NTC2"], [2, 35.124999599999995, 21.625001199999996, 33.75000108, 21.625001199999996, 0.19999959999999997, "NTC2"], [2, 33.75000108, 21.625001199999996, 31.999999499999998, 19.874999619999997, 0.19999959999999997, "NTC2"], [1, 31.999999499999998, 19.874999619999997, 28.24999938, 19.874999619999997, 0.19999959999999997, "NTC2"], [2, 28.24999938, 19.874999619999997, 27.125000359999998, 18.7500006, 0.19999959999999997, "NTC2"], [2, 84.81502975999999, 60.24680102, 84.37500015999998, 59.25000088, 0.19999959999999997, "NTC2"], [2, 84.81502975999999, 60.2498795, 84.81502975999999, 60.24680102, 0.254, "NTC2"], [2, 84.81502975999999, 60.24680102, 84.81502975999999, 59.37288099999999, 0.254, "NTC2"], [2, 26.901000299999996, 18.54700126, 27.125000359999998, 18.7500006, 0.19999959999999997, "NTC2"], [2, 24.37500078, 22.125000200000002, 24.37500078, 21.8750007, 0.19999959999999997, "FB12"], [2, 23.874999239999998, 22.125000200000002, 23.874999239999998, 21.625001199999996, 0.19999959999999997, "FB12"], [2, 23.874999239999998, 21.625001199999996, 23.75000076, 21.500000179999997, 0.19999959999999997, "FB12"], [2, 24.416999679999996, 22.638999679999998, 24.37500078, 22.125000200000002, 0.19999959999999997, "FB12"], [2, 24.416999679999996, 21.420000339999998, 24.37500078, 21.8750007, 0.19999959999999997, "FB12"], [2, 24.416999679999996, 22.638999679999998, 23.874999239999998, 22.125000200000002, 0.19999959999999997, "FB12"], [2, 22.99200126, 21.199000020000003, 23.59250044, 21.199000020000003, 0.19999959999999997, "FB12"], [2, 23.59250044, 21.199000020000003, 23.75000076, 21.500000179999997, 0.19999959999999997, "FB12"], [2, 23.874999239999998, 19.874999619999997, 23.624999739999996, 19.874999619999997, 0.19999959999999997, "RT12"], [2, 24.416999679999996, 20.201001, 23.874999239999998, 19.874999619999997, 0.19999959999999997, "RT12"], [2, 22.99200126, 20.201001, 23.59250044, 20.201001, 0.19999959999999997, "RT12"], [2, 23.59250044, 20.201001, 23.624999739999996, 19.874999619999997, 0.19999959999999997, "RT12"], [2, 24.249999759999998, 17.25000106, 24.00000026, 16.999999019999997, 0.19999959999999997, "EN12"], [2, 24.00000026, 16.999999019999997, 24.00000026, 16.74999952, 0.19999959999999997, "EN12"], [2, 24.00000026, 16.999999019999997, 21.12499966, 16.999999019999997, 0.19999959999999997, "EN12"], [2, 21.12499966, 16.999999019999997, 21.000001179999998, 17.125000039999996, 0.19999959999999997, "EN12"], [2, 21.000001179999998, 17.125000039999996, 21.000001179999998, 19.0000001, 0.19999959999999997, "EN12"], [2, 24.63299874, 17.799999960000005, 25.165999960000004, 17.799999960000005, 0.19999959999999997, "EN12"], [2, 25.165999960000004, 17.799999960000005, 24.249999759999998, 17.25000106, 0.19999959999999997, "EN12"], [2, 23.76700098, 16.581000619999998, 24.00000026, 16.74999952, 0.19999959999999997, "EN12"], [2, 21.391999379999998, 19.14899904, 21.000001179999998, 19.0000001, 0.19999959999999997, "EN12"], [2, 19.75000114, 11.499999859999999, 19.2499996, 11.499999859999999, 0.19999959999999997, "$9N145"], [2, 20.701, 11.40000006, 19.75000114, 11.499999859999999, 0.19999959999999997, "$9N145"], [2, 18.99899934, 11.684, 19.2499996, 11.499999859999999, 0.19999959999999997, "$9N145"], [2, 21.74999968, 7.62500126, 20.749999139999996, 7.62500126, 0.39999919999999994, "VIN_FUSED"], [2, 21.8750007, 7.749999740000001, 21.74999968, 7.62500126, 0.39999919999999994, "VIN_FUSED"], [2, 21.8750007, 10.00000032, 21.8750007, 7.749999740000001, 0.39999919999999994, "VIN_FUSED"], [2, 21.8750007, 10.00000032, 21.74999968, 10.1249988, 0.39999919999999994, "VIN_FUSED"], [2, 21.74999968, 10.1249988, 21.000001179999998, 10.1249988, 0.39999919999999994, "VIN_FUSED"], [2, 21.8750007, 10.00000032, 21.8750007, 12.2500009, 0.39999919999999994, "VIN_FUSED"], [2, 21.8750007, 12.2500009, 22.250001219999998, 12.62499888, 0.39999919999999994, "VIN_FUSED"], [2, 26.25000084, 12.62499888, 26.37499932, 12.5000004, 0.39999919999999994, "VIN_FUSED"], [2, 18.62499958, 7.749999740000001, 18.62499958, 7.999999239999999, 0.39999919999999994, "VIN_FUSED"], [2, 21.8750007, 12.2500009, 21.8750007, 12.9999994, 0.39999919999999994, "VIN_FUSED"], [2, 21.8750007, 12.9999994, 20.625000659999998, 14.24999944, 0.39999919999999994, "VIN_FUSED"], [2, 20.625000659999998, 14.24999944, 20.625000659999998, 14.87499946, 0.39999919999999994, "VIN_FUSED"], [2, 22.250001219999998, 12.62499888, 24.74999876, 12.62499888, 0.39999919999999994, "VIN_FUSED"], [2, 24.74999876, 12.62499888, 26.25000084, 12.62499888, 0.39999919999999994, "VIN_FUSED"], [2, 26.37499932, 12.5000004, 26.37499932, 14.12500096, 0.39999919999999994, "VIN_FUSED"], [2, 26.37499932, 14.12500096, 26.62499882, 14.375000459999999, 0.39999919999999994, "VIN_FUSED"], [2, 20.625000659999998, 14.87499946, 20.00000064, 15.499999480000001, 0.39999919999999994, "VIN_FUSED"], [2, 20.00000064, 15.499999480000001, 19.4999991, 16.00000102, 0.39999919999999994, "VIN_FUSED"], [2, 20.00000064, 18.375000080000003, 20.12499912, 18.375000080000003, 0.39999919999999994, "VIN_FUSED"], [2, 20.00000064, 19.12500112, 20.00000064, 18.375000080000003, 0.39999919999999994, "VIN_FUSED"], [1, 20.12499912, 18.375000080000003, 20.12499912, 22.999999719999998, 0.39999919999999994, "VIN_FUSED"], [2, 20.12499912, 24.124998740000002, 20.25000014, 24.249999759999998, 0.39999919999999994, "VIN_FUSED"], [2, 20.300000039999993, 22.55000062, 20.300000039999993, 24.249999759999998, 0.29999939999999997, "VIN_FUSED"], [2, 20.300000039999993, 24.249999759999998, 20.300000039999993, 24.37500078, 0.39999919999999994, "VIN_FUSED"], [2, 20.25000014, 24.37500078, 20.37500116, 24.49999926, 0.39999919999999994, "VIN_FUSED"], [1, 20.37500116, 24.49999926, 22.75000022, 24.49999926, 0.39999919999999994, "VIN_FUSED"], [2, 22.75000022, 24.49999926, 22.999999719999998, 24.49999926, 0.39999919999999994, "VIN_FUSED"], [2, 22.999999719999998, 24.49999926, 23.75000076, 25.2500003, 0.39999919999999994, "VIN_FUSED"], [2, 23.75000076, 25.2500003, 23.874999239999998, 25.2500003, 0.39999919999999994, "VIN_FUSED"], [2, 23.874999239999998, 25.2500003, 24.00000026, 25.37499878, 0.39999919999999994, "VIN_FUSED"], [2, 24.00000026, 25.37499878, 24.00000026, 25.499999799999998, 0.39999919999999994, "VIN_FUSED"], [2, 24.00000026, 25.499999799999998, 24.62500028, 26.12499982, 0.39999919999999994, "VIN_FUSED"], [2, 24.62500028, 26.12499982, 24.62500028, 28.1250009, 0.39999919999999994, "VIN_FUSED"], [2, 20.749999139999996, 7.62500126, 19.25100036, 6.359999979999999, 0.39999919999999994, "VIN_FUSED"], [2, 20.701, 10.39899876, 21.000001179999998, 10.1249988, 0.39999919999999994, "VIN_FUSED"], [2, 26.699999939999998, 12.400000599999998, 26.37499932, 12.5000004, 0.39999919999999994, "VIN_FUSED"], [2, 19.25100036, 6.359999979999999, 18.62499958, 7.749999740000001, 0.39999919999999994, "VIN_FUSED"], [2, 19.1999997, 16.10099904, 19.4999991, 16.00000102, 0.39999919999999994, "VIN_FUSED"], [2, 24.900001, 15.001001239999999, 24.74999876, 14.75000098, 0.39999919999999994, "VIN_FUSED"], [2, 24.74999876, 16.124999499999998, 24.74999876, 14.75000098, 0.39999919999999994, "VIN_FUSED"], [2, 24.74999876, 14.75000098, 24.74999876, 12.62499888, 0.39999919999999994, "VIN_FUSED"], [2, 26.901000299999996, 14.500999699999998, 26.62499882, 14.375000459999999, 0.39999919999999994, "VIN_FUSED"], [2, 20.1700003, 17.799999960000005, 20.00000064, 17.50000056, 0.39999919999999994, "VIN_FUSED"], [2, 20.00000064, 18.375000080000003, 20.00000064, 17.50000056, 0.39999919999999994, "VIN_FUSED"], [2, 20.00000064, 17.50000056, 20.00000064, 15.499999480000001, 0.39999919999999994, "VIN_FUSED"], [2, 24.63299874, 16.581000619999998, 24.74999876, 16.124999499999998, 0.39999919999999994, "VIN_FUSED"], [2, 20.31700026, 19.27599904, 20.00000064, 19.12500112, 0.39900098, "VIN_FUSED"], [2, 20.31700026, 22.12600096, 20.12499912, 22.374999699999996, 0.39900098, "VIN_FUSED"], [2, 24.900001, 26.29899998, 24.62500028, 26.12499982, 0.39999919999999994, "VIN_FUSED"], [2, 24.900001, 28.30100004, 24.62500028, 28.1250009, 0.39999919999999994, "VIN_FUSED"], [2, 2.6250010999999995, 20.49999964, 1.7499990399999998, 20.49999964, 0.39999919999999994, "VIN_SW"], [2, 4.500001160000001, 23.500001259999998, 4.500001160000001, 28.1250009, 0.39999919999999994, "VIN_SW"], [2, 6.7499991999999995, 23.500001259999998, 6.7499991999999995, 25.37499878, 0.39999919999999994, "VIN_SW"], [2, 6.7499991999999995, 25.37499878, 9.6249998, 28.24999938, 0.39999919999999994, "VIN_SW"], [2, 9.6249998, 28.24999938, 9.750000819999999, 28.24999938, 0.39999919999999994, "VIN_SW"], [2, 9.750000819999999, 28.24999938, 10.87499984, 27.125000359999998, 0.39999919999999994, "VIN_SW"], [2, 10.87499984, 27.125000359999998, 13.75000044, 27.125000359999998, 0.39999919999999994, "VIN_SW"], [2, 13.75000044, 27.125000359999998, 14.87499946, 28.24999938, 0.39999919999999994, "VIN_SW"], [2, 14.87499946, 28.24999938, 14.87499946, 28.6249999, 0.39999919999999994, "VIN_SW"], [2, 14.87499946, 28.6249999, 14.499998939999998, 29.000000419999996, 0.39999919999999994, "VIN_SW"], [2, 14.499998939999998, 29.000000419999996, 14.499998939999998, 29.37500094, 0.39999919999999994, "VIN_SW"], [2, 14.499998939999998, 29.37500094, 12.9999994, 30.87500048, 0.39999919999999994, "VIN_SW"], [2, 12.9999994, 30.87500048, 12.9999994, 30.999998960000003, 0.39999919999999994, "VIN_SW"], [2, 12.9999994, 30.999998960000003, 12.62499888, 31.37499948, 0.39999919999999994, "VIN_SW"], [2, 14.87499946, 28.24999938, 15.12499896, 28.24999938, 0.39999919999999994, "VIN_SW"], [2, 15.12499896, 28.24999938, 16.250000519999997, 27.125000359999998, 0.39999919999999994, "VIN_SW"], [2, 16.250000519999997, 27.125000359999998, 18.87499908, 27.125000359999998, 0.39999919999999994, "VIN_SW"], [2, 18.87499908, 27.125000359999998, 20.12499912, 28.375000399999998, 0.39999919999999994, "VIN_SW"], [2, 4.650999079999999, 20.701, 2.6250010999999995, 20.49999964, 0.39999919999999994, "VIN_SW"], [2, 1.7499990399999998, 20.49999964, 1.5010002999999998, 20.74900092, 0.39999919999999994, "VIN_SW"], [2, 4.650999079999999, 20.701, 4.500001160000001, 23.500001259999998, 0.39999919999999994, "VIN_SW"], [2, 4.500001160000001, 28.1250009, 4.54200006, 28.450999739999997, 0.39999919999999994, "VIN_SW"], [2, 4.650999079999999, 20.701, 6.7499991999999995, 23.500001259999998, 0.39999919999999994, "VIN_SW"], [2, 9.84199962, 28.450999739999997, 9.6249998, 28.24999938, 0.39999919999999994, "VIN_SW"], [2, 15.14299994, 28.450999739999997, 14.87499946, 28.24999938, 0.39999919999999994, "VIN_SW"], [2, 12.62499888, 31.37499948, 12.49899964, 31.638001239999998, 0.39999919999999994, "VIN_SW"], [2, 20.12499912, 28.375000399999998, 20.441998740000002, 28.450999739999997, 0.39999919999999994, "VIN_SW"], [2, 1.5010002999999998, 22.75100098, 1.49999954, 23.874999239999998, 0.29999939999999997, "GND"], [2, 26.901000299999996, 20.05300028, 26.12499982, 20.00000064, 0.29999939999999997, "GND"], [2, 26.901000299999996, 16.50000002, 25.87500032, 16.50000002, 0.29999939999999997, "GND"], [2, 25.27000026, 23.860998759999998, 25.2500003, 24.49999926, 0.29999939999999997, "GND"], [2, 1.35599932, 28.450999739999997, 2.50000008, 28.49999888, 0.29999939999999997, "GND"], [2, 6.6569996399999996, 28.450999739999997, 7.749999740000001, 28.49999888, 0.29999939999999997, "GND"], [2, 11.957999959999999, 28.450999739999997, 13.12500042, 28.49999888, 0.29999939999999997, "GND"], [2, 17.25699876, 28.450999739999997, 18.375000080000003, 28.49999888, 0.29999939999999997, "GND"], [2, 19.32900122, 23.5990003, 19.0000001, 22.999999719999998, 0.29999939999999997, "GND"], [2, 19.32900122, 17.799999960000005, 18.7500006, 17.750000059999998, 0.29999939999999997, "GND"], [2, 19.1999997, 14.09999974, 18.125000580000002, 14.12500096, 0.29999939999999997, "GND"], [2, 22.90100068, 15.001001239999999, 22.87500124, 16.00000102, 0.29999939999999997, "GND"], [2, 22.90100068, 26.29899998, 21.8750007, 26.37499932, 0.29999939999999997, "GND"], [2, 22.90100068, 28.30100004, 21.8750007, 28.24999938, 0.29999939999999997, "GND"], [2, 19.25100036, 1.6380002800000002, 19.2499996, 2.99999908, 0.29999939999999997, "GND"], [2, 18.99899934, 10.8179997, 18.375000080000003, 10.87499984, 0.29999939999999997, "GND"], [2, 25.282999979999996, 20.201001, 25.2500003, 19.62500012, 0.29999939999999997, "GND"], [2, 25.282999979999996, 21.420000339999998, 25.87500032, 21.374999159999998, 0.29999939999999997, "GND"], [2, 23.76700098, 17.799999960000005, 23.75000076, 18.375000080000003, 0.29999939999999997, "GND"], [2, 22.6249992, 43.62500038, 27.125000359999998, 48.124998999999995, 0.14999969999999999, "INA_ALERT"], [2, 27.125000359999998, 48.124998999999995, 27.125000359999998, 51.2499991, 0.14999969999999999, "INA_ALERT"], [2, 27.125000359999998, 51.2499991, 28.24999938, 52.37500066, 0.14999969999999999, "INA_ALERT"], [1, 28.24999938, 52.37500066, 30.999998960000003, 52.37500066, 0.14999969999999999, "INA_ALERT"], [1, 44.62500092, 75.49999886, 44.250000400000005, 75.49999886, 0.14999969999999999, "INA_ALERT"], [2, 21.609999960000003, 43.49999936, 22.6249992, 43.62500038, 0.14999969999999999, "INA_ALERT"], [1, 44.250000400000005, 75.49999886, 43.883072, 75.75794855999999, 0.14999969999999999, "INA_ALERT"], [2, 36.076001, 56.13699974, 36.12500014, 57.2499998, 0.14999969999999999, "SDA"], [2, 36.12500014, 57.87499981999999, 36.12500014, 57.2499998, 0.14999969999999999, "SDA"], [2, 36.12500014, 56.874999280000004, 36.250001160000004, 56.750000799999995, 0.14999969999999999, "SDA"], [2, 36.12500014, 57.2499998, 36.12500014, 56.874999280000004, 0.14999969999999999, "SDA"], [2, 25.62500082, 9.874999299999999, 25.7499993, 10.00000032, 0.14999969999999999, "SDA"], [2, 25.62500082, 7.87500076, 25.62500082, 9.874999299999999, 0.14999969999999999, "SDA"], [2, 25.7499993, 7.749999740000001, 25.62500082, 7.87500076, 0.14999969999999999, "SDA"], [2, 26.12499982, 7.749999740000001, 25.7499993, 7.749999740000001, 0.14999969999999999, "SDA"], [2, 26.25000084, 7.62500126, 26.12499982, 7.749999740000001, 0.14999969999999999, "SDA"], [2, 27.62499936, 7.62500126, 26.25000084, 7.62500126, 0.14999969999999999, "SDA"], [2, 27.75000038, 7.500000239999999, 27.62499936, 7.62500126, 0.14999969999999999, "SDA"], [2, 29.24999992, 7.500000239999999, 27.75000038, 7.500000239999999, 0.14999969999999999, "SDA"], [2, 29.37500094, 7.62500126, 29.24999992, 7.500000239999999, 0.14999969999999999, "SDA"], [2, 25.7499993, 10.00000032, 26.699999939999998, 10.39899876, 0.14999969999999999, "SDA"], [2, 36.750000160000006, 56.874999280000004, 36.750000160000006, 57.2499998, 0.14999969999999999, "SCL"], [2, 36.7259997, 56.13699974, 36.750000160000006, 56.874999280000004, 0.14999969999999999, "SCL"], [2, 36.724998940000006, 57.342001139999994, 36.750000160000006, 57.2499998, 0.14999969999999999, "SCL"], [1, 75.24999935999999, 69.2500012, 75.24999935999999, 68.87500068, 0.14999969999999999, "SCL"], [1, 75.24999935999999, 68.87500068, 76.49999940000001, 67.62500064, 0.14999969999999999, "SCL"], [1, 76.49999940000001, 67.62500064, 76.49999940000001, 65.87499906000001, 0.14999969999999999, "SCL"], [1, 76.49999940000001, 65.87499906000001, 76.62500041999999, 65.75000057999999, 0.14999969999999999, "SCL"], [1, 76.62500041999999, 65.75000057999999, 76.62500041999999, 65.50000108, 0.14999969999999999, "SCL"], [2, 76.62500041999999, 65.50000108, 76.62500041999999, 62.249999960000004, 0.14999969999999999, "SCL"], [1, 76.62500041999999, 62.249999960000004, 76.62500041999999, 61.24999942, 0.14999969999999999, "SCL"], [1, 76.62500041999999, 61.24999942, 76.7499989, 61.12500093999999, 0.14999969999999999, "SCL"], [1, 76.7499989, 61.12500093999999, 76.7499989, 60.3749999, 0.14999969999999999, "SCL"], [1, 76.7499989, 60.3749999, 78.12499996, 58.99999884, 0.14999969999999999, "SCL"], [1, 78.12499996, 58.99999884, 78.12499996, 57.12499878, 0.14999969999999999, "SCL"], [1, 78.12499996, 57.12499878, 80.12500104, 55.12500024, 0.14999969999999999, "SCL"], [2, 80.12500104, 55.12500024, 80.12500104, 26.50000034, 0.14999969999999999, "SCL"], [1, 80.12500104, 26.50000034, 83.37499962, 23.24999922, 0.14999969999999999, "SCL"], [1, 83.37499962, 23.24999922, 83.37499962, 21.74999968, 0.14999969999999999, "SCL"], [1, 83.37499962, 21.74999968, 83.25000113999998, 21.625001199999996, 0.14999969999999999, "SCL"], [1, 83.25000113999998, 21.625001199999996, 80.00000002, 21.625001199999996, 0.14999969999999999, "SCL"], [2, 80.00000002, 21.625001199999996, 80.00000002, 9.499998779999999, 0.14999969999999999, "SCL"], [1, 80.00000002, 9.499998779999999, 78.74999998, 9.499998779999999, 0.14999969999999999, "SCL"], [1, 78.74999998, 9.499998779999999, 78.62499895999999, 9.3750003, 0.14999969999999999, "SCL"], [1, 78.62499895999999, 9.3750003, 70.50000124, 9.3750003, 0.14999969999999999, "SCL"], [2, 70.50000124, 9.3750003, 70.50000124, 3.3749995999999998, 0.14999969999999999, "SCL"], [1, 70.50000124, 3.3749995999999998, 39.49999973999999, 3.3749995999999998, 0.14999969999999999, "SCL"], [1, 39.49999973999999, 3.3749995999999998, 39.37500126, 3.25000112, 0.14999969999999999, "SCL"], [2, 39.37500126, 3.25000112, 39.37500126, 4.7500006599999995, 0.14999969999999999, "SCL"], [2, 39.37500126, 4.7500006599999995, 39.00000074, 5.12500118, 0.14999969999999999, "SCL"], [2, 39.00000074, 5.12500118, 39.00000074, 14.87499946, 0.14999969999999999, "SCL"], [1, 39.00000074, 14.87499946, 35.99999912, 14.87499946, 0.14999969999999999, "SCL"], [2, 35.99999912, 14.87499946, 35.99999912, 22.374999699999996, 0.14999969999999999, "SCL"], [2, 35.99999912, 22.374999699999996, 35.500000119999996, 22.87500124, 0.14999969999999999, "SCL"], [2, 35.500000119999996, 22.87500124, 34.8750001, 22.87500124, 0.14999969999999999, "SCL"], [2, 34.8750001, 22.87500124, 34.74999908, 22.999999719999998, 0.14999969999999999, "SCL"], [2, 34.74999908, 22.999999719999998, 34.74999908, 33.00000004, 0.14999969999999999, "SCL"], [2, 34.74999908, 33.00000004, 31.999999499999998, 35.74999962, 0.14999969999999999, "SCL"], [1, 31.999999499999998, 35.74999962, 28.24999938, 35.74999962, 0.14999969999999999, "SCL"], [2, 28.24999938, 35.74999962, 21.524084459999997, 42.47591454, 0.14999969999999999, "SCL"], [2, 21.524084459999997, 42.47591454, 21.500000179999997, 42.49999882, 0.14999969999999999, "SCL"], [2, 20.67295078, 42.47591454, 21.524084459999997, 42.47591454, 0.254, "SCL"], [2, 21.524084459999997, 42.47591454, 21.58585726, 42.47591454, 0.254, "SCL"], [2, 21.25000068, 42.49999882, 21.12499966, 42.624999839999994, 0.14999969999999999, "SCL"], [2, 21.12499966, 42.624999839999994, 20.625000659999998, 42.624999839999994, 0.14999969999999999, "SCL"], [2, 20.625000659999998, 42.624999839999994, 20.49999964, 42.75000086, 0.14999969999999999, "SCL"], [2, 20.49999964, 42.75000086, 20.49999964, 43.74999886, 0.14999969999999999, "SCL"], [2, 20.49999964, 43.74999886, 20.625000659999998, 43.87499988, 0.14999969999999999, "SCL"], [1, 74.6719995, 69.78800113999998, 75.24999935999999, 69.2500012, 0.14999969999999999, "SCL"], [2, 20.625000659999998, 43.87499988, 21.60930654, 43.999912, 0.14999969999999999, "SCL"], [2, 21.60930654, 43.999912, 20.67295078, 43.999912, 0.254, "SCL"], [2, 27.62499936, 11.74999936, 27.75000038, 11.87500038, 0.14999969999999999, "SCL"], [2, 27.75000038, 11.87500038, 27.75000038, 13.500000939999998, 0.14999969999999999, "SCL"], [2, 27.75000038, 13.500000939999998, 27.87499886, 13.624999419999998, 0.14999969999999999, "SCL"], [2, 27.87499886, 13.624999419999998, 27.87499886, 14.87499946, 0.14999969999999999, "SCL"], [2, 27.87499886, 14.87499946, 27.99999988, 15.000000479999999, 0.14999969999999999, "SCL"], [2, 27.99999988, 15.000000479999999, 27.99999988, 15.12499896, 0.14999969999999999, "SCL"], [2, 27.99999988, 15.12499896, 28.24999938, 15.375001000000001, 0.14999969999999999, "SCL"], [1, 28.24999938, 15.375001000000001, 31.999999499999998, 15.375001000000001, 0.14999969999999999, "SCL"], [2, 31.999999499999998, 15.375001000000001, 35.124999599999995, 15.375001000000001, 0.14999969999999999, "SCL"], [1, 35.124999599999995, 15.375001000000001, 35.500000119999996, 15.375001000000001, 0.14999969999999999, "SCL"], [2, 26.699999939999998, 11.40000006, 27.62499936, 11.74999936, 0.14999969999999999, "SCL"], [1, 35.99999912, 14.87499946, 35.500000119999996, 15.375001000000001, 0.14999969999999999, "SCL"], [2, 18.78000054, 24.8500011, 17.20000116, 22.19999878, 0.29999939999999997, "SW12"], [2, 20.12499912, 24.124998740000002, 20.12499912, 22.999999719999998, 0.39999919999999994, "VIN_FUSED"], [2, 20.12499912, 22.999999719999998, 20.12499912, 22.374999699999996, 0.39999919999999994, "VIN_FUSED"], [2, 25.28000024, 22.64000044, 26.25000084, 22.64000044, 0.29999939999999997, "VIN_SW"], [2, 26.25000084, 22.64000044, 26.25000084, 29.74999892, 0.29999939999999997, "VIN_SW"], [2, 26.25000084, 29.74999892, 20.43999976, 29.74999892, 0.29999939999999997, "VIN_SW"], [2, 20.43999976, 29.74999892, 20.43999976, 29.000000419999996, 0.29999939999999997, "VIN_SW"], [2, 46.40000117999999, 46.6049995, 46.40000117999999, 62.669000900000306, 0.27999944, "USB2_DP"], [2, 46.40000117999999, 62.669000900000306, 47.50099974, 63.769999459999994, 0.27999944, "USB2_DP"], [2, 46.901000939999996, 46.854999, 46.901000939999996, 62.27602417449511, 0.27999944, "USB2_DM"], [2, 46.901000939999996, 62.27602417449511, 48.49899876000005, 63.87402199449517, 0.27999944, "USB2_DM"], [2, 48.49899876000005, 63.87402199449517, 48.49899876, 64.270001, 0.27999944, "USB2_DM"], [2, 22.50005406, 74.93275082, 32.890249180000005, 74.93275082, 0.4860036, "+3V3"], [2, 32.890249180000005, 74.93275082, 33.909000000000006, 73.91399999999999, 0.4860036, "+3V3"], [2, 33.909000000000006, 73.91399999999999, 33.909, 61.13110963999997, 0.4860036, "+3V3"], [2, 33.909, 61.13110963999997, 35.50002806, 59.54008157999999, 0.4860036, "+3V3"], [1, 43.883072, 75.75794855999999, 52.518901819999996, 75.75794855999999, 0.254, "INA_ALERT"], [2, 46.25300122, 83.59100122, 48.15800122, 83.59100122, 0.27999944, "USB1_DM"], [2, 48.15800122, 83.59100122, 48.498998759999886, 83.93199875999989, 0.27999944, "USB1_DM"], [2, 48.498998759999886, 83.93199875999989, 48.49899876, 84.59099922, 0.27999944, "USB1_DM"], [2, 45.73700022, 84.09100022, 47.00100074000006, 84.09100022, 0.27999944, "USB1_DP"], [2, 47.00100074000006, 84.09100022, 47.50099974, 84.59099922, 0.27999944, "USB1_DP"], [2, 52.37500066, 27.125000359999998, 52.37500066, 26.000077540929283, 0.29999939999999997, "+3V3_HUB"], [2, 52.37500066, 26.000077540929283, 56.249999259999996, 22.125000200000002, 0.29999939999999997, "+3V3_HUB"], [2, 56.249999259999996, 22.125000200000002, 56.249999259999996, 20.625000659999998, 0.29999939999999997, "+3V3_HUB"], [2, 10.10000012, 8.30000118, 10.100000120000056, 9.973000120000057, 0.29999939999999997, "VIN_RAW"], [2, 10.100000120000056, 9.973000120000057, 10.476999620000397, 10.349999620000396, 0.29999939999999997, "VIN_RAW"], [2, 10.476999620000397, 10.349999620000396, 11.899999059999999, 10.34999962, 0.29999939999999997, "VIN_RAW"], [2, 14.90000068, 8.30000118, 14.900000680000092, 9.991999319999907, 0.29999939999999997, "VIN_RAW"], [2, 14.900000680000092, 9.991999319999907, 14.542000380000001, 10.34999962, 0.29999939999999997, "VIN_RAW"], [2, 14.542000380000001, 10.34999962, 13.099999200000001, 10.34999962, 0.29999939999999997, "VIN_RAW"], [1, 35.49899935999999, 52.600999699999996, 35.49899935999999, 51.32802898064672, 0.29999939999999997, "GND"], [1, 35.49899935999999, 51.32802898064672, 35.57702896598635, 51.24999937466036, 0.29999939999999997, "GND"], [2, 36.250001160000004, 56.750000799999995, 36.250001160000004, 50.72800116, 0.14999969999999999, "SDA"], [2, 36.250001160000004, 50.72800116, 35.89699958, 50.37499958, 0.14999969999999999, "SDA"], [2, 29.67399958, 50.37499958, 29.375000939999996, 50.07600093999999, 0.14999969999999999, "SDA"], [2, 35.89699958, 50.37499958, 29.67399958, 50.37499958, 0.14999969999999999, "SDA"], [2, 29.37500094, 43.472000939999994, 28.90287336, 42.99987336, 0.14999969999999999, "SDA"], [2, 29.375000939999996, 50.07600093999999, 29.37500094, 43.472000939999994, 0.14999969999999999, "SDA"], [2, 28.88212554326484, 42.99987435955021, 29.375000939999996, 42.50699920127277, 0.14999969999999999, "SDA"], [2, 29.375000939999996, 42.50699920127277, 29.37500094, 7.62500126, 0.14999969999999999, "SDA"], [2, 28.90287336, 42.99987336, 28.882126542815538, 42.99987336, 0.14999969999999999, "SDA"], [2, 21.6099771, 42.99987336, 28.882126542815538, 42.99987336, 0.14999969999999999, "SDA"], [2, 15.999871479999996, 43.99987135999999, 12.87500092, 40.875000799999995, 0.29999939999999997, "VIN_SW"], [2, 17.3900211, 43.99987135999999, 15.999871479999996, 43.99987135999999, 0.29999939999999997, "VIN_SW"], [2, 12.62499888, 46.37499995999999, 14.499000419980796, 44.50100066, 0.29999939999999997, "+12V"], [2, 14.499000419980796, 44.50100066, 17.389000020000793, 44.50100066, 0.29999939999999997, "+12V"], [2, 16.652001239999997, 40.49799876, 17.99999956, 40.49799876, 0.254, "GND"], [2, 15.96566790026719, 41.184332099732806, 16.652001239999997, 40.49799876, 0.254, "GND"], [2, 17.3900211, 42.99987336, 16.45687336, 42.99987336, 0.254, "GND"], [2, 16.45687336, 42.99987336, 15.96566790026719, 42.50866790026719, 0.254, "GND"], [2, 15.96566790026719, 42.50866790026719, 15.96566790026719, 41.184332099732806, 0.254, "GND"], [1, 15.499999480000001, 45.12499992000001, 15.475797901859721, 45.11557121107365, 0.29999939999999997, "VIN_SW"], [1, 15.475797901859721, 45.11557121107365, 13.678570331073646, 41.02420085814027, 0.29999939999999997, "VIN_SW"], [1, 13.678570331073646, 41.02420085814027, 13.68799904, 40.99999928, 0.29999939999999997, "VIN_SW"], [2, 13.378022830021994, 13.246978529978012, 12.49899964, 13.246000939999998, 0.39999919999999994, "VIN_FUSED"], [2, 13.378022830021994, 13.246978529978012, 18.62499958, 7.999999239999999, 0.39999919999999994, "VIN_FUSED"], [2, 69.37499967999999, 55.87499874, 68.12499964, 57.12500131999998, 0.19999959999999997, "VDAC4"], [2, 68.12499964, 57.12500131999998, 68.12499964, 60.906997240877395, 0.19999959999999997, "VDAC4"], [2, 68.12499964, 60.906997240877395, 67.28200448572531, 61.75000096, 0.19999959999999997, "VDAC4"], [2, 67.28200448572531, 61.75000096, 66.24999958000001, 61.75000096, 0.19999959999999997, "VDAC4"], [2, 16.00099924, 73.6583833362306, 16.00099924, 73.25000082, 0.24999949999999999, "+3V3"], [2, 16.00099924, 73.25000082, 15.592617005428236, 73.25000082, 0.24999949999999999, "+3V3"], [2, 15.592617005428236, 73.25000082, 11.58999968, 73.25000082, 0.24999949999999999, "+3V3"], [2, 16.00099924, 73.6583833362306, 15.592617005428236, 73.25000082, 0.4860036, "+3V3"], [2, 15.592617005428236, 73.25000082, 14.09257278, 71.74995556, 0.4860036, "+3V3"], [2, 9.250000000000004, 79.50000000000004, 8.500000000000005, 79.50000000000004, 0.5410000000000004, "FAN_12V_SW"], [2, 12.250000000000007, 81.25000000000004, 13.000000000000007, 82.00000000000004, 0.5410000000000004, "FAN_12V_SW"], [2, 13.000000000000007, 82.00000000000004, 13.000000000000007, 82.50000000000004, 0.5410000000000004, "FAN_12V_SW"], [2, 13.000000000000007, 82.50000000000004, 13.750000000000005, 83.25000000000004, 0.5410000000000004, "FAN_12V_SW"], [2, 10.780000000000005, 79.84500000000004, 9.250000000000004, 79.50000000000004, 0.5410000000000004, "FAN_12V_SW"], [2, 7.925000000000004, 79.76600000000005, 8.500000000000005, 79.50000000000004, 0.5410000000000004, "FAN_12V_SW"], [2, 10.780000000000005, 79.84500000000004, 12.250000000000007, 81.25000000000004, 0.5410000000000004, "FAN_12V_SW"], [2, 14.529000000000009, 83.06300000000006, 13.750000000000005, 83.25000000000004, 0.5410000000000004, "FAN_12V_SW"], [2, 21.250000000000014, 75.50000000000004, 20.50000000000001, 76.25000000000004, 0.40000000000000024, "+3V3"], [2, 18.500000000000007, 76.25000000000004, 16.500000000000007, 74.25000000000004, 0.40000000000000024, "+3V3"], [2, 18.75000000000001, 76.25000000000004, 18.75000000000001, 79.50000000000004, 0.40000000000000024, "+3V3"], [2, 20.50000000000001, 76.25000000000004, 18.75000000000001, 76.25000000000004, 0.40000000000000024, "+3V3"], [2, 18.75000000000001, 76.25000000000004, 18.500000000000007, 76.25000000000004, 0.40000000000000024, "+3V3"], [2, 21.75010000000001, 74.93280000000006, 21.250000000000014, 75.50000000000004, 0.30000000000000016, "+3V3"], [2, 16.164400000000008, 73.82180000000005, 16.500000000000007, 74.25000000000004, 0.30000000000000016, "+3V3"], [2, 19.43100000000001, 80.21300000000004, 18.75000000000001, 79.50000000000004, 0.40000000000000024, "+3V3"], [2, 24.574000000000012, 84.54400000000004, 24.51916470374997, 84.49203066, 0.15000000000000008, "FAN_PWM"], [2, 24.51916470374997, 84.49203066, 24.00000000000001, 84.00000000000004, 0.15000000000000008, "FAN_PWM"], [2, 44.17901248, 84.49203066, 24.51916470374997, 84.49203066, 0.254, "FAN_PWM"], [2, 24.51916470374997, 84.49203066, 24.36705058, 84.49203066, 0.254, "FAN_PWM"], [2, 23.617100000000008, 84.49200000000005, 24.00000000000001, 84.00000000000004, 0.15000000000000008, "FAN_PWM"], [2, 18.75000000000001, 81.00000000000004, 19.00000000000001, 81.00000000000004, 0.15000000000000008, "FAN_TACH_OUT"], [2, 18.01900000000001, 81.15300000000005, 18.75000000000001, 81.00000000000004, 0.15000000000000008, "FAN_TACH_OUT"], [2, 19.43100000000001, 81.07700000000004, 19.00000000000001, 81.00000000000004, 0.15000000000000008, "FAN_TACH_OUT"], [2, 23.50000000000001, 85.50000000000006, 24.00000000000001, 85.50000000000006, 0.15000000000000008, "$6N55"], [2, 23.05300000000001, 85.35900000000005, 23.50000000000001, 85.50000000000006, 0.15000000000000008, "$6N55"], [2, 24.574000000000012, 85.41000000000004, 24.00000000000001, 85.50000000000006, 0.15000000000000008, "$6N55"], [2, 23.05300000000001, 85.35900000000005, 23.000000000000014, 84.50000000000006, 0.15000000000000008, "$6N55"], [2, 23.005000000000013, 83.65700000000002, 23.000000000000014, 84.50000000000006, 0.15000000000000008, "$6N55"], [2, 15.500000000000009, 79.75000000000004, 15.500000000000009, 79.25000000000004, 0.15000000000000008, "$6N74"], [2, 15.250000000000009, 79.75000000000004, 15.000000000000007, 79.75000000000004, 0.15000000000000008, "$6N74"], [2, 16.017000000000007, 80.20300000000005, 15.500000000000009, 79.75000000000004, 0.15000000000000008, "$6N74"], [2, 16.078000000000007, 78.86700000000005, 15.500000000000009, 79.25000000000004, 0.15000000000000008, "$6N74"], [2, 16.017000000000007, 80.20300000000005, 15.250000000000009, 79.75000000000004, 0.15000000000000008, "$6N74"], [2, 14.529000000000009, 80.21300000000004, 15.000000000000007, 79.75000000000004, 0.15000000000000008, "$6N74"], [2, 3.2500000000000018, 74.75000000000004, 3.2500000000000018, 74.50000000000004, 0.15000000000000008, "$6N45"], [2, 3.7500000000000018, 74.75000000000004, 3.7500000000000018, 74.50000000000004, 0.15000000000000008, "$6N45"], [2, 3.2160000000000015, 75.25300000000004, 3.2500000000000018, 74.75000000000004, 0.15000000000000008, "$6N45"], [2, 3.1930000000000023, 73.91400000000004, 3.2500000000000018, 74.50000000000004, 0.15000000000000008, "$6N45"], [2, 3.2160000000000015, 75.25300000000004, 3.7500000000000018, 74.75000000000004, 0.15000000000000008, "$6N45"], [2, 4.267000000000003, 73.91400000000004, 3.7500000000000018, 74.50000000000004, 0.15000000000000008, "$6N45"], [2, 5.5000000000000036, 76.75000000000004, 5.5000000000000036, 77.00000000000004, 0.15000000000000008, "$6N48"], [2, 5.2150000000000025, 76.20300000000005, 5.5000000000000036, 76.75000000000004, 0.15000000000000008, "$6N48"], [2, 5.936000000000003, 77.62000000000005, 5.5000000000000036, 77.00000000000004, 0.15000000000000008, "$6N48"]], "inner": [[15, 54.99609016, 61.421977739999996, 54.99609016, 61.9299752, 0.25200864, "$3N389"], [15, 54.99609016, 61.9299752, 55.68278932, 62.61667435999999, 0.25200864, "$3N389"], [16, 69.07196244, 61.2910763, 69.8339599, 62.0530763, 0.254, "PRSNT2#"], [16, 69.8339599, 62.0530763, 73.38995227999999, 62.0530763, 0.254, "PRSNT2#"], [16, 39.02402152, 51.099097699999994, 39.02402152, 60.11328084, 0.254, "SDA3"], [16, 39.02402152, 60.11328084, 38.451121979999996, 60.68617783999999, 0.254, "SDA3"], [15, 37.500024059999994, 74.49914996, 37.500024059999994, 65.10117027999999, 0.254, "SDA1"], [15, 37.500024059999994, 65.10117027999999, 37.12122624, 64.72236992, 0.254, "SDA1"], [15, 37.12122624, 64.72236992, 37.12122624, 63.70637245999999, 0.254, "SDA1"], [15, 37.12122624, 63.70637245999999, 37.375226239999996, 63.45237245999999, 0.254, "SDA1"], [16, 38.02402352, 29.001140879999998, 39.29402098, 30.27113834, 0.254, "SCL4"], [16, 39.29402098, 30.27113834, 39.29402098, 44.4951104, 0.254, "SCL4"], [16, 39.29402098, 44.4951104, 41.8340159, 47.03510531999999, 0.254, "SCL4"], [16, 41.8340159, 47.03510531999999, 41.8340159, 63.545072299999994, 0.254, "SCL4"], [16, 38.51602406, 30.77913834, 38.51602406, 48.4951024, 0.254, "SDA4"], [16, 38.51602406, 48.4951024, 41.275116839999995, 51.25419772, 0.254, "SDA4"], [16, 41.275116839999995, 51.25419772, 41.275116839999995, 63.19857311999999, 0.254, "SDA4"], [16, 41.275116839999995, 63.19857311999999, 41.078718959999996, 63.394973539999995, 0.254, "SDA4"], [15, 42.75401406, 13.340872479999998, 44.786011519999995, 13.340872479999998, 0.254, "EFUSE_EN5"], [15, 44.786011519999995, 13.340872479999998, 54.9459912, 23.500852160000004, 0.254, "EFUSE_EN5"], [15, 54.9459912, 23.500852160000004, 57.99398358, 23.500852160000004, 0.254, "EFUSE_EN5"], [15, 61.549975960000005, 23.500852160000004, 64.08997088, 26.04084708, 0.254, "EFUSE_EN5"], [15, 64.08997088, 26.04084708, 64.08997088, 29.342842, 0.254, "EFUSE_EN5"], [15, 64.08997088, 29.342842, 75.91504755999999, 41.16791868, 0.254, "EFUSE_EN5"], [15, 75.91504755999999, 41.16791868, 75.91504755999999, 57.931883119999995, 0.254, "EFUSE_EN5"], [15, 75.91504755999999, 57.931883119999995, 76.42304755999999, 58.43988312, 0.254, "EFUSE_EN5"], [15, 76.42304755999999, 58.43988312, 76.42304755999999, 60.979878039999996, 0.254, "EFUSE_EN5"], [15, 76.42304755999999, 60.979878039999996, 75.40705009999999, 61.99587549999999, 0.254, "EFUSE_EN5"], [15, 54.07199244, 67.221862, 54.07199244, 65.95186454, 0.25200864, "VDAC2"], [15, 54.07199244, 65.95186454, 57.37398482, 62.64986962, 0.25200864, "VDAC2"], [15, 57.37398482, 62.64986962, 57.37398482, 59.60187724, 0.25200864, "VDAC2"], [15, 57.37398482, 59.60187724, 58.26198405999999, 58.713878, 0.25200864, "VDAC2"], [16, 73.13595482, 53.385092619999995, 73.46365292, 53.385092619999995, 0.254, "PRSNT3#"], [16, 73.46365292, 53.385092619999995, 76.51164784, 56.433087539999995, 0.254, "PRSNT3#"], [16, 65.50196958, 50.16980314, 65.50196958, 57.02779044, 0.25200864, "VDAC5"], [16, 65.50196958, 57.02779044, 66.26396704, 57.7897879, 0.25200864, "VDAC5"], [16, 66.26396704, 57.7897879, 66.26396704, 59.408080319999996, 0.25200864, "VDAC5"], [15, 68.30996243999999, 77.54714487999999, 81.00993704, 64.84717028, 0.254, "PRSNT1#"], [15, 81.00993704, 64.84717028, 81.00993704, 61.5451779, 0.254, "PRSNT1#"], [15, 42.50001406, 51.131198219999995, 42.50001406, 74.49914996, 0.254, "INT#"], [15, 42.50001406, 51.131198219999995, 39.198021680000004, 47.8292033, 0.254, "INT#"], [15, 39.198021680000004, 47.8292033, 39.198021680000004, 35.16123016, 0.254, "INT#"], [15, 39.198021680000004, 35.16123016, 42.50001406, 31.85923524, 0.254, "INT#"], [15, 42.50001406, 31.85923524, 42.50001406, 30.81123886, 0.254, "INT#"], [16, 42.50001406, 30.81123886, 41.9920166, 30.303238859999997, 0.254, "INT#"], [16, 41.9920166, 30.303238859999997, 41.9920166, 10.99927696, 0.254, "INT#"], [16, 41.9920166, 10.99927696, 42.50001406, 10.4912795, 0.254, "INT#"], [16, 76.69474627999999, 80.48803816, 76.94874627999998, 80.48803816, 0.254, "INT#"], [16, 76.94874627999998, 80.48803816, 78.47274374, 78.96404324, 0.254, "INT#"], [15, 63.69497294, 75.65404986, 63.69497294, 74.38405239999999, 0.254, "FAN_TACH_OUT"], [15, 63.69497294, 74.38405239999999, 66.48896786, 71.59005748, 0.254, "FAN_TACH_OUT"], [16, 79.73503991999999, 81.67503604, 70.08306023999998, 81.67503604, 0.254, "MUX_RST#"], [16, 70.08306023999998, 81.67503604, 63.73307294, 88.02502333999999, 0.254, "MUX_RST#"], [16, 63.73307294, 88.02502333999999, 45.549708239999994, 88.02502333999999, 0.254, "MUX_RST#"], [16, 45.549708239999994, 88.02502333999999, 36.725227540000006, 79.20054264000001, 0.254, "MUX_RST#"], [16, 36.725227540000006, 79.20054264000001, 36.725227540000006, 71.32655788, 0.254, "MUX_RST#"], [16, 60.45607924, 56.13598882, 61.472076699999995, 55.11998882, 0.25200864, "$3N397"], [16, 64.60186978, 56.74998556, 57.74388502, 56.74998556, 0.25200864, "$3N400"], [16, 57.74388502, 56.74998556, 57.23588502, 56.24198809999999, 0.25200864, "$3N400"], [16, 57.23588502, 56.24198809999999, 54.9498901, 56.24198809999999, 0.25200864, "$3N400"], [16, 54.9498901, 56.24198809999999, 53.93389264, 55.22599064, 0.25200864, "$3N400"], [16, 53.93389264, 55.22599064, 52.01599706, 55.22599064, 0.25200864, "$3N400"], [15, 73.38505262, 76.36684752, 72.43275582, 77.31914432, 0.254, "PRSNT5#"], [16, 30.928945, 52.389994279999996, 30.928945, 61.025979039999996, 0.254, "INA_ALERT"], [16, 43.12092213999999, 73.21795363999999, 43.12092213999999, 74.9959511, 0.254, "INA_ALERT"], [16, 43.12092213999999, 74.9959511, 43.8829196, 75.75794855999999, 0.254, "INA_ALERT"], [16, 54.296899280000005, 77.53594602, 55.78099587999999, 79.02004262, 0.254, "INA_ALERT"], [16, 55.78099587999999, 79.02004262, 77.1169527, 79.02004262, 0.254, "INA_ALERT"], [16, 84.81502975999999, 78.88104111999999, 84.81502975999999, 90.68501802, 0.254, "RXD0"], [16, 84.81502975999999, 90.68501802, 80.00004066, 95.50000965999999, 0.254, "RXD0"], [15, 74.40095102, 80.40503858, 74.40095102, 84.82093017999999, 0.254, "IO0"], [15, 84.3070323, 58.86488354, 84.3070323, 44.194318519999996, 0.254, "NTC2"], [15, 84.3070323, 44.194318519999996, 63.671665899999994, 23.558952119999997, 0.254, "NTC2"], [15, 63.671665899999994, 23.558952119999997, 62.46307547999999, 23.558952119999997, 0.254, "NTC2"], [16, 82.56723389999999, 55.49998806, 87.0672249, 55.49998806, 0.4860036, "+3V3"], [16, 87.0672249, 55.49998806, 87.56722389999999, 54.99998906, 0.4860036, "+3V3"], [16, 87.8426234, 54.99998906, 87.8426234, 74.99994906, 0.4860036, "+3V3"], [16, 87.56722389999999, 54.99998906, 87.8426234, 54.99998906, 0.4860036, "+3V3"], [16, 87.8426234, 54.99998906, 88.34262240000001, 54.99998906, 0.4860036, "+3V3"], [16, 87.8426234, 74.99994906, 86.8426254, 75.99994706000001, 0.4860036, "+3V3"], [16, 86.8426254, 75.99994706000001, 86.8426254, 78.99994106, 0.4860036, "+3V3"], [16, 86.8426254, 78.99994106, 87.8426234, 79.99993906, 0.4860036, "+3V3"], [15, 70.09985979999999, 65.2163796, 74.67184963999999, 69.78837198, 0.25200864, "SCL"], [16, 64.7498705, 61.421977739999996, 82.27583494000001, 78.94794218, 0.25200864, "SDA"], [16, 64.29997046, 30.479939039999998, 64.89996925999999, 29.87994024, 0.4499991, "+5V"], [16, 65.49996805999999, 29.87994024, 65.49996805999999, 18.479963039999998, 0.4499991, "+5V"], [16, 43.30001246, 77.81984436, 37.900023260000005, 72.41985516, 0.5999987999999999, "+5V"], [16, 37.900023260000005, 72.41985516, 37.900023260000005, 71.21985756000001, 0.5999987999999999, "+5V"], [16, 37.900023260000005, 71.21985756000001, 33.10003286, 66.41986716, 0.5999987999999999, "+5V"], [16, 33.10003286, 66.41986716, 29.500040059999996, 66.41986716, 0.5999987999999999, "+5V"], [16, 29.500040059999996, 66.41986716, 28.900041260000002, 65.81986835999999, 0.5999987999999999, "+5V"], [16, 57.464883799999996, 28.212844259999997, 56.44888634, 28.212844259999997, 0.254, "HUB_RST"], [16, 56.44888634, 28.212844259999997, 54.16289142, 25.92684934, 0.254, "HUB_RST"], [16, 54.16289142, 25.92684934, 54.16289142, 22.87885442, 0.254, "HUB_RST"], [16, 54.16289142, 22.87885442, 53.65489142, 22.37085442, 0.254, "HUB_RST"], [16, 53.65489142, 22.37085442, 47.050906659999995, 22.37085442, 0.254, "HUB_RST"], [16, 47.050906659999995, 22.37085442, 45.5269092, 23.894851879999997, 0.254, "HUB_RST"], [16, 45.5269092, 23.894851879999997, 45.5269092, 31.00683918, 0.254, "HUB_RST"], [16, 45.5269092, 31.00683918, 49.08290158, 34.56283155999999, 0.254, "HUB_RST"], [16, 49.08290158, 34.56283155999999, 50.250100159999995, 34.56283155999999, 0.254, "HUB_RST"], [16, 50.250100159999995, 34.56283155999999, 51.01209762, 35.324829019999996, 0.254, "HUB_RST"], [15, 44.36721124, 33.10003286, 52.867194239999996, 33.10003286, 0.4499991, "+3V3_HUB"], [15, 52.867194239999996, 33.10003286, 54.86719023999999, 35.10002886000001, 0.4499991, "+3V3_HUB"], [16, 79.53004159999999, 25.500048059999997, 81.03003859999998, 24.00005106, 0.49999899999999997, "+3V3_HUB"], [16, 64.89996925999999, 29.87994024, 65.49996805999999, 29.87994024, 0.4499991, "+5V"], [16, 65.49996805999999, 29.87994024, 73.29995246, 29.87994024, 0.4499991, "+5V"], [15, 56.99000032, 56.83886524, 56.99000032, 56.91187245999999, 0.25200864, "$3N384"], [15, 56.99000032, 56.91187245999999, 53.44789412, 60.453978660000004, 0.25200864, "$3N384"], [16, 53.4720927, 58.118877919999996, 53.4720927, 56.13598882, 0.25200864, "$3N381"], [16, 53.4720927, 56.13598882, 53.68279332, 55.9252882, 0.25200864, "$3N381"], [15, 63.56087364, 30.24483918, 63.56087364, 31.55687364, 0.254, "HUB_RST"], [15, 74.65495102, 42.65095102, 74.65495102, 57.594886079999995, 0.254, "HUB_RST"], [15, 63.56087364, 31.55687364, 74.65495102, 42.65095102, 0.254, "HUB_RST"], [15, 74.40095102, 84.82093017999999, 85.08003049999999, 95.50000965999999, 0.254, "IO0"], [16, 30.928945, 61.025979039999996, 43.12092213999999, 73.21795363999999, 0.254, "INA_ALERT"], [15, 21.115858199999995, 76.5672459, 43.21381248, 76.5672459, 0.254, "FAN_EN"]], "vias": [[5.9000009, 47.199999580000004, "+12V"], [5.9000009, 44.999998899999994, "+12V"], [5.9000009, 46.099999239999995, "+12V"], [7.00000124, 44.999998899999994, "+12V"], [7.00000124, 46.099999239999995, "+12V"], [7.00000124, 47.199999580000004, "+12V"], [8.09999904, 44.999998899999994, "+12V"], [8.09999904, 46.099999239999995, "+12V"], [8.09999904, 47.199999580000004, "+12V"], [9.19999938, 44.999998899999994, "+12V"], [9.19999938, 46.099999239999995, "+12V"], [9.19999938, 47.199999580000004, "+12V"], [10.24999982, 44.999998899999994, "+12V"], [10.24999982, 46.099999239999995, "+12V"], [10.24999982, 47.199999580000004, "+12V"], [49.100000859999994, 46.89899942, "GND"], [53.29899932, 46.94899932, "GND"], [47.50099974, 84.59099922, "USB1_DP"], [48.49899876, 84.59099922, "USB1_DM"], [47.50099974, 64.270001, "USB2_DP"], [48.49899876, 64.270001, "USB2_DM"], [47.50099974, 48.198999359999995, "USB3_DP"], [48.49899876, 48.8990005, "USB3_DM"], [47.50099974, 6.75999918, "USB5_DP"], [48.49899876, 6.75999918, "USB5_DM"], [61.29999932, 30.398999399999997, "USB4_DP"], [62.000000459999995, 29.599001, "USB4_DM"], [45.70684026000001, 36.90139939999999, "USB6_DM"], [45.80999982, 37.710998999999994, "USB6_DP"], [70.75000074, 57.12499878, "USB6_DP"], [71.37500076, 55.87499874, "USB6_DM"], [49.50000006, 84.62499966, "GND"], [49.50000006, 64.25000104, "GND"], [48.499999519999996, 49.87500058, "GND"], [62.000000459999995, 28.6249999, "GND"], [46.500000979999996, 6.7499991999999995, "GND"], [69.7500002, 57.12499878, "GND"], [82.5000001, 5.499999159999999, "GND"], [53.499999679999995, 23.125000739999997, "GND"], [77.87500046, 10.24999982, "GND"], [79.1250005, 13.500000939999998, "GND"], [83.947, 10.286999999999999, "GND"], [7.25000074, 64.75000003999999, "+12V"], [5.24999966, 65.75000057999999, "GND"], [10.90699876, 65.24999903999999, "GND"], [10.90699876, 71.74999874, "GND"], [85.65600089999998, 56.49999876, "GND"], [51.00100036, 63.74899874, "GND"], [51.00100036, 58.749999339999995, "GND"], [1.7499990399999998, 67.49999962, "GND"], [1.7499990399999998, 70.62499972, "+12V"], [16.25099874, 65.75000057999999, "GND"], [18.24999906, 64.75000003999999, "+12V"], [23.40900068, 63.74899874, "GND"], [23.40900068, 61.24999942, "GND"], [74.50099908, 24.800999419999997, "GND"], [66.49999908, 36.50000066, "GND"], [75.99899964, 30.248999700000002, "GND"], [11.8529989, 36.36000093999999, "GND"], [13.145000379999997, 36.36000093999999, "GND"], [20.74900092, 92.04999878, "GND"], [26.62499882, 88.50000080000001, "+12V"], [28.44999898, 87.5880011, "GND"], [28.44999898, 89.6390003, "GND"], [28.44999898, 91.68899874, "GND"], [30.549999860000003, 87.5880011, "GND"], [30.549999860000003, 89.6390003, "GND"], [30.549999860000003, 91.68899874, "GND"], [28.44999898, 67.26899931999999, "GND"], [28.44999898, 69.3190003, "GND"], [28.44999898, 71.3699995, "GND"], [30.549999860000003, 67.26899931999999, "GND"], [30.549999860000003, 69.3190003, "GND"], [30.549999860000003, 71.3699995, "GND"], [28.44999898, 46.94899932, "GND"], [28.44999898, 48.9990003, "GND"], [28.44999898, 51.0499995, "GND"], [30.549999860000003, 46.94899932, "GND"], [30.549999860000003, 48.9990003, "GND"], [30.549999860000003, 51.0499995, "GND"], [28.44999898, 26.628001100000002, "GND"], [28.44999898, 28.6790003, "GND"], [28.44999898, 30.72899874, "GND"], [30.549999860000003, 26.628001100000002, "GND"], [30.549999860000003, 28.6790003, "GND"], [30.549999860000003, 30.72899874, "GND"], [28.44999898, 6.308001099999999, "GND"], [28.44999898, 8.3590003, "GND"], [28.44999898, 10.4099995, "GND"], [30.549999860000003, 6.308001099999999, "GND"], [30.549999860000003, 8.3590003, "GND"], [30.549999860000003, 10.4099995, "GND"], [5.499999159999999, 50.12500007999999, "+12V"], [3.6249990999999997, 47.874999499999994, "+12V"], [2.3749990600000004, 47.874999499999994, "+12V"], [8.509, 50.02977293999999, "+12V"], [23.72300056, 48.93300093999999, "GND"], [25.00099902, 48.93300093999999, "GND"], [26.280000779999998, 48.93300093999999, "GND"], [55.99999976, 59.33499944, "GND"], [63.999998999999995, 59.33499944, "GND"], [18.7500006, 43.49999936, "+12V"], [6.4999997, 66.8749996, "+12V"], [4.62499964, 68.50000015999998, "+12V"], [18.375000080000003, 66.8749996, "+12V"], [16.50000002, 68.50000015999998, "+12V"], [49.549999959999994, 38.57999904, "GND"], [49.549999959999994, 40.531000979999995, "GND"], [51.500999359999994, 38.57999904, "GND"], [51.500999359999994, 40.531000979999995, "GND"], [53.451998759999995, 38.57999904, "GND"], [53.451998759999995, 40.531000979999995, "GND"], [57.37500082, 39.99999874, "+3V3_HUB"], [54.99999922, 39.49999973999999, "+3V3_HUB"], [13.12500042, 38.12500122, "GND"], [17.99999956, 40.49799876, "GND"], [90.49999934, 55.50000076, "GND"], [56.12500078, 55.624999239999994, "GND"], [63.87500052, 54.1249997, "GND"], [66.6250001, 53.8750002, "GND"], [91.25000037999999, 83.99999964, "GND"], [92.50000041999999, 81.74999906000001, "GND"], [44.250000400000005, 44.000000899999996, "GND"], [74.24999882, 30.25000046, "GND"], [31.75, 93.24999892, "GND"], [35.625001139999995, 91.8750004, "GND"], [44.74999939999999, 93.24999892, "GND"], [46.500000979999996, 94.62499998, "GND"], [47.49999898, 94.62499998, "GND"], [48.499999519999996, 94.62499998, "GND"], [50.5000006, 94.62499998, "GND"], [51.500001139999995, 94.62499998, "GND"], [53.499999679999995, 94.62499998, "GND"], [54.50000022, 94.62499998, "GND"], [55.50000076, 94.62499998, "GND"], [56.49999876, 94.62499998, "GND"], [57.4999993, 94.62499998, "GND"], [58.49999984, 94.62499998, "GND"], [59.500000379999996, 94.62499998, "GND"], [60.50000092, 94.62499998, "GND"], [61.499998919999996, 94.62499998, "GND"], [62.49999946, 94.62499998, "GND"], [63.5, 94.62499998, "GND"], [64.50000054, 94.62499998, "GND"], [35.625001139999995, 87.37499924, "GND"], [38.4999992, 87.37499924, "GND"], [44.74999939999999, 86.00000071999999, "GND"], [46.500000979999996, 87.37499924, "GND"], [49.50000006, 87.37499924, "GND"], [50.5000006, 87.37499924, "GND"], [51.500001139999995, 87.37499924, "GND"], [52.49999913999999, 87.37499924, "GND"], [53.499999679999995, 87.37499924, "GND"], [54.50000022, 87.37499924, "GND"], [55.50000076, 87.37499924, "GND"], [56.49999876, 87.37499924, "GND"], [57.4999993, 87.37499924, "GND"], [58.49999984, 87.37499924, "GND"], [59.500000379999996, 87.37499924, "GND"], [60.50000092, 87.37499924, "GND"], [61.499998919999996, 87.37499924, "GND"], [62.49999946, 87.37499924, "GND"], [63.5, 87.37499924, "GND"], [65.24999903999999, 87.50000026, "GND"], [46.500000979999996, 71.49999924, "GND"], [47.49999898, 71.49999924, "GND"], [48.499999519999996, 71.49999924, "GND"], [50.7500001, 71.49999924, "GND"], [51.500001139999995, 71.49999924, "GND"], [53.499999679999995, 71.49999924, "GND"], [54.50000022, 71.49999924, "GND"], [55.50000076, 71.49999924, "GND"], [56.49999876, 71.49999924, "GND"], [57.4999993, 71.49999924, "GND"], [58.49999984, 71.49999924, "GND"], [59.500000379999996, 71.49999924, "GND"], [60.50000092, 71.49999924, "GND"], [61.499998919999996, 71.49999924, "GND"], [62.49999946, 71.49999924, "GND"], [63.5, 71.49999924, "GND"], [64.37499952, 71.49999924, "GND"], [50.5000006, 64.37499952, "GND"], [51.375000119999996, 64.37499952, "GND"], [56.49999876, 64.37499952, "GND"], [57.12499878, 64.37499952, "GND"], [61.499998919999996, 67.12499910000001, "GND"], [62.49999946, 67.12499910000001, "GND"], [63.5, 67.12499910000001, "GND"], [32.375000019999995, 51.2499991, "GND"], [48.250000019999995, 51.2499991, "GND"], [60.6249994, 51.2499991, "GND"], [35.625001139999995, 46.750000480000004, "GND"], [44.74999939999999, 45.37499942, "GND"], [54.50000022, 46.750000480000004, "GND"], [55.50000076, 46.750000480000004, "GND"], [56.49999876, 46.750000480000004, "GND"], [57.4999993, 46.750000480000004, "GND"], [58.49999984, 46.750000480000004, "GND"], [59.500000379999996, 46.750000480000004, "GND"], [60.50000092, 46.750000480000004, "GND"], [66.24999958000001, 45.37499942, "GND"], [31.75, 32.249998999999995, "GND"], [35.625001139999995, 33.62500006, "GND"], [35.625001139999995, 23.75000076, "GND"], [38.4999992, 23.75000076, "GND"], [44.74999939999999, 25.124999279999997, "GND"], [46.500000979999996, 23.75000076, "GND"], [49.50000006, 23.75000076, "GND"], [50.5000006, 23.75000076, "GND"], [51.500001139999995, 23.75000076, "GND"], [52.49999913999999, 23.75000076, "GND"], [53.1210012, 26.50000034, "GND"], [55.624999239999994, 26.50000034, "GND"], [56.49999876, 26.50000034, "GND"], [57.4999993, 26.50000034, "GND"], [60.75000042, 26.50000034, "GND"], [61.499998919999996, 26.50000034, "GND"], [62.124998940000005, 26.50000034, "GND"], [31.75, 11.99999886, "GND"], [35.625001139999995, 10.62500034, "GND"], [44.74999939999999, 11.99999886, "GND"], [46.500000979999996, 10.62500034, "GND"], [47.49999898, 10.62500034, "GND"], [48.499999519999996, 10.62500034, "GND"], [50.5000006, 10.62500034, "GND"], [51.500001139999995, 10.62500034, "GND"], [53.499999679999995, 10.62500034, "GND"], [54.50000022, 10.62500034, "GND"], [55.50000076, 10.62500034, "GND"], [56.49999876, 10.62500034, "GND"], [57.4999993, 10.62500034, "GND"], [58.49999984, 10.62500034, "GND"], [60.75000042, 10.62500034, "GND"], [61.499998919999996, 10.62500034, "GND"], [62.49999946, 10.62500034, "GND"], [63.5, 10.62500034, "GND"], [64.25000104, 10.62500034, "GND"], [35.625001139999995, 3.3749995999999998, "GND"], [38.4999992, 3.3749995999999998, "GND"], [44.74999939999999, 4.7500006599999995, "GND"], [46.37499995999999, 6.12499918, "GND"], [49.62500108, 6.12499918, "GND"], [50.5000006, 6.12499918, "GND"], [51.500001139999995, 6.12499918, "GND"], [52.49999913999999, 6.12499918, "GND"], [53.499999679999995, 6.12499918, "GND"], [54.50000022, 6.12499918, "GND"], [55.50000076, 6.12499918, "GND"], [56.49999876, 6.12499918, "GND"], [57.4999993, 6.12499918, "GND"], [58.49999984, 6.12499918, "GND"], [59.500000379999996, 6.12499918, "GND"], [60.50000092, 6.12499918, "GND"], [61.499998919999996, 6.12499918, "GND"], [62.49999946, 6.12499918, "GND"], [63.5, 6.12499918, "GND"], [66.24999958000001, 4.7500006599999995, "GND"], [26.25000084, 78.25000098, "GND"], [25.0000008, 82.0000011, "GND"], [8.125000259999998, 22.125000200000002, "GND"], [2.2500005800000005, 64.62499901999999, "GND"], [17.125000039999996, 62.87499998, "GND"], [84.87499916, 12.124999879999999, "GND"], [81.87500008, 12.124999879999999, "GND"], [92.12499989999999, 10.49999932, "GND"], [86.74999921999999, 25.2500003, "GND"], [21.625001199999996, 44.999998899999994, "GND"], [6.2500002, 70.12500071999999, "GND"], [89.75000083999998, 61.37500044, "GND"], [79.49200001999999, 68.87500068, "GND"], [18.375000080000003, 70.12500071999999, "GND"], [77.00000093999999, 24.62500028, "GND"], [35.500000119999996, 63.37499898, "GND"], [37.87499918, 57.4999993, "GND"], [58.749999339999995, 42.75000086, "GND"], [45.14465698, 39.68884112, "UP_DP"], [83.2620001, 6.3729997, "UP_DP"], [45.775999379999995, 39.07899982, "UP_DM"], [84.24600118, 9.12899876, "UP_DM"], [54.99609016, 61.421977739999996, "$3N389"], [55.68278932, 62.61667435999999, "$3N389"], [38.78602352, 64.08507121999999, "SCL2"], [37.75402406, 64.33907122, "SDA2"], [69.07196244, 61.2910763, "PRSNT2#"], [73.38995227999999, 62.0530763, "PRSNT2#"], [40.56401843999999, 61.005077379999996, "SCL3"], [39.02402152, 51.099097699999994, "SDA3"], [38.451121979999996, 60.68617783999999, "SDA3"], [35.9920286, 74.49914996, "SCL1"], [37.500024059999994, 74.49914996, "SDA1"], [37.375226239999996, 63.45237245999999, "SDA1"], [73.37505263999999, 65.77786946, "EFUSE_EN1"], [47.32600643999999, 67.72886378, "EFUSE_EN2"], [53.07409502, 67.34896613999999, "EFUSE_EN3"], [38.02402352, 29.001140879999998, "SCL4"], [41.8340159, 63.545072299999994, "SCL4"], [38.51602406, 30.77913834, "SDA4"], [41.078718959999996, 63.394973539999995, "SDA4"], [36.75402606000001, 6.14108754, "SCL5"], [37.75402406, 6.14108754, "SDA5"], [42.75401406, 13.340872479999998, "EFUSE_EN5"], [57.99398358, 23.500852160000004, "EFUSE_EN5"], [61.549975960000005, 23.500852160000004, "EFUSE_EN5"], [75.40705009999999, 61.99587549999999, "EFUSE_EN5"], [54.07199244, 67.221862, "VDAC2"], [58.26198405999999, 58.713878, "VDAC2"], [65.26197006, 47.28910532, "PRSNT3#"], [73.13595482, 53.385092619999995, "PRSNT3#"], [76.51164784, 56.433087539999995, "PRSNT3#"], [65.49996805999999, 57.90208383999999, "VDAC3"], [61.437977200000006, 21.46786156, "VDAC5"], [65.50196958, 50.16980314, "VDAC5"], [66.26396704, 59.408080319999996, "VDAC5"], [64.75397006, 26.461145959999996, "PRSNT4#"], [76.6919472, 53.89309261999999, "PRSNT4#"], [77.19994466, 58.21108245999999, "PRSNT4#"], [56.99000032, 56.83886524, "$3N384"], [53.44789412, 60.453978660000004, "$3N384"], [70.93175806, 14.08905996, "VBUS_UP"], [57.97778346, 20.69304472, "VBUS_UP"], [68.30996243999999, 77.54714487999999, "PRSNT1#"], [81.00993704, 61.5451779, "PRSNT1#"], [42.50001406, 74.49914996, "INT#"], [42.50001406, 70.68915758, "INT#"], [42.50001406, 51.131198219999995, "INT#"], [42.50001406, 30.81123886, "INT#"], [42.50001406, 10.4912795, "INT#"], [43.51601406, 85.16712964, "INT#"], [76.69474627999999, 80.48803816, "INT#"], [78.47274374, 78.96404324, "INT#"], [43.78001149999999, 74.6070517, "FAN_TACH_IN"], [51.90799626, 74.6070517, "FAN_TACH_IN"], [63.69497294, 75.65404986, "FAN_TACH_OUT"], [66.48896786, 71.59005748, "FAN_TACH_OUT"], [56.75008716, 75.98494835999998, "FAN_PWM"], [51.670097319999996, 84.36693058, "FAN_PWM"], [47.277804859999996, 76.5672459, "FAN_EN"], [43.21381248, 76.5672459, "FAN_EN"], [79.73503991999999, 81.67503604, "MUX_RST#"], [36.725227540000006, 71.32655788, "MUX_RST#"], [60.45607924, 56.13598882, "$3N397"], [61.472076699999995, 55.11998882, "$3N397"], [53.4720927, 58.118877919999996, "$3N381"], [53.68279332, 55.9252882, "$3N381"], [64.60186978, 56.74998556, "$3N400"], [52.01599706, 55.22599064, "$3N400"], [64.75397006, 6.14108754, "PRSNT5#"], [73.38505262, 76.36684752, "PRSNT5#"], [72.43275582, 77.31914432, "PRSNT5#"], [43.8829196, 75.75794855999999, "INA_ALERT"], [54.296899280000005, 77.53594602, "INA_ALERT"], [77.1169527, 79.02004262, "INA_ALERT"], [84.81502975999999, 78.88104111999999, "RXD0"], [74.40095102, 80.40503858, "IO0"], [85.57702975999999, 80.40503858, "TXD0"], [88.93282187999999, 76.42064726, "NTC1"], [88.93282187999999, 78.96064218000001, "NTC1"], [87.86302468, 76.36684752, "NTC2"], [89.64101959999999, 80.68483989999999, "NTC2"], [84.3070323, 58.86488354, "NTC2"], [62.46307547999999, 23.558952119999997, "NTC2"], [55.35108818, 21.2729572, "NTC2"], [86.84702722, 73.3188526, "EN"], [84.0530323, 82.97083482, "EN"], [36.00002706, 60.04008058, "+3V3"], [49.31720134, 54.49999006, "+3V3"], [82.56723389999999, 55.49998806, "+3V3"], [88.34262240000001, 54.99998906, "+3V3"], [87.8426234, 79.99993906, "+3V3"], [43.4562123, 58.10440246, "SCL"], [54.25119198, 60.644389759999996, "SCL"], [70.09985979999999, 65.2163796, "SCL"], [74.67184963999999, 69.78837198, "SCL"], [62.591873799999995, 60.659977739999995, "SDA"], [64.7498705, 61.421977739999996, "SDA"], [82.27583494000001, 78.94794218, "SDA"], [15.499999480000001, 45.12499992000001, "VIN_SW"], [13.68799904, 40.99999928, "VIN_SW"], [63.699971659999996, 47.0999058, "+5V"], [64.29997046, 30.479939039999998, "+5V"], [73.29995246, 29.87994024, "+5V"], [65.49996805999999, 18.479963039999998, "+5V"], [43.30001246, 77.81984436, "+5V"], [28.900041260000002, 65.81986835999999, "+5V"], [18.10006286, 71.81985635999999, "+5V"], [73.37505263999999, 64.28197202, "EFUSE_EN4"], [74.65495102, 57.594886079999995, "HUB_RST"], [63.56087364, 30.24483918, "HUB_RST"], [57.464883799999996, 28.212844259999997, "HUB_RST"], [51.01209762, 35.324829019999996, "HUB_RST"], [44.36721124, 33.10003286, "+3V3_HUB"], [54.86719023999999, 35.10002886000001, "+3V3_HUB"], [63.96717204, 35.50002806, "+3V3_HUB"], [69.46716104, 32.732733620000005, "+3V3_HUB"], [79.53004159999999, 25.500048059999997, "+3V3_HUB"], [81.03003859999998, 24.00005106, "+3V3_HUB"], [53.499999679999995, 28.49999888, "+3V3_HUB"], [52.37500066, 27.125000359999998, "+3V3_HUB"], [57.2499998, 19.75000114, "+3V3_HUB"], [63.999998999999995, 19.75000114, "+3V3_HUB"], [63.12499947999999, 27.374999860000003, "+3V3_HUB"], [60.75000042, 27.50000088, "+3V3_HUB"], [58.749999339999995, 27.62700088, "+3V3_HUB"], [58.749999339999995, 40.25000078, "+3V3_HUB"], [48.62500054, 39.62500076, "+3V3_HUB"], [54.99999922, 40.25000078, "+3V3_HUB"], [49.97799758, 27.106999379999998, "+3V3_HUB"], [46.369000480000004, 30.749999459999998, "+3V3_HUB"], [43.49999936, 30.749999459999998, "+3V3_HUB"], [52.49999913999999, 41.50000082, "+3V3_HUB"], [38.12500122, 58.749999339999995, "SDA"], [43.24999986, 62.87499998, "SDA"], [56.750000799999995, 61.37500044, "SDA"], [49.62500108, 94.62499998, "VDAC1"], [49.62500108, 96.25199952, "VDAC1"], [73.25000082, 96.12499952, "VDAC1"], [73.25000082, 85.75000122, "VDAC1"], [74.24999882, 76.49999940000001, "VDAC1"], [72.00000078, 54.50000022, "VDAC1"], [68.12499964, 54.50000022, "VDAC1"], [67.12499910000001, 55.87499874, "VDAC1"], [67.12499910000001, 60.874998899999994, "VDAC1"], [44.62500092, 32.249998999999995, "VDAC4"], [43.87499988, 11.251999340000001, "VDAC4"], [78.25000098, 11.12499934, "VDAC4"], [78.25000098, 21.12499966, "VDAC4"], [78.99999947999999, 26.875000859999997, "VDAC4"], [78.99999947999999, 52.49999913999999, "VDAC4"], [72.00000078, 53.25000018, "VDAC4"], [69.87500122, 53.8750002, "VDAC4"], [69.62499918, 55.87499874, "VDAC4"], [64.99999954, 63.000001, "VDAC4"], [59.62499886, 63.000001, "VDAC4"], [59.62499886, 61.37500044, "VDAC4"], [58.25000034, 59.99999937999999, "VDAC4"], [42.49999882, 2.50000008, "GND"], [46.500000979999996, 2.50000008, "GND"], [50.5000006, 2.50000008, "GND"], [54.50000022, 2.50000008, "GND"], [58.49999984, 2.50000008, "GND"], [62.49999946, 2.50000008, "GND"], [66.49999908, 2.50000008, "GND"], [70.50000124, 2.50000008, "GND"], [74.50000086, 2.50000008, "GND"], [82.5000001, 2.50000008, "GND"], [86.49999972, 2.50000008, "GND"], [90.49999934, 2.50000008, "GND"], [74.50000086, 6.4999997, "GND"], [90.49999934, 6.4999997, "GND"], [94.49999895999999, 10.49999932, "GND"], [74.50000086, 14.499998939999998, "GND"], [82.5000001, 14.499998939999998, "GND"], [86.49999972, 14.499998939999998, "GND"], [90.49999934, 14.499998939999998, "GND"], [94.49999895999999, 14.499998939999998, "GND"], [30.499999959999997, 18.5000011, "GND"], [46.500000979999996, 18.5000011, "GND"], [58.49999984, 18.5000011, "GND"], [62.49999946, 18.5000011, "GND"], [70.50000124, 18.5000011, "GND"], [82.5000001, 18.5000011, "GND"], [86.49999972, 18.5000011, "GND"], [90.49999934, 18.5000011, "GND"], [94.49999895999999, 18.5000011, "GND"], [70.50000124, 22.50000072, "GND"], [74.50000086, 22.50000072, "GND"], [82.5000001, 22.50000072, "GND"], [86.49999972, 22.50000072, "GND"], [90.49999934, 22.50000072, "GND"], [94.49999895999999, 22.50000072, "GND"], [90.49999934, 26.50000034, "GND"], [94.49999895999999, 26.50000034, "GND"], [82.5000001, 30.499999959999997, "GND"], [86.49999972, 30.499999959999997, "GND"], [90.49999934, 30.499999959999997, "GND"], [94.49999895999999, 30.499999959999997, "GND"], [82.5000001, 34.49999958, "GND"], [86.49999972, 34.49999958, "GND"], [90.49999934, 34.49999958, "GND"], [94.49999895999999, 34.49999958, "GND"], [30.499999959999997, 38.4999992, "GND"], [66.49999908, 38.4999992, "GND"], [82.5000001, 38.4999992, "GND"], [86.49999972, 38.4999992, "GND"], [90.49999934, 38.4999992, "GND"], [94.49999895999999, 38.4999992, "GND"], [70.50000124, 42.49999882, "GND"], [86.49999972, 42.49999882, "GND"], [90.49999934, 42.49999882, "GND"], [94.49999895999999, 42.49999882, "GND"], [82.5000001, 46.500000979999996, "GND"], [86.49999972, 46.500000979999996, "GND"], [90.49999934, 46.500000979999996, "GND"], [94.49999895999999, 46.500000979999996, "GND"], [50.5000006, 50.5000006, "GND"], [82.5000001, 50.5000006, "GND"], [86.49999972, 50.5000006, "GND"], [90.49999934, 50.5000006, "GND"], [94.49999895999999, 50.5000006, "GND"], [94.49999895999999, 54.50000022, "GND"], [34.49999958, 58.49999984, "GND"], [78.50000048, 62.49999946, "GND"], [82.5000001, 62.49999946, "GND"], [78.50000048, 70.50000124, "GND"], [82.5000001, 70.50000124, "GND"], [82.5000001, 74.50000086, "GND"], [30.499999959999997, 78.50000048, "GND"], [34.49999958, 78.50000048, "GND"], [50.5000006, 82.5000001, "GND"], [58.49999984, 82.5000001, "GND"], [62.49999946, 82.5000001, "GND"], [66.49999908, 82.5000001, "GND"], [94.49999895999999, 82.5000001, "GND"], [74.50000086, 86.49999972, "GND"], [86.49999972, 86.49999972, "GND"], [90.49999934, 86.49999972, "GND"], [94.49999895999999, 86.49999972, "GND"], [34.49999958, 90.49999934, "GND"], [46.500000979999996, 90.49999934, "GND"], [50.5000006, 90.49999934, "GND"], [74.50000086, 90.49999934, "GND"], [78.50000048, 90.49999934, "GND"], [86.49999972, 90.49999934, "GND"], [90.49999934, 90.49999934, "GND"], [94.49999895999999, 90.49999934, "GND"], [90.49999934, 94.49999895999999, "GND"], [89.49999879999999, 62.49999946, "GND"], [89.49999879999999, 64.50000054, "GND"], [89.49999879999999, 66.49999908, "GND"], [89.49999879999999, 68.50000015999998, "GND"], [89.49999879999999, 70.50000124, "GND"], [89.49999879999999, 72.49999978, "GND"], [89.6269988, 75.77000086, "GND"], [96.50000003999999, 81.49999955999999, "GND"], [92.50000041999999, 56.49999876, "GND"], [94.49999895999999, 56.49999876, "GND"], [96.50000003999999, 56.49999876, "GND"], [74.5625001, 72.18750104, "VDAC1"], [52.925499939999995, 59.50199935999999, "VDAC1"], [40.62499876, 59.93750014, "SDA"], [66.24999958000001, 26.99999934, "+3V3_HUB"], [80.79985364, 7.724086659999999, "GND"], [32.004, 47.879, "SCL3"], [35.687, 47.625, "SCL3"], [48.513999999999996, 59.562999999999995, "GND"], [48.513999999999996, 58.166, "GND"], [48.768, 56.260999999999996, "GND"], [43.687999999999995, 55.372, "GND"], [43.687999999999995, 47.49946558, "GND"], [43.687999999999995, 50.55046024, "GND"], [69.28849998, 52.561500159999994, "GND"], [57.657999999999994, 32.766, "GND"], [58.419999999999995, 62.864999999999995, "GND"], [58.166, 62.102999999999994, "GND"], [61.214, 63.626999999999995, "GND"], [61.214, 61.549696559999994, "GND"], [35.559999999999995, 37.592, "GND"], [35.559999999999995, 39.381927839999996, "GND"], [89.789, 79.62899999999999, "GND"], [3.302, 46.101, "GND"], [2.032, 42.519097079999995, "GND"], [18.7500006, 23.449998819999998, "GND"], [18.7500006, 17.94999966, "GND"], [22.39300068, 23.34999902, "GND"], [21.89200092, 17.94999966, "GND"], [26.300000739999998, 20.80999902, "GND"], [20.300000039999993, 24.349999559999997, "VIN_FUSED"], [23.10100028, 9.19900116, "GND"], [23.10100028, 11.598000679999998, "GND"], [24.302001179999998, 9.19900116, "GND"], [24.302001179999998, 11.598000679999998, "GND"], [19.62500012, 8.624999259999997, "PD_CC2"], [10.87499984, 8.87499876, "PD_CC2"], [19.62500012, 9.499998779999999, "PD_CC1"], [13.75000044, 9.24999928, "PD_CC1"], [84.37500015999998, 57.0000003, "NTC2"], [87.62499874, 53.499999679999995, "NTC2"], [87.62499874, 20.25000014, "NTC2"], [77.49999994, 20.25000014, "NTC2"], [75.49999886, 18.375000080000003, "NTC2"], [71.37500076, 18.375000080000003, "NTC2"], [71.37500076, 21.625001199999996, "NTC2"], [40.37499926, 22.250001219999998, "NTC2"], [38.750001239999996, 21.625001199999996, "NTC2"], [35.124999599999995, 21.625001199999996, "NTC2"], [31.999999499999998, 19.874999619999997, "NTC2"], [28.24999938, 19.874999619999997, "NTC2"], [20.12499912, 18.375000080000003, "VIN_FUSED"], [20.12499912, 22.999999719999998, "VIN_FUSED"], [22.75000022, 24.49999926, "VIN_FUSED"], [1.49999954, 23.874999239999998, "GND"], [26.12499982, 20.00000064, "GND"], [25.87500032, 16.50000002, "GND"], [25.2500003, 24.49999926, "GND"], [2.50000008, 28.49999888, "GND"], [7.749999740000001, 28.49999888, "GND"], [13.12500042, 28.49999888, "GND"], [18.375000080000003, 28.49999888, "GND"], [18.125000580000002, 14.12500096, "GND"], [22.87500124, 16.00000102, "GND"], [21.8750007, 26.37499932, "GND"], [21.8750007, 28.24999938, "GND"], [19.2499996, 2.99999908, "GND"], [18.375000080000003, 10.87499984, "GND"], [25.2500003, 19.62500012, "GND"], [25.87500032, 21.374999159999998, "GND"], [23.75000076, 18.375000080000003, "GND"], [28.24999938, 52.37500066, "INA_ALERT"], [30.999998960000003, 52.37500066, "INA_ALERT"], [76.62500041999999, 65.50000108, "SCL"], [76.62500041999999, 62.249999960000004, "SCL"], [80.12500104, 55.12500024, "SCL"], [80.12500104, 26.50000034, "SCL"], [80.00000002, 21.625001199999996, "SCL"], [80.00000002, 9.499998779999999, "SCL"], [70.50000124, 9.3750003, "SCL"], [70.50000124, 3.3749995999999998, "SCL"], [39.37500126, 3.25000112, "SCL"], [39.00000074, 14.87499946, "SCL"], [35.99999912, 14.87499946, "SCL"], [31.999999499999998, 35.74999962, "SCL"], [28.24999938, 35.74999962, "SCL"], [28.24999938, 15.375001000000001, "SCL"], [31.999999499999998, 15.375001000000001, "SCL"], [35.124999599999995, 15.375001000000001, "SCL"], [35.57702896598635, 51.24999937466036, "GND"], [18.49900034, 45.99900122, "GND"]], "place": {"C10": [12.5, 71.75, 0, 2], "C11": [17.5, 41.25, 0, 2], "C12": [26.9, 15.5, 270, 2], "C13": [24.85, 23.86, 180, 2], "C14": [2.95, 28.45, 0, 2], "C15": [8.25, 28.45, 0, 2], "C16": [13.55, 28.45, 0, 2], "C17": [18.85, 28.45, 0, 2], "C18": [19.2, 24.85, 0, 2], "C19": [19.75, 23.6, 0, 2], "C2": [5.5, 35.0, 180, 1], "C20": [19.75, 17.8, 0, 2], "C21": [19.2, 15.1, 90, 2], "C22": [23.9, 15.0, 0, 2], "C23": [23.9, 26.3, 0, 2], "C24": [23.9, 28.3, 0, 2], "C3": [19.5, 35.0, 0, 1], "C4": [17.5, 46.0, 180, 2], "C5": [1.5, 21.75, 270, 2], "C6": [12.5, 38.75, 180, 2], "C601": [87.25, 56.5, 0, 2], "C602": [90.5, 56.5, 90, 2], "C603": [87.25, 54.25, 180, 2], "C604": [55.75, 55.0, 0, 2], "C607": [63.75, 55.0, 0, 2], "C608": [51.0, 62.75, 90, 2], "C609": [58.25, 54.5, 180, 2], "C610": [33.0, 56.25, 90, 2], "C611": [51.0, 57.75, 90, 2], "C612": [66.25, 54.5, 180, 2], "C7": [6.25, 65.75, 0, 2], "C731": [1.75, 68.5, 270, 2], "C732": [17.25, 65.75, 180, 2], "C733": [19.75, 73.25, 180, 2], "C734": [25.0, 63.75, 180, 2], "C735": [25.0, 61.25, 180, 2], "C736": [90.25, 84.0, 0, 2], "C737": [74.5, 26.0, 270, 2], "C738": [7.9248, 78.1729, 270, 2], "C739": [91.5, 81.75, 0, 2], "C740": [42.926, 41.578, 90, 2], "C741": [41.148, 37.338, 270, 2], "C742": [57.7, 38.2, 0, 2], "C743": [45.3, 41.64, 180, 2], "C744": [43.18, 36.449, 180, 2], "C745": [43.18, 37.465, 180, 2], "C746": [45.3, 44.06, 180, 2], "C747": [52.95, 45.25, 90, 2], "C748": [57.7, 39.41, 0, 2], "C749": [48.75, 32.42, 270, 2], "C750": [49.2, 45.91, 90, 2], "C751": [65.5, 36.5, 0, 2], "C752": [77.0, 30.25, 180, 2], "C753": [74.25, 29.25, 90, 2], "C8": [7.0, 71.5, 90, 2], "C9": [12.5, 65.25, 0, 2], "D1": [12.5, 34.0, 90, 2], "D2": [12.192, 77.724, 270, 2], "D3": [19.25, 4.0, 270, 2], "DZ3": [1.397, 82.296, 90, 2], "F1": [12.5, 11.8, 90, 2], "J1": [12.5, 5.25, 180, 2], "J23": [84.0, 5.25, 180, 2], "J26": [12.446, 94.289, 0, 1], "J27": [7.112, 84.443, 0, 1], "J33": [80.0, 95.5, 0, 1], "J34": [49.0, 89.64, 0, 1], "J35": [49.0, 69.32, 0, 1], "J36": [49.0, 49.0, 0, 1], "J37": [49.0, 28.68, 0, 1], "J38": [49.0, 8.36, 0, 1], "L2": [11.0, 68.5, 0, 2], "L3": [23.5, 68.5, 0, 2], "L4": [10.4, 20.7, 180, 2], "Q10": [17.018, 81.153, 180, 2], "Q3": [2.95, 52.0, 180, 2], "Q6": [22.1032, 86.3586, 270, 2], "Q7": [4.318, 79.629, 180, 2], "Q8": [4.2148, 76.2031, 180, 2], "Q9": [13.208, 89.916, 180, 2], "R10": [24.85, 22.64, 0, 2], "R11": [24.85, 21.42, 180, 2], "R12": [24.2, 16.58, 0, 2], "R13": [24.2, 17.8, 0, 2], "R2": [4.25, 71.25, 0, 2], "R3": [2.75, 65.25, 0, 2], "R4": [3.937, 42.418, 0, 2], "R5": [4.318, 45.085, 270, 2], "R6": [3.937, 41.402, 0, 2], "R601": [82.5, 92.75, 0, 2], "R602": [82.25, 81.25, 0, 2], "R603": [85.25, 81.25, 180, 2], "R604": [75.5, 81.25, 0, 2], "R605": [78.5, 81.25, 180, 2], "R606": [81.0, 56.75, 0, 2], "R607": [78.0, 56.75, 0, 2], "R608": [75.0, 56.75, 0, 2], "R609": [77.25, 54.5, 180, 2], "R610": [72.0, 81.25, 0, 2], "R611": [81.0, 83.5, 0, 2], "R614": [53.25, 54.0, 0, 2], "R615": [55.25, 63.75, 0, 2], "R616": [61.25, 54.5, 0, 2], "R617": [63.25, 63.75, 0, 2], "R660": [88.5, 81.25, 0, 2], "R661": [87.25, 83.5, 0, 2], "R7": [19.0, 11.25, 90, 2], "R706": [16.75, 71.25, 180, 2], "R707": [16.75, 63.5, 0, 2], "R708": [45.3, 42.85, 180, 2], "R709": [51.181, 29.845, 90, 2], "R710": [50.165, 29.845, 270, 2], "R711": [54.229, 29.845, 270, 2], "R712": [53.213, 29.845, 270, 2], "R716": [52.197, 29.845, 270, 2], "R717": [85.25, 11.5, 180, 2], "R718": [82.25, 11.5, 180, 2], "R719": [55.245, 29.845, 270, 2], "R720": [49.071, 29.847, 270, 2], "R721": [89.25, 9.5, 90, 2], "R722": [91.5, 10.0, 90, 2], "R723": [42.926, 39.751, 270, 2], "R724": [43.2, 35.35, 180, 2], "R725": [43.2, 34.15, 180, 2], "R726": [45.3, 33.6, 180, 2], "R727": [57.7, 34.18, 180, 2], "R728": [57.7, 35.4, 180, 2], "R729": [57.7, 42.45, 180, 2], "R733": [24.5752, 84.9776, 90, 2], "R734": [22.5712, 83.6586, 180, 2], "R746": [4.064, 82.042, 180, 2], "R747": [5.9356, 78.0532, 90, 2], "R748": [4.699, 73.914, 180, 2], "R749": [2.7606, 73.9151, 0, 2], "R750": [9.906, 91.313, 180, 2], "R751": [10.541, 89.408, 90, 2], "R752": [12.7, 87.884, 180, 2], "R753": [15.621, 89.535, 90, 2], "R754": [12.573, 82.55, 180, 2], "R755": [14.5288, 80.645, 90, 2], "R756": [16.51, 78.867, 180, 2], "R757": [18.542, 83.566, 180, 2], "R8": [24.85, 20.2, 180, 2], "R9A": [7.6, 52.0, 270, 2], "R9B": [11.95, 52.0, 90, 2], "R9C": [16.3, 52.0, 270, 2], "R9D": [20.65, 52.0, 90, 2], "R9E": [25.0, 52.0, 270, 2], "RT601": [86.0, 26.0, 0, 2], "RT602": [26.9, 19.3, 90, 2], "Rs6": [12.5, 43.5, 90, 2], "U13": [19.5, 43.5, 270, 2], "U19": [5.0, 68.5, 0, 2], "U20": [81.0, 69.0, 90, 2], "U29": [2.032, 45.085, 270, 2], "U30": [17.0, 68.5, 0, 2], "U31": [80.0, 26.0, 180, 2], "U32": [51.5, 38.58, 270, 2], "U35": [39.0, 59.16, 0, 2], "U36": [23.7, 10.4, 270, 2], "U37": [21.0, 20.7, 270, 2], "U6": [56.0, 59.16, 0, 2], "U7": [64.0, 59.16, 0, 2], "Y1": [39.878, 40.64, 270, 2]}} \ No newline at end of file diff --git a/.claude/r2/_base_pads.json b/.claude/r2/_base_pads.json index bee3516..354e6e9 100644 --- a/.claude/r2/_base_pads.json +++ b/.claude/r2/_base_pads.json @@ -1 +1 @@ -[["C1", "2", 10.249, 18.329, 0.541, 0.5, 2, "GATE", "RECT"], ["C1", "1", 10.249, 19.169, 0.541, 0.5, 2, "VIN_FUSED", "RECT"], ["C2", "2", 3.749, 35.001, 1.6, 1.6, 12, "GND", "ELLIPSE"], ["C2", "1", 7.249, 35.001, 1.6, 1.6, 12, "VIN_SW", "ELLIPSE"], ["C3", "2", 21.25, 35.001, 1.6, 1.6, 12, "GND", "ELLIPSE"], ["C3", "1", 17.75, 35.001, 1.6, 1.6, 12, "VIN_SW", "ELLIPSE"], ["C4", "2", 16.5, 45.999, 1.41, 1.349, 2, "VIN_SW", "RECT"], ["C4", "1", 18.499, 45.999, 1.41, 1.349, 2, "GND", "RECT"], ["C5", "2", 8.999, 29.5, 1.349, 1.41, 2, "VIN_SW", "RECT"], ["C5", "1", 8.999, 27.501, 1.349, 1.41, 2, "GND", "RECT"], ["C6", "2", 12.08, 38.75, 0.5, 0.541, 2, "VIN_SW", "RECT"], ["C6", "1", 12.921, 38.75, 0.5, 0.541, 2, "GND", "RECT"], ["C7", "2", 7.249, 65.75, 1.41, 1.349, 2, "+12V", "RECT"], ["C7", "1", 5.25, 65.75, 1.41, 1.349, 2, "GND", "RECT"], ["C8", "2", 7, 71.92, 0.541, 0.5, 2, "BST3V3", "RECT"], ["C8", "1", 7, 71.079, 0.541, 0.5, 2, "SW3V3", "RECT"], ["C9", "2", 14.092, 65.25, 1.486, 1.727, 2, "+3V3", "RECT"], ["C9", "1", 10.907, 65.25, 1.486, 1.727, 2, "GND", "RECT"], ["C10", "2", 14.092, 71.75, 1.486, 1.727, 2, "+3V3", "RECT"], ["C10", "1", 10.907, 71.75, 1.486, 1.727, 2, "GND", "RECT"], ["C11", "2", 17.92, 41.25, 0.5, 0.541, 2, "GND", "RECT"], ["C11", "1", 17.079, 41.25, 0.5, 0.541, 2, "+3V3", "RECT"], ["C601", "2", 88.842, 56.5, 1.486, 1.727, 2, "+3V3", "RECT"], ["C601", "1", 85.656, 56.5, 1.486, 1.727, 2, "GND", "RECT"], ["C602", "2", 90.5, 56.919, 0.541, 0.5, 2, "+3V3", "RECT"], ["C602", "1", 90.5, 56.081, 0.541, 0.5, 2, "GND", "RECT"], ["C603", "2", 86.83, 54.249, 0.5, 0.541, 2, "GND", "RECT"], ["C603", "1", 87.671, 54.249, 0.5, 0.541, 2, "EN", "RECT"], ["C604", "2", 56.17, 55.001, 0.5, 0.541, 2, "GND", "RECT"], ["C604", "1", 55.329, 55.001, 0.5, 0.541, 2, "+3V3", "RECT"], ["C607", "2", 64.171, 55.001, 0.5, 0.541, 2, "GND", "RECT"], ["C607", "1", 63.33, 55.001, 0.5, 0.541, 2, "+3V3", "RECT"], ["C608", "2", 51.001, 63.749, 1.349, 1.41, 2, "GND", "RECT"], ["C608", "1", 51.001, 61.75, 1.349, 1.41, 2, "$3N176", "RECT"], ["C609", "2", 57.831, 54.501, 0.5, 0.541, 2, "$3N173", "RECT"], ["C609", "1", 58.669, 54.501, 0.5, 0.541, 2, "GND", "RECT"], ["C610", "2", 33, 56.67, 0.541, 0.5, 2, "GND", "RECT"], ["C610", "1", 33, 55.829, 0.541, 0.5, 2, "+3V3", "RECT"], ["C611", "2", 51.001, 58.75, 1.349, 1.41, 2, "GND", "RECT"], ["C611", "1", 51.001, 56.751, 1.349, 1.41, 2, "$3N192", "RECT"], ["C612", "2", 65.829, 54.501, 0.5, 0.541, 2, "$3N189", "RECT"], ["C612", "1", 66.67, 54.501, 0.5, 0.541, 2, "GND", "RECT"], ["C731", "2", 1.75, 67.5, 1.349, 1.41, 2, "GND", "RECT"], ["C731", "1", 1.75, 69.499, 1.349, 1.41, 2, "+12V", "RECT"], ["C732", "2", 16.251, 65.75, 1.41, 1.349, 2, "GND", "RECT"], ["C732", "1", 18.25, 65.75, 1.41, 1.349, 2, "+12V", "RECT"], ["C733", "2", 19.329, 73.251, 0.5, 0.541, 2, "$2N70", "RECT"], ["C733", "1", 20.17, 73.251, 0.5, 0.541, 2, "$2N74", "RECT"], ["C734", "2", 23.409, 63.749, 1.486, 1.727, 2, "GND", "RECT"], ["C734", "1", 26.594, 63.749, 1.486, 1.727, 2, "+5V", "RECT"], ["C735", "2", 23.409, 61.25, 1.486, 1.727, 2, "GND", "RECT"], ["C735", "1", 26.594, 61.25, 1.486, 1.727, 2, "+5V", "RECT"], ["C736", "2", 90.67, 84, 0.5, 0.541, 2, "GND", "RECT"], ["C736", "1", 89.83, 84, 0.5, 0.541, 2, "NTC1", "RECT"], ["C737", "1", 74.501, 27.201, 1.359, 1.501, 2, "+3V3_HUB", "RECT"], ["C737", "2", 74.501, 24.801, 1.359, 1.501, 2, "GND", "RECT"], ["C738", "2", 6.906, 83.5, 1.486, 1.727, 2, "GND", "RECT"], ["C738", "1", 10.091, 83.5, 1.486, 1.727, 2, "FAN_12V_SW", "RECT"], ["C739", "2", 91.92, 81.75, 0.5, 0.541, 2, "GND", "RECT"], ["C739", "1", 91.079, 81.75, 0.5, 0.541, 2, "NTC2", "RECT"], ["C740", "2", 37.579, 43.749, 0.5, 0.541, 2, "GND", "RECT"], ["C740", "1", 38.42, 43.749, 0.5, 0.541, 2, "XTAL1", "RECT"], ["C741", "2", 36.251, 40.079, 0.541, 0.5, 2, "GND", "RECT"], ["C741", "1", 36.251, 40.919, 0.541, 0.5, 2, "XTAL2", "RECT"], ["C742", "2", 58.25, 37.831, 0.541, 0.5, 2, "GND", "RECT"], ["C742", "1", 58.25, 38.669, 0.541, 0.5, 2, "VDD18", "RECT"], ["C743", "2", 41.999, 38.08, 0.541, 0.5, 2, "GND", "RECT"], ["C743", "1", 41.999, 38.92, 0.541, 0.5, 2, "VDD18PLL", "RECT"], ["C744", "2", 43.5, 34.079, 0.541, 0.5, 2, "GND", "RECT"], ["C744", "1", 43.5, 34.92, 0.541, 0.5, 2, "+3V3_HUB", "RECT"], ["C745", "2", 41.999, 36.081, 0.541, 0.5, 2, "GND", "RECT"], ["C745", "1", 41.999, 36.919, 0.541, 0.5, 2, "+3V3_HUB", "RECT"], ["C746", "2", 40.249, 40.579, 0.541, 0.5, 2, "GND", "RECT"], ["C746", "1", 40.249, 41.42, 0.541, 0.5, 2, "+3V3_HUB", "RECT"], ["C747", "2", 58.25, 42.581, 0.541, 0.5, 2, "GND", "RECT"], ["C747", "1", 58.25, 43.421, 0.541, 0.5, 2, "+3V3_HUB", "RECT"], ["C748", "2", 58.25, 40.67, 0.541, 0.5, 2, "GND", "RECT"], ["C748", "1", 58.25, 39.83, 0.541, 0.5, 2, "+3V3_HUB", "RECT"], ["C749", "2", 44.75, 34.671, 0.541, 0.5, 2, "GND", "RECT"], ["C749", "1", 44.75, 33.83, 0.541, 0.5, 2, "+3V3_HUB", "RECT"], ["C750", "2", 40.249, 42.581, 0.541, 0.5, 2, "GND", "RECT"], ["C750", "1", 40.249, 43.421, 0.541, 0.5, 2, "+3V3_HUB", "RECT"], ["C751", "2", 43.749, 36.5, 1.349, 1.41, 2, "GND", "RECT"], ["C751", "1", 43.749, 38.499, 1.349, 1.41, 2, "+3V3_HUB", "RECT"], ["C752", "2", 75.999, 30.249, 1.41, 1.349, 2, "GND", "RECT"], ["C752", "1", 78.001, 30.249, 1.41, 1.349, 2, "+5V", "RECT"], ["C753", "2", 74.249, 29.67, 0.541, 0.5, 2, "GND", "RECT"], ["C753", "1", 74.249, 28.829, 0.541, 0.5, 2, "+5V", "RECT"], ["D1", "2", 12.499, 36.36, 2.192, 2.047, 2, "GND", "RECT"], ["D1", "1", 12.499, 31.638, 2.192, 2.047, 2, "VIN_SW", "RECT"], ["D2", "2", 20.749, 92.05, 1.999, 1.999, 2, "GND", "RECT"], ["D2", "1", 20.749, 96.449, 1.999, 1.999, 2, "FAN_12V_SW", "RECT"], ["DZ1", "1", 16.251, 20.094, 0.841, 0.909, 2, "VIN_FUSED", "RECT"], ["DZ1", "2", 16.251, 23.406, 0.841, 0.909, 2, "GATE", "RECT"], ["DZ3", "2", 25.751, 91.951, 0.95, 1.199, 2, "$6N49", "RECT"], ["DZ3", "1", 25.751, 88.549, 0.95, 1.199, 2, "+12V", "RECT"], ["F1", "1", 12.499, 16.304, 1.727, 1.191, 2, "VIN_RAW", "RECT"], ["F1", "2", 12.499, 19.195, 1.727, 1.191, 2, "VIN_FUSED", "RECT"], ["J1", "3", 10.15, 11.13, 1.6, 3.599, 12, "GND", "OVAL"], ["J1", "2", 14.851, 7.63, 3.8, 1.6, 12, "GND", "OVAL"], ["J1", "1", 14.849, 13.63, 3.8, 1.6, 12, "VIN_RAW", "OVAL"], ["J23", "B8", 85.75, 7.724, 0.3, 1.3, 2, "", "RECT"], ["J23", "A5", 85.25, 7.724, 0.3, 1.3, 2, "$4N219", "RECT"], ["J23", "B7", 84.75, 7.724, 0.3, 1.3, 2, "UP_DM", "RECT"], ["J23", "A6", 84.249, 7.724, 0.3, 1.3, 2, "UP_DP", "RECT"], ["J23", "A7", 83.749, 7.724, 0.3, 1.3, 2, "UP_DM", "RECT"], ["J23", "B6", 83.251, 7.724, 0.3, 1.3, 2, "UP_DP", "RECT"], ["J23", "A8", 82.751, 7.724, 0.3, 1.3, 2, "", "RECT"], ["J23", "B5", 82.25, 7.724, 0.3, 1.3, 2, "$4N221", "RECT"], ["J23", "A1B12", 87.35, 7.074, 0.3, 0, 2, "GND", "POLYRECT"], ["J23", "A1B12", 87.2, 7.724, 0.6, 1.3, 2, "GND", "POLYRECT"], ["J23", "A1B12", 87.05, 8.374, 0.3, 0, 2, "GND", "POLYRECT"], ["J23", "B1A12", 80.8, 7.724, 0.6, 1.3, 2, "GND", "POLYRECT"], ["J23", "B4A9", 81.6, 7.724, 0.6, 1.3, 2, "VBUS_UP", "POLYRECT"], ["J23", "A4B9", 86.55, 7.074, 0.3, 0, 2, "VBUS_UP", "POLYRECT"], ["J23", "A4B9", 86.4, 7.724, 0.6, 1.3, 2, "VBUS_UP", "POLYRECT"], ["J23", "A4B9", 86.25, 8.374, 0.3, 0, 2, "VBUS_UP", "POLYRECT"], ["J23", "2", 79.675, 2.776, 1.199, 1.801, 12, "GND", "OVAL"], ["J23", "1", 79.675, 6.955, 1.199, 1.999, 12, "GND", "OVAL"], ["J23", "4", 88.326, 6.955, 1.199, 1.999, 12, "GND", "OVAL"], ["J23", "3", 88.326, 2.776, 1.199, 1.801, 12, "GND", "OVAL"], ["J26", "1", 9.69, 94.501, 1.6, 1.6, 12, "GND", "RECT"], ["J26", "2", 12.23, 94.501, 1.6, 1.6, 12, "FAN_12V_SW", "ELLIPSE"], ["J26", "3", 14.77, 94.501, 1.6, 1.6, 12, "FAN_IN_TACH_RAW", "ELLIPSE"], ["J26", "4", 17.31, 94.501, 1.6, 1.6, 12, "FAN_PWM_L", "ELLIPSE"], ["J27", "1", 9.69, 88.001, 1.6, 1.6, 12, "GND", "RECT"], ["J27", "2", 12.23, 88.001, 1.6, 1.6, 12, "FAN_12V_SW", "ELLIPSE"], ["J27", "3", 14.77, 88.001, 1.6, 1.6, 12, "FAN_OUT_TACH_RAW", "ELLIPSE"], ["J27", "4", 17.31, 88.001, 1.6, 1.6, 12, "FAN_PWM_L", "ELLIPSE"], ["J33", "1", 74.92, 95.499, 1.699, 1.699, 12, "GND", "RECT"], ["J33", "2", 77.46, 95.499, 1.699, 1.699, 12, "TXD0", "ELLIPSE"], ["J33", "3", 80, 95.499, 1.699, 1.699, 12, "RXD0", "ELLIPSE"], ["J33", "4", 82.54, 95.499, 1.699, 1.699, 12, "EN", "ELLIPSE"], ["J33", "5", 85.08, 95.499, 1.699, 1.699, 12, "IO0", "ELLIPSE"], ["J34", "1", 32.499, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "2", 33.5, 93.241, 0.701, 1.999, 1, "+12V", "RECT"], ["J34", "3", 34.501, 93.241, 0.701, 1.999, 1, "+12V", "RECT"], ["J34", "4", 35.499, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "5", 36.5, 93.241, 0.701, 1.999, 1, "", "RECT"], ["J34", "6", 37.501, 93.241, 0.701, 1.999, 1, "", "RECT"], ["J34", "7", 38.499, 93.241, 0.701, 1.999, 1, "", "RECT"], ["J34", "8", 39.5, 93.241, 0.701, 1.999, 1, "", "RECT"], ["J34", "9", 40.5, 93.241, 0.701, 1.999, 1, "+3V3", "RECT"], ["J34", "10", 41.501, 93.241, 0.701, 1.999, 1, "+3V3", "RECT"], ["J34", "11", 42.499, 93.241, 0.701, 1.999, 1, "EFUSE_EN1", "RECT"], ["J34", "12", 45.499, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "13", 46.5, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "14", 47.501, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "15", 48.499, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "16", 49.5, 93.241, 0.701, 1.999, 1, "VDAC1", "RECT"], ["J34", "17", 50.5, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "18", 51.501, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "19", 52.499, 93.241, 0.701, 1.999, 1, "+5V", "RECT"], ["J34", "20", 53.5, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "21", 54.501, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "22", 55.499, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "23", 56.5, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "24", 57.501, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "25", 58.499, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "26", 59.499, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "27", 60.5, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "28", 61.501, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "29", 62.499, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "30", 63.5, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "31", 64.501, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "32", 65.499, 93.241, 0.701, 1.999, 1, "+5V", "RECT"], ["J34", "33", 32.499, 86.04, 0.701, 1.999, 1, "+12V", "RECT"], ["J34", "34", 33.5, 86.04, 0.701, 1.999, 1, "+12V", "RECT"], ["J34", "35", 34.501, 86.04, 0.701, 1.999, 1, "+12V", "RECT"], ["J34", "36", 35.499, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "37", 36.5, 86.04, 0.701, 1.999, 1, "SCL1", "RECT"], ["J34", "38", 37.501, 86.04, 0.701, 1.999, 1, "SDA1", "RECT"], ["J34", "39", 38.499, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "40", 39.5, 86.04, 0.701, 1.999, 1, "+3V3", "RECT"], ["J34", "41", 40.5, 86.04, 0.701, 1.999, 1, "", "RECT"], ["J34", "42", 41.501, 86.04, 0.701, 1.999, 1, "", "RECT"], ["J34", "43", 42.499, 86.04, 0.701, 1.999, 1, "INT#", "RECT"], ["J34", "44", 45.499, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "45", 46.5, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "46", 47.501, 86.04, 0.701, 1.999, 1, "USB1_DP", "RECT"], ["J34", "47", 48.499, 86.04, 0.701, 1.999, 1, "USB1_DM", "RECT"], ["J34", "48", 49.5, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "49", 50.5, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "50", 51.501, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "51", 52.499, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "52", 53.5, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "53", 54.501, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "54", 55.499, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "55", 56.5, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "56", 57.501, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "57", 58.499, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "58", 59.499, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "59", 60.5, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "60", 61.501, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "61", 62.499, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "62", 63.5, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "63", 64.501, 86.04, 0.701, 1.999, 1, "PRSNT1#", "RECT"], ["J34", "64", 65.499, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "65", 29.5, 89.639, 3, 5.001, 1, "GND", "RECT"], ["J34", "65", 68.499, 89.639, 3, 5.001, 1, "GND", "RECT"], ["J35", "1", 32.499, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "2", 33.5, 72.921, 0.701, 1.999, 1, "+12V", "RECT"], ["J35", "3", 34.501, 72.921, 0.701, 1.999, 1, "+12V", "RECT"], ["J35", "4", 35.499, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "5", 36.5, 72.921, 0.701, 1.999, 1, "", "RECT"], ["J35", "6", 37.501, 72.921, 0.701, 1.999, 1, "", "RECT"], ["J35", "7", 38.499, 72.921, 0.701, 1.999, 1, "", "RECT"], ["J35", "8", 39.5, 72.921, 0.701, 1.999, 1, "", "RECT"], ["J35", "9", 40.5, 72.921, 0.701, 1.999, 1, "+3V3", "RECT"], ["J35", "10", 41.501, 72.921, 0.701, 1.999, 1, "+3V3", "RECT"], ["J35", "11", 42.499, 72.921, 0.701, 1.999, 1, "EFUSE_EN2", "RECT"], ["J35", "12", 45.499, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "13", 46.5, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "14", 47.501, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "15", 48.499, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "16", 49.5, 72.921, 0.701, 1.999, 1, "VDAC2", "RECT"], ["J35", "17", 50.5, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "18", 51.501, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "19", 52.499, 72.921, 0.701, 1.999, 1, "+5V", "RECT"], ["J35", "20", 53.5, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "21", 54.501, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "22", 55.499, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "23", 56.5, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "24", 57.501, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "25", 58.499, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "26", 59.499, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "27", 60.5, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "28", 61.501, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "29", 62.499, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "30", 63.5, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "31", 64.501, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "32", 65.499, 72.921, 0.701, 1.999, 1, "+5V", "RECT"], ["J35", "33", 32.499, 65.72, 0.701, 1.999, 1, "+12V", "RECT"], ["J35", "34", 33.5, 65.72, 0.701, 1.999, 1, "+12V", "RECT"], ["J35", "35", 34.501, 65.72, 0.701, 1.999, 1, "+12V", "RECT"], ["J35", "36", 35.499, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "37", 36.5, 65.72, 0.701, 1.999, 1, "SCL2", "RECT"], ["J35", "38", 37.501, 65.72, 0.701, 1.999, 1, "SDA2", "RECT"], ["J35", "39", 38.499, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "40", 39.5, 65.72, 0.701, 1.999, 1, "+3V3", "RECT"], ["J35", "41", 40.5, 65.72, 0.701, 1.999, 1, "", "RECT"], ["J35", "42", 41.501, 65.72, 0.701, 1.999, 1, "", "RECT"], ["J35", "43", 42.499, 65.72, 0.701, 1.999, 1, "INT#", "RECT"], ["J35", "44", 45.499, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "45", 46.5, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "46", 47.501, 65.72, 0.701, 1.999, 1, "USB2_DP", "RECT"], ["J35", "47", 48.499, 65.72, 0.701, 1.999, 1, "USB2_DM", "RECT"], ["J35", "48", 49.5, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "49", 50.5, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "50", 51.501, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "51", 52.499, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "52", 53.5, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "53", 54.501, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "54", 55.499, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "55", 56.5, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "56", 57.501, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "57", 58.499, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "58", 59.499, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "59", 60.5, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "60", 61.501, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "61", 62.499, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "62", 63.5, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "63", 64.501, 65.72, 0.701, 1.999, 1, "PRSNT2#", "RECT"], ["J35", "64", 65.499, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "65", 29.5, 69.319, 3, 5.001, 1, "GND", "RECT"], ["J35", "65", 68.499, 69.319, 3, 5.001, 1, "GND", "RECT"], ["J36", "1", 32.499, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "2", 33.5, 52.601, 0.701, 1.999, 1, "+12V", "RECT"], ["J36", "3", 34.501, 52.601, 0.701, 1.999, 1, "+12V", "RECT"], ["J36", "4", 35.499, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "5", 36.5, 52.601, 0.701, 1.999, 1, "", "RECT"], ["J36", "6", 37.501, 52.601, 0.701, 1.999, 1, "", "RECT"], ["J36", "7", 38.499, 52.601, 0.701, 1.999, 1, "", "RECT"], ["J36", "8", 39.5, 52.601, 0.701, 1.999, 1, "", "RECT"], ["J36", "9", 40.5, 52.601, 0.701, 1.999, 1, "+3V3", "RECT"], ["J36", "10", 41.501, 52.601, 0.701, 1.999, 1, "+3V3", "RECT"], ["J36", "11", 42.499, 52.601, 0.701, 1.999, 1, "EFUSE_EN3", "RECT"], ["J36", "12", 45.499, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "13", 46.5, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "14", 47.501, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "15", 48.499, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "16", 49.5, 52.601, 0.701, 1.999, 1, "VDAC3", "RECT"], ["J36", "17", 50.5, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "18", 51.501, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "19", 52.499, 52.601, 0.701, 1.999, 1, "+5V", "RECT"], ["J36", "20", 53.5, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "21", 54.501, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "22", 55.499, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "23", 56.5, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "24", 57.501, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "25", 58.499, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "26", 59.499, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "27", 60.5, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "28", 61.501, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "29", 62.499, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "30", 63.5, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "31", 64.501, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "32", 65.499, 52.601, 0.701, 1.999, 1, "+5V", "RECT"], ["J36", "33", 32.499, 45.4, 0.701, 1.999, 1, "+12V", "RECT"], ["J36", "34", 33.5, 45.4, 0.701, 1.999, 1, "+12V", "RECT"], ["J36", "35", 34.501, 45.4, 0.701, 1.999, 1, "+12V", "RECT"], ["J36", "36", 35.499, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "37", 36.5, 45.4, 0.701, 1.999, 1, "SCL3", "RECT"], ["J36", "38", 37.501, 45.4, 0.701, 1.999, 1, "SDA3", "RECT"], ["J36", "39", 38.499, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "40", 39.5, 45.4, 0.701, 1.999, 1, "+3V3", "RECT"], ["J36", "41", 40.5, 45.4, 0.701, 1.999, 1, "", "RECT"], ["J36", "42", 41.501, 45.4, 0.701, 1.999, 1, "", "RECT"], ["J36", "43", 42.499, 45.4, 0.701, 1.999, 1, "INT#", "RECT"], ["J36", "44", 45.499, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "45", 46.5, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "46", 47.501, 45.4, 0.701, 1.999, 1, "USB3_DP", "RECT"], ["J36", "47", 48.499, 45.4, 0.701, 1.999, 1, "USB3_DM", "RECT"], ["J36", "48", 49.5, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "49", 50.5, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "50", 51.501, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "51", 52.499, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "52", 53.5, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "53", 54.501, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "54", 55.499, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "55", 56.5, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "56", 57.501, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "57", 58.499, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "58", 59.499, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "59", 60.5, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "60", 61.501, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "61", 62.499, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "62", 63.5, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "63", 64.501, 45.4, 0.701, 1.999, 1, "PRSNT3#", "RECT"], ["J36", "64", 65.499, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "65", 29.5, 48.999, 3, 5.001, 1, "GND", "RECT"], ["J36", "65", 68.499, 48.999, 3, 5.001, 1, "GND", "RECT"], ["J37", "1", 32.499, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "2", 33.5, 32.281, 0.701, 1.999, 1, "+12V", "RECT"], ["J37", "3", 34.501, 32.281, 0.701, 1.999, 1, "+12V", "RECT"], ["J37", "4", 35.499, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "5", 36.5, 32.281, 0.701, 1.999, 1, "", "RECT"], ["J37", "6", 37.501, 32.281, 0.701, 1.999, 1, "", "RECT"], ["J37", "7", 38.499, 32.281, 0.701, 1.999, 1, "", "RECT"], ["J37", "8", 39.5, 32.281, 0.701, 1.999, 1, "", "RECT"], ["J37", "9", 40.5, 32.281, 0.701, 1.999, 1, "+3V3", "RECT"], ["J37", "10", 41.501, 32.281, 0.701, 1.999, 1, "+3V3", "RECT"], ["J37", "11", 42.499, 32.281, 0.701, 1.999, 1, "EFUSE_EN4", "RECT"], ["J37", "12", 45.499, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "13", 46.5, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "14", 47.501, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "15", 48.499, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "16", 49.5, 32.281, 0.701, 1.999, 1, "VDAC4", "RECT"], ["J37", "17", 50.5, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "18", 51.501, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "19", 52.499, 32.281, 0.701, 1.999, 1, "+5V", "RECT"], ["J37", "20", 53.5, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "21", 54.501, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "22", 55.499, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "23", 56.5, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "24", 57.501, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "25", 58.499, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "26", 59.499, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "27", 60.5, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "28", 61.501, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "29", 62.499, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "30", 63.5, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "31", 64.501, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "32", 65.499, 32.281, 0.701, 1.999, 1, "+5V", "RECT"], ["J37", "33", 32.499, 25.08, 0.701, 1.999, 1, "+12V", "RECT"], ["J37", "34", 33.5, 25.08, 0.701, 1.999, 1, "+12V", "RECT"], ["J37", "35", 34.501, 25.08, 0.701, 1.999, 1, "+12V", "RECT"], ["J37", "36", 35.499, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "37", 36.5, 25.08, 0.701, 1.999, 1, "SCL4", "RECT"], ["J37", "38", 37.501, 25.08, 0.701, 1.999, 1, "SDA4", "RECT"], ["J37", "39", 38.499, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "40", 39.5, 25.08, 0.701, 1.999, 1, "+3V3", "RECT"], ["J37", "41", 40.5, 25.08, 0.701, 1.999, 1, "", "RECT"], ["J37", "42", 41.501, 25.08, 0.701, 1.999, 1, "", "RECT"], ["J37", "43", 42.499, 25.08, 0.701, 1.999, 1, "INT#", "RECT"], ["J37", "44", 45.499, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "45", 46.5, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "46", 47.501, 25.08, 0.701, 1.999, 1, "USB4_DP", "RECT"], ["J37", "47", 48.499, 25.08, 0.701, 1.999, 1, "USB4_DM", "RECT"], ["J37", "48", 49.5, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "49", 50.5, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "50", 51.501, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "51", 52.499, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "52", 53.5, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "53", 54.501, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "54", 55.499, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "55", 56.5, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "56", 57.501, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "57", 58.499, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "58", 59.499, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "59", 60.5, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "60", 61.501, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "61", 62.499, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "62", 63.5, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "63", 64.501, 25.08, 0.701, 1.999, 1, "PRSNT4#", "RECT"], ["J37", "64", 65.499, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "65", 29.5, 28.679, 3, 5.001, 1, "GND", "RECT"], ["J37", "65", 68.499, 28.679, 3, 5.001, 1, "GND", "RECT"], ["J38", "1", 32.499, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "2", 33.5, 11.961, 0.701, 1.999, 1, "+12V", "RECT"], ["J38", "3", 34.501, 11.961, 0.701, 1.999, 1, "+12V", "RECT"], ["J38", "4", 35.499, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "5", 36.5, 11.961, 0.701, 1.999, 1, "", "RECT"], ["J38", "6", 37.501, 11.961, 0.701, 1.999, 1, "", "RECT"], ["J38", "7", 38.499, 11.961, 0.701, 1.999, 1, "", "RECT"], ["J38", "8", 39.5, 11.961, 0.701, 1.999, 1, "", "RECT"], ["J38", "9", 40.5, 11.961, 0.701, 1.999, 1, "+3V3", "RECT"], ["J38", "10", 41.501, 11.961, 0.701, 1.999, 1, "+3V3", "RECT"], ["J38", "11", 42.499, 11.961, 0.701, 1.999, 1, "EFUSE_EN5", "RECT"], ["J38", "12", 45.499, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "13", 46.5, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "14", 47.501, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "15", 48.499, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "16", 49.5, 11.961, 0.701, 1.999, 1, "VDAC5", "RECT"], ["J38", "17", 50.5, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "18", 51.501, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "19", 52.499, 11.961, 0.701, 1.999, 1, "+5V", "RECT"], ["J38", "20", 53.5, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "21", 54.501, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "22", 55.499, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "23", 56.5, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "24", 57.501, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "25", 58.499, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "26", 59.499, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "27", 60.5, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "28", 61.501, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "29", 62.499, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "30", 63.5, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "31", 64.501, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "32", 65.499, 11.961, 0.701, 1.999, 1, "+5V", "RECT"], ["J38", "33", 32.499, 4.76, 0.701, 1.999, 1, "+12V", "RECT"], ["J38", "34", 33.5, 4.76, 0.701, 1.999, 1, "+12V", "RECT"], ["J38", "35", 34.501, 4.76, 0.701, 1.999, 1, "+12V", "RECT"], ["J38", "36", 35.499, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "37", 36.5, 4.76, 0.701, 1.999, 1, "SCL5", "RECT"], ["J38", "38", 37.501, 4.76, 0.701, 1.999, 1, "SDA5", "RECT"], ["J38", "39", 38.499, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "40", 39.5, 4.76, 0.701, 1.999, 1, "+3V3", "RECT"], ["J38", "41", 40.5, 4.76, 0.701, 1.999, 1, "", "RECT"], ["J38", "42", 41.501, 4.76, 0.701, 1.999, 1, "", "RECT"], ["J38", "43", 42.499, 4.76, 0.701, 1.999, 1, "INT#", "RECT"], ["J38", "44", 45.499, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "45", 46.5, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "46", 47.501, 4.76, 0.701, 1.999, 1, "USB5_DP", "RECT"], ["J38", "47", 48.499, 4.76, 0.701, 1.999, 1, "USB5_DM", "RECT"], ["J38", "48", 49.5, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "49", 50.5, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "50", 51.501, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "51", 52.499, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "52", 53.5, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "53", 54.501, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "54", 55.499, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "55", 56.5, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "56", 57.501, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "57", 58.499, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "58", 59.499, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "59", 60.5, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "60", 61.501, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "61", 62.499, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "62", 63.5, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "63", 64.501, 4.76, 0.701, 1.999, 1, "PRSNT5#", "RECT"], ["J38", "64", 65.499, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "65", 29.5, 8.359, 3, 5.001, 1, "GND", "RECT"], ["J38", "65", 68.499, 8.359, 3, 5.001, 1, "GND", "RECT"], ["L2", "2", 12.601, 68.501, 1.6, 3.5, 2, "+3V3", "RECT"], ["L2", "1", 9.401, 68.501, 1.6, 3.5, 2, "SW3V3", "RECT"], ["L3", "1", 20.701, 68.501, 1.999, 3.401, 2, "$2N70", "RECT"], ["L3", "2", 26.299, 68.501, 1.999, 3.401, 2, "+5V", "RECT"], ["Q1", "1", 14.404, 21.732, 0.574, 2.035, 2, "VIN_FUSED", "OVAL"], ["Q1", "2", 13.134, 21.732, 0.574, 2.035, 2, "VIN_FUSED", "OVAL"], ["Q1", "3", 11.864, 21.732, 0.574, 2.035, 2, "VIN_FUSED", "OVAL"], ["Q1", "4", 10.594, 21.732, 0.574, 2.035, 2, "GATE", "OVAL"], ["Q1", "8", 14.404, 27.267, 0.574, 2.035, 2, "VIN_SW", "OVAL"], ["Q1", "7", 13.134, 27.267, 0.574, 2.035, 2, "VIN_SW", "OVAL"], ["Q1", "6", 11.864, 27.267, 0.574, 2.035, 2, "VIN_SW", "OVAL"], ["Q1", "5", 10.594, 27.267, 0.574, 2.035, 2, "VIN_SW", "OVAL"], ["Q3", "1", 4.854, 49.233, 0.574, 2.035, 2, "+12V", "OVAL"], ["Q3", "2", 3.584, 49.233, 0.574, 2.035, 2, "+12V", "OVAL"], ["Q3", "3", 2.314, 49.233, 0.574, 2.035, 2, "+12V", "OVAL"], ["Q3", "4", 1.044, 49.233, 0.574, 2.035, 2, "BLD_A", "OVAL"], ["Q3", "8", 4.854, 54.767, 0.574, 2.035, 2, "$1N114", "OVAL"], ["Q3", "7", 3.584, 54.767, 0.574, 2.035, 2, "$1N114", "OVAL"], ["Q3", "6", 2.314, 54.767, 0.574, 2.035, 2, "$1N114", "OVAL"], ["Q3", "5", 1.044, 54.767, 0.574, 2.035, 2, "$1N114", "OVAL"], ["Q6", "1", 22.25, 89.2, 1.001, 0.65, 2, "$6N55", "RECT"], ["Q6", "2", 22.25, 87.3, 1.001, 0.65, 2, "GND", "RECT"], ["Q6", "3", 20.249, 88.25, 1.001, 0.65, 2, "FAN_PWM_L", "RECT"], ["Q7", "2", 23.8, 94.6, 0.8, 1.001, 2, "+12V", "RECT"], ["Q7", "3", 24.75, 96.901, 0.8, 1.001, 2, "FAN_12V_SW", "RECT"], ["Q7", "1", 25.7, 94.6, 0.8, 1.001, 2, "$6N49", "RECT"], ["Q8", "1", 15.001, 83.95, 1.001, 0.65, 2, "$6N45", "RECT"], ["Q8", "2", 15.001, 82.05, 1.001, 0.65, 2, "GND", "RECT"], ["Q8", "3", 13, 83, 1.001, 0.65, 2, "$6N48", "RECT"], ["Q9", "1", 25.049, 78.25, 0.65, 1.001, 2, "$6N64", "RECT"], ["Q9", "2", 26.949, 78.25, 0.65, 1.001, 2, "GND", "RECT"], ["Q9", "3", 25.999, 76.251, 0.65, 1.001, 2, "FAN_TACH_IN", "RECT"], ["Q10", "1", 25.001, 80.8, 1.001, 0.65, 2, "$6N74", "RECT"], ["Q10", "2", 25.001, 82.7, 1.001, 0.65, 2, "GND", "RECT"], ["Q10", "3", 27, 81.75, 1.001, 0.65, 2, "FAN_TACH_OUT", "RECT"], ["R1", "2", 8.75, 21.318, 0.541, 0.566, 2, "GATE", "RECT"], ["R1", "1", 8.75, 22.182, 0.541, 0.566, 2, "GND", "RECT"], ["R2", "2", 4.684, 71.25, 0.566, 0.541, 2, "+3V3", "RECT"], ["R2", "1", 3.818, 71.25, 0.566, 0.541, 2, "FB3V3", "RECT"], ["R3", "2", 3.183, 65.25, 0.566, 0.541, 2, "FB3V3", "RECT"], ["R3", "1", 2.316, 65.25, 0.566, 0.541, 2, "GND", "RECT"], ["R4", "2", 0.818, 42.499, 0.566, 0.541, 2, "+12V", "RECT"], ["R4", "1", 1.684, 42.499, 0.566, 0.541, 2, "BLD_REF", "RECT"], ["R5", "2", 4, 42.682, 0.541, 0.566, 2, "BLD_REF", "RECT"], ["R5", "1", 4, 41.816, 0.541, 0.566, 2, "GND", "RECT"], ["R6", "2", 7.183, 43.251, 0.566, 0.541, 2, "+12V", "RECT"], ["R6", "1", 6.317, 43.251, 0.566, 0.541, 2, "BLD_A", "RECT"], ["R9A", "2", 7.6, 48.933, 3.457, 1.283, 2, "$1N126", "RECT"], ["R9A", "1", 7.6, 55.067, 3.457, 1.283, 2, "$1N114", "RECT"], ["R9B", "2", 11.951, 55.067, 3.457, 1.283, 2, "$1N127", "RECT"], ["R9B", "1", 11.951, 48.933, 3.457, 1.283, 2, "$1N126", "RECT"], ["R9C", "2", 16.299, 48.933, 3.457, 1.283, 2, "$1N128", "RECT"], ["R9C", "1", 16.299, 55.067, 3.457, 1.283, 2, "$1N127", "RECT"], ["R9D", "2", 20.65, 55.067, 3.457, 1.283, 2, "$1N129", "RECT"], ["R9D", "1", 20.65, 48.933, 3.457, 1.283, 2, "$1N128", "RECT"], ["R9E", "2", 25.001, 48.933, 3.457, 1.283, 2, "GND", "RECT"], ["R9E", "1", 25.001, 55.067, 3.457, 1.283, 2, "$1N129", "RECT"], ["R601", "2", 82.934, 92.751, 0.566, 0.541, 2, "EN", "RECT"], ["R601", "1", 82.067, 92.751, 0.566, 0.541, 2, "+3V3", "RECT"], ["R602", "2", 82.682, 81.25, 0.566, 0.541, 2, "SDA", "RECT"], ["R602", "1", 81.816, 81.25, 0.566, 0.541, 2, "+3V3", "RECT"], ["R603", "2", 84.818, 81.25, 0.566, 0.541, 2, "SCL", "RECT"], ["R603", "1", 85.682, 81.25, 0.566, 0.541, 2, "+3V3", "RECT"], ["R604", "2", 75.933, 81.25, 0.566, 0.541, 2, "INT#", "RECT"], ["R604", "1", 75.067, 81.25, 0.566, 0.541, 2, "+3V3", "RECT"], ["R605", "2", 78.067, 81.25, 0.566, 0.541, 2, "INA_ALERT", "RECT"], ["R605", "1", 78.933, 81.25, 0.566, 0.541, 2, "+3V3", "RECT"], ["R606", "2", 81.432, 56.751, 0.566, 0.541, 2, "PRSNT1#", "RECT"], ["R606", "1", 80.566, 56.751, 0.566, 0.541, 2, "+3V3", "RECT"], ["R607", "2", 78.433, 56.751, 0.566, 0.541, 2, "PRSNT2#", "RECT"], ["R607", "1", 77.567, 56.751, 0.566, 0.541, 2, "+3V3", "RECT"], ["R608", "2", 75.433, 56.751, 0.566, 0.541, 2, "PRSNT3#", "RECT"], ["R608", "1", 74.567, 56.751, 0.566, 0.541, 2, "+3V3", "RECT"], ["R609", "2", 76.817, 54.501, 0.566, 0.541, 2, "PRSNT4#", "RECT"], ["R609", "1", 77.683, 54.501, 0.566, 0.541, 2, "+3V3", "RECT"], ["R610", "2", 72.433, 81.25, 0.566, 0.541, 2, "PRSNT5#", "RECT"], ["R610", "1", 71.567, 81.25, 0.566, 0.541, 2, "+3V3", "RECT"], ["R611", "2", 81.432, 83.5, 0.566, 0.541, 2, "MUX_RST#", "RECT"], ["R611", "1", 80.566, 83.5, 0.566, 0.541, 2, "+3V3", "RECT"], ["R614", "2", 53.683, 54, 0.566, 0.541, 2, "$3N173", "RECT"], ["R614", "1", 52.817, 54, 0.566, 0.541, 2, "+3V3", "RECT"], ["R615", "2", 55.682, 63.749, 0.566, 0.541, 2, "$3N181", "RECT"], ["R615", "1", 54.818, 63.749, 0.566, 0.541, 2, "GND", "RECT"], ["R616", "2", 61.684, 54.501, 0.566, 0.541, 2, "$3N189", "RECT"], ["R616", "1", 60.818, 54.501, 0.566, 0.541, 2, "+3V3", "RECT"], ["R617", "2", 63.683, 63.749, 0.566, 0.541, 2, "$3N197", "RECT"], ["R617", "1", 62.817, 63.749, 0.566, 0.541, 2, "GND", "RECT"], ["R660", "2", 88.933, 81.25, 0.566, 0.541, 2, "NTC1", "RECT"], ["R660", "1", 88.067, 81.25, 0.566, 0.541, 2, "+3V3", "RECT"], ["R661", "2", 87.683, 83.5, 0.566, 0.541, 2, "NTC2", "RECT"], ["R661", "1", 86.817, 83.5, 0.566, 0.541, 2, "+3V3", "RECT"], ["R706", "2", 16.317, 71.25, 0.566, 0.541, 2, "$2N72", "RECT"], ["R706", "1", 17.183, 71.25, 0.566, 0.541, 2, "+5V", "RECT"], ["R707", "2", 17.183, 63.5, 0.566, 0.541, 2, "GND", "RECT"], ["R707", "1", 16.317, 63.5, 0.566, 0.541, 2, "$2N72", "RECT"], ["R708", "2", 40.249, 37.567, 0.541, 0.566, 2, "GND", "RECT"], ["R708", "1", 40.249, 38.433, 0.541, 0.566, 2, "RBIAS", "RECT"], ["R709", "2", 35.75, 36.817, 0.541, 0.566, 2, "VBUS_DET", "RECT"], ["R709", "1", 35.75, 37.683, 0.541, 0.566, 2, "VBUS_UP", "RECT"], ["R710", "2", 41.75, 33.566, 0.541, 0.566, 2, "GND", "RECT"], ["R710", "1", 41.75, 34.432, 0.541, 0.566, 2, "VBUS_DET", "RECT"], ["R711", "2", 39.5, 34.684, 0.541, 0.566, 2, "GND", "RECT"], ["R711", "1", 39.5, 33.818, 0.541, 0.566, 2, "CFGSEL0", "RECT"], ["R712", "2", 38.001, 37.683, 0.541, 0.566, 2, "+3V3_HUB", "RECT"], ["R712", "1", 38.001, 36.817, 0.541, 0.566, 2, "CFGSEL1", "RECT"], ["R716", "2", 37.249, 34.684, 0.541, 0.566, 2, "+3V3_HUB", "RECT"], ["R716", "1", 37.249, 33.818, 0.541, 0.566, 2, "HUB_RST", "RECT"], ["R717", "2", 84.818, 11.501, 0.566, 0.541, 2, "GND", "RECT"], ["R717", "1", 85.682, 11.501, 0.566, 0.541, 2, "$4N219", "RECT"], ["R718", "2", 81.816, 11.501, 0.566, 0.541, 2, "GND", "RECT"], ["R718", "1", 82.682, 11.501, 0.566, 0.541, 2, "$4N221", "RECT"], ["R719", "2", 64.75, 34.684, 0.541, 0.566, 2, "GND", "RECT"], ["R719", "1", 64.75, 33.818, 0.541, 0.566, 2, "NONREM1", "RECT"], ["R720", "2", 38.499, 41.432, 0.541, 0.566, 2, "GND", "RECT"], ["R720", "1", 38.499, 40.566, 0.541, 0.566, 2, "NONREM0", "RECT"], ["R721", "2", 89.251, 9.934, 0.541, 0.566, 2, "UP_VBUS_DET", "RECT"], ["R721", "1", 89.251, 9.068, 0.541, 0.566, 2, "VBUS_UP", "RECT"], ["R722", "2", 91.501, 10.432, 0.541, 0.566, 2, "GND", "RECT"], ["R722", "1", 91.501, 9.568, 0.541, 0.566, 2, "UP_VBUS_DET", "RECT"], ["R733", "2", 22.682, 85.001, 0.566, 0.541, 2, "$6N55", "RECT"], ["R733", "1", 21.816, 85.001, 0.566, 0.541, 2, "FAN_PWM", "RECT"], ["R734", "2", 21.816, 82.751, 0.566, 0.541, 2, "GND", "RECT"], ["R734", "1", 22.682, 82.751, 0.566, 0.541, 2, "$6N55", "RECT"], ["R746", "2", 19.317, 78.501, 0.566, 0.541, 2, "+12V", "RECT"], ["R746", "1", 20.183, 78.501, 0.566, 0.541, 2, "$6N49", "RECT"], ["R747", "2", 25.316, 85.999, 0.566, 0.541, 2, "$6N49", "RECT"], ["R747", "1", 26.182, 85.999, 0.566, 0.541, 2, "$6N48", "RECT"], ["R748", "2", 17, 77.432, 0.541, 0.566, 2, "$6N45", "RECT"], ["R748", "1", 17, 76.568, 0.541, 0.566, 2, "FAN_EN", "RECT"], ["R749", "2", 17.501, 83.932, 0.541, 0.566, 2, "$6N45", "RECT"], ["R749", "1", 17.501, 83.068, 0.541, 0.566, 2, "GND", "RECT"], ["R750", "2", 7, 88.816, 0.541, 0.566, 2, "FAN_12V_SW", "RECT"], ["R750", "1", 7, 89.682, 0.541, 0.566, 2, "FAN_IN_TACH_RAW", "RECT"], ["R751", "2", 4.75, 89.682, 0.541, 0.566, 2, "FAN_IN_TACH_RAW", "RECT"], ["R751", "1", 4.75, 88.816, 0.541, 0.566, 2, "$6N64", "RECT"], ["R752", "2", 2.499, 89.182, 0.541, 0.566, 2, "$6N64", "RECT"], ["R752", "1", 2.499, 88.318, 0.541, 0.566, 2, "GND", "RECT"], ["R753", "2", 22.751, 75.816, 0.541, 0.566, 2, "FAN_TACH_IN", "RECT"], ["R753", "1", 22.751, 76.683, 0.541, 0.566, 2, "+3V3", "RECT"], ["R754", "2", 18.184, 80.749, 0.566, 0.541, 2, "FAN_12V_SW", "RECT"], ["R754", "1", 17.318, 80.749, 0.566, 0.541, 2, "FAN_OUT_TACH_RAW", "RECT"], ["R755", "2", 15.182, 79.751, 0.566, 0.541, 2, "FAN_OUT_TACH_RAW", "RECT"], ["R755", "1", 14.318, 79.751, 0.566, 0.541, 2, "$6N74", "RECT"], ["R756", "2", 14.684, 77.5, 0.566, 0.541, 2, "$6N74", "RECT"], ["R756", "1", 13.818, 77.5, 0.566, 0.541, 2, "GND", "RECT"], ["R757", "2", 22.499, 80.432, 0.541, 0.566, 2, "FAN_TACH_OUT", "RECT"], ["R757", "1", 22.499, 79.568, 0.541, 0.566, 2, "+3V3", "RECT"], ["Rs6", "2", 12.499, 46.566, 3.457, 1.283, 2, "+12V", "RECT"], ["Rs6", "1", 12.499, 40.434, 3.457, 1.283, 2, "VIN_SW", "RECT"], ["RT601", "2", 86.754, 25.999, 0.808, 0.864, 2, "GND", "RECT"], ["RT601", "1", 85.247, 25.999, 0.808, 0.864, 2, "NTC1", "RECT"], ["RT602", "2", 20.254, 8.001, 0.808, 0.864, 2, "GND", "RECT"], ["RT602", "1", 18.748, 8.001, 0.808, 0.864, 2, "NTC2", "RECT"], ["U6", "17", 56, 59.335, 1.7, 1.35, 2, "GND", "POLYRECT"], ["U6", "16", 55.25, 57.661, 0.279, 0.8, 2, "$3N173", "RECT"], ["U6", "15", 55.75, 57.661, 0.279, 0.8, 2, "+3V3", "RECT"], ["U6", "14", 56.251, 57.661, 0.279, 0.8, 2, "GND", "RECT"], ["U6", "13", 56.749, 57.661, 0.279, 0.8, 2, "$3N176", "RECT"], ["U6", "12", 57.501, 58.41, 0.8, 0.279, 2, "VDAC2", "RECT"], ["U6", "11", 57.501, 58.91, 0.8, 0.279, 2, "VDAC2", "RECT"], ["U6", "10", 57.501, 59.411, 0.8, 0.279, 2, "VDAC4", "RECT"], ["U6", "9", 57.501, 59.911, 0.8, 0.279, 2, "VDAC4", "RECT"], ["U6", "8", 56.749, 60.66, 0.279, 0.8, 2, "SDA", "RECT"], ["U6", "7", 56.251, 60.66, 0.279, 0.8, 2, "SDA", "RECT"], ["U6", "6", 55.75, 60.66, 0.279, 0.8, 2, "SCL", "RECT"], ["U6", "5", 55.25, 60.66, 0.279, 0.8, 2, "$3N181", "RECT"], ["U6", "4", 54.501, 59.911, 0.8, 0.279, 2, "VDAC1", "RECT"], ["U6", "3", 54.501, 59.411, 0.8, 0.279, 2, "VDAC1", "RECT"], ["U6", "2", 54.501, 58.91, 0.8, 0.279, 2, "", "RECT"], ["U6", "1", 54.501, 58.41, 0.8, 0.279, 2, "", "RECT"], ["U7", "17", 64, 59.335, 1.7, 1.35, 2, "GND", "POLYRECT"], ["U7", "16", 63.251, 57.661, 0.279, 0.8, 2, "$3N189", "RECT"], ["U7", "15", 63.749, 57.661, 0.279, 0.8, 2, "+3V3", "RECT"], ["U7", "14", 64.249, 57.661, 0.279, 0.8, 2, "GND", "RECT"], ["U7", "13", 64.75, 57.661, 0.279, 0.8, 2, "$3N192", "RECT"], ["U7", "12", 65.499, 58.41, 0.8, 0.279, 2, "VDAC3", "RECT"], ["U7", "11", 65.499, 58.91, 0.8, 0.279, 2, "VDAC3", "RECT"], ["U7", "10", 65.499, 59.411, 0.8, 0.279, 2, "VDAC5", "RECT"], ["U7", "9", 65.499, 59.911, 0.8, 0.279, 2, "VDAC5", "RECT"], ["U7", "8", 64.75, 60.66, 0.279, 0.8, 2, "SDA", "RECT"], ["U7", "7", 64.249, 60.66, 0.279, 0.8, 2, "SCL", "RECT"], ["U7", "6", 63.749, 60.66, 0.279, 0.8, 2, "SCL", "RECT"], ["U7", "5", 63.251, 60.66, 0.279, 0.8, 2, "$3N197", "RECT"], ["U7", "4", 62.499, 59.911, 0.8, 0.279, 2, "", "RECT"], ["U7", "3", 62.499, 59.411, 0.8, 0.279, 2, "", "RECT"], ["U7", "2", 62.499, 58.91, 0.8, 0.279, 2, "", "RECT"], ["U7", "1", 62.499, 58.41, 0.8, 0.279, 2, "", "RECT"], ["U13", "1", 21.61, 44.501, 1.621, 0.279, 2, "GND", "OVAL"], ["U13", "2", 21.61, 44, 1.621, 0.279, 2, "SCL", "OVAL"], ["U13", "3", 21.61, 43.5, 1.621, 0.279, 2, "INA_ALERT", "OVAL"], ["U13", "4", 21.61, 43, 1.621, 0.279, 2, "SDA", "OVAL"], ["U13", "5", 21.61, 42.499, 1.621, 0.279, 2, "SCL", "OVAL"], ["U13", "10", 17.389, 44.501, 1.621, 0.279, 2, "VIN_SW", "OVAL"], ["U13", "9", 17.389, 44, 1.621, 0.279, 2, "+12V", "OVAL"], ["U13", "8", 17.389, 43.5, 1.621, 0.279, 2, "+12V", "OVAL"], ["U13", "7", 17.389, 43, 1.621, 0.279, 2, "GND", "OVAL"], ["U13", "6", 17.389, 42.499, 1.621, 0.279, 2, "+3V3", "OVAL"], ["U19", "3", 6.35, 67.551, 1.1, 0.599, 2, "+12V", "RECT"], ["U19", "2", 6.35, 68.501, 1.1, 0.599, 2, "SW3V3", "RECT"], ["U19", "1", 6.35, 69.451, 1.1, 0.599, 2, "GND", "RECT"], ["U19", "6", 3.65, 69.451, 1.1, 0.599, 2, "BST3V3", "RECT"], ["U19", "5", 3.65, 68.501, 1.1, 0.599, 2, "+12V", "RECT"], ["U19", "4", 3.65, 67.551, 1.1, 0.599, 2, "FB3V3", "RECT"], ["U20", "1", 89.896, 60.249, 0.899, 1.501, 2, "GND", "RECT"], ["U20", "2", 88.626, 60.249, 0.899, 1.501, 2, "+3V3", "RECT"], ["U20", "3", 87.356, 60.249, 0.899, 1.501, 2, "EN", "RECT"], ["U20", "4", 86.086, 60.249, 0.899, 1.501, 2, "FAN_TACH_OUT", "RECT"], ["U20", "5", 84.816, 60.249, 0.899, 1.501, 2, "FAN_TACH_IN", "RECT"], ["U20", "6", 83.546, 60.249, 0.899, 1.501, 2, "FAN_PWM", "RECT"], ["U20", "7", 82.276, 60.249, 0.899, 1.501, 2, "FAN_EN", "RECT"], ["U20", "8", 81.006, 60.249, 0.899, 1.501, 2, "PRSNT1#", "RECT"], ["U20", "9", 79.736, 60.249, 0.899, 1.501, 2, "PRSNT2#", "RECT"], ["U20", "10", 78.466, 60.249, 0.899, 1.501, 2, "PRSNT3#", "RECT"], ["U20", "11", 77.196, 60.249, 0.899, 1.501, 2, "PRSNT4#", "RECT"], ["U20", "12", 75.926, 60.249, 0.899, 1.501, 2, "HUB_RST", "RECT"], ["U20", "13", 74.656, 60.249, 0.899, 1.501, 2, "USB6_DM", "RECT"], ["U20", "14", 73.386, 60.249, 0.899, 1.501, 2, "USB6_DP", "RECT"], ["U20", "15", 72.106, 62.014, 1.501, 0.899, 2, "", "RECT"], ["U20", "16", 72.106, 63.284, 1.501, 0.899, 2, "", "RECT"], ["U20", "17", 72.106, 64.554, 1.501, 0.899, 2, "EFUSE_EN1", "RECT"], ["U20", "18", 72.106, 65.824, 1.501, 0.899, 2, "EFUSE_EN2", "RECT"], ["U20", "19", 72.106, 67.094, 1.501, 0.899, 2, "EFUSE_EN3", "RECT"], ["U20", "20", 72.106, 68.364, 1.501, 0.899, 2, "EFUSE_EN4", "RECT"], ["U20", "21", 72.106, 69.634, 1.501, 0.899, 2, "EFUSE_EN5", "RECT"], ["U20", "22", 72.106, 70.904, 1.501, 0.899, 2, "PRSNT5#", "RECT"], ["U20", "23", 72.106, 72.174, 1.501, 0.899, 2, "UP_VBUS_DET", "RECT"], ["U20", "24", 72.106, 73.444, 1.501, 0.899, 2, "", "RECT"], ["U20", "25", 72.106, 74.714, 1.501, 0.899, 2, "", "RECT"], ["U20", "26", 72.136, 75.984, 1.501, 0.899, 2, "", "RECT"], ["U20", "27", 73.386, 77.749, 0.899, 1.501, 2, "IO0", "RECT"], ["U20", "28", 74.656, 77.749, 0.899, 1.501, 2, "", "RECT"], ["U20", "29", 75.926, 77.749, 0.899, 1.501, 2, "", "RECT"], ["U20", "30", 77.196, 77.749, 0.899, 1.501, 2, "", "RECT"], ["U20", "31", 78.466, 77.749, 0.899, 1.501, 2, "INA_ALERT", "RECT"], ["U20", "32", 79.736, 77.749, 0.899, 1.501, 2, "INT#", "RECT"], ["U20", "33", 81.006, 77.749, 0.899, 1.501, 2, "MUX_RST#", "RECT"], ["U20", "34", 82.276, 77.749, 0.899, 1.501, 2, "SDA", "RECT"], ["U20", "35", 83.546, 77.749, 0.899, 1.501, 2, "SCL", "RECT"], ["U20", "36", 84.816, 77.749, 0.899, 1.501, 2, "RXD0", "RECT"], ["U20", "37", 86.086, 77.749, 0.899, 1.501, 2, "TXD0", "RECT"], ["U20", "38", 87.356, 77.749, 0.899, 1.501, 2, "NTC2", "RECT"], ["U20", "39", 88.626, 77.749, 0.899, 1.501, 2, "NTC1", "RECT"], ["U20", "40", 89.896, 77.749, 0.899, 1.501, 2, "GND", "RECT"], ["U20", "41", 80.775, 68.9, 0.899, 0.899, 2, "GND", "RECT"], ["U20", "41", 80.775, 67.5, 0.899, 0.899, 2, "GND", "RECT"], ["U20", "41", 80.775, 66.101, 0.899, 0.899, 2, "GND", "RECT"], ["U20", "41", 83.576, 66.101, 0.899, 0.899, 2, "GND", "RECT"], ["U20", "41", 83.576, 67.5, 0.899, 0.899, 2, "GND", "RECT"], ["U20", "41", 83.576, 68.9, 0.899, 0.899, 2, "GND", "RECT"], ["U20", "41", 82.174, 68.9, 0.899, 0.899, 2, "GND", "RECT"], ["U20", "41", 82.174, 66.101, 0.899, 0.899, 2, "GND", "RECT"], ["U20", "41", 82.174, 67.5, 0.899, 0.899, 2, "GND", "RECT"], ["U29", "1", 1.25, 44.801, 1.001, 0.65, 2, "BLD_REF", "RECT"], ["U29", "2", 1.25, 46.7, 1.001, 0.65, 2, "BLD_A", "RECT"], ["U29", "3", 3.251, 45.75, 1.001, 0.65, 2, "GND", "RECT"], ["U30", "3", 18.349, 67.551, 1.1, 0.599, 2, "+12V", "RECT"], ["U30", "2", 18.349, 68.501, 1.1, 0.599, 2, "$2N70", "RECT"], ["U30", "1", 18.349, 69.451, 1.1, 0.599, 2, "GND", "RECT"], ["U30", "6", 15.649, 69.451, 1.1, 0.599, 2, "$2N74", "RECT"], ["U30", "5", 15.649, 68.501, 1.1, 0.599, 2, "+12V", "RECT"], ["U30", "4", 15.649, 67.551, 1.1, 0.599, 2, "$2N72", "RECT"], ["U31", "1", 77.031, 23.701, 2.499, 1.1, 2, "GND", "RECT"], ["U31", "2", 77.031, 25.999, 2.499, 1.1, 2, "+3V3_HUB", "RECT"], ["U31", "3", 77.031, 28.301, 2.499, 1.1, 2, "+5V", "RECT"], ["U31", "4", 82.969, 25.999, 2.339, 3.599, 2, "+3V3_HUB", "RECT"], ["U32", "16", 55.25, 43.03, 0.3, 0.851, 2, "", "OVAL"], ["U32", "15", 54.75, 43.03, 0.3, 0.851, 2, "", "OVAL"], ["U32", "14", 54.249, 43.03, 0.3, 0.851, 2, "", "OVAL"], ["U32", "13", 53.749, 43.03, 0.3, 0.851, 2, "+3V3_HUB", "OVAL"], ["U32", "12", 53.251, 43.03, 0.3, 0.851, 2, "USB5_DP", "OVAL"], ["U32", "11", 52.751, 43.03, 0.3, 0.851, 2, "USB5_DM", "OVAL"], ["U32", "10", 52.25, 43.03, 0.3, 0.851, 2, "+3V3_HUB", "OVAL"], ["U32", "9", 51.75, 43.03, 0.3, 0.851, 2, "USB4_DP", "OVAL"], ["U32", "8", 51.25, 43.03, 0.3, 0.851, 2, "USB4_DM", "OVAL"], ["U32", "7", 50.749, 43.03, 0.3, 0.851, 2, "USB3_DP", "OVAL"], ["U32", "6", 50.249, 43.03, 0.3, 0.851, 2, "USB3_DM", "OVAL"], ["U32", "5", 49.751, 43.03, 0.3, 0.851, 2, "+3V3_HUB", "OVAL"], ["U32", "4", 49.251, 43.03, 0.3, 0.851, 2, "USB2_DP", "OVAL"], ["U32", "3", 48.75, 43.03, 0.3, 0.851, 2, "USB2_DM", "OVAL"], ["U32", "2", 48.25, 43.03, 0.3, 0.851, 2, "USB1_DP", "OVAL"], ["U32", "1", 47.749, 43.03, 0.3, 0.851, 2, "USB1_DM", "OVAL"], ["U32", "17", 55.951, 42.329, 0.851, 0.3, 2, "", "OVAL"], ["U32", "18", 55.951, 41.831, 0.851, 0.3, 2, "", "OVAL"], ["U32", "19", 55.951, 41.331, 0.851, 0.3, 2, "GND", "OVAL"], ["U32", "20", 55.951, 40.83, 0.851, 0.3, 2, "", "OVAL"], ["U32", "21", 55.951, 40.33, 0.851, 0.3, 2, "", "OVAL"], ["U32", "22", 55.951, 39.83, 0.851, 0.3, 2, "", "OVAL"], ["U32", "23", 55.951, 39.329, 0.851, 0.3, 2, "", "OVAL"], ["U32", "24", 55.951, 38.829, 0.851, 0.3, 2, "+3V3_HUB", "OVAL"], ["U32", "25", 55.951, 38.331, 0.851, 0.3, 2, "VDD18", "OVAL"], ["U32", "26", 55.951, 37.831, 0.851, 0.3, 2, "", "OVAL"], ["U32", "27", 55.951, 37.33, 0.851, 0.3, 2, "", "OVAL"], ["U32", "28", 55.951, 36.83, 0.851, 0.3, 2, "", "OVAL"], ["U32", "29", 55.951, 36.33, 0.851, 0.3, 2, "", "OVAL"], ["U32", "30", 55.951, 35.829, 0.851, 0.3, 2, "", "OVAL"], ["U32", "31", 55.951, 35.329, 0.851, 0.3, 2, "", "OVAL"], ["U32", "32", 55.951, 34.831, 0.851, 0.3, 2, "", "OVAL"], ["U32", "33", 55.25, 34.13, 0.3, 0.851, 2, "", "OVAL"], ["U32", "34", 54.75, 34.13, 0.3, 0.851, 2, "", "OVAL"], ["U32", "35", 54.249, 34.13, 0.3, 0.851, 2, "", "OVAL"], ["U32", "36", 53.749, 34.13, 0.3, 0.851, 2, "", "OVAL"], ["U32", "37", 53.251, 34.13, 0.3, 0.851, 2, "", "OVAL"], ["U32", "38", 52.751, 34.13, 0.3, 0.851, 2, "", "OVAL"], ["U32", "39", 52.25, 34.13, 0.3, 0.851, 2, "", "OVAL"], ["U32", "40", 51.75, 34.13, 0.3, 0.851, 2, "NONREM1", "OVAL"], ["U32", "41", 51.25, 34.13, 0.3, 0.851, 2, "CFGSEL0", "OVAL"], ["U32", "42", 50.749, 34.13, 0.3, 0.851, 2, "CFGSEL1", "OVAL"], ["U32", "43", 50.251, 34.13, 0.3, 0.851, 2, "HUB_RST", "OVAL"], ["U32", "44", 49.751, 34.13, 0.3, 0.851, 2, "VBUS_DET", "OVAL"], ["U32", "45", 49.251, 34.13, 0.3, 0.851, 2, "NONREM0", "OVAL"], ["U32", "46", 48.75, 34.13, 0.3, 0.851, 2, "+3V3_HUB", "OVAL"], ["U32", "47", 48.25, 34.13, 0.3, 0.851, 2, "", "OVAL"], ["U32", "48", 47.749, 34.13, 0.3, 0.851, 2, "", "OVAL"], ["U32", "49", 47.051, 34.831, 0.851, 0.3, 2, "", "OVAL"], ["U32", "50", 47.051, 35.329, 0.851, 0.3, 2, "", "OVAL"], ["U32", "51", 47.051, 35.829, 0.851, 0.3, 2, "", "OVAL"], ["U32", "52", 47.051, 36.33, 0.851, 0.3, 2, "+3V3_HUB", "OVAL"], ["U32", "53", 47.051, 36.83, 0.851, 0.3, 2, "USB6_DM", "OVAL"], ["U32", "54", 47.051, 37.33, 0.851, 0.3, 2, "USB6_DP", "OVAL"], ["U32", "55", 47.051, 37.831, 0.851, 0.3, 2, "", "OVAL"], ["U32", "56", 47.051, 38.331, 0.851, 0.3, 2, "", "OVAL"], ["U32", "57", 47.051, 38.829, 0.851, 0.3, 2, "+3V3_HUB", "OVAL"], ["U32", "58", 47.051, 39.329, 0.851, 0.3, 2, "UP_DM", "OVAL"], ["U32", "59", 47.051, 39.83, 0.851, 0.3, 2, "UP_DP", "OVAL"], ["U32", "60", 47.051, 40.33, 0.851, 0.3, 2, "XTAL2", "OVAL"], ["U32", "61", 47.051, 40.83, 0.851, 0.3, 2, "XTAL1", "OVAL"], ["U32", "62", 47.051, 41.331, 0.851, 0.3, 2, "VDD18PLL", "OVAL"], ["U32", "63", 47.051, 41.831, 0.851, 0.3, 2, "RBIAS", "OVAL"], ["U32", "64", 47.051, 42.329, 0.851, 0.3, 2, "+3V3_HUB", "OVAL"], ["U32", "65", 51.501, 38.58, 4.801, 4.801, 2, "GND", "RECT"], ["U35", "6", 38.674, 62.182, 0.399, 1.651, 2, "SDA2", "RECT"], ["U35", "5", 38.026, 62.182, 0.399, 1.651, 2, "SCL1", "RECT"], ["U35", "4", 37.376, 62.182, 0.399, 1.651, 2, "SDA1", "RECT"], ["U35", "3", 36.726, 62.182, 0.399, 1.651, 2, "MUX_RST#", "RECT"], ["U35", "2", 36.076, 62.182, 0.399, 1.651, 2, "GND", "RECT"], ["U35", "1", 35.425, 62.182, 0.399, 1.651, 2, "GND", "RECT"], ["U35", "7", 39.324, 62.182, 0.399, 1.651, 2, "SCL2", "RECT"], ["U35", "12", 42.575, 62.182, 0.399, 1.651, 2, "GND", "RECT"], ["U35", "11", 41.925, 62.182, 0.399, 1.651, 2, "SCL4", "RECT"], ["U35", "10", 41.275, 62.182, 0.399, 1.651, 2, "SDA4", "RECT"], ["U35", "9", 40.625, 62.182, 0.399, 1.651, 2, "SCL3", "RECT"], ["U35", "8", 39.975, 62.182, 0.399, 1.651, 2, "SDA3", "RECT"], ["U35", "20", 38.026, 56.137, 0.399, 1.651, 2, "", "RECT"], ["U35", "21", 37.376, 56.137, 0.399, 1.651, 2, "GND", "RECT"], ["U35", "22", 36.726, 56.137, 0.399, 1.651, 2, "SCL", "RECT"], ["U35", "23", 36.076, 56.137, 0.399, 1.651, 2, "SDA", "RECT"], ["U35", "24", 35.425, 56.137, 0.399, 1.651, 2, "+3V3", "RECT"], ["U35", "19", 38.674, 56.137, 0.399, 1.651, 2, "", "RECT"], ["U35", "13", 42.575, 56.137, 0.399, 1.651, 2, "SDA5", "RECT"], ["U35", "14", 41.925, 56.137, 0.399, 1.651, 2, "SCL5", "RECT"], ["U35", "15", 41.275, 56.137, 0.399, 1.651, 2, "", "RECT"], ["U35", "16", 40.625, 56.137, 0.399, 1.651, 2, "", "RECT"], ["U35", "17", 39.975, 56.137, 0.399, 1.651, 2, "", "RECT"], ["U35", "18", 39.324, 56.137, 0.399, 1.651, 2, "", "RECT"], ["Y1", "1", 43.65, 42.781, 1.199, 1.4, 2, "XTAL1", "RECT"], ["Y1", "2", 43.65, 40.579, 1.199, 1.4, 2, "GND", "RECT"], ["Y1", "3", 41.951, 40.579, 1.199, 1.4, 2, "XTAL2", "RECT"], ["Y1", "4", 41.951, 42.781, 1.199, 1.4, 2, "GND", "RECT"]] \ No newline at end of file +[["C2", "2", 3.749, 35.001, 1.6, 1.6, 12, "GND", "ELLIPSE"], ["C2", "1", 7.249, 35.001, 1.6, 1.6, 12, "VIN_SW", "ELLIPSE"], ["C3", "2", 21.25, 35.001, 1.6, 1.6, 12, "GND", "ELLIPSE"], ["C3", "1", 17.75, 35.001, 1.6, 1.6, 12, "VIN_SW", "ELLIPSE"], ["C4", "2", 16.5, 45.999, 1.41, 1.349, 2, "VIN_SW", "RECT"], ["C4", "1", 18.499, 45.999, 1.41, 1.349, 2, "GND", "RECT"], ["C5", "2", 1.501, 20.749, 1.349, 1.41, 2, "VIN_SW", "RECT"], ["C5", "1", 1.501, 22.751, 1.349, 1.41, 2, "GND", "RECT"], ["C6", "2", 12.08, 38.75, 0.5, 0.541, 2, "VIN_SW", "RECT"], ["C6", "1", 12.921, 38.75, 0.5, 0.541, 2, "GND", "RECT"], ["C7", "2", 7.249, 65.75, 1.41, 1.349, 2, "+12V", "RECT"], ["C7", "1", 5.25, 65.75, 1.41, 1.349, 2, "GND", "RECT"], ["C8", "2", 7, 71.92, 0.541, 0.5, 2, "BST3V3", "RECT"], ["C8", "1", 7, 71.079, 0.541, 0.5, 2, "SW3V3", "RECT"], ["C9", "2", 14.092, 65.25, 1.486, 1.727, 2, "+3V3", "RECT"], ["C9", "1", 10.907, 65.25, 1.486, 1.727, 2, "GND", "RECT"], ["C10", "2", 14.092, 71.75, 1.486, 1.727, 2, "+3V3", "RECT"], ["C10", "1", 10.907, 71.75, 1.486, 1.727, 2, "GND", "RECT"], ["C11", "2", 17.92, 41.25, 0.5, 0.541, 2, "GND", "RECT"], ["C11", "1", 17.079, 41.25, 0.5, 0.541, 2, "+3V3", "RECT"], ["C601", "2", 88.842, 56.5, 1.486, 1.727, 2, "+3V3", "RECT"], ["C601", "1", 85.656, 56.5, 1.486, 1.727, 2, "GND", "RECT"], ["C602", "2", 90.5, 56.919, 0.541, 0.5, 2, "+3V3", "RECT"], ["C602", "1", 90.5, 56.081, 0.541, 0.5, 2, "GND", "RECT"], ["C603", "2", 86.83, 54.249, 0.5, 0.541, 2, "GND", "RECT"], ["C603", "1", 87.671, 54.249, 0.5, 0.541, 2, "EN", "RECT"], ["C604", "2", 56.17, 55.001, 0.5, 0.541, 2, "GND", "RECT"], ["C604", "1", 55.329, 55.001, 0.5, 0.541, 2, "+3V3", "RECT"], ["C607", "2", 64.171, 55.001, 0.5, 0.541, 2, "GND", "RECT"], ["C607", "1", 63.33, 55.001, 0.5, 0.541, 2, "+3V3", "RECT"], ["C608", "2", 51.001, 63.749, 1.349, 1.41, 2, "GND", "RECT"], ["C608", "1", 51.001, 61.75, 1.349, 1.41, 2, "$3N384", "RECT"], ["C609", "2", 57.831, 54.501, 0.5, 0.541, 2, "$3N381", "RECT"], ["C609", "1", 58.669, 54.501, 0.5, 0.541, 2, "GND", "RECT"], ["C610", "2", 33, 56.67, 0.541, 0.5, 2, "GND", "RECT"], ["C610", "1", 33, 55.829, 0.541, 0.5, 2, "+3V3", "RECT"], ["C611", "2", 51.001, 58.75, 1.349, 1.41, 2, "GND", "RECT"], ["C611", "1", 51.001, 56.751, 1.349, 1.41, 2, "$3N400", "RECT"], ["C612", "2", 65.829, 54.501, 0.5, 0.541, 2, "$3N397", "RECT"], ["C612", "1", 66.67, 54.501, 0.5, 0.541, 2, "GND", "RECT"], ["C731", "2", 1.75, 67.5, 1.349, 1.41, 2, "GND", "RECT"], ["C731", "1", 1.75, 69.499, 1.349, 1.41, 2, "+12V", "RECT"], ["C732", "2", 16.251, 65.75, 1.41, 1.349, 2, "GND", "RECT"], ["C732", "1", 18.25, 65.75, 1.41, 1.349, 2, "+12V", "RECT"], ["C733", "2", 19.329, 73.251, 0.5, 0.541, 2, "$2N70", "RECT"], ["C733", "1", 20.17, 73.251, 0.5, 0.541, 2, "$2N74", "RECT"], ["C734", "2", 23.409, 63.749, 1.486, 1.727, 2, "GND", "RECT"], ["C734", "1", 26.594, 63.749, 1.486, 1.727, 2, "+5V", "RECT"], ["C735", "2", 23.409, 61.25, 1.486, 1.727, 2, "GND", "RECT"], ["C735", "1", 26.594, 61.25, 1.486, 1.727, 2, "+5V", "RECT"], ["C736", "2", 90.67, 84, 0.5, 0.541, 2, "GND", "RECT"], ["C736", "1", 89.83, 84, 0.5, 0.541, 2, "NTC1", "RECT"], ["C737", "1", 74.501, 27.201, 1.359, 1.501, 2, "+3V3_HUB", "RECT"], ["C737", "2", 74.501, 24.801, 1.359, 1.501, 2, "GND", "RECT"], ["C738", "2", 7.925, 76.581, 1.727, 1.486, 2, "GND", "RECT"], ["C738", "1", 7.925, 79.766, 1.727, 1.486, 2, "FAN_12V_SW", "RECT"], ["C739", "2", 91.92, 81.75, 0.5, 0.541, 2, "GND", "RECT"], ["C739", "1", 91.079, 81.75, 0.5, 0.541, 2, "NTC2", "RECT"], ["C740", "2", 42.926, 41.999, 0.541, 0.5, 2, "GND", "RECT"], ["C740", "1", 42.926, 41.158, 0.541, 0.5, 2, "XTAL1", "RECT"], ["C741", "2", 41.148, 36.919, 0.541, 0.5, 2, "GND", "RECT"], ["C741", "1", 41.148, 37.757, 0.541, 0.5, 2, "XTAL2", "RECT"], ["C742", "2", 58.12, 38.199, 0.5, 0.541, 2, "GND", "RECT"], ["C742", "1", 57.28, 38.199, 0.5, 0.541, 2, "VDD18", "RECT"], ["C743", "2", 44.879, 41.641, 0.5, 0.541, 2, "GND", "RECT"], ["C743", "1", 45.72, 41.641, 0.5, 0.541, 2, "VDD18PLL", "RECT"], ["C744", "2", 42.761, 36.449, 0.5, 0.541, 2, "GND", "RECT"], ["C744", "1", 43.599, 36.449, 0.5, 0.541, 2, "+3V3_HUB", "RECT"], ["C745", "2", 42.761, 37.465, 0.5, 0.541, 2, "GND", "RECT"], ["C745", "1", 43.599, 37.465, 0.5, 0.541, 2, "+3V3_HUB", "RECT"], ["C746", "2", 44.879, 44.059, 0.5, 0.541, 2, "GND", "RECT"], ["C746", "1", 45.72, 44.059, 0.5, 0.541, 2, "+3V3_HUB", "RECT"], ["C747", "2", 52.949, 45.669, 0.541, 0.5, 2, "GND", "RECT"], ["C747", "1", 52.949, 44.831, 0.541, 0.5, 2, "+3V3_HUB", "RECT"], ["C748", "2", 58.12, 39.411, 0.5, 0.541, 2, "GND", "RECT"], ["C748", "1", 57.28, 39.411, 0.5, 0.541, 2, "+3V3_HUB", "RECT"], ["C749", "2", 48.75, 31.999, 0.541, 0.5, 2, "GND", "RECT"], ["C749", "1", 48.75, 32.84, 0.541, 0.5, 2, "+3V3_HUB", "RECT"], ["C750", "2", 49.2, 46.33, 0.541, 0.5, 2, "GND", "RECT"], ["C750", "1", 49.2, 45.489, 0.541, 0.5, 2, "+3V3_HUB", "RECT"], ["C751", "2", 66.5, 36.5, 1.41, 1.349, 2, "GND", "RECT"], ["C751", "1", 64.501, 36.5, 1.41, 1.349, 2, "+3V3_HUB", "RECT"], ["C752", "2", 75.999, 30.249, 1.41, 1.349, 2, "GND", "RECT"], ["C752", "1", 78.001, 30.249, 1.41, 1.349, 2, "+5V", "RECT"], ["C753", "2", 74.249, 29.67, 0.541, 0.5, 2, "GND", "RECT"], ["C753", "1", 74.249, 28.829, 0.541, 0.5, 2, "+5V", "RECT"], ["D1", "2", 12.499, 36.36, 2.192, 2.047, 2, "GND", "RECT"], ["D1", "1", 12.499, 31.638, 2.192, 2.047, 2, "VIN_SW", "RECT"], ["D2", "2", 12.192, 75.524, 1.999, 1.999, 2, "GND", "RECT"], ["D2", "1", 12.192, 79.924, 1.999, 1.999, 2, "FAN_12V_SW", "RECT"], ["DZ3", "2", 1.397, 83.995, 0.95, 1.199, 2, "$6N49", "RECT"], ["DZ3", "1", 1.397, 80.597, 0.95, 1.199, 2, "+12V", "RECT"], ["F1", "1", 12.499, 10.356, 1.727, 1.191, 2, "VIN_RAW", "RECT"], ["F1", "2", 12.499, 13.246, 1.727, 1.191, 2, "VIN_FUSED", "RECT"], ["J23", "B8", 85.75, 7.724, 0.3, 1.3, 2, "", "RECT"], ["J23", "A5", 85.25, 7.724, 0.3, 1.3, 2, "$4N577", "RECT"], ["J23", "B7", 84.75, 7.724, 0.3, 1.3, 2, "UP_DM", "RECT"], ["J23", "A6", 84.249, 7.724, 0.3, 1.3, 2, "UP_DP", "RECT"], ["J23", "A7", 83.749, 7.724, 0.3, 1.3, 2, "UP_DM", "RECT"], ["J23", "B6", 83.251, 7.724, 0.3, 1.3, 2, "UP_DP", "RECT"], ["J23", "A8", 82.751, 7.724, 0.3, 1.3, 2, "", "RECT"], ["J23", "B5", 82.25, 7.724, 0.3, 1.3, 2, "$4N579", "RECT"], ["J23", "A1B12", 87.35, 7.074, 0.3, 0, 2, "GND", "POLYRECT"], ["J23", "A1B12", 87.2, 7.724, 0.6, 1.3, 2, "GND", "POLYRECT"], ["J23", "A1B12", 87.05, 8.374, 0.3, 0, 2, "GND", "POLYRECT"], ["J23", "B1A12", 80.8, 7.724, 0.6, 1.3, 2, "GND", "POLYRECT"], ["J23", "B4A9", 81.6, 7.724, 0.6, 1.3, 2, "VBUS_UP", "POLYRECT"], ["J23", "A4B9", 86.55, 7.074, 0.3, 0, 2, "VBUS_UP", "POLYRECT"], ["J23", "A4B9", 86.4, 7.724, 0.6, 1.3, 2, "VBUS_UP", "POLYRECT"], ["J23", "A4B9", 86.25, 8.374, 0.3, 0, 2, "VBUS_UP", "POLYRECT"], ["J23", "2", 79.675, 2.776, 1.199, 1.801, 12, "GND", "OVAL"], ["J23", "1", 79.675, 6.955, 1.199, 1.999, 12, "GND", "OVAL"], ["J23", "4", 88.326, 6.955, 1.199, 1.999, 12, "GND", "OVAL"], ["J23", "3", 88.326, 2.776, 1.199, 1.801, 12, "GND", "OVAL"], ["J26", "1", 8.636, 94.29, 1.6, 1.6, 12, "GND", "RECT"], ["J26", "2", 11.176, 94.29, 1.6, 1.6, 12, "FAN_12V_SW", "ELLIPSE"], ["J26", "3", 13.716, 94.29, 1.6, 1.6, 12, "FAN_IN_TACH_RAW", "ELLIPSE"], ["J26", "4", 16.256, 94.29, 1.6, 1.6, 12, "FAN_PWM_L", "ELLIPSE"], ["J27", "1", 3.302, 84.442, 1.6, 1.6, 12, "GND", "RECT"], ["J27", "2", 5.842, 84.442, 1.6, 1.6, 12, "FAN_12V_SW", "ELLIPSE"], ["J27", "3", 8.382, 84.442, 1.6, 1.6, 12, "FAN_OUT_TACH_RAW", "ELLIPSE"], ["J27", "4", 10.922, 84.442, 1.6, 1.6, 12, "FAN_PWM_L", "ELLIPSE"], ["J33", "1", 74.92, 95.499, 1.699, 1.699, 12, "GND", "RECT"], ["J33", "2", 77.46, 95.499, 1.699, 1.699, 12, "TXD0", "ELLIPSE"], ["J33", "3", 80, 95.499, 1.699, 1.699, 12, "RXD0", "ELLIPSE"], ["J33", "4", 82.54, 95.499, 1.699, 1.699, 12, "EN", "ELLIPSE"], ["J33", "5", 85.08, 95.499, 1.699, 1.699, 12, "IO0", "ELLIPSE"], ["J34", "1", 32.499, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "2", 33.5, 93.241, 0.701, 1.999, 1, "+12V", "RECT"], ["J34", "3", 34.501, 93.241, 0.701, 1.999, 1, "+12V", "RECT"], ["J34", "4", 35.499, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "5", 36.5, 93.241, 0.701, 1.999, 1, "", "RECT"], ["J34", "6", 37.501, 93.241, 0.701, 1.999, 1, "", "RECT"], ["J34", "7", 38.499, 93.241, 0.701, 1.999, 1, "", "RECT"], ["J34", "8", 39.5, 93.241, 0.701, 1.999, 1, "", "RECT"], ["J34", "9", 40.5, 93.241, 0.701, 1.999, 1, "+3V3", "RECT"], ["J34", "10", 41.501, 93.241, 0.701, 1.999, 1, "+3V3", "RECT"], ["J34", "11", 42.499, 93.241, 0.701, 1.999, 1, "EFUSE_EN1", "RECT"], ["J34", "12", 45.499, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "13", 46.5, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "14", 47.501, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "15", 48.499, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "16", 49.5, 93.241, 0.701, 1.999, 1, "VDAC1", "RECT"], ["J34", "17", 50.5, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "18", 51.501, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "19", 52.499, 93.241, 0.701, 1.999, 1, "+5V", "RECT"], ["J34", "20", 53.5, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "21", 54.501, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "22", 55.499, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "23", 56.5, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "24", 57.501, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "25", 58.499, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "26", 59.499, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "27", 60.5, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "28", 61.501, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "29", 62.499, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "30", 63.5, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "31", 64.501, 93.241, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "32", 65.499, 93.241, 0.701, 1.999, 1, "+5V", "RECT"], ["J34", "33", 32.499, 86.04, 0.701, 1.999, 1, "+12V", "RECT"], ["J34", "34", 33.5, 86.04, 0.701, 1.999, 1, "+12V", "RECT"], ["J34", "35", 34.501, 86.04, 0.701, 1.999, 1, "+12V", "RECT"], ["J34", "36", 35.499, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "37", 36.5, 86.04, 0.701, 1.999, 1, "SCL1", "RECT"], ["J34", "38", 37.501, 86.04, 0.701, 1.999, 1, "SDA1", "RECT"], ["J34", "39", 38.499, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "40", 39.5, 86.04, 0.701, 1.999, 1, "+3V3", "RECT"], ["J34", "41", 40.5, 86.04, 0.701, 1.999, 1, "", "RECT"], ["J34", "42", 41.501, 86.04, 0.701, 1.999, 1, "", "RECT"], ["J34", "43", 42.499, 86.04, 0.701, 1.999, 1, "INT#", "RECT"], ["J34", "44", 45.499, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "45", 46.5, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "46", 47.501, 86.04, 0.701, 1.999, 1, "USB1_DP", "RECT"], ["J34", "47", 48.499, 86.04, 0.701, 1.999, 1, "USB1_DM", "RECT"], ["J34", "48", 49.5, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "49", 50.5, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "50", 51.501, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "51", 52.499, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "52", 53.5, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "53", 54.501, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "54", 55.499, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "55", 56.5, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "56", 57.501, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "57", 58.499, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "58", 59.499, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "59", 60.5, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "60", 61.501, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "61", 62.499, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "62", 63.5, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "63", 64.501, 86.04, 0.701, 1.999, 1, "PRSNT1#", "RECT"], ["J34", "64", 65.499, 86.04, 0.701, 1.999, 1, "GND", "RECT"], ["J34", "65", 29.5, 89.639, 3, 5.001, 1, "GND", "RECT"], ["J34", "65", 68.499, 89.639, 3, 5.001, 1, "GND", "RECT"], ["J35", "1", 32.499, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "2", 33.5, 72.921, 0.701, 1.999, 1, "+12V", "RECT"], ["J35", "3", 34.501, 72.921, 0.701, 1.999, 1, "+12V", "RECT"], ["J35", "4", 35.499, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "5", 36.5, 72.921, 0.701, 1.999, 1, "", "RECT"], ["J35", "6", 37.501, 72.921, 0.701, 1.999, 1, "", "RECT"], ["J35", "7", 38.499, 72.921, 0.701, 1.999, 1, "", "RECT"], ["J35", "8", 39.5, 72.921, 0.701, 1.999, 1, "", "RECT"], ["J35", "9", 40.5, 72.921, 0.701, 1.999, 1, "+3V3", "RECT"], ["J35", "10", 41.501, 72.921, 0.701, 1.999, 1, "+3V3", "RECT"], ["J35", "11", 42.499, 72.921, 0.701, 1.999, 1, "EFUSE_EN2", "RECT"], ["J35", "12", 45.499, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "13", 46.5, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "14", 47.501, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "15", 48.499, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "16", 49.5, 72.921, 0.701, 1.999, 1, "VDAC2", "RECT"], ["J35", "17", 50.5, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "18", 51.501, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "19", 52.499, 72.921, 0.701, 1.999, 1, "+5V", "RECT"], ["J35", "20", 53.5, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "21", 54.501, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "22", 55.499, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "23", 56.5, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "24", 57.501, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "25", 58.499, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "26", 59.499, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "27", 60.5, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "28", 61.501, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "29", 62.499, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "30", 63.5, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "31", 64.501, 72.921, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "32", 65.499, 72.921, 0.701, 1.999, 1, "+5V", "RECT"], ["J35", "33", 32.499, 65.72, 0.701, 1.999, 1, "+12V", "RECT"], ["J35", "34", 33.5, 65.72, 0.701, 1.999, 1, "+12V", "RECT"], ["J35", "35", 34.501, 65.72, 0.701, 1.999, 1, "+12V", "RECT"], ["J35", "36", 35.499, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "37", 36.5, 65.72, 0.701, 1.999, 1, "SCL2", "RECT"], ["J35", "38", 37.501, 65.72, 0.701, 1.999, 1, "SDA2", "RECT"], ["J35", "39", 38.499, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "40", 39.5, 65.72, 0.701, 1.999, 1, "+3V3", "RECT"], ["J35", "41", 40.5, 65.72, 0.701, 1.999, 1, "", "RECT"], ["J35", "42", 41.501, 65.72, 0.701, 1.999, 1, "", "RECT"], ["J35", "43", 42.499, 65.72, 0.701, 1.999, 1, "INT#", "RECT"], ["J35", "44", 45.499, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "45", 46.5, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "46", 47.501, 65.72, 0.701, 1.999, 1, "USB2_DP", "RECT"], ["J35", "47", 48.499, 65.72, 0.701, 1.999, 1, "USB2_DM", "RECT"], ["J35", "48", 49.5, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "49", 50.5, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "50", 51.501, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "51", 52.499, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "52", 53.5, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "53", 54.501, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "54", 55.499, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "55", 56.5, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "56", 57.501, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "57", 58.499, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "58", 59.499, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "59", 60.5, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "60", 61.501, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "61", 62.499, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "62", 63.5, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "63", 64.501, 65.72, 0.701, 1.999, 1, "PRSNT2#", "RECT"], ["J35", "64", 65.499, 65.72, 0.701, 1.999, 1, "GND", "RECT"], ["J35", "65", 29.5, 69.319, 3, 5.001, 1, "GND", "RECT"], ["J35", "65", 68.499, 69.319, 3, 5.001, 1, "GND", "RECT"], ["J36", "1", 32.499, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "2", 33.5, 52.601, 0.701, 1.999, 1, "+12V", "RECT"], ["J36", "3", 34.501, 52.601, 0.701, 1.999, 1, "+12V", "RECT"], ["J36", "4", 35.499, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "5", 36.5, 52.601, 0.701, 1.999, 1, "", "RECT"], ["J36", "6", 37.501, 52.601, 0.701, 1.999, 1, "", "RECT"], ["J36", "7", 38.499, 52.601, 0.701, 1.999, 1, "", "RECT"], ["J36", "8", 39.5, 52.601, 0.701, 1.999, 1, "", "RECT"], ["J36", "9", 40.5, 52.601, 0.701, 1.999, 1, "+3V3", "RECT"], ["J36", "10", 41.501, 52.601, 0.701, 1.999, 1, "+3V3", "RECT"], ["J36", "11", 42.499, 52.601, 0.701, 1.999, 1, "EFUSE_EN3", "RECT"], ["J36", "12", 45.499, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "13", 46.5, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "14", 47.501, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "15", 48.499, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "16", 49.5, 52.601, 0.701, 1.999, 1, "VDAC3", "RECT"], ["J36", "17", 50.5, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "18", 51.501, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "19", 52.499, 52.601, 0.701, 1.999, 1, "+5V", "RECT"], ["J36", "20", 53.5, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "21", 54.501, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "22", 55.499, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "23", 56.5, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "24", 57.501, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "25", 58.499, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "26", 59.499, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "27", 60.5, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "28", 61.501, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "29", 62.499, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "30", 63.5, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "31", 64.501, 52.601, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "32", 65.499, 52.601, 0.701, 1.999, 1, "+5V", "RECT"], ["J36", "33", 32.499, 45.4, 0.701, 1.999, 1, "+12V", "RECT"], ["J36", "34", 33.5, 45.4, 0.701, 1.999, 1, "+12V", "RECT"], ["J36", "35", 34.501, 45.4, 0.701, 1.999, 1, "+12V", "RECT"], ["J36", "36", 35.499, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "37", 36.5, 45.4, 0.701, 1.999, 1, "SCL3", "RECT"], ["J36", "38", 37.501, 45.4, 0.701, 1.999, 1, "SDA3", "RECT"], ["J36", "39", 38.499, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "40", 39.5, 45.4, 0.701, 1.999, 1, "+3V3", "RECT"], ["J36", "41", 40.5, 45.4, 0.701, 1.999, 1, "", "RECT"], ["J36", "42", 41.501, 45.4, 0.701, 1.999, 1, "", "RECT"], ["J36", "43", 42.499, 45.4, 0.701, 1.999, 1, "INT#", "RECT"], ["J36", "44", 45.499, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "45", 46.5, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "46", 47.501, 45.4, 0.701, 1.999, 1, "USB3_DP", "RECT"], ["J36", "47", 48.499, 45.4, 0.701, 1.999, 1, "USB3_DM", "RECT"], ["J36", "48", 49.5, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "49", 50.5, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "50", 51.501, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "51", 52.499, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "52", 53.5, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "53", 54.501, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "54", 55.499, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "55", 56.5, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "56", 57.501, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "57", 58.499, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "58", 59.499, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "59", 60.5, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "60", 61.501, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "61", 62.499, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "62", 63.5, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "63", 64.501, 45.4, 0.701, 1.999, 1, "PRSNT3#", "RECT"], ["J36", "64", 65.499, 45.4, 0.701, 1.999, 1, "GND", "RECT"], ["J36", "65", 29.5, 48.999, 3, 5.001, 1, "GND", "RECT"], ["J36", "65", 68.499, 48.999, 3, 5.001, 1, "GND", "RECT"], ["J37", "1", 32.499, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "2", 33.5, 32.281, 0.701, 1.999, 1, "+12V", "RECT"], ["J37", "3", 34.501, 32.281, 0.701, 1.999, 1, "+12V", "RECT"], ["J37", "4", 35.499, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "5", 36.5, 32.281, 0.701, 1.999, 1, "", "RECT"], ["J37", "6", 37.501, 32.281, 0.701, 1.999, 1, "", "RECT"], ["J37", "7", 38.499, 32.281, 0.701, 1.999, 1, "", "RECT"], ["J37", "8", 39.5, 32.281, 0.701, 1.999, 1, "", "RECT"], ["J37", "9", 40.5, 32.281, 0.701, 1.999, 1, "+3V3", "RECT"], ["J37", "10", 41.501, 32.281, 0.701, 1.999, 1, "+3V3", "RECT"], ["J37", "11", 42.499, 32.281, 0.701, 1.999, 1, "EFUSE_EN4", "RECT"], ["J37", "12", 45.499, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "13", 46.5, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "14", 47.501, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "15", 48.499, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "16", 49.5, 32.281, 0.701, 1.999, 1, "VDAC4", "RECT"], ["J37", "17", 50.5, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "18", 51.501, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "19", 52.499, 32.281, 0.701, 1.999, 1, "+5V", "RECT"], ["J37", "20", 53.5, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "21", 54.501, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "22", 55.499, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "23", 56.5, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "24", 57.501, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "25", 58.499, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "26", 59.499, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "27", 60.5, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "28", 61.501, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "29", 62.499, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "30", 63.5, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "31", 64.501, 32.281, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "32", 65.499, 32.281, 0.701, 1.999, 1, "+5V", "RECT"], ["J37", "33", 32.499, 25.08, 0.701, 1.999, 1, "+12V", "RECT"], ["J37", "34", 33.5, 25.08, 0.701, 1.999, 1, "+12V", "RECT"], ["J37", "35", 34.501, 25.08, 0.701, 1.999, 1, "+12V", "RECT"], ["J37", "36", 35.499, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "37", 36.5, 25.08, 0.701, 1.999, 1, "SCL4", "RECT"], ["J37", "38", 37.501, 25.08, 0.701, 1.999, 1, "SDA4", "RECT"], ["J37", "39", 38.499, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "40", 39.5, 25.08, 0.701, 1.999, 1, "+3V3", "RECT"], ["J37", "41", 40.5, 25.08, 0.701, 1.999, 1, "", "RECT"], ["J37", "42", 41.501, 25.08, 0.701, 1.999, 1, "", "RECT"], ["J37", "43", 42.499, 25.08, 0.701, 1.999, 1, "INT#", "RECT"], ["J37", "44", 45.499, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "45", 46.5, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "46", 47.501, 25.08, 0.701, 1.999, 1, "USB4_DP", "RECT"], ["J37", "47", 48.499, 25.08, 0.701, 1.999, 1, "USB4_DM", "RECT"], ["J37", "48", 49.5, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "49", 50.5, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "50", 51.501, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "51", 52.499, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "52", 53.5, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "53", 54.501, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "54", 55.499, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "55", 56.5, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "56", 57.501, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "57", 58.499, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "58", 59.499, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "59", 60.5, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "60", 61.501, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "61", 62.499, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "62", 63.5, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "63", 64.501, 25.08, 0.701, 1.999, 1, "PRSNT4#", "RECT"], ["J37", "64", 65.499, 25.08, 0.701, 1.999, 1, "GND", "RECT"], ["J37", "65", 29.5, 28.679, 3, 5.001, 1, "GND", "RECT"], ["J37", "65", 68.499, 28.679, 3, 5.001, 1, "GND", "RECT"], ["J38", "1", 32.499, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "2", 33.5, 11.961, 0.701, 1.999, 1, "+12V", "RECT"], ["J38", "3", 34.501, 11.961, 0.701, 1.999, 1, "+12V", "RECT"], ["J38", "4", 35.499, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "5", 36.5, 11.961, 0.701, 1.999, 1, "", "RECT"], ["J38", "6", 37.501, 11.961, 0.701, 1.999, 1, "", "RECT"], ["J38", "7", 38.499, 11.961, 0.701, 1.999, 1, "", "RECT"], ["J38", "8", 39.5, 11.961, 0.701, 1.999, 1, "", "RECT"], ["J38", "9", 40.5, 11.961, 0.701, 1.999, 1, "+3V3", "RECT"], ["J38", "10", 41.501, 11.961, 0.701, 1.999, 1, "+3V3", "RECT"], ["J38", "11", 42.499, 11.961, 0.701, 1.999, 1, "EFUSE_EN5", "RECT"], ["J38", "12", 45.499, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "13", 46.5, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "14", 47.501, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "15", 48.499, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "16", 49.5, 11.961, 0.701, 1.999, 1, "VDAC5", "RECT"], ["J38", "17", 50.5, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "18", 51.501, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "19", 52.499, 11.961, 0.701, 1.999, 1, "+5V", "RECT"], ["J38", "20", 53.5, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "21", 54.501, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "22", 55.499, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "23", 56.5, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "24", 57.501, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "25", 58.499, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "26", 59.499, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "27", 60.5, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "28", 61.501, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "29", 62.499, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "30", 63.5, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "31", 64.501, 11.961, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "32", 65.499, 11.961, 0.701, 1.999, 1, "+5V", "RECT"], ["J38", "33", 32.499, 4.76, 0.701, 1.999, 1, "+12V", "RECT"], ["J38", "34", 33.5, 4.76, 0.701, 1.999, 1, "+12V", "RECT"], ["J38", "35", 34.501, 4.76, 0.701, 1.999, 1, "+12V", "RECT"], ["J38", "36", 35.499, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "37", 36.5, 4.76, 0.701, 1.999, 1, "SCL5", "RECT"], ["J38", "38", 37.501, 4.76, 0.701, 1.999, 1, "SDA5", "RECT"], ["J38", "39", 38.499, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "40", 39.5, 4.76, 0.701, 1.999, 1, "+3V3", "RECT"], ["J38", "41", 40.5, 4.76, 0.701, 1.999, 1, "", "RECT"], ["J38", "42", 41.501, 4.76, 0.701, 1.999, 1, "", "RECT"], ["J38", "43", 42.499, 4.76, 0.701, 1.999, 1, "INT#", "RECT"], ["J38", "44", 45.499, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "45", 46.5, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "46", 47.501, 4.76, 0.701, 1.999, 1, "USB5_DP", "RECT"], ["J38", "47", 48.499, 4.76, 0.701, 1.999, 1, "USB5_DM", "RECT"], ["J38", "48", 49.5, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "49", 50.5, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "50", 51.501, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "51", 52.499, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "52", 53.5, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "53", 54.501, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "54", 55.499, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "55", 56.5, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "56", 57.501, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "57", 58.499, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "58", 59.499, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "59", 60.5, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "60", 61.501, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "61", 62.499, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "62", 63.5, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "63", 64.501, 4.76, 0.701, 1.999, 1, "PRSNT5#", "RECT"], ["J38", "64", 65.499, 4.76, 0.701, 1.999, 1, "GND", "RECT"], ["J38", "65", 29.5, 8.359, 3, 5.001, 1, "GND", "RECT"], ["J38", "65", 68.499, 8.359, 3, 5.001, 1, "GND", "RECT"], ["L2", "2", 12.601, 68.501, 1.6, 3.5, 2, "+3V3", "RECT"], ["L2", "1", 9.401, 68.501, 1.6, 3.5, 2, "SW3V3", "RECT"], ["L3", "1", 20.701, 68.501, 1.999, 3.401, 2, "$2N70", "RECT"], ["L3", "2", 26.299, 68.501, 1.999, 3.401, 2, "+5V", "RECT"], ["Q3", "1", 4.854, 49.233, 0.574, 2.035, 2, "+12V", "OVAL"], ["Q3", "2", 3.584, 49.233, 0.574, 2.035, 2, "+12V", "OVAL"], ["Q3", "3", 2.314, 49.233, 0.574, 2.035, 2, "+12V", "OVAL"], ["Q3", "4", 1.044, 49.233, 0.574, 2.035, 2, "BLD_A", "OVAL"], ["Q3", "8", 4.854, 54.767, 0.574, 2.035, 2, "$1N213", "OVAL"], ["Q3", "7", 3.584, 54.767, 0.574, 2.035, 2, "$1N213", "OVAL"], ["Q3", "6", 2.314, 54.767, 0.574, 2.035, 2, "$1N213", "OVAL"], ["Q3", "5", 1.044, 54.767, 0.574, 2.035, 2, "$1N213", "OVAL"], ["Q6", "1", 23.053, 85.359, 0.65, 1.001, 2, "$6N55", "RECT"], ["Q6", "2", 21.153, 85.359, 0.65, 1.001, 2, "GND", "RECT"], ["Q6", "3", 22.103, 87.358, 0.65, 1.001, 2, "FAN_PWM_L", "RECT"], ["Q7", "2", 3.167, 80.579, 1.001, 0.8, 2, "+12V", "RECT"], ["Q7", "3", 5.469, 79.629, 1.001, 0.8, 2, "FAN_12V_SW", "RECT"], ["Q7", "1", 3.167, 78.679, 1.001, 0.8, 2, "$6N49", "RECT"], ["Q8", "1", 3.216, 75.253, 1.001, 0.65, 2, "$6N45", "RECT"], ["Q8", "2", 3.216, 77.152, 1.001, 0.65, 2, "GND", "RECT"], ["Q8", "3", 5.215, 76.203, 1.001, 0.65, 2, "$6N48", "RECT"], ["Q9", "1", 12.207, 88.966, 1.001, 0.65, 2, "$6N64", "RECT"], ["Q9", "2", 12.207, 90.866, 1.001, 0.65, 2, "GND", "RECT"], ["Q9", "3", 14.209, 89.916, 1.001, 0.65, 2, "FAN_TACH_IN", "RECT"], ["Q10", "1", 16.017, 80.203, 1.001, 0.65, 2, "$6N74", "RECT"], ["Q10", "2", 16.017, 82.103, 1.001, 0.65, 2, "GND", "RECT"], ["Q10", "3", 18.019, 81.153, 1.001, 0.65, 2, "FAN_TACH_OUT", "RECT"], ["R2", "2", 4.684, 71.25, 0.566, 0.541, 2, "+3V3", "RECT"], ["R2", "1", 3.818, 71.25, 0.566, 0.541, 2, "FB3V3", "RECT"], ["R3", "2", 3.183, 65.25, 0.566, 0.541, 2, "FB3V3", "RECT"], ["R3", "1", 2.316, 65.25, 0.566, 0.541, 2, "GND", "RECT"], ["R4", "2", 4.369, 42.418, 0.566, 0.541, 2, "+12V", "RECT"], ["R4", "1", 3.505, 42.418, 0.566, 0.541, 2, "BLD_REF", "RECT"], ["R5", "2", 4.318, 44.653, 0.541, 0.566, 2, "BLD_REF", "RECT"], ["R5", "1", 4.318, 45.517, 0.541, 0.566, 2, "GND", "RECT"], ["R6", "2", 4.369, 41.402, 0.566, 0.541, 2, "+12V", "RECT"], ["R6", "1", 3.505, 41.402, 0.566, 0.541, 2, "BLD_A", "RECT"], ["R9A", "2", 7.6, 48.933, 3.457, 1.283, 2, "$1N224", "RECT"], ["R9A", "1", 7.6, 55.067, 3.457, 1.283, 2, "$1N213", "RECT"], ["R9B", "2", 11.951, 55.067, 3.457, 1.283, 2, "$1N225", "RECT"], ["R9B", "1", 11.951, 48.933, 3.457, 1.283, 2, "$1N224", "RECT"], ["R9C", "2", 16.299, 48.933, 3.457, 1.283, 2, "$1N226", "RECT"], ["R9C", "1", 16.299, 55.067, 3.457, 1.283, 2, "$1N225", "RECT"], ["R9D", "2", 20.65, 55.067, 3.457, 1.283, 2, "$1N227", "RECT"], ["R9D", "1", 20.65, 48.933, 3.457, 1.283, 2, "$1N226", "RECT"], ["R9E", "2", 25.001, 48.933, 3.457, 1.283, 2, "GND", "RECT"], ["R9E", "1", 25.001, 55.067, 3.457, 1.283, 2, "$1N227", "RECT"], ["R601", "2", 82.934, 92.751, 0.566, 0.541, 2, "EN", "RECT"], ["R601", "1", 82.067, 92.751, 0.566, 0.541, 2, "+3V3", "RECT"], ["R602", "2", 82.682, 81.25, 0.566, 0.541, 2, "SDA", "RECT"], ["R602", "1", 81.816, 81.25, 0.566, 0.541, 2, "+3V3", "RECT"], ["R603", "2", 84.818, 81.25, 0.566, 0.541, 2, "SCL", "RECT"], ["R603", "1", 85.682, 81.25, 0.566, 0.541, 2, "+3V3", "RECT"], ["R604", "2", 75.933, 81.25, 0.566, 0.541, 2, "INT#", "RECT"], ["R604", "1", 75.067, 81.25, 0.566, 0.541, 2, "+3V3", "RECT"], ["R605", "2", 78.067, 81.25, 0.566, 0.541, 2, "INA_ALERT", "RECT"], ["R605", "1", 78.933, 81.25, 0.566, 0.541, 2, "+3V3", "RECT"], ["R606", "2", 81.432, 56.751, 0.566, 0.541, 2, "PRSNT1#", "RECT"], ["R606", "1", 80.566, 56.751, 0.566, 0.541, 2, "+3V3", "RECT"], ["R607", "2", 78.433, 56.751, 0.566, 0.541, 2, "PRSNT2#", "RECT"], ["R607", "1", 77.567, 56.751, 0.566, 0.541, 2, "+3V3", "RECT"], ["R608", "2", 75.433, 56.751, 0.566, 0.541, 2, "PRSNT3#", "RECT"], ["R608", "1", 74.567, 56.751, 0.566, 0.541, 2, "+3V3", "RECT"], ["R609", "2", 76.817, 54.501, 0.566, 0.541, 2, "PRSNT4#", "RECT"], ["R609", "1", 77.683, 54.501, 0.566, 0.541, 2, "+3V3", "RECT"], ["R610", "2", 72.433, 81.25, 0.566, 0.541, 2, "PRSNT5#", "RECT"], ["R610", "1", 71.567, 81.25, 0.566, 0.541, 2, "+3V3", "RECT"], ["R611", "2", 81.432, 83.5, 0.566, 0.541, 2, "MUX_RST#", "RECT"], ["R611", "1", 80.566, 83.5, 0.566, 0.541, 2, "+3V3", "RECT"], ["R614", "2", 53.683, 54, 0.566, 0.541, 2, "$3N381", "RECT"], ["R614", "1", 52.817, 54, 0.566, 0.541, 2, "+3V3", "RECT"], ["R615", "2", 55.682, 63.749, 0.566, 0.541, 2, "$3N389", "RECT"], ["R615", "1", 54.818, 63.749, 0.566, 0.541, 2, "GND", "RECT"], ["R616", "2", 61.684, 54.501, 0.566, 0.541, 2, "$3N397", "RECT"], ["R616", "1", 60.818, 54.501, 0.566, 0.541, 2, "+3V3", "RECT"], ["R617", "2", 63.683, 63.749, 0.566, 0.541, 2, "$3N405", "RECT"], ["R617", "1", 62.817, 63.749, 0.566, 0.541, 2, "GND", "RECT"], ["R660", "2", 88.933, 81.25, 0.566, 0.541, 2, "NTC1", "RECT"], ["R660", "1", 88.067, 81.25, 0.566, 0.541, 2, "+3V3", "RECT"], ["R661", "2", 87.683, 83.5, 0.566, 0.541, 2, "NTC2", "RECT"], ["R661", "1", 86.817, 83.5, 0.566, 0.541, 2, "+3V3", "RECT"], ["R706", "2", 16.317, 71.25, 0.566, 0.541, 2, "$2N72", "RECT"], ["R706", "1", 17.183, 71.25, 0.566, 0.541, 2, "+5V", "RECT"], ["R707", "2", 17.183, 63.5, 0.566, 0.541, 2, "GND", "RECT"], ["R707", "1", 16.317, 63.5, 0.566, 0.541, 2, "$2N72", "RECT"], ["R708", "2", 44.867, 42.85, 0.566, 0.541, 2, "GND", "RECT"], ["R708", "1", 45.733, 42.85, 0.566, 0.541, 2, "RBIAS", "RECT"], ["R709", "2", 51.181, 30.277, 0.541, 0.566, 2, "VBUS_DET", "RECT"], ["R709", "1", 51.181, 29.413, 0.541, 0.566, 2, "VBUS_UP", "RECT"], ["R710", "2", 50.165, 29.413, 0.541, 0.566, 2, "GND", "RECT"], ["R710", "1", 50.165, 30.277, 0.541, 0.566, 2, "VBUS_DET", "RECT"], ["R711", "2", 54.229, 29.413, 0.541, 0.566, 2, "GND", "RECT"], ["R711", "1", 54.229, 30.277, 0.541, 0.566, 2, "CFGSEL0", "RECT"], ["R712", "2", 53.213, 29.413, 0.541, 0.566, 2, "GND", "RECT"], ["R712", "1", 53.213, 30.277, 0.541, 0.566, 2, "CFGSEL1", "RECT"], ["R716", "2", 52.197, 29.413, 0.541, 0.566, 2, "+3V3_HUB", "RECT"], ["R716", "1", 52.197, 30.277, 0.541, 0.566, 2, "HUB_RST", "RECT"], ["R717", "2", 84.818, 11.501, 0.566, 0.541, 2, "GND", "RECT"], ["R717", "1", 85.682, 11.501, 0.566, 0.541, 2, "$4N577", "RECT"], ["R718", "2", 81.816, 11.501, 0.566, 0.541, 2, "GND", "RECT"], ["R718", "1", 82.682, 11.501, 0.566, 0.541, 2, "$4N579", "RECT"], ["R719", "2", 55.245, 29.413, 0.541, 0.566, 2, "GND", "RECT"], ["R719", "1", 55.245, 30.277, 0.541, 0.566, 2, "NONREM1", "RECT"], ["R720", "2", 49.07, 29.413, 0.541, 0.566, 2, "GND", "RECT"], ["R720", "1", 49.07, 30.279, 0.541, 0.566, 2, "NONREM0", "RECT"], ["R721", "2", 89.251, 9.934, 0.541, 0.566, 2, "UP_VBUS_DET", "RECT"], ["R721", "1", 89.251, 9.068, 0.541, 0.566, 2, "VBUS_UP", "RECT"], ["R722", "2", 91.501, 10.432, 0.541, 0.566, 2, "GND", "RECT"], ["R722", "1", 91.501, 9.568, 0.541, 0.566, 2, "UP_VBUS_DET", "RECT"], ["R733", "2", 24.574, 85.41, 0.541, 0.566, 2, "$6N55", "RECT"], ["R733", "1", 24.574, 84.544, 0.541, 0.566, 2, "FAN_PWM", "RECT"], ["R734", "2", 22.139, 83.657, 0.566, 0.541, 2, "GND", "RECT"], ["R734", "1", 23.005, 83.657, 0.566, 0.541, 2, "$6N55", "RECT"], ["R746", "2", 3.632, 82.042, 0.566, 0.541, 2, "+12V", "RECT"], ["R746", "1", 4.496, 82.042, 0.566, 0.541, 2, "$6N49", "RECT"], ["R747", "2", 5.936, 78.486, 0.541, 0.566, 2, "$6N49", "RECT"], ["R747", "1", 5.936, 77.62, 0.541, 0.566, 2, "$6N48", "RECT"], ["R748", "2", 4.648, 73.914, 0.566, 0.541, 2, "$6N45", "RECT"], ["R748", "1", 5.512, 73.914, 0.566, 0.541, 2, "FAN_EN", "RECT"], ["R749", "2", 3.607, 73.914, 0.566, 0.541, 2, "$6N45", "RECT"], ["R749", "1", 2.743, 73.914, 0.566, 0.541, 2, "GND", "RECT"], ["R750", "2", 9.474, 91.313, 0.566, 0.541, 2, "FAN_12V_SW", "RECT"], ["R750", "1", 10.338, 91.313, 0.566, 0.541, 2, "FAN_IN_TACH_RAW", "RECT"], ["R751", "2", 10.541, 89.84, 0.541, 0.566, 2, "FAN_IN_TACH_RAW", "RECT"], ["R751", "1", 10.541, 88.976, 0.541, 0.566, 2, "$6N64", "RECT"], ["R752", "2", 12.268, 87.884, 0.566, 0.541, 2, "$6N64", "RECT"], ["R752", "1", 13.132, 87.884, 0.566, 0.541, 2, "GND", "RECT"], ["R753", "2", 15.621, 89.967, 0.541, 0.566, 2, "FAN_TACH_IN", "RECT"], ["R753", "1", 15.621, 89.103, 0.541, 0.566, 2, "+3V3", "RECT"], ["R754", "2", 12.141, 82.55, 0.566, 0.541, 2, "FAN_12V_SW", "RECT"], ["R754", "1", 13.005, 82.55, 0.566, 0.541, 2, "FAN_OUT_TACH_RAW", "RECT"], ["R755", "2", 14.529, 81.077, 0.541, 0.566, 2, "FAN_OUT_TACH_RAW", "RECT"], ["R755", "1", 14.529, 80.213, 0.541, 0.566, 2, "$6N74", "RECT"], ["R756", "2", 16.078, 78.867, 0.566, 0.541, 2, "$6N74", "RECT"], ["R756", "1", 16.942, 78.867, 0.566, 0.541, 2, "GND", "RECT"], ["R757", "2", 18.11, 83.566, 0.566, 0.541, 2, "FAN_TACH_OUT", "RECT"], ["R757", "1", 18.974, 83.566, 0.566, 0.541, 2, "+3V3", "RECT"], ["Rs6", "2", 12.499, 46.566, 3.457, 1.283, 2, "+12V", "RECT"], ["Rs6", "1", 12.499, 40.434, 3.457, 1.283, 2, "VIN_SW", "RECT"], ["RT601", "2", 86.754, 25.999, 0.808, 0.864, 2, "GND", "RECT"], ["RT601", "1", 85.247, 25.999, 0.808, 0.864, 2, "NTC1", "RECT"], ["RT602", "2", 26.901, 20.053, 0.864, 0.808, 2, "GND", "RECT"], ["RT602", "1", 26.901, 18.547, 0.864, 0.808, 2, "NTC2", "RECT"], ["U6", "17", 56, 59.335, 1.7, 1.35, 2, "GND", "POLYRECT"], ["U6", "16", 55.25, 57.661, 0.279, 0.8, 2, "$3N381", "RECT"], ["U6", "15", 55.75, 57.661, 0.279, 0.8, 2, "+3V3", "RECT"], ["U6", "14", 56.251, 57.661, 0.279, 0.8, 2, "GND", "RECT"], ["U6", "13", 56.749, 57.661, 0.279, 0.8, 2, "$3N384", "RECT"], ["U6", "12", 57.501, 58.41, 0.8, 0.279, 2, "VDAC2", "RECT"], ["U6", "11", 57.501, 58.91, 0.8, 0.279, 2, "VDAC2", "RECT"], ["U6", "10", 57.501, 59.411, 0.8, 0.279, 2, "VDAC4", "RECT"], ["U6", "9", 57.501, 59.911, 0.8, 0.279, 2, "VDAC4", "RECT"], ["U6", "8", 56.749, 60.66, 0.279, 0.8, 2, "SDA", "RECT"], ["U6", "7", 56.251, 60.66, 0.279, 0.8, 2, "SDA", "RECT"], ["U6", "6", 55.75, 60.66, 0.279, 0.8, 2, "SCL", "RECT"], ["U6", "5", 55.25, 60.66, 0.279, 0.8, 2, "$3N389", "RECT"], ["U6", "4", 54.501, 59.911, 0.8, 0.279, 2, "VDAC1", "RECT"], ["U6", "3", 54.501, 59.411, 0.8, 0.279, 2, "VDAC1", "RECT"], ["U6", "2", 54.501, 58.91, 0.8, 0.279, 2, "", "RECT"], ["U6", "1", 54.501, 58.41, 0.8, 0.279, 2, "", "RECT"], ["U7", "17", 64, 59.335, 1.7, 1.35, 2, "GND", "POLYRECT"], ["U7", "16", 63.251, 57.661, 0.279, 0.8, 2, "$3N397", "RECT"], ["U7", "15", 63.749, 57.661, 0.279, 0.8, 2, "+3V3", "RECT"], ["U7", "14", 64.249, 57.661, 0.279, 0.8, 2, "GND", "RECT"], ["U7", "13", 64.75, 57.661, 0.279, 0.8, 2, "$3N400", "RECT"], ["U7", "12", 65.499, 58.41, 0.8, 0.279, 2, "VDAC3", "RECT"], ["U7", "11", 65.499, 58.91, 0.8, 0.279, 2, "VDAC3", "RECT"], ["U7", "10", 65.499, 59.411, 0.8, 0.279, 2, "VDAC5", "RECT"], ["U7", "9", 65.499, 59.911, 0.8, 0.279, 2, "VDAC5", "RECT"], ["U7", "8", 64.75, 60.66, 0.279, 0.8, 2, "SDA", "RECT"], ["U7", "7", 64.249, 60.66, 0.279, 0.8, 2, "SCL", "RECT"], ["U7", "6", 63.749, 60.66, 0.279, 0.8, 2, "SCL", "RECT"], ["U7", "5", 63.251, 60.66, 0.279, 0.8, 2, "$3N405", "RECT"], ["U7", "4", 62.499, 59.911, 0.8, 0.279, 2, "", "RECT"], ["U7", "3", 62.499, 59.411, 0.8, 0.279, 2, "", "RECT"], ["U7", "2", 62.499, 58.91, 0.8, 0.279, 2, "", "RECT"], ["U7", "1", 62.499, 58.41, 0.8, 0.279, 2, "", "RECT"], ["U13", "1", 21.61, 44.501, 1.621, 0.279, 2, "GND", "OVAL"], ["U13", "2", 21.61, 44, 1.621, 0.279, 2, "SCL", "OVAL"], ["U13", "3", 21.61, 43.5, 1.621, 0.279, 2, "INA_ALERT", "OVAL"], ["U13", "4", 21.61, 43, 1.621, 0.279, 2, "SDA", "OVAL"], ["U13", "5", 21.61, 42.499, 1.621, 0.279, 2, "SCL", "OVAL"], ["U13", "10", 17.389, 44.501, 1.621, 0.279, 2, "+12V", "OVAL"], ["U13", "9", 17.389, 44, 1.621, 0.279, 2, "VIN_SW", "OVAL"], ["U13", "8", 17.389, 43.5, 1.621, 0.279, 2, "+12V", "OVAL"], ["U13", "7", 17.389, 43, 1.621, 0.279, 2, "GND", "OVAL"], ["U13", "6", 17.389, 42.499, 1.621, 0.279, 2, "+3V3", "OVAL"], ["U19", "3", 6.35, 67.551, 1.1, 0.599, 2, "+12V", "RECT"], ["U19", "2", 6.35, 68.501, 1.1, 0.599, 2, "SW3V3", "RECT"], ["U19", "1", 6.35, 69.451, 1.1, 0.599, 2, "GND", "RECT"], ["U19", "6", 3.65, 69.451, 1.1, 0.599, 2, "BST3V3", "RECT"], ["U19", "5", 3.65, 68.501, 1.1, 0.599, 2, "+12V", "RECT"], ["U19", "4", 3.65, 67.551, 1.1, 0.599, 2, "FB3V3", "RECT"], ["U20", "1", 89.896, 60.249, 0.899, 1.501, 2, "GND", "RECT"], ["U20", "2", 88.626, 60.249, 0.899, 1.501, 2, "+3V3", "RECT"], ["U20", "3", 87.356, 60.249, 0.899, 1.501, 2, "EN", "RECT"], ["U20", "4", 86.086, 60.249, 0.899, 1.501, 2, "NTC1", "RECT"], ["U20", "5", 84.816, 60.249, 0.899, 1.501, 2, "NTC2", "RECT"], ["U20", "6", 83.546, 60.249, 0.899, 1.501, 2, "UP_VBUS_DET", "RECT"], ["U20", "7", 82.276, 60.249, 0.899, 1.501, 2, "PRSNT5#", "RECT"], ["U20", "8", 81.006, 60.249, 0.899, 1.501, 2, "PRSNT1#", "RECT"], ["U20", "9", 79.736, 60.249, 0.899, 1.501, 2, "PRSNT2#", "RECT"], ["U20", "10", 78.466, 60.249, 0.899, 1.501, 2, "PRSNT3#", "RECT"], ["U20", "11", 77.196, 60.249, 0.899, 1.501, 2, "PRSNT4#", "RECT"], ["U20", "12", 75.926, 60.249, 0.899, 1.501, 2, "HUB_RST", "RECT"], ["U20", "13", 74.656, 60.249, 0.899, 1.501, 2, "USB6_DM", "RECT"], ["U20", "14", 73.386, 60.249, 0.899, 1.501, 2, "USB6_DP", "RECT"], ["U20", "15", 72.106, 62.014, 1.501, 0.899, 2, "", "RECT"], ["U20", "16", 72.106, 63.284, 1.501, 0.899, 2, "", "RECT"], ["U20", "17", 72.106, 64.554, 1.501, 0.899, 2, "EFUSE_EN1", "RECT"], ["U20", "18", 72.106, 65.824, 1.501, 0.899, 2, "EFUSE_EN2", "RECT"], ["U20", "19", 72.106, 67.094, 1.501, 0.899, 2, "EFUSE_EN3", "RECT"], ["U20", "20", 72.106, 68.364, 1.501, 0.899, 2, "EFUSE_EN4", "RECT"], ["U20", "21", 72.106, 69.634, 1.501, 0.899, 2, "EFUSE_EN5", "RECT"], ["U20", "22", 72.106, 70.904, 1.501, 0.899, 2, "FAN_TACH_OUT", "RECT"], ["U20", "23", 72.106, 72.174, 1.501, 0.899, 2, "FAN_TACH_IN", "RECT"], ["U20", "24", 72.106, 73.444, 1.501, 0.899, 2, "FAN_PWM", "RECT"], ["U20", "25", 72.106, 74.714, 1.501, 0.899, 2, "FAN_EN", "RECT"], ["U20", "26", 72.136, 75.984, 1.501, 0.899, 2, "", "RECT"], ["U20", "27", 73.386, 77.749, 0.899, 1.501, 2, "IO0", "RECT"], ["U20", "28", 74.656, 77.749, 0.899, 1.501, 2, "", "RECT"], ["U20", "29", 75.926, 77.749, 0.899, 1.501, 2, "", "RECT"], ["U20", "30", 77.196, 77.749, 0.899, 1.501, 2, "", "RECT"], ["U20", "31", 78.466, 77.749, 0.899, 1.501, 2, "INA_ALERT", "RECT"], ["U20", "32", 79.736, 77.749, 0.899, 1.501, 2, "INT#", "RECT"], ["U20", "33", 81.006, 77.749, 0.899, 1.501, 2, "MUX_RST#", "RECT"], ["U20", "34", 82.276, 77.749, 0.899, 1.501, 2, "SDA", "RECT"], ["U20", "35", 83.546, 77.749, 0.899, 1.501, 2, "SCL", "RECT"], ["U20", "36", 84.816, 77.749, 0.899, 1.501, 2, "RXD0", "RECT"], ["U20", "37", 86.086, 77.749, 0.899, 1.501, 2, "TXD0", "RECT"], ["U20", "38", 87.356, 77.749, 0.899, 1.501, 2, "", "RECT"], ["U20", "39", 88.626, 77.749, 0.899, 1.501, 2, "", "RECT"], ["U20", "40", 89.896, 77.749, 0.899, 1.501, 2, "GND", "RECT"], ["U20", "41", 80.775, 68.9, 0.899, 0.899, 2, "GND", "RECT"], ["U20", "41", 80.775, 67.5, 0.899, 0.899, 2, "GND", "RECT"], ["U20", "41", 80.775, 66.101, 0.899, 0.899, 2, "GND", "RECT"], ["U20", "41", 83.576, 66.101, 0.899, 0.899, 2, "GND", "RECT"], ["U20", "41", 83.576, 67.5, 0.899, 0.899, 2, "GND", "RECT"], ["U20", "41", 83.576, 68.9, 0.899, 0.899, 2, "GND", "RECT"], ["U20", "41", 82.174, 68.9, 0.899, 0.899, 2, "GND", "RECT"], ["U20", "41", 82.174, 66.101, 0.899, 0.899, 2, "GND", "RECT"], ["U20", "41", 82.174, 67.5, 0.899, 0.899, 2, "GND", "RECT"], ["U29", "1", 2.982, 44.084, 0.65, 1.001, 2, "BLD_REF", "RECT"], ["U29", "2", 1.082, 44.084, 0.65, 1.001, 2, "BLD_A", "RECT"], ["U29", "3", 2.032, 46.086, 0.65, 1.001, 2, "GND", "RECT"], ["U30", "3", 18.349, 67.551, 1.1, 0.599, 2, "+12V", "RECT"], ["U30", "2", 18.349, 68.501, 1.1, 0.599, 2, "$2N70", "RECT"], ["U30", "1", 18.349, 69.451, 1.1, 0.599, 2, "GND", "RECT"], ["U30", "6", 15.649, 69.451, 1.1, 0.599, 2, "$2N74", "RECT"], ["U30", "5", 15.649, 68.501, 1.1, 0.599, 2, "+12V", "RECT"], ["U30", "4", 15.649, 67.551, 1.1, 0.599, 2, "$2N72", "RECT"], ["U31", "1", 77.031, 23.701, 2.499, 1.1, 2, "GND", "RECT"], ["U31", "2", 77.031, 25.999, 2.499, 1.1, 2, "+3V3_HUB", "RECT"], ["U31", "3", 77.031, 28.301, 2.499, 1.1, 2, "+5V", "RECT"], ["U31", "4", 82.969, 25.999, 2.339, 3.599, 2, "+3V3_HUB", "RECT"], ["U32", "16", 55.25, 43.03, 0.3, 0.851, 2, "", "OVAL"], ["U32", "15", 54.75, 43.03, 0.3, 0.851, 2, "", "OVAL"], ["U32", "14", 54.249, 43.03, 0.3, 0.851, 2, "", "OVAL"], ["U32", "13", 53.749, 43.03, 0.3, 0.851, 2, "GND", "OVAL"], ["U32", "12", 53.251, 43.03, 0.3, 0.851, 2, "USB5_DP", "OVAL"], ["U32", "11", 52.751, 43.03, 0.3, 0.851, 2, "USB5_DM", "OVAL"], ["U32", "10", 52.25, 43.03, 0.3, 0.851, 2, "+3V3_HUB", "OVAL"], ["U32", "9", 51.75, 43.03, 0.3, 0.851, 2, "USB4_DP", "OVAL"], ["U32", "8", 51.25, 43.03, 0.3, 0.851, 2, "USB4_DM", "OVAL"], ["U32", "7", 50.749, 43.03, 0.3, 0.851, 2, "USB3_DM", "OVAL"], ["U32", "6", 50.249, 43.03, 0.3, 0.851, 2, "USB3_DP", "OVAL"], ["U32", "5", 49.751, 43.03, 0.3, 0.851, 2, "+3V3_HUB", "OVAL"], ["U32", "4", 49.251, 43.03, 0.3, 0.851, 2, "USB2_DM", "OVAL"], ["U32", "3", 48.75, 43.03, 0.3, 0.851, 2, "USB2_DP", "OVAL"], ["U32", "2", 48.25, 43.03, 0.3, 0.851, 2, "USB1_DM", "OVAL"], ["U32", "1", 47.749, 43.03, 0.3, 0.851, 2, "USB1_DP", "OVAL"], ["U32", "17", 55.951, 42.329, 0.851, 0.3, 2, "$4N604", "OVAL"], ["U32", "18", 55.951, 41.831, 0.851, 0.3, 2, "", "OVAL"], ["U32", "19", 55.951, 41.331, 0.851, 0.3, 2, "GND", "OVAL"], ["U32", "20", 55.951, 40.83, 0.851, 0.3, 2, "", "OVAL"], ["U32", "21", 55.951, 40.33, 0.851, 0.3, 2, "", "OVAL"], ["U32", "22", 55.951, 39.83, 0.851, 0.3, 2, "", "OVAL"], ["U32", "23", 55.951, 39.329, 0.851, 0.3, 2, "", "OVAL"], ["U32", "24", 55.951, 38.829, 0.851, 0.3, 2, "+3V3_HUB", "OVAL"], ["U32", "25", 55.951, 38.331, 0.851, 0.3, 2, "VDD18", "OVAL"], ["U32", "26", 55.951, 37.831, 0.851, 0.3, 2, "", "OVAL"], ["U32", "27", 55.951, 37.33, 0.851, 0.3, 2, "", "OVAL"], ["U32", "28", 55.951, 36.83, 0.851, 0.3, 2, "", "OVAL"], ["U32", "29", 55.951, 36.33, 0.851, 0.3, 2, "", "OVAL"], ["U32", "30", 55.951, 35.829, 0.851, 0.3, 2, "", "OVAL"], ["U32", "31", 55.951, 35.329, 0.851, 0.3, 2, "$4N603", "OVAL"], ["U32", "32", 55.951, 34.831, 0.851, 0.3, 2, "", "OVAL"], ["U32", "33", 55.25, 34.13, 0.3, 0.851, 2, "$4N602", "OVAL"], ["U32", "34", 54.75, 34.13, 0.3, 0.851, 2, "", "OVAL"], ["U32", "35", 54.249, 34.13, 0.3, 0.851, 2, "", "OVAL"], ["U32", "36", 53.749, 34.13, 0.3, 0.851, 2, "", "OVAL"], ["U32", "37", 53.251, 34.13, 0.3, 0.851, 2, "", "OVAL"], ["U32", "38", 52.751, 34.13, 0.3, 0.851, 2, "", "OVAL"], ["U32", "39", 52.25, 34.13, 0.3, 0.851, 2, "", "OVAL"], ["U32", "40", 51.75, 34.13, 0.3, 0.851, 2, "NONREM1", "OVAL"], ["U32", "41", 51.25, 34.13, 0.3, 0.851, 2, "CFGSEL0", "OVAL"], ["U32", "42", 50.749, 34.13, 0.3, 0.851, 2, "CFGSEL1", "OVAL"], ["U32", "43", 50.251, 34.13, 0.3, 0.851, 2, "HUB_RST", "OVAL"], ["U32", "44", 49.751, 34.13, 0.3, 0.851, 2, "VBUS_DET", "OVAL"], ["U32", "45", 49.251, 34.13, 0.3, 0.851, 2, "NONREM0", "OVAL"], ["U32", "46", 48.75, 34.13, 0.3, 0.851, 2, "+3V3_HUB", "OVAL"], ["U32", "47", 48.25, 34.13, 0.3, 0.851, 2, "$4N598", "OVAL"], ["U32", "48", 47.749, 34.13, 0.3, 0.851, 2, "", "OVAL"], ["U32", "49", 47.051, 34.831, 0.851, 0.3, 2, "$4N597", "OVAL"], ["U32", "50", 47.051, 35.329, 0.851, 0.3, 2, "", "OVAL"], ["U32", "51", 47.051, 35.829, 0.851, 0.3, 2, "$4N596", "OVAL"], ["U32", "52", 47.051, 36.33, 0.851, 0.3, 2, "+3V3_HUB", "OVAL"], ["U32", "53", 47.051, 36.83, 0.851, 0.3, 2, "USB6_DM", "OVAL"], ["U32", "54", 47.051, 37.33, 0.851, 0.3, 2, "USB6_DP", "OVAL"], ["U32", "55", 47.051, 37.831, 0.851, 0.3, 2, "", "OVAL"], ["U32", "56", 47.051, 38.331, 0.851, 0.3, 2, "", "OVAL"], ["U32", "57", 47.051, 38.829, 0.851, 0.3, 2, "+3V3_HUB", "OVAL"], ["U32", "58", 47.051, 39.329, 0.851, 0.3, 2, "UP_DM", "OVAL"], ["U32", "59", 47.051, 39.83, 0.851, 0.3, 2, "UP_DP", "OVAL"], ["U32", "60", 47.051, 40.33, 0.851, 0.3, 2, "XTAL2", "OVAL"], ["U32", "61", 47.051, 40.83, 0.851, 0.3, 2, "XTAL1", "OVAL"], ["U32", "62", 47.051, 41.331, 0.851, 0.3, 2, "VDD18PLL", "OVAL"], ["U32", "63", 47.051, 41.831, 0.851, 0.3, 2, "RBIAS", "OVAL"], ["U32", "64", 47.051, 42.329, 0.851, 0.3, 2, "+3V3_HUB", "OVAL"], ["U32", "65", 51.501, 38.58, 4.801, 4.801, 2, "GND", "RECT"], ["U35", "6", 38.674, 62.182, 0.399, 1.651, 2, "SDA2", "RECT"], ["U35", "5", 38.026, 62.182, 0.399, 1.651, 2, "SCL1", "RECT"], ["U35", "4", 37.376, 62.182, 0.399, 1.651, 2, "SDA1", "RECT"], ["U35", "3", 36.726, 62.182, 0.399, 1.651, 2, "MUX_RST#", "RECT"], ["U35", "2", 36.076, 62.182, 0.399, 1.651, 2, "GND", "RECT"], ["U35", "1", 35.425, 62.182, 0.399, 1.651, 2, "GND", "RECT"], ["U35", "7", 39.324, 62.182, 0.399, 1.651, 2, "SCL2", "RECT"], ["U35", "12", 42.575, 62.182, 0.399, 1.651, 2, "GND", "RECT"], ["U35", "11", 41.925, 62.182, 0.399, 1.651, 2, "SCL4", "RECT"], ["U35", "10", 41.275, 62.182, 0.399, 1.651, 2, "SDA4", "RECT"], ["U35", "9", 40.625, 62.182, 0.399, 1.651, 2, "SCL3", "RECT"], ["U35", "8", 39.975, 62.182, 0.399, 1.651, 2, "SDA3", "RECT"], ["U35", "20", 38.026, 56.137, 0.399, 1.651, 2, "", "RECT"], ["U35", "21", 37.376, 56.137, 0.399, 1.651, 2, "GND", "RECT"], ["U35", "22", 36.726, 56.137, 0.399, 1.651, 2, "SCL", "RECT"], ["U35", "23", 36.076, 56.137, 0.399, 1.651, 2, "SDA", "RECT"], ["U35", "24", 35.425, 56.137, 0.399, 1.651, 2, "+3V3", "RECT"], ["U35", "19", 38.674, 56.137, 0.399, 1.651, 2, "", "RECT"], ["U35", "13", 42.575, 56.137, 0.399, 1.651, 2, "SDA5", "RECT"], ["U35", "14", 41.925, 56.137, 0.399, 1.651, 2, "SCL5", "RECT"], ["U35", "15", 41.275, 56.137, 0.399, 1.651, 2, "", "RECT"], ["U35", "16", 40.625, 56.137, 0.399, 1.651, 2, "", "RECT"], ["U35", "17", 39.975, 56.137, 0.399, 1.651, 2, "", "RECT"], ["U35", "18", 39.324, 56.137, 0.399, 1.651, 2, "", "RECT"], ["Y1", "1", 40.729, 41.74, 1.199, 1.4, 2, "XTAL1", "RECT"], ["Y1", "2", 40.729, 39.54, 1.199, 1.4, 2, "GND", "RECT"], ["Y1", "3", 39.027, 39.54, 1.199, 1.4, 2, "XTAL2", "RECT"], ["Y1", "4", 39.027, 41.74, 1.199, 1.4, 2, "GND", "RECT"], ["R723", "2", 42.926, 39.319, 0.541, 0.566, 2, "XTAL2", "RECT"], ["R723", "1", 42.926, 40.183, 0.541, 0.566, 2, "XTAL1", "RECT"], ["R724", "2", 42.766, 35.349, 0.566, 0.541, 2, "+3V3_HUB", "RECT"], ["R724", "1", 43.632, 35.349, 0.566, 0.541, 2, "$4N596", "RECT"], ["R725", "2", 42.766, 34.15, 0.566, 0.541, 2, "+3V3_HUB", "RECT"], ["R725", "1", 43.632, 34.15, 0.566, 0.541, 2, "$4N597", "RECT"], ["R726", "2", 44.867, 33.599, 0.566, 0.541, 2, "+3V3_HUB", "RECT"], ["R726", "1", 45.733, 33.599, 0.566, 0.541, 2, "$4N598", "RECT"], ["R727", "2", 57.267, 34.181, 0.566, 0.541, 2, "$4N602", "RECT"], ["R727", "1", 58.133, 34.181, 0.566, 0.541, 2, "GND", "RECT"], ["R728", "2", 57.267, 35.4, 0.566, 0.541, 2, "$4N603", "RECT"], ["R728", "1", 58.133, 35.4, 0.566, 0.541, 2, "GND", "RECT"], ["R729", "2", 57.267, 42.451, 0.566, 0.541, 2, "$4N604", "RECT"], ["R729", "1", 58.133, 42.451, 0.566, 0.541, 2, "GND", "RECT"], ["C12", "2", 26.901, 14.501, 1.349, 1.41, 2, "VIN_FUSED", "RECT"], ["C12", "1", 26.901, 16.5, 1.349, 1.41, 2, "GND", "RECT"], ["C13", "2", 24.43, 23.861, 0.5, 0.541, 2, "VCC12", "RECT"], ["C13", "1", 25.27, 23.861, 0.5, 0.541, 2, "GND", "RECT"], ["C14", "2", 4.542, 28.451, 1.486, 1.727, 2, "VIN_SW", "RECT"], ["C14", "1", 1.356, 28.451, 1.486, 1.727, 2, "GND", "RECT"], ["C15", "2", 9.842, 28.451, 1.486, 1.727, 2, "VIN_SW", "RECT"], ["C15", "1", 6.657, 28.451, 1.486, 1.727, 2, "GND", "RECT"], ["C16", "2", 15.143, 28.451, 1.486, 1.727, 2, "VIN_SW", "RECT"], ["C16", "1", 11.958, 28.451, 1.486, 1.727, 2, "GND", "RECT"], ["C17", "2", 20.442, 28.451, 1.486, 1.727, 2, "VIN_SW", "RECT"], ["C17", "1", 17.257, 28.451, 1.486, 1.727, 2, "GND", "RECT"], ["C18", "2", 19.619, 24.849, 0.5, 0.541, 2, "BST12", "RECT"], ["C18", "1", 18.781, 24.849, 0.5, 0.541, 2, "SW12", "RECT"], ["C19", "2", 20.17, 23.599, 0.5, 0.541, 2, "VIN_FUSED", "RECT"], ["C19", "1", 19.329, 23.599, 0.5, 0.541, 2, "GND", "RECT"], ["C20", "2", 20.17, 17.8, 0.5, 0.541, 2, "VIN_FUSED", "RECT"], ["C20", "1", 19.329, 17.8, 0.5, 0.541, 2, "GND", "RECT"], ["C21", "2", 19.2, 16.101, 1.349, 1.41, 2, "VIN_FUSED", "RECT"], ["C21", "1", 19.2, 14.1, 1.349, 1.41, 2, "GND", "RECT"], ["C22", "2", 24.9, 15.001, 1.41, 1.349, 2, "VIN_FUSED", "RECT"], ["C22", "1", 22.901, 15.001, 1.41, 1.349, 2, "GND", "RECT"], ["C23", "2", 24.9, 26.299, 1.41, 1.349, 2, "VIN_FUSED", "RECT"], ["C23", "1", 22.901, 26.299, 1.41, 1.349, 2, "GND", "RECT"], ["C24", "2", 24.9, 28.301, 1.41, 1.349, 2, "VIN_FUSED", "RECT"], ["C24", "1", 22.901, 28.301, 1.41, 1.349, 2, "GND", "RECT"], ["D3", "2", 19.251, 1.638, 2.192, 2.047, 2, "GND", "RECT"], ["D3", "1", 19.251, 6.36, 2.192, 2.047, 2, "VIN_FUSED", "RECT"], ["J1", "B8", 14.249, 7.724, 0.3, 1.3, 2, "", "RECT"], ["J1", "A5", 13.749, 7.724, 0.3, 1.3, 2, "PD_CC1", "RECT"], ["J1", "B7", 13.251, 7.724, 0.3, 1.3, 2, "", "RECT"], ["J1", "A6", 12.751, 7.724, 0.3, 1.3, 2, "", "RECT"], ["J1", "A7", 12.25, 7.724, 0.3, 1.3, 2, "", "RECT"], ["J1", "B6", 11.75, 7.724, 0.3, 1.3, 2, "", "RECT"], ["J1", "A8", 11.25, 7.724, 0.3, 1.3, 2, "", "RECT"], ["J1", "B5", 10.749, 7.724, 0.3, 1.3, 2, "PD_CC2", "RECT"], ["J1", "A1B12", 15.85, 7.074, 0.3, 0, 2, "GND", "POLYRECT"], ["J1", "A1B12", 15.7, 7.724, 0.6, 1.3, 2, "GND", "POLYRECT"], ["J1", "A1B12", 15.55, 8.374, 0.3, 0, 2, "GND", "POLYRECT"], ["J1", "B1A12", 9.3, 7.724, 0.6, 1.3, 2, "GND", "POLYRECT"], ["J1", "B4A9", 10.1, 7.724, 0.6, 1.3, 2, "VIN_RAW", "POLYRECT"], ["J1", "A4B9", 15.05, 7.074, 0.3, 0, 2, "VIN_RAW", "POLYRECT"], ["J1", "A4B9", 14.9, 7.724, 0.6, 1.3, 2, "VIN_RAW", "POLYRECT"], ["J1", "A4B9", 14.75, 8.374, 0.3, 0, 2, "VIN_RAW", "POLYRECT"], ["J1", "2", 8.174, 2.776, 1.199, 1.801, 12, "GND", "OVAL"], ["J1", "1", 8.174, 6.955, 1.199, 1.999, 12, "GND", "OVAL"], ["J1", "4", 16.825, 6.955, 1.199, 1.999, 12, "GND", "OVAL"], ["J1", "3", 16.825, 2.776, 1.199, 1.801, 12, "GND", "OVAL"], ["L4", "1", 16.149, 20.701, 3.5, 5.001, 2, "SW12", "RECT"], ["L4", "2", 4.651, 20.701, 3.5, 5.001, 2, "VIN_SW", "RECT"], ["R7", "2", 18.999, 11.684, 0.541, 0.566, 2, "$9N145", "RECT"], ["R7", "1", 18.999, 10.818, 0.541, 0.566, 2, "GND", "RECT"], ["R8", "2", 24.417, 20.201, 0.566, 0.541, 2, "RT12", "RECT"], ["R8", "1", 25.283, 20.201, 0.566, 0.541, 2, "GND", "RECT"], ["R10", "2", 25.283, 22.639, 0.566, 0.541, 2, "VIN_SW", "RECT"], ["R10", "1", 24.417, 22.639, 0.566, 0.541, 2, "FB12", "RECT"], ["R11", "2", 24.417, 21.42, 0.566, 0.541, 2, "FB12", "RECT"], ["R11", "1", 25.283, 21.42, 0.566, 0.541, 2, "GND", "RECT"], ["R12", "2", 24.633, 16.581, 0.566, 0.541, 2, "VIN_FUSED", "RECT"], ["R12", "1", 23.767, 16.581, 0.566, 0.541, 2, "EN12", "RECT"], ["R13", "2", 24.633, 17.8, 0.566, 0.541, 2, "EN12", "RECT"], ["R13", "1", 23.767, 17.8, 0.566, 0.541, 2, "GND", "RECT"], ["U36", "10", 20.701, 12.4, 1.501, 0.599, 2, "", "RECT"], ["U36", "9", 20.701, 11.4, 1.501, 0.599, 2, "$9N145", "RECT"], ["U36", "8", 20.701, 10.399, 1.501, 0.599, 2, "VIN_FUSED", "RECT"], ["U36", "7", 20.701, 9.401, 1.501, 0.599, 2, "PD_CC1", "RECT"], ["U36", "6", 20.701, 8.4, 1.501, 0.599, 2, "PD_CC2", "RECT"], ["U36", "5", 26.7, 8.4, 1.501, 0.599, 2, "", "RECT"], ["U36", "4", 26.7, 9.401, 1.501, 0.599, 2, "", "RECT"], ["U36", "3", 26.7, 10.399, 1.501, 0.599, 2, "SDA", "RECT"], ["U36", "2", 26.7, 11.4, 1.501, 0.599, 2, "SCL", "RECT"], ["U36", "1", 26.7, 12.4, 1.501, 0.599, 2, "VIN_FUSED", "RECT"], ["U36", "11", 23.701, 10.399, 2.101, 3.299, 2, "GND", "RECT"], ["U37", "1", 18.958, 21.875, 1.1, 0.8, 2, "GND", "POLYRECT"], ["U37", "1", 19.133, 22.475, 0.75, 0.4, 2, "GND", "POLYRECT"], ["U37", "2", 20.317, 22.126, 0.399, 1.1, 2, "VIN_FUSED", "RECT"], ["U37", "3", 21.392, 22.25, 0.249, 0.851, 2, "BST12", "RECT"], ["U37", "4", 21.892, 22.25, 0.249, 0.851, 2, "BST12", "RECT"], ["U37", "5", 22.393, 22.25, 0.249, 0.851, 2, "GND", "RECT"], ["U37", "6", 23.042, 21.925, 0.6, 0.75, 2, "VCC12", "POLYRECT"], ["U37", "6", 22.817, 22.485, 0.15, 0.37, 2, "VCC12", "POLYRECT"], ["U37", "7", 22.992, 21.199, 0.701, 0.249, 2, "FB12", "RECT"], ["U37", "8", 22.918, 20.701, 0.851, 0.249, 2, "GND", "RECT"], ["U37", "9", 22.992, 20.201, 0.701, 0.249, 2, "RT12", "RECT"], ["U37", "11", 22.393, 19.149, 0.249, 0.851, 2, "VCC12", "RECT"], ["U37", "12", 21.892, 19.149, 0.249, 0.851, 2, "GND", "RECT"], ["U37", "13", 21.392, 19.149, 0.249, 0.851, 2, "EN12", "RECT"], ["U37", "14", 20.317, 19.276, 0.399, 1.1, 2, "VIN_FUSED", "RECT"], ["U37", "16", 19.909, 20.701, 3, 0.399, 2, "SW12", "RECT"], ["U37", "15", 19.133, 18.925, 0.75, 0.4, 2, "GND", "POLYRECT"], ["U37", "15", 18.958, 19.525, 1.1, 0.8, 2, "GND", "POLYRECT"], ["U37", "10", 22.817, 18.915, 0.15, 0.37, 2, "", "POLYRECT"], ["U37", "10", 23.042, 19.475, 0.6, 0.75, 2, "", "POLYRECT"]] \ No newline at end of file diff --git a/.claude/r2/_base_place.json b/.claude/r2/_base_place.json index a863eb8..2cc4ba9 100644 --- a/.claude/r2/_base_place.json +++ b/.claude/r2/_base_place.json @@ -36,11 +36,173 @@ 2 ], "Y1": [ -42.8, -41.68, +39.878, +40.64, 270, 2 ], +"C743": [ +45.3, +41.64, +180, +2 +], +"R708": [ +45.3, +42.85, +180, +2 +], +"C746": [ +45.3, +44.06, +180, +2 +], +"C740": [ +42.926, +41.578, +90, +2 +], +"C741": [ +41.148, +37.338, +270, +2 +], +"R723": [ +42.926, +39.751, +270, +2 +], +"C745": [ +43.18, +37.465, +180, +2 +], +"C744": [ +43.18, +36.449, +180, +2 +], +"R726": [ +45.3, +33.6, +180, +2 +], +"R724": [ +43.2, +35.35, +180, +2 +], +"R725": [ +43.2, +34.15, +180, +2 +], +"C749": [ +48.75, +32.42, +270, +2 +], +"R720": [ +49.071, +29.847, +270, +2 +], +"R710": [ +50.165, +29.845, +270, +2 +], +"R709": [ +51.181, +29.845, +90, +2 +], +"R716": [ +52.197, +29.845, +270, +2 +], +"R712": [ +53.213, +29.845, +270, +2 +], +"R711": [ +54.229, +29.845, +270, +2 +], +"R719": [ +55.245, +29.845, +270, +2 +], +"C750": [ +49.2, +45.91, +90, +2 +], +"C747": [ +52.95, +45.25, +90, +2 +], +"R727": [ +57.7, +34.18, +180, +2 +], +"R728": [ +57.7, +35.4, +180, +2 +], +"C742": [ +57.7, +38.2, +0, +2 +], +"C748": [ +57.7, +39.41, +0, +2 +], +"R729": [ +57.7, +42.45, +180, +2 +], +"C751": [ +65.5, +36.5, +0, +2 +], "U35": [ 39.0, 59.16, @@ -69,7 +231,7 @@ 80.0, 95.5, 0, -2 +1 ], "J23": [ 84.0, @@ -91,22 +253,166 @@ ], "J1": [ 12.5, -10.63, -90, +5.25, +180, 2 ], "F1": [ 12.5, -17.75, +11.8, 90, 2 ], -"Q1": [ -12.5, -24.5, +"D3": [ +19.25, +4.0, +270, +2 +], +"U36": [ +23.7, +10.4, +270, +2 +], +"C12": [ +26.9, +15.5, +270, +2 +], +"R7": [ +19.0, +11.25, +90, +2 +], +"U37": [ +21.0, +20.7, +270, +2 +], +"L4": [ +10.4, +20.7, 180, 2 ], +"C20": [ +19.75, +17.8, +0, +2 +], +"C19": [ +19.75, +23.6, +0, +2 +], +"C21": [ +19.2, +15.1, +90, +2 +], +"C22": [ +23.9, +15.0, +0, +2 +], +"C23": [ +23.9, +26.3, +0, +2 +], +"C24": [ +23.9, +28.3, +0, +2 +], +"C18": [ +19.2, +24.85, +0, +2 +], +"R8": [ +24.85, +20.2, +180, +2 +], +"R11": [ +24.85, +21.42, +180, +2 +], +"R10": [ +24.85, +22.64, +0, +2 +], +"C13": [ +24.85, +23.86, +180, +2 +], +"R13": [ +24.2, +17.8, +0, +2 +], +"R12": [ +24.2, +16.58, +0, +2 +], +"C5": [ +1.5, +21.75, +270, +2 +], +"C14": [ +2.95, +28.45, +0, +2 +], +"C15": [ +8.25, +28.45, +0, +2 +], +"C16": [ +13.55, +28.45, +0, +2 +], +"C17": [ +18.85, +28.45, +0, +2 +], +"RT602": [ +26.9, +19.3, +90, +2 +], "D1": [ 12.5, 34.0, @@ -117,13 +423,13 @@ 5.5, 35.0, 180, -2 +1 ], "C3": [ 19.5, 35.0, 0, -2 +1 ], "Rs6": [ 12.5, @@ -137,12 +443,6 @@ 270, 2 ], -"RT602": [ -19.5, -8.0, -0, -2 -], "Q3": [ 2.95, 52.0, @@ -204,160 +504,16 @@ 2 ], "J26": [ -13.5, -94.5, +12.446, +94.289, 0, -2 +1 ], "J27": [ -13.5, -88.0, +7.112, +84.443, 0, -2 -], -"C751": [ -43.75, -37.5, -270, -2 -], -"C742": [ -58.25, -38.25, -270, -2 -], -"C743": [ -42.0, -38.5, -270, -2 -], -"C747": [ -58.25, -43.0, -270, -2 -], -"C748": [ -58.25, -40.25, -90, -2 -], -"C749": [ -44.75, -34.25, -90, -2 -], -"C750": [ -40.25, -43.0, -270, -2 -], -"C744": [ -43.5, -34.5, -270, -2 -], -"C745": [ -42.0, -36.5, -270, -2 -], -"C746": [ -40.25, -41.0, -270, -2 -], -"R708": [ -40.25, -38.0, -270, -2 -], -"R710": [ -41.75, -34.0, -270, -2 -], -"R711": [ -39.5, -34.25, -90, -2 -], -"R712": [ -38.0, -37.25, -90, -2 -], -"R716": [ -37.25, -34.25, -90, -2 -], -"R720": [ -38.5, -41.0, -90, -2 -], -"R709": [ -35.75, -37.25, -270, -2 -], -"R719": [ -64.75, -34.25, -90, -2 -], -"C740": [ -38.0, -43.75, -180, -2 -], -"C741": [ -36.25, -40.5, -270, -2 -], -"C604": [ -55.75, -55.0, -0, -2 -], -"C607": [ -63.75, -55.0, -0, -2 -], -"C610": [ -33.0, -56.25, -90, -2 -], -"C611": [ -51.0, -57.75, -90, -2 +1 ], "C608": [ 51.0, @@ -365,16 +521,28 @@ 90, 2 ], +"R614": [ +53.25, +54.0, +0, +2 +], "R615": [ 55.25, 63.75, 0, 2 ], -"R614": [ -53.25, -54.0, -0, +"C609": [ +58.25, +54.5, +180, +2 +], +"C611": [ +51.0, +57.75, +90, 2 ], "R616": [ @@ -395,10 +563,22 @@ 180, 2 ], -"C609": [ -58.25, -54.5, -180, +"C604": [ +55.75, +55.0, +0, +2 +], +"C607": [ +63.75, +55.0, +0, +2 +], +"C610": [ +33.0, +56.25, +90, 2 ], "C601": [ @@ -425,10 +605,10 @@ 0, 2 ], -"R603": [ -85.25, +"R604": [ +75.5, 81.25, -180, +0, 2 ], "R605": [ @@ -443,30 +623,6 @@ 0, 2 ], -"R610": [ -72.0, -81.25, -0, -2 -], -"R611": [ -81.0, -83.5, -0, -2 -], -"R660": [ -88.5, -81.25, -0, -2 -], -"R604": [ -75.5, -81.25, -0, -2 -], "R607": [ 78.0, 56.75, @@ -485,16 +641,34 @@ 180, 2 ], +"R610": [ +72.0, +81.25, +0, +2 +], +"R611": [ +81.0, +83.5, +0, +2 +], +"R660": [ +88.5, +81.25, +0, +2 +], "R661": [ 87.25, 83.5, 0, 2 ], -"C739": [ -91.5, -81.75, -0, +"R603": [ +85.25, +81.25, +180, 2 ], "C603": [ @@ -509,6 +683,24 @@ 0, 2 ], +"C739": [ +91.5, +81.75, +0, +2 +], +"R718": [ +82.25, +11.5, +180, +2 +], +"R717": [ +85.25, +11.5, +180, +2 +], "C737": [ 74.5, 26.0, @@ -539,22 +731,28 @@ 90, 2 ], -"R717": [ -85.25, -11.5, -180, -2 -], -"R718": [ -82.25, -11.5, -180, -2 -], "U29": [ -2.25, -45.75, -180, +2.032, +45.085, +270, +2 +], +"R4": [ +3.937, +42.418, +0, +2 +], +"R5": [ +4.318, +45.085, +270, +2 +], +"R6": [ +3.937, +41.402, +0, 2 ], "C4": [ @@ -563,12 +761,6 @@ 180, 2 ], -"C5": [ -9.0, -28.5, -90, -2 -], "C11": [ 17.5, 41.25, @@ -581,40 +773,40 @@ 180, 2 ], -"DZ1": [ -16.25, -21.75, -90, -2 -], -"R4": [ -1.25, -42.5, -180, -2 -], -"R1": [ -8.75, -21.75, -270, -2 -], -"R5": [ -4.0, -42.25, -90, -2 -], -"R6": [ -6.75, -43.25, +"R2": [ +4.25, +71.25, 0, 2 ], -"C1": [ -10.25, -18.75, -270, +"R3": [ +2.75, +65.25, +0, +2 +], +"C8": [ +7.0, +71.5, +90, +2 +], +"R706": [ +16.75, +71.25, +180, +2 +], +"R707": [ +16.75, +63.5, +0, +2 +], +"C733": [ +19.75, +73.25, +180, 2 ], "C10": [ @@ -659,172 +851,136 @@ 180, 2 ], -"R3": [ -2.75, -65.25, -0, -2 -], -"R2": [ -4.25, -71.25, -0, -2 -], -"R706": [ -16.75, -71.25, -180, -2 -], -"R707": [ -16.75, -63.5, -0, -2 -], -"C733": [ -19.75, -73.25, -180, -2 -], -"C8": [ -7.0, -71.5, -90, -2 -], -"D2": [ -20.75, -94.25, -270, -2 -], "Q7": [ -24.75, -95.75, -270, +4.318, +79.629, +180, 2 ], "Q8": [ -14.0, -83.0, -0, -2 -], -"Q9": [ -26.0, -77.25, -90, -2 -], -"Q10": [ -26.0, -81.75, -180, -2 -], -"Q6": [ -21.25, -88.25, -0, -2 -], -"C738": [ -8.5, -83.5, +4.2148, +76.2031, 180, 2 ], "DZ3": [ -25.75, -90.25, -90, -2 -], -"R733": [ -22.25, -85.0, -0, -2 -], -"R734": [ -22.25, -82.75, -180, -2 -], -"R747": [ -25.75, -86.0, -180, -2 -], -"R749": [ -17.5, -83.5, -90, -2 -], -"R750": [ -7.0, -89.25, -270, -2 -], -"R751": [ -4.75, -89.25, -90, -2 -], -"R752": [ -2.5, -88.75, -90, -2 -], -"R753": [ -22.75, -76.25, -270, -2 -], -"R754": [ -17.75, -80.75, -0, -2 -], -"R755": [ -14.75, -79.75, -0, -2 -], -"R756": [ -14.25, -77.5, -0, -2 -], -"R757": [ -22.5, -80.0, +1.397, +82.296, 90, 2 ], "R746": [ -19.75, -78.5, +4.064, +82.042, 180, 2 ], -"R748": [ -17.0, -77.0, +"R747": [ +5.9356, +78.0532, 90, 2 +], +"R748": [ +4.699, +73.914, +180, +2 +], +"R749": [ +2.7606, +73.9151, +0, +2 +], +"Q6": [ +22.1032, +86.3586, +270, +2 +], +"R733": [ +24.5752, +84.9776, +90, +2 +], +"R734": [ +22.5712, +83.6586, +180, +2 +], +"Q9": [ +13.208, +89.916, +180, +2 +], +"R751": [ +10.541, +89.408, +90, +2 +], +"R752": [ +12.7, +87.884, +180, +2 +], +"Q10": [ +17.018, +81.153, +180, +2 +], +"R756": [ +16.51, +78.867, +180, +2 +], +"R755": [ +14.5288, +80.645, +90, +2 +], +"D2": [ +12.192, +77.724, +270, +2 +], +"C738": [ +7.9248, +78.1729, +270, +2 +], +"R750": [ +9.906, +91.313, +180, +2 +], +"R753": [ +15.621, +89.535, +90, +2 +], +"R754": [ +12.573, +82.55, +180, +2 +], +"R757": [ +18.542, +83.566, +180, +2 ] } \ No newline at end of file diff --git a/.claude/r2/_base_place_live.json b/.claude/r2/_base_place_live.json index 20699dd..f139ffc 100644 --- a/.claude/r2/_base_place_live.json +++ b/.claude/r2/_base_place_live.json @@ -1,10 +1,4 @@ { - "C1": [ - 10.25, - 18.75, - 270, - 2 - ], "C10": [ 12.5, 71.75, @@ -17,17 +11,95 @@ 0, 2 ], + "C12": [ + 26.9, + 15.5, + 270, + 2 + ], + "C13": [ + 24.85, + 23.86, + 180, + 2 + ], + "C14": [ + 2.95, + 28.45, + 0, + 2 + ], + "C15": [ + 8.25, + 28.45, + 0, + 2 + ], + "C16": [ + 13.55, + 28.45, + 0, + 2 + ], + "C17": [ + 18.85, + 28.45, + 0, + 2 + ], + "C18": [ + 19.2, + 24.85, + 0, + 2 + ], + "C19": [ + 19.75, + 23.6, + 0, + 2 + ], "C2": [ 5.5, 35.0, 180, + 1 + ], + "C20": [ + 19.75, + 17.8, + 0, + 2 + ], + "C21": [ + 19.2, + 15.1, + 90, + 2 + ], + "C22": [ + 23.9, + 15.0, + 0, + 2 + ], + "C23": [ + 23.9, + 26.3, + 0, + 2 + ], + "C24": [ + 23.9, + 28.3, + 0, 2 ], "C3": [ 19.5, 35.0, 0, - 2 + 1 ], "C4": [ 17.5, @@ -36,9 +108,9 @@ 2 ], "C5": [ - 9.0, - 28.5, - 90, + 1.5, + 21.75, + 270, 2 ], "C6": [ @@ -156,9 +228,9 @@ 2 ], "C738": [ - 8.5, - 83.5, - 180, + 7.9248, + 78.1729, + 270, 2 ], "C739": [ @@ -168,75 +240,75 @@ 2 ], "C740": [ - 38.0, - 43.75, - 180, + 42.926, + 41.578, + 90, 2 ], "C741": [ - 36.25, - 40.5, + 41.148, + 37.338, 270, 2 ], "C742": [ - 58.25, - 38.25, - 270, + 57.7, + 38.2, + 0, 2 ], "C743": [ - 42.0, - 38.5, - 270, + 45.3, + 41.64, + 180, 2 ], "C744": [ - 43.5, - 34.5, - 270, + 43.18, + 36.449, + 180, 2 ], "C745": [ - 42.0, - 36.5, - 270, + 43.18, + 37.465, + 180, 2 ], "C746": [ - 40.25, - 41.0, - 270, + 45.3, + 44.06, + 180, 2 ], "C747": [ - 58.25, - 43.0, - 270, + 52.95, + 45.25, + 90, 2 ], "C748": [ - 58.25, - 40.25, - 90, + 57.7, + 39.41, + 0, 2 ], "C749": [ - 44.75, - 34.25, - 90, + 48.75, + 32.42, + 270, 2 ], "C750": [ - 40.25, - 43.0, - 270, + 49.2, + 45.91, + 90, 2 ], "C751": [ - 43.75, - 37.5, - 270, + 65.5, + 36.5, + 0, 2 ], "C752": [ @@ -270,33 +342,33 @@ 2 ], "D2": [ - 20.75, - 94.25, + 12.192, + 77.724, 270, 2 ], - "DZ1": [ - 16.25, - 21.75, - 90, + "D3": [ + 19.25, + 4.0, + 270, 2 ], "DZ3": [ - 25.75, - 90.25, + 1.397, + 82.296, 90, 2 ], "F1": [ 12.5, - 17.75, + 11.8, 90, 2 ], "J1": [ 12.5, - 10.63, - 90, + 5.25, + 180, 2 ], "J23": [ @@ -306,22 +378,22 @@ 2 ], "J26": [ - 13.5, - 94.5, + 12.446, + 94.289, 0, - 2 + 1 ], "J27": [ - 13.5, - 88.0, + 7.112, + 84.443, 0, - 2 + 1 ], "J33": [ 80.0, 95.5, 0, - 2 + 1 ], "J34": [ 49.0, @@ -365,15 +437,15 @@ 0, 2 ], - "Q1": [ - 12.5, - 24.5, + "L4": [ + 10.4, + 20.7, 180, 2 ], "Q10": [ - 26.0, - 81.75, + 17.018, + 81.153, 180, 2 ], @@ -384,33 +456,51 @@ 2 ], "Q6": [ - 21.25, - 88.25, - 0, + 22.1032, + 86.3586, + 270, 2 ], "Q7": [ - 24.75, - 95.75, - 270, + 4.318, + 79.629, + 180, 2 ], "Q8": [ - 14.0, - 83.0, - 0, + 4.2148, + 76.2031, + 180, 2 ], "Q9": [ - 26.0, - 77.25, - 90, + 13.208, + 89.916, + 180, 2 ], - "R1": [ - 8.75, - 21.75, - 270, + "R10": [ + 24.85, + 22.64, + 0, + 2 + ], + "R11": [ + 24.85, + 21.42, + 180, + 2 + ], + "R12": [ + 24.2, + 16.58, + 0, + 2 + ], + "R13": [ + 24.2, + 17.8, + 0, 2 ], "R2": [ @@ -426,20 +516,20 @@ 2 ], "R4": [ - 1.25, - 42.5, - 180, + 3.937, + 42.418, + 0, 2 ], "R5": [ - 4.0, - 42.25, - 90, + 4.318, + 45.085, + 270, 2 ], "R6": [ - 6.75, - 43.25, + 3.937, + 41.402, 0, 2 ], @@ -545,6 +635,12 @@ 0, 2 ], + "R7": [ + 19.0, + 11.25, + 90, + 2 + ], "R706": [ 16.75, 71.25, @@ -558,39 +654,39 @@ 2 ], "R708": [ - 40.25, - 38.0, - 270, + 45.3, + 42.85, + 180, 2 ], "R709": [ - 35.75, - 37.25, - 270, + 51.181, + 29.845, + 90, 2 ], "R710": [ - 41.75, - 34.0, + 50.165, + 29.845, 270, 2 ], "R711": [ - 39.5, - 34.25, - 90, + 54.229, + 29.845, + 270, 2 ], "R712": [ - 38.0, - 37.25, - 90, + 53.213, + 29.845, + 270, 2 ], "R716": [ - 37.25, - 34.25, - 90, + 52.197, + 29.845, + 270, 2 ], "R717": [ @@ -606,15 +702,15 @@ 2 ], "R719": [ - 64.75, - 34.25, - 90, + 55.245, + 29.845, + 270, 2 ], "R720": [ - 38.5, - 41.0, - 90, + 49.071, + 29.847, + 270, 2 ], "R721": [ @@ -629,88 +725,136 @@ 90, 2 ], + "R723": [ + 42.926, + 39.751, + 270, + 2 + ], + "R724": [ + 43.2, + 35.35, + 180, + 2 + ], + "R725": [ + 43.2, + 34.15, + 180, + 2 + ], + "R726": [ + 45.3, + 33.6, + 180, + 2 + ], + "R727": [ + 57.7, + 34.18, + 180, + 2 + ], + "R728": [ + 57.7, + 35.4, + 180, + 2 + ], + "R729": [ + 57.7, + 42.45, + 180, + 2 + ], "R733": [ - 22.25, - 85.0, - 0, + 24.5752, + 84.9776, + 90, 2 ], "R734": [ - 22.25, - 82.75, + 22.5712, + 83.6586, 180, 2 ], "R746": [ - 19.75, - 78.5, + 4.064, + 82.042, 180, 2 ], "R747": [ - 25.75, - 86.0, - 180, + 5.9356, + 78.0532, + 90, 2 ], "R748": [ - 17.0, - 77.0, - 90, + 5.08, + 73.914, + 180, 2 ], "R749": [ - 17.5, - 83.5, - 90, + 3.175, + 73.914, + 0, 2 ], "R750": [ - 7.0, - 89.25, - 270, + 9.906, + 91.313, + 180, 2 ], "R751": [ - 4.75, - 89.25, + 10.541, + 89.408, 90, 2 ], "R752": [ - 2.5, - 88.75, - 90, + 12.7, + 87.884, + 180, 2 ], "R753": [ - 22.75, - 76.25, - 270, + 15.621, + 89.535, + 90, 2 ], "R754": [ - 17.75, - 80.75, - 0, + 12.573, + 82.55, + 180, 2 ], "R755": [ - 14.75, - 79.75, - 0, + 14.5288, + 80.645, + 90, 2 ], "R756": [ - 14.25, - 77.5, - 0, + 16.51, + 78.867, + 180, 2 ], "R757": [ - 22.5, - 80.0, - 90, + 18.542, + 83.566, + 180, + 2 + ], + "R8": [ + 24.85, + 20.2, + 180, 2 ], "R9A": [ @@ -750,9 +894,9 @@ 2 ], "RT602": [ - 19.5, - 8.0, - 0, + 26.9, + 19.3, + 90, 2 ], "Rs6": [ @@ -780,9 +924,9 @@ 2 ], "U29": [ - 2.25, - 45.75, - 180, + 2.032, + 45.085, + 270, 2 ], "U30": [ @@ -809,6 +953,18 @@ 0, 2 ], + "U36": [ + 23.7, + 10.4, + 270, + 2 + ], + "U37": [ + 21.0, + 20.7, + 270, + 2 + ], "U6": [ 56.0, 59.16, @@ -822,8 +978,8 @@ 2 ], "Y1": [ - 42.8, - 41.68, + 39.878, + 40.64, 270, 2 ] diff --git a/.claude/r2/_base_silk.json b/.claude/r2/_base_silk.json new file mode 100644 index 0000000..d53869c --- /dev/null +++ b/.claude/r2/_base_silk.json @@ -0,0 +1 @@ +{"attrs": [{"ref": "C2", "lay": 3, "x": 9.588908939999998, "y": 30.74550112, "rot": 180, "fs": 1.143, "vis": 1, "id": "9d5b8b1c8dd648a3e15"}, {"ref": "C3", "lay": 3, "x": 15.411089320000004, "y": 39.254501119999986, "rot": 0, "fs": 1.143, "vis": 1, "id": "c657237eb33cab2de15"}, {"ref": "C4", "lay": 4, "x": 17.5, "y": 47.396, "rot": 0, "fs": 1.143, "vis": 1, "id": "916f5896dd3cfbece20"}, {"ref": "C5", "lay": 4, "x": 1.5, "y": 19.324, "rot": 0, "fs": 1.143, "vis": 1, "id": "f471e57ac5bad584e20"}, {"ref": "C6", "lay": 4, "x": 10.9708, "y": 38.75, "rot": 0, "fs": 1.143, "vis": 1, "id": "59a3d129a74feb4ce18"}, {"ref": "C7", "lay": 4, "x": 8.8132, "y": 65.75, "rot": 0, "fs": 1.143, "vis": 1, "id": "b81f271eab199c2ce20"}, {"ref": "C8", "lay": 4, "x": 8.1587, "y": 71.5, "rot": 0, "fs": 1.143, "vis": 1, "id": "90dfbd6d48d220ade18"}, {"ref": "C9", "lay": 4, "x": 12.5, "y": 63.665, "rot": 0, "fs": 1.143, "vis": 1, "id": "2db8ff3d76ef04fde20"}, {"ref": "C10", "lay": 4, "x": 12.5, "y": 73.335, "rot": 0, "fs": 1.143, "vis": 1, "id": "c7f86b989f2e2369e20"}, {"ref": "C11", "lay": 4, "x": 15.6165, "y": 41.25, "rot": 0, "fs": 1.143, "vis": 1, "id": "30dc25f04976ab8ee18"}, {"ref": "C601", "lay": 4, "x": 87.24999999999999, "y": 58.085, "rot": 0, "fs": 1.143, "vis": 1, "id": "01ffce3772e260a9e20"}, {"ref": "C602", "lay": 4, "x": 91.5215, "y": 56.49999999999999, "rot": 90, "fs": 1.143, "vis": 1, "id": "6c604f2cc25fc3b9e18"}, {"ref": "C603", "lay": 4, "x": 85.0122, "y": 54.25, "rot": 0, "fs": 1.143, "vis": 1, "id": "72da356a3d0db3bde18"}, {"ref": "C604", "lay": 4, "x": 57.3324, "y": 53.4176, "rot": 0, "fs": 1.143, "vis": 1, "id": "c6134cb99653b06fe18"}, {"ref": "C607", "lay": 4, "x": 61.6373, "y": 57.1127, "rot": 0, "fs": 1.143, "vis": 1, "id": "cbe1d600c803fa7ce18"}, {"ref": "C608", "lay": 4, "x": 51, "y": 60.324000000000005, "rot": 0, "fs": 1.143, "vis": 1, "id": "d409726b326356d5e20"}, {"ref": "C609", "lay": 4, "x": 58.25, "y": 55.5215, "rot": 0, "fs": 1.143, "vis": 1, "id": "cbf040c465bc82c8e18"}, {"ref": "C610", "lay": 4, "x": 33, "y": 54.858, "rot": 0, "fs": 1.143, "vis": 1, "id": "6e48bf05e457e41ee18"}, {"ref": "C611", "lay": 4, "x": 52.39600000000001, "y": 57.75, "rot": 90, "fs": 1.143, "vis": 1, "id": "97d51c67c2bbe30ae20"}, {"ref": "C612", "lay": 4, "x": 64.6676, "y": 52.9176, "rot": 0, "fs": 1.143, "vis": 1, "id": "ddd567f73d3466afe18"}, {"ref": "C731", "lay": 4, "x": 4.896, "y": 68.5, "rot": 90, "fs": 1.143, "vis": 1, "id": "ba6c1d57c5bed057e20"}, {"ref": "C732", "lay": 4, "x": 20.5218, "y": 65.75, "rot": 0, "fs": 1.143, "vis": 1, "id": "5af5e544734031d5e20"}, {"ref": "C733", "lay": 4, "x": 19.75, "y": 74.2715, "rot": 0, "fs": 1.143, "vis": 1, "id": "7f40f4fdad0e4444e18"}, {"ref": "C734", "lay": 4, "x": 25, "y": 65.33499999999998, "rot": 0, "fs": 1.143, "vis": 1, "id": "1a2127c44a054dbce20"}, {"ref": "C735", "lay": 4, "x": 25, "y": 59.665, "rot": 0, "fs": 1.143, "vis": 1, "id": "3b4951ec4fdb1c30e20"}, {"ref": "C736", "lay": 4, "x": 90.25, "y": 85.0215, "rot": 0, "fs": 1.143, "vis": 1, "id": "09c296934688f4a1e18"}, {"ref": "C737", "lay": 4, "x": 72.2532, "y": 26, "rot": 0, "fs": 1.143, "vis": 1, "id": "43d00e51e2e9fc4de16"}, {"ref": "C738", "lay": 4, "x": 7.924799999999999, "y": 75.1159, "rot": 0, "fs": 1.143, "vis": 1, "id": "37086b7ad7173b7ce20"}, {"ref": "C739", "lay": 4, "x": 91.5, "y": 82.7715, "rot": 0, "fs": 1.143, "vis": 1, "id": "98abd52c3e52b7fae18"}, {"ref": "C740", "lay": 4, "x": 42.926, "y": 44.97, "rot": 0, "fs": 1.143, "vis": 1, "id": "8f3d78922810d5a8e18"}, {"ref": "C741", "lay": 4, "x": 39.2807, "y": 37.338, "rot": 0, "fs": 1.143, "vis": 1, "id": "0ba1ca8c5fbac088e18"}, {"ref": "C742", "lay": 4, "x": 59.9378, "y": 38.2, "rot": 0, "fs": 1.143, "vis": 1, "id": "3b69c59a20070c11e18"}, {"ref": "C743", "lay": 4, "x": 46.25001164, "y": 42.342843939999995, "rot": 0, "fs": 1.143, "vis": 0, "id": "2350c9c1b51a068be18"}, {"ref": "C744", "lay": 4, "x": 45.821, "y": 36.449, "rot": 90, "fs": 1.143, "vis": 1, "id": "fa50c64a58e8d787e18"}, {"ref": "C745", "lay": 4, "x": 41.5983, "y": 35.8833, "rot": 0, "fs": 1.143, "vis": 1, "id": "bb7b5b20a45f0e70e18"}, {"ref": "C746", "lay": 4, "x": 47.5378, "y": 44.06, "rot": 0, "fs": 1.143, "vis": 1, "id": "59e76e1b86869871e18"}, {"ref": "C747", "lay": 4, "x": 54.8173, "y": 45.25, "rot": 0, "fs": 1.143, "vis": 1, "id": "8fd562c3710f26c0e18"}, {"ref": "C748", "lay": 4, "x": 59.4592, "y": 41.1692, "rot": 0, "fs": 1.143, "vis": 1, "id": "803778d95574a4dfe18"}, {"ref": "C749", "lay": 4, "x": 51.4846, "y": 35.1546, "rot": 0, "fs": 1.143, "vis": 1, "id": "99c983d7f4bfe77ee18"}, {"ref": "C750", "lay": 4, "x": 51.0673, "y": 45.910000000000004, "rot": 0, "fs": 1.143, "vis": 1, "id": "aa49f852a6c6aa28e18"}, {"ref": "C751", "lay": 4, "x": 68.7718, "y": 36.50000000000001, "rot": 0, "fs": 1.143, "vis": 1, "id": "185b8e0abccde3ebe20"}, {"ref": "C752", "lay": 4, "x": 77, "y": 31.646, "rot": 0, "fs": 1.143, "vis": 1, "id": "12187e91ada57748e20"}, {"ref": "C753", "lay": 4, "x": 72.3993, "y": 31.1007, "rot": 0, "fs": 1.143, "vis": 1, "id": "7b7fbe241e7491c0e18"}, {"ref": "D1", "lay": 4, "x": 12.5, "y": 29.894, "rot": 0, "fs": 1.143, "vis": 1, "id": "a3ba89572c00a94ee18"}, {"ref": "D2", "lay": 4, "x": 12.192, "y": 81.6445, "rot": 0, "fs": 1.143, "vis": 1, "id": "ad5062b997fca453e18"}, {"ref": "DZ3", "lay": 4, "x": 2.5935, "y": 82.296, "rot": 90, "fs": 1.143, "vis": 1, "id": "dd3213ad487e31f6e31"}, {"ref": "F1", "lay": 4, "x": 12.5, "y": 14.5625, "rot": 0, "fs": 1.143, "vis": 1, "id": "4bbc92a7a1c2d5d0e16"}, {"ref": "J23", "lay": 4, "x": 79.95699274, "y": 9.62693528, "rot": 90, "fs": 1.143, "vis": 1, "id": "3504d98157e7c218e2"}, {"ref": "J26", "lay": 3, "x": 7.239, "y": 97.59100115999999, "rot": 0, "fs": 1.143, "vis": 1, "id": "98360615f2f5ea5fe22"}, {"ref": "J27", "lay": 3, "x": 1.905, "y": 87.74500104, "rot": 0, "fs": 1.143, "vis": 1, "id": "689e248aa6c6cba3e22"}, {"ref": "J33", "lay": 3, "x": 73.52300001999998, "y": 97.02399950000002, "rot": 0, "fs": 1.143, "vis": 1, "id": "71b1b8b2a97dc0aae19"}, {"ref": "J34", "lay": 3, "x": 28.00004306, "y": 94.36694106, "rot": 0, "fs": 1.143, "vis": 1, "id": "7510affe305a1635e152"}, {"ref": "J35", "lay": 3, "x": 28.00004306, "y": 74.04694106, "rot": 0, "fs": 1.143, "vis": 1, "id": "f86d3317440650ebe152"}, {"ref": "J36", "lay": 3, "x": 28.00004306, "y": 53.72694106, "rot": 0, "fs": 1.143, "vis": 1, "id": "d6165d3451b53888e152"}, {"ref": "J37", "lay": 3, "x": 28.00004306, "y": 33.40694106, "rot": 0, "fs": 1.143, "vis": 1, "id": "6c452c4f4c4d8da3e152"}, {"ref": "J38", "lay": 3, "x": 28.00004306, "y": 13.086941059999997, "rot": 0, "fs": 1.143, "vis": 1, "id": "d08b591b67504551e152"}, {"ref": "L2", "lay": 4, "x": 14.2592, "y": 68.5, "rot": 0, "fs": 1.143, "vis": 1, "id": "8e1c2ece5abdcc3ce14"}, {"ref": "L3", "lay": 4, "x": 23.5, "y": 72.4715, "rot": 0, "fs": 1.143, "vis": 1, "id": "019b306b4c888a73e17"}, {"ref": "Q3", "lay": 4, "x": 2.95, "y": 56.50600000000001, "rot": 0, "fs": 1.143, "vis": 1, "id": "83a62d0dac42d37be35"}, {"ref": "Q6", "lay": 4, "x": 22.1032, "y": 88.5811, "rot": 0, "fs": 1.143, "vis": 1, "id": "28c580bf9e57ff9ae19"}, {"ref": "Q7", "lay": 4, "x": 6.0926, "y": 81.40359999999998, "rot": 0, "fs": 1.143, "vis": 1, "id": "b2ac1d2844e6744fe19"}, {"ref": "Q8", "lay": 4, "x": 1.8551, "y": 76.2031, "rot": 0, "fs": 1.143, "vis": 1, "id": "77b2f42a540a05a7e19"}, {"ref": "Q9", "lay": 4, "x": 13.208, "y": 91.9125, "rot": 0, "fs": 1.143, "vis": 1, "id": "8037916d2de0a6f2e19"}, {"ref": "Q10", "lay": 4, "x": 19.731, "y": 81.153, "rot": 0, "fs": 1.143, "vis": 1, "id": "ba8eaa2b682f64f2e19"}, {"ref": "R2", "lay": 4, "x": 4.25, "y": 72.2715, "rot": 0, "fs": 1.143, "vis": 1, "id": "6e63b8e2d47cc123e16"}, {"ref": "R3", "lay": 4, "x": 1.312, "y": 65.25, "rot": 90, "fs": 1.143, "vis": 1, "id": "9b30ab7a96fd2cd4e16"}, {"ref": "R4", "lay": 4, "x": 5.5107, "y": 42.418, "rot": 0, "fs": 1.143, "vis": 1, "id": "101fc6ad0a6f7260e16"}, {"ref": "R5", "lay": 4, "x": 4.318, "y": 46.5215, "rot": 0, "fs": 1.143, "vis": 1, "id": "abb42be18faec17fe16"}, {"ref": "R6", "lay": 4, "x": 3.937, "y": 40.3805, "rot": 0, "fs": 1.143, "vis": 1, "id": "6065cabc0331129ae16"}, {"ref": "R9A", "lay": 4, "x": 7.6, "y": 56.43, "rot": 0, "fs": 1.143, "vis": 1, "id": "dac7fe39c90e2798e16"}, {"ref": "R9B", "lay": 4, "x": 11.95, "y": 56.43, "rot": 0, "fs": 1.143, "vis": 1, "id": "f5f2216da19a7893e16"}, {"ref": "R9C", "lay": 4, "x": 16.3, "y": 56.43, "rot": 0, "fs": 1.143, "vis": 1, "id": "6aa519edd90470cbe16"}, {"ref": "R9D", "lay": 4, "x": 20.65, "y": 56.43, "rot": 0, "fs": 1.143, "vis": 1, "id": "7f4f20d608ae6a9ce16"}, {"ref": "R9E", "lay": 4, "x": 25, "y": 56.43, "rot": 0, "fs": 1.143, "vis": 1, "id": "dbafc2163978252ce16"}, {"ref": "R601", "lay": 4, "x": 82.5, "y": 93.7715, "rot": 0, "fs": 1.143, "vis": 1, "id": "9cc114a94610c892e16"}, {"ref": "R602", "lay": 4, "x": 82.25, "y": 82.2715, "rot": 0, "fs": 1.143, "vis": 1, "id": "36dc6f9164e04eaae16"}, {"ref": "R603", "lay": 4, "x": 85.24999999999999, "y": 82.2715, "rot": 0, "fs": 1.143, "vis": 1, "id": "31557a1455c84f96e16"}, {"ref": "R604", "lay": 4, "x": 75.5, "y": 82.2715, "rot": 0, "fs": 1.143, "vis": 1, "id": "57a83b665ce1252ee16"}, {"ref": "R605", "lay": 4, "x": 78.5, "y": 80.2285, "rot": 0, "fs": 1.143, "vis": 1, "id": "e33df61aae72b6bde16"}, {"ref": "R606", "lay": 4, "x": 81, "y": 57.771499999999996, "rot": 0, "fs": 1.143, "vis": 1, "id": "b65edc3095a484cae16"}, {"ref": "R607", "lay": 4, "x": 78, "y": 55.4785, "rot": 0, "fs": 1.143, "vis": 1, "id": "cf9b547f345dcef1e16"}, {"ref": "R608", "lay": 4, "x": 73.56199999999998, "y": 56.74999999999999, "rot": 90, "fs": 1.143, "vis": 1, "id": "afc179c78e4d262be16"}, {"ref": "R609", "lay": 4, "x": 75.812, "y": 54.5, "rot": 90, "fs": 1.143, "vis": 1, "id": "51602becbeb917a8e16"}, {"ref": "R610", "lay": 4, "x": 72, "y": 82.2715, "rot": 0, "fs": 1.143, "vis": 1, "id": "4c6cdf20477f594fe16"}, {"ref": "R611", "lay": 4, "x": 81, "y": 84.5215, "rot": 0, "fs": 1.143, "vis": 1, "id": "ee82d86cc83cd43de16"}, {"ref": "R614", "lay": 4, "x": 53.24999999999999, "y": 52.9785, "rot": 0, "fs": 1.143, "vis": 1, "id": "f95c82fed7463f0fe16"}, {"ref": "R615", "lay": 4, "x": 53.8135, "y": 63.75, "rot": 90, "fs": 1.143, "vis": 1, "id": "a869866551a54fa4e16"}, {"ref": "R616", "lay": 4, "x": 61.25, "y": 53.4785, "rot": 0, "fs": 1.143, "vis": 1, "id": "d37761c9fc1db10ae16"}, {"ref": "R617", "lay": 4, "x": 63.25, "y": 64.7715, "rot": 0, "fs": 1.143, "vis": 1, "id": "80d8030e653e22c8e16"}, {"ref": "R660", "lay": 4, "x": 88.5, "y": 82.2715, "rot": 0, "fs": 1.143, "vis": 1, "id": "013a68fa3274a9d0e16"}, {"ref": "R661", "lay": 4, "x": 87.24999999999999, "y": 84.5215, "rot": 0, "fs": 1.143, "vis": 1, "id": "cda723ce212ed5d5e16"}, {"ref": "R706", "lay": 4, "x": 16.75, "y": 72.7715, "rot": 0, "fs": 1.143, "vis": 1, "id": "e8005687edbc7cece16"}, {"ref": "R707", "lay": 4, "x": 19.0338, "y": 63.5, "rot": 0, "fs": 1.143, "vis": 1, "id": "d170fab0c4e24860e16"}, {"ref": "R708", "lay": 4, "x": 43.0162, "y": 42.85, "rot": 0, "fs": 1.143, "vis": 1, "id": "a26f064bae45474de16"}, {"ref": "R709", "lay": 4, "x": 51.181, "y": 31.281499999999998, "rot": 0, "fs": 1.143, "vis": 1, "id": "1b3a6b471bbc4b0be16"}, {"ref": "R710", "lay": 4, "x": 47.2977, "y": 29.845, "rot": 0, "fs": 1.143, "vis": 1, "id": "8f3d3d781db86f5be16"}, {"ref": "R711", "lay": 4, "x": 54.229, "y": 31.281499999999998, "rot": 0, "fs": 1.143, "vis": 1, "id": "5a34b5fe42f64511e16"}, {"ref": "R712", "lay": 4, "x": 55.240500000000004, "y": 27.8175, "rot": 0, "fs": 1.143, "vis": 1, "id": "a6ce6d3f89ce61e0e16"}, {"ref": "R716", "lay": 4, "x": 52.196999999999996, "y": 32.5315, "rot": 0, "fs": 1.143, "vis": 1, "id": "9afeccc54193a19ce16"}, {"ref": "R717", "lay": 4, "x": 86.6865, "y": 11.5, "rot": 90, "fs": 1.143, "vis": 1, "id": "73b5d8776be36562e16"}, {"ref": "R718", "lay": 4, "x": 83.8649, "y": 13.1149, "rot": 0, "fs": 1.143, "vis": 1, "id": "fbfbbb2d644bca2ee16"}, {"ref": "R719", "lay": 4, "x": 57.1123, "y": 29.845, "rot": 0, "fs": 1.143, "vis": 1, "id": "ab490ae5046f7ee6e16"}, {"ref": "R720", "lay": 4, "x": 49.071000000000005, "y": 28.408999999999995, "rot": 0, "fs": 1.143, "vis": 1, "id": "50e9fc343fff5a89e16"}, {"ref": "R721", "lay": 4, "x": 89.25, "y": 10.937999999999999, "rot": 0, "fs": 1.143, "vis": 1, "id": "41fce1b9fe34422fe16"}, {"ref": "R722", "lay": 4, "x": 91.5, "y": 8.5635, "rot": 0, "fs": 1.143, "vis": 1, "id": "7cb8f9a74143fabbe16"}, {"ref": "R733", "lay": 4, "x": 26.442500000000003, "y": 84.9776, "rot": 0, "fs": 1.143, "vis": 1, "id": "740c41a5d9f4decbe16"}, {"ref": "R734", "lay": 4, "x": 22.5712, "y": 82.6371, "rot": 0, "fs": 1.143, "vis": 1, "id": "112e005ea433383fe16"}, {"ref": "R746", "lay": 4, "x": 8.3478, "y": 82.042, "rot": 0, "fs": 1.143, "vis": 1, "id": "63efd90cf7eef461e16"}, {"ref": "R747", "lay": 4, "x": 7.8029, "y": 78.0532, "rot": 0, "fs": 1.143, "vis": 1, "id": "a6ee7db56ea67525e16"}, {"ref": "R748", "lay": 4, "x": 7.3623, "y": 73.914, "rot": 0, "fs": 1.143, "vis": 1, "id": "c5306c3f241fbf76e16"}, {"ref": "R749", "lay": 4, "x": 1.7385, "y": 73.914, "rot": 90, "fs": 1.143, "vis": 1, "id": "b5274d31a8dca392e16"}, {"ref": "R750", "lay": 4, "x": 9.906, "y": 92.3345, "rot": 0, "fs": 1.143, "vis": 1, "id": "c14dc975e02e68f0e16"}, {"ref": "R751", "lay": 4, "x": 10.541, "y": 87.97000000000001, "rot": 0, "fs": 1.143, "vis": 1, "id": "2a20aa4b229a4b66e16"}, {"ref": "R752", "lay": 4, "x": 14.9823, "y": 87.884, "rot": 0, "fs": 1.143, "vis": 1, "id": "79cb902711890973e16"}, {"ref": "R753", "lay": 4, "x": 15.620999999999999, "y": 90.973, "rot": 0, "fs": 1.143, "vis": 1, "id": "183985a38c246bdbe16"}, {"ref": "R754", "lay": 4, "x": 14.187900000000003, "y": 84.1649, "rot": 0, "fs": 1.143, "vis": 1, "id": "64833c7b567cafb9e16"}, {"ref": "R755", "lay": 4, "x": 12.1477, "y": 78.2639, "rot": 0, "fs": 1.143, "vis": 1, "id": "218915c63c637928e16"}, {"ref": "R756", "lay": 4, "x": 16.51, "y": 77.84550000000002, "rot": 0, "fs": 1.143, "vis": 1, "id": "168426d436711933e16"}, {"ref": "R757", "lay": 4, "x": 18.542, "y": 84.5875, "rot": 0, "fs": 1.143, "vis": 1, "id": "acc39e6ae4fb2243e16"}, {"ref": "Rs6", "lay": 4, "x": 15.4415, "y": 43.49999999999999, "rot": 0, "fs": 1.143, "vis": 1, "id": "c27a5abe59b74cc1e16"}, {"ref": "RT601", "lay": 4, "x": 85.99999999999999, "y": 27.1535, "rot": 0, "fs": 1.143, "vis": 1, "id": "1eb3dd1c64a6d00de16"}, {"ref": "RT602", "lay": 4, "x": 28.7411, "y": 21.1411, "rot": 0, "fs": 1.143, "vis": 1, "id": "03d9de46327e54bee16"}, {"ref": "U6", "lay": 4, "x": 57.950700000000005, "y": 61.1107, "rot": 0, "fs": 1.143, "vis": 1, "id": "194efedb86d06f79e65"}, {"ref": "U7", "lay": 4, "x": 61.2413, "y": 59.15999999999999, "rot": 0, "fs": 1.143, "vis": 1, "id": "c3ecb9fa21145cbce65"}, {"ref": "U13", "lay": 4, "x": 19.5, "y": 41.638, "rot": 0, "fs": 1.143, "vis": 1, "id": "783ab1d44a849414e41"}, {"ref": "U19", "lay": 4, "x": 7.621500000000001, "y": 68.5, "rot": 90, "fs": 1.143, "vis": 1, "id": "75c657393f3a24b3e26"}, {"ref": "U20", "lay": 4, "x": 97.64896396, "y": 59.49995465999999, "rot": 89.99999999999989, "fs": 1.143, "vis": 1, "id": "d45806a2c31fb75fe126"}, {"ref": "U29", "lay": 4, "x": 2.032, "y": 41.6125, "rot": 0, "fs": 1.143, "vis": 1, "id": "22ad4757fb4f348ce19"}, {"ref": "U30", "lay": 4, "x": 19.5548, "y": 71.0548, "rot": 0, "fs": 1.143, "vis": 1, "id": "674bc633e069bb92e26"}, {"ref": "U31", "lay": 4, "x": 80, "y": 29.5715, "rot": 0, "fs": 1.143, "vis": 1, "id": "2bfa0ae43cb1db50e21"}, {"ref": "U32", "lay": 4, "x": 51.5, "y": 44.177, "rot": 0, "fs": 1.143, "vis": 1, "id": "5f55a4011135ec02e144"}, {"ref": "U35", "lay": 4, "x": 43.9875, "y": 59.15999999999999, "rot": 0, "fs": 1.143, "vis": 1, "id": "cae6e71acb15f0d0e86"}, {"ref": "Y1", "lay": 4, "x": 39.878, "y": 43.161, "rot": 0, "fs": 1.143, "vis": 1, "id": "0b57f5bb705c8b6ee19"}, {"ref": "R723", "lay": 4, "x": 42.926, "y": 38.3145, "rot": 0, "fs": 1.143, "vis": 1, "id": "76f1d58ec2a1cff9e16"}, {"ref": "R724", "lay": 4, "x": 44.638, "y": 35.35, "rot": 90, "fs": 1.143, "vis": 1, "id": "4f92525d105703fae16"}, {"ref": "R725", "lay": 4, "x": 40.9162, "y": 34.15, "rot": 0, "fs": 1.143, "vis": 1, "id": "81ee09f2f2e8d3a2e16"}, {"ref": "R726", "lay": 4, "x": 46.9149, "y": 31.9851, "rot": 0, "fs": 1.143, "vis": 1, "id": "8a5f9bfbb9d70acbe16"}, {"ref": "R727", "lay": 4, "x": 59.98380000000001, "y": 34.18, "rot": 0, "fs": 1.143, "vis": 1, "id": "4b2f579b7faed315e16"}, {"ref": "R728", "lay": 4, "x": 59.98380000000001, "y": 35.4, "rot": 0, "fs": 1.143, "vis": 1, "id": "0b117658cd938786e16"}, {"ref": "R729", "lay": 4, "x": 59.3149, "y": 44.0649, "rot": 0, "fs": 1.143, "vis": 1, "id": "079253504ad53a1ae16"}, {"ref": "C12", "lay": 4, "x": 28.765, "y": 17.365000000000002, "rot": 0, "fs": 1.143, "vis": 1, "id": "9a50e75825fb2932e20"}, {"ref": "C13", "lay": 4, "x": 21.458, "y": 23.86, "rot": 90, "fs": 1.143, "vis": 1, "id": "682de3fbbcb1cee6e18"}, {"ref": "C14", "lay": 4, "x": 2.95, "y": 30.035, "rot": 0, "fs": 1.143, "vis": 1, "id": "a4911d414e9b369de20"}, {"ref": "C15", "lay": 4, "x": 8.25, "y": 30.035, "rot": 0, "fs": 1.143, "vis": 1, "id": "559c02a8ad45350de20"}, {"ref": "C16", "lay": 4, "x": 13.549999999999999, "y": 26.865000000000002, "rot": 0, "fs": 1.143, "vis": 1, "id": "732011f5da17aff8e20"}, {"ref": "C17", "lay": 4, "x": 18.85, "y": 30.035, "rot": 0, "fs": 1.143, "vis": 1, "id": "794d666e53b9563ce20"}, {"ref": "C18", "lay": 4, "x": 17.3175, "y": 24.85, "rot": 0, "fs": 1.143, "vis": 1, "id": "93bca0a8da2dfbcce18"}, {"ref": "C19", "lay": 4, "x": 19.75, "y": 25.871499999999997, "rot": 0, "fs": 1.143, "vis": 1, "id": "2ad60ef97354080ce18"}, {"ref": "C20", "lay": 4, "x": 17.3575, "y": 15.407500000000002, "rot": 0, "fs": 1.143, "vis": 1, "id": "30c1189889dda916e18"}, {"ref": "C21", "lay": 4, "x": 21.0875, "y": 15.1, "rot": 0, "fs": 1.143, "vis": 1, "id": "ab7ed67882f66277e20"}, {"ref": "C22", "lay": 4, "x": 23.9, "y": 13.604, "rot": 0, "fs": 1.143, "vis": 1, "id": "0b6c32d3688e2f91e20"}, {"ref": "C23", "lay": 4, "x": 26.817499999999995, "y": 26.3, "rot": 0, "fs": 1.143, "vis": 1, "id": "97c90cfd87d64177e20"}, {"ref": "C24", "lay": 4, "x": 23.9, "y": 29.696000000000005, "rot": 0, "fs": 1.143, "vis": 1, "id": "9b3418939c19a77be20"}, {"ref": "D3", "lay": 4, "x": 21.2047, "y": 4, "rot": 0, "fs": 1.143, "vis": 1, "id": "1d0f27575fe106f7e18"}, {"ref": "J1", "lay": 4, "x": 23.1269794, "y": 12.35425266, "rot": 0, "fs": 1.143, "vis": 1, "id": "c51cb261ca6e909fe2"}, {"ref": "L4", "lay": 4, "x": 10.4, "y": 13.7285, "rot": 0, "fs": 1.143, "vis": 1, "id": "2146c5010b27f971e14"}, {"ref": "R7", "lay": 4, "x": 19, "y": 12.688, "rot": 0, "fs": 1.143, "vis": 1, "id": "8f2700820a0c2bc4e16"}, {"ref": "R8", "lay": 4, "x": 24.85, "y": 18.6785, "rot": 0, "fs": 1.143, "vis": 1, "id": "5029abd2770c630fe16"}, {"ref": "R10", "lay": 4, "x": 26.7795, "y": 22.639999999999997, "rot": 0, "fs": 1.143, "vis": 1, "id": "87c9566ab0ad5413e16"}, {"ref": "R11", "lay": 4, "x": 27.275, "y": 23.845, "rot": 0, "fs": 1.143, "vis": 1, "id": "b682307d6337b904e16"}, {"ref": "R12", "lay": 4, "x": 24.2, "y": 15.558499999999999, "rot": 0, "fs": 1.143, "vis": 1, "id": "ea801f23e9f10b85e16"}, {"ref": "R13", "lay": 4, "x": 24.2, "y": 16.778500000000005, "rot": 0, "fs": 1.143, "vis": 1, "id": "a643d888d1319bdee16"}, {"ref": "U36", "lay": 4, "x": 23.7, "y": 7.379999999999999, "rot": 0, "fs": 1.143, "vis": 1, "id": "34b77b16b080a772e48"}, {"ref": "U37", "lay": 4, "x": 21, "y": 16.7525, "rot": 0, "fs": 1.143, "vis": 1, "id": "b69da7d7ba21c000e53"}], "comps": [{"ref": "C2", "x": 5.499999159999999, "y": 35.00000112, "rot": 180, "lay": 1}, {"ref": "C3", "x": 19.4999991, "y": 35.00000112, "rot": 0, "lay": 1}, {"ref": "C4", "x": 17.50000056, "y": 45.999999439999996, "rot": 180, "lay": 2}, {"ref": "C5", "x": 1.49999954, "y": 21.74999968, "rot": 270, "lay": 2}, {"ref": "C6", "x": 12.5000004, "y": 38.750001239999996, "rot": 180, "lay": 2}, {"ref": "C7", "x": 6.2500002, "y": 65.75000057999999, "rot": 0, "lay": 2}, {"ref": "C8", "x": 7.00000124, "y": 71.49999924, "rot": 90, "lay": 2}, {"ref": "C9", "x": 12.5000004, "y": 65.24999903999999, "rot": 0, "lay": 2}, {"ref": "C10", "x": 12.5000004, "y": 71.74999874, "rot": 0, "lay": 2}, {"ref": "C11", "x": 17.50000056, "y": 41.24999878, "rot": 0, "lay": 2}, {"ref": "C601", "x": 87.25000076, "y": 56.49999876, "rot": 0, "lay": 2}, {"ref": "C602", "x": 90.49999934, "y": 56.49999876, "rot": 90, "lay": 2}, {"ref": "C603", "x": 87.25000076, "y": 54.250000719999996, "rot": 180, "lay": 2}, {"ref": "C604", "x": 55.75000025999999, "y": 54.99999922, "rot": 0, "lay": 2}, {"ref": "C607", "x": 63.7499995, "y": 54.99999922, "rot": 0, "lay": 2}, {"ref": "C608", "x": 50.999999599999995, "y": 62.74999896, "rot": 90, "lay": 2}, {"ref": "C609", "x": 58.25000034, "y": 54.50000022, "rot": 180, "lay": 2}, {"ref": "C610", "x": 33.00000004, "y": 56.249999259999996, "rot": 90, "lay": 2}, {"ref": "C611", "x": 50.999999599999995, "y": 57.74999879999999, "rot": 90, "lay": 2}, {"ref": "C612", "x": 66.24999958000001, "y": 54.50000022, "rot": 180, "lay": 2}, {"ref": "C731", "x": 1.7499990399999998, "y": 68.50000015999998, "rot": 270, "lay": 2}, {"ref": "C732", "x": 17.25000106, "y": 65.75000057999999, "rot": 180, "lay": 2}, {"ref": "C733", "x": 19.75000114, "y": 73.25000082, "rot": 180, "lay": 2}, {"ref": "C734", "x": 25.0000008, "y": 63.7499995, "rot": 180, "lay": 2}, {"ref": "C735", "x": 25.0000008, "y": 61.24999942, "rot": 180, "lay": 2}, {"ref": "C736", "x": 90.24999984000002, "y": 83.99999964, "rot": 0, "lay": 2}, {"ref": "C737", "x": 74.50000086, "y": 25.9999988, "rot": 270, "lay": 2}, {"ref": "C738", "x": 7.924789839999979, "y": 78.17289165999996, "rot": 270, "lay": 2}, {"ref": "C739", "x": 91.49999987999999, "y": 81.74999906000001, "rot": 0, "lay": 2}, {"ref": "C740", "x": 42.925999999999995, "y": 41.57799914, "rot": 90, "lay": 2}, {"ref": "C741", "x": 41.147999999999996, "y": 37.338, "rot": 270, "lay": 2}, {"ref": "C742", "x": 57.6999989, "y": 38.19999979999999, "rot": 0, "lay": 2}, {"ref": "C743", "x": 45.300000839999996, "y": 41.64000054, "rot": 180, "lay": 2}, {"ref": "C744", "x": 43.18, "y": 36.449, "rot": 180, "lay": 2}, {"ref": "C745", "x": 43.18, "y": 37.464999999999996, "rot": 180, "lay": 2}, {"ref": "C746", "x": 45.300000839999996, "y": 44.060000779999996, "rot": 180, "lay": 2}, {"ref": "C747", "x": 52.950000779999996, "y": 45.25000093999999, "rot": 90, "lay": 2}, {"ref": "C748", "x": 57.6999989, "y": 39.409999920000004, "rot": 0, "lay": 2}, {"ref": "C749", "x": 48.74999902, "y": 32.420001199999994, "rot": 270, "lay": 2}, {"ref": "C750", "x": 49.20000066, "y": 45.909999619999994, "rot": 90, "lay": 2}, {"ref": "C751", "x": 65.50000108, "y": 36.50000066, "rot": 0, "lay": 2}, {"ref": "C752", "x": 77.00000093999999, "y": 30.25000046, "rot": 180, "lay": 2}, {"ref": "C753", "x": 74.24999882, "y": 29.24999992, "rot": 90, "lay": 2}, {"ref": "D1", "x": 12.5000004, "y": 34.00000058, "rot": 90, "lay": 2}, {"ref": "D2", "x": 12.192, "y": 77.724, "rot": 270, "lay": 2}, {"ref": "DZ3", "x": 1.397, "y": 82.29599999999999, "rot": 90, "lay": 2}, {"ref": "F1", "x": 12.5000004, "y": 11.799999259999998, "rot": 90, "lay": 2}, {"ref": "J23", "x": 83.99999964, "y": 5.24999966, "rot": 180, "lay": 2}, {"ref": "J26", "x": 12.446, "y": 94.28900116, "rot": 0, "lay": 1}, {"ref": "J27", "x": 7.112, "y": 84.44300104, "rot": 0, "lay": 1}, {"ref": "J33", "x": 80.00000002, "y": 95.4999995, "rot": 0, "lay": 1}, {"ref": "J34", "x": 49.000001059999995, "y": 89.64000105999999, "rot": 0, "lay": 1}, {"ref": "J35", "x": 49.000001059999995, "y": 69.32000106, "rot": 0, "lay": 1}, {"ref": "J36", "x": 49.000001059999995, "y": 49.000001059999995, "rot": 0, "lay": 1}, {"ref": "J37", "x": 49.000001059999995, "y": 28.68000106, "rot": 0, "lay": 1}, {"ref": "J38", "x": 49.000001059999995, "y": 8.36000106, "rot": 0, "lay": 1}, {"ref": "L2", "x": 11.00000086, "y": 68.50000015999998, "rot": 0, "lay": 2}, {"ref": "L3", "x": 23.500001259999998, "y": 68.50000015999998, "rot": 0, "lay": 2}, {"ref": "Q3", "x": 2.94999918, "y": 52.00000014, "rot": 180, "lay": 2}, {"ref": "Q6", "x": 22.10320700000002, "y": 86.35859792000001, "rot": 270, "lay": 2}, {"ref": "Q7", "x": 4.318, "y": 79.62899999999999, "rot": 180, "lay": 2}, {"ref": "Q8", "x": 4.21478964, "y": 76.20305053999999, "rot": 180, "lay": 2}, {"ref": "Q9", "x": 13.208, "y": 89.91599999999998, "rot": 180, "lay": 2}, {"ref": "Q10", "x": 17.018, "y": 81.15299999999999, "rot": 180, "lay": 2}, {"ref": "R2", "x": 4.24999912, "y": 71.24999974, "rot": 0, "lay": 2}, {"ref": "R3", "x": 2.7499995799999994, "y": 65.24999903999999, "rot": 0, "lay": 2}, {"ref": "R4", "x": 3.937, "y": 42.418, "rot": 0, "lay": 2}, {"ref": "R5", "x": 4.318, "y": 45.085, "rot": 270, "lay": 2}, {"ref": "R6", "x": 3.937, "y": 41.402, "rot": 0, "lay": 2}, {"ref": "R9A", "x": 7.60000004, "y": 52.00000014, "rot": 270, "lay": 2}, {"ref": "R9B", "x": 11.949998959999999, "y": 52.00000014, "rot": 90, "lay": 2}, {"ref": "R9C", "x": 16.30000042, "y": 52.00000014, "rot": 270, "lay": 2}, {"ref": "R9D", "x": 20.64999934, "y": 52.00000014, "rot": 90, "lay": 2}, {"ref": "R9E", "x": 25.0000008, "y": 52.00000014, "rot": 270, "lay": 2}, {"ref": "R601", "x": 82.5000001, "y": 92.74999991999998, "rot": 0, "lay": 2}, {"ref": "R602", "x": 82.25000059999999, "y": 81.25000006, "rot": 0, "lay": 2}, {"ref": "R603", "x": 85.24999967999999, "y": 81.25000006, "rot": 180, "lay": 2}, {"ref": "R604", "x": 75.49999886, "y": 81.25000006, "rot": 0, "lay": 2}, {"ref": "R605", "x": 78.50000048, "y": 81.25000006, "rot": 180, "lay": 2}, {"ref": "R606", "x": 81.00000056, "y": 56.750000799999995, "rot": 0, "lay": 2}, {"ref": "R607", "x": 77.99999894, "y": 56.750000799999995, "rot": 0, "lay": 2}, {"ref": "R608", "x": 74.99999986, "y": 56.750000799999995, "rot": 0, "lay": 2}, {"ref": "R609", "x": 77.25000044, "y": 54.50000022, "rot": 180, "lay": 2}, {"ref": "R610", "x": 72.00000078, "y": 81.25000006, "rot": 0, "lay": 2}, {"ref": "R611", "x": 81.00000056, "y": 83.50000064, "rot": 0, "lay": 2}, {"ref": "R614", "x": 53.25000018, "y": 54.00000122, "rot": 0, "lay": 2}, {"ref": "R615", "x": 55.25000126, "y": 63.7499995, "rot": 0, "lay": 2}, {"ref": "R616", "x": 61.24999942, "y": 54.50000022, "rot": 0, "lay": 2}, {"ref": "R617", "x": 63.25000049999999, "y": 63.7499995, "rot": 0, "lay": 2}, {"ref": "R660", "x": 88.50000080000001, "y": 81.25000006, "rot": 0, "lay": 2}, {"ref": "R661", "x": 87.25000076, "y": 83.50000064, "rot": 0, "lay": 2}, {"ref": "R706", "x": 16.74999952, "y": 71.24999974, "rot": 180, "lay": 2}, {"ref": "R707", "x": 16.74999952, "y": 63.5, "rot": 0, "lay": 2}, {"ref": "R708", "x": 45.300000839999996, "y": 42.85000066, "rot": 180, "lay": 2}, {"ref": "R709", "x": 51.181, "y": 29.845, "rot": 90, "lay": 2}, {"ref": "R710", "x": 50.165, "y": 29.845, "rot": 270, "lay": 2}, {"ref": "R711", "x": 54.229, "y": 29.845, "rot": 270, "lay": 2}, {"ref": "R712", "x": 53.213, "y": 29.845, "rot": 270, "lay": 2}, {"ref": "R716", "x": 52.196999999999996, "y": 29.845, "rot": 270, "lay": 2}, {"ref": "R717", "x": 85.24999967999999, "y": 11.499999859999999, "rot": 180, "lay": 2}, {"ref": "R718", "x": 82.25000059999999, "y": 11.499999859999999, "rot": 180, "lay": 2}, {"ref": "R719", "x": 55.245, "y": 29.845, "rot": 270, "lay": 2}, {"ref": "R720", "x": 49.07099914, "y": 29.84699898, "rot": 270, "lay": 2}, {"ref": "R721", "x": 89.2499993, "y": 9.499998779999999, "rot": 90, "lay": 2}, {"ref": "R722", "x": 91.49999987999999, "y": 10.00000032, "rot": 90, "lay": 2}, {"ref": "R733", "x": 24.575206120000008, "y": 84.97759738000002, "rot": 90, "lay": 2}, {"ref": "R734", "x": 22.57120708000003, "y": 83.65859824000002, "rot": 180, "lay": 2}, {"ref": "R746", "x": 4.064, "y": 82.042, "rot": 180, "lay": 2}, {"ref": "R747", "x": 5.935606619999977, "y": 78.05323480000001, "rot": 90, "lay": 2}, {"ref": "R748", "x": 5.08, "y": 73.914, "rot": 180, "lay": 2}, {"ref": "R749", "x": 3.175, "y": 73.914, "rot": 0, "lay": 2}, {"ref": "R750", "x": 9.905999999999999, "y": 91.313, "rot": 180, "lay": 2}, {"ref": "R751", "x": 10.541, "y": 89.40799999999999, "rot": 90, "lay": 2}, {"ref": "R752", "x": 12.699999999999985, "y": 87.88399999999997, "rot": 180, "lay": 2}, {"ref": "R753", "x": 15.620999999999999, "y": 89.53499999999998, "rot": 90, "lay": 2}, {"ref": "R754", "x": 12.572999999999999, "y": 82.55, "rot": 180, "lay": 2}, {"ref": "R755", "x": 14.528800000000011, "y": 80.645, "rot": 90, "lay": 2}, {"ref": "R756", "x": 16.509999999999998, "y": 78.86699999999999, "rot": 180, "lay": 2}, {"ref": "R757", "x": 18.541999999999998, "y": 83.566, "rot": 180, "lay": 2}, {"ref": "Rs6", "x": 12.5000004, "y": 43.49999936, "rot": 90, "lay": 2}, {"ref": "RT601", "x": 86.00000071999999, "y": 25.9999988, "rot": 0, "lay": 2}, {"ref": "RT602", "x": 26.89999954, "y": 19.2999995, "rot": 90, "lay": 2}, {"ref": "U6", "x": 55.99999976, "y": 59.16000105999999, "rot": 0, "lay": 2}, {"ref": "U7", "x": 63.999998999999995, "y": 59.16000105999999, "rot": 0, "lay": 2}, {"ref": "U13", "x": 19.4999991, "y": 43.49999936, "rot": 270, "lay": 2}, {"ref": "U19", "x": 5.00000016, "y": 68.50000015999998, "rot": 0, "lay": 2}, {"ref": "U20", "x": 81.00000056, "y": 68.99999916, "rot": 90, "lay": 2}, {"ref": "U29", "x": 2.032, "y": 45.085, "rot": 270, "lay": 2}, {"ref": "U30", "x": 16.999999019999997, "y": 68.50000015999998, "rot": 0, "lay": 2}, {"ref": "U31", "x": 80.00000002, "y": 25.9999988, "rot": 180, "lay": 2}, {"ref": "U32", "x": 51.500001139999995, "y": 38.57999904, "rot": 270, "lay": 2}, {"ref": "U35", "x": 39.00000074, "y": 59.16000105999999, "rot": 0, "lay": 2}, {"ref": "Y1", "x": 39.878, "y": 40.64, "rot": 270, "lay": 2}, {"ref": "R723", "x": 42.925999999999995, "y": 39.751, "rot": 270, "lay": 2}, {"ref": "R724", "x": 43.19999995999999, "y": 35.35000041999999, "rot": 180, "lay": 2}, {"ref": "R725", "x": 43.19999995999999, "y": 34.15000028000001, "rot": 180, "lay": 2}, {"ref": "R726", "x": 45.300000839999996, "y": 33.59999884, "rot": 180, "lay": 2}, {"ref": "R727", "x": 57.6999989, "y": 34.18000022, "rot": 180, "lay": 2}, {"ref": "R728", "x": 57.6999989, "y": 35.400000320000004, "rot": 180, "lay": 2}, {"ref": "R729", "x": 57.6999989, "y": 42.44999892, "rot": 180, "lay": 2}, {"ref": "C12", "x": 26.89999954, "y": 15.499999480000001, "rot": 270, "lay": 2}, {"ref": "C13", "x": 24.8500011, "y": 23.860000539999998, "rot": 180, "lay": 2}, {"ref": "C14", "x": 2.94999918, "y": 28.44999898, "rot": 0, "lay": 2}, {"ref": "C15", "x": 8.249998739999999, "y": 28.44999898, "rot": 0, "lay": 2}, {"ref": "C16", "x": 13.55000084, "y": 28.44999898, "rot": 0, "lay": 2}, {"ref": "C17", "x": 18.8500004, "y": 28.44999898, "rot": 0, "lay": 2}, {"ref": "C18", "x": 19.1999997, "y": 24.8500011, "rot": 0, "lay": 2}, {"ref": "C19", "x": 19.75000114, "y": 23.60000106, "rot": 0, "lay": 2}, {"ref": "C20", "x": 19.75000114, "y": 17.799999960000005, "rot": 0, "lay": 2}, {"ref": "C21", "x": 19.1999997, "y": 15.10000028, "rot": 90, "lay": 2}, {"ref": "C22", "x": 23.900000459999998, "y": 15.000000479999999, "rot": 0, "lay": 2}, {"ref": "C23", "x": 23.900000459999998, "y": 26.300000739999998, "rot": 0, "lay": 2}, {"ref": "C24", "x": 23.900000459999998, "y": 28.299999279999998, "rot": 0, "lay": 2}, {"ref": "D3", "x": 19.2499996, "y": 3.9999996199999996, "rot": 270, "lay": 2}, {"ref": "J1", "x": 12.5000004, "y": 5.24999966, "rot": 180, "lay": 2}, {"ref": "L4", "x": 10.39999952, "y": 20.69999924, "rot": 180, "lay": 2}, {"ref": "R7", "x": 19.0000001, "y": 11.25000036, "rot": 90, "lay": 2}, {"ref": "R8", "x": 24.8500011, "y": 20.20000024, "rot": 180, "lay": 2}, {"ref": "R10", "x": 24.8500011, "y": 22.64000044, "rot": 0, "lay": 2}, {"ref": "R11", "x": 24.8500011, "y": 21.420000339999998, "rot": 180, "lay": 2}, {"ref": "R12", "x": 24.199999859999995, "y": 16.579999859999997, "rot": 0, "lay": 2}, {"ref": "R13", "x": 24.199999859999995, "y": 17.799999960000005, "rot": 0, "lay": 2}, {"ref": "U36", "x": 23.70000086, "y": 10.39999952, "rot": 270, "lay": 2}, {"ref": "U37", "x": 21.000001179999998, "y": 20.69999924, "rot": 270, "lay": 2}], "vias": [[5.9000009, 47.199999580000004, "+12V", 0.6095999999999999], [5.9000009, 44.999998899999994, "+12V", 0.6095999999999999], [5.9000009, 46.099999239999995, "+12V", 0.6095999999999999], [7.00000124, 44.999998899999994, "+12V", 0.6095999999999999], [7.00000124, 46.099999239999995, "+12V", 0.6095999999999999], [7.00000124, 47.199999580000004, "+12V", 0.6095999999999999], [8.09999904, 44.999998899999994, "+12V", 0.6095999999999999], [8.09999904, 46.099999239999995, "+12V", 0.6095999999999999], [8.09999904, 47.199999580000004, "+12V", 0.6095999999999999], [9.19999938, 44.999998899999994, "+12V", 0.6095999999999999], [9.19999938, 46.099999239999995, "+12V", 0.6095999999999999], [9.19999938, 47.199999580000004, "+12V", 0.6095999999999999], [10.24999982, 44.999998899999994, "+12V", 0.6095999999999999], [10.24999982, 46.099999239999995, "+12V", 0.6095999999999999], [10.24999982, 47.199999580000004, "+12V", 0.6095999999999999], [49.100000859999994, 46.89899942, "GND", 0.6095999999999999], [53.29899932, 46.94899932, "GND", 0.6095999999999999], [47.50099974, 84.59099922, "USB1_DP", 0.6095999999999999], [48.49899876, 84.59099922, "USB1_DM", 0.6095999999999999], [47.50099974, 64.270001, "USB2_DP", 0.6095999999999999], [48.49899876, 64.270001, "USB2_DM", 0.6095999999999999], [47.50099974, 48.198999359999995, "USB3_DP", 0.6095999999999999], [48.49899876, 48.8990005, "USB3_DM", 0.6095999999999999], [47.50099974, 6.75999918, "USB5_DP", 0.6095999999999999], [48.49899876, 6.75999918, "USB5_DM", 0.6095999999999999], [61.29999932, 30.398999399999997, "USB4_DP", 0.6095999999999999], [62.000000459999995, 29.599001, "USB4_DM", 0.6095999999999999], [45.70684026000001, 36.90139939999999, "USB6_DM", 0.6095999999999999], [45.80999982, 37.710998999999994, "USB6_DP", 0.6095999999999999], [70.75000074, 57.12499878, "USB6_DP", 0.6095999999999999], [71.37500076, 55.87499874, "USB6_DM", 0.6095999999999999], [49.50000006, 84.62499966, "GND", 0.6095999999999999], [49.50000006, 64.25000104, "GND", 0.6095999999999999], [48.499999519999996, 49.87500058, "GND", 0.6095999999999999], [62.000000459999995, 28.6249999, "GND", 0.6095999999999999], [46.500000979999996, 6.7499991999999995, "GND", 0.6095999999999999], [69.7500002, 57.12499878, "GND", 0.6095999999999999], [82.5000001, 5.499999159999999, "GND", 0.6095999999999999], [53.499999679999995, 23.125000739999997, "GND", 0.6095999999999999], [77.87500046, 10.24999982, "GND", 0.6095999999999999], [79.1250005, 13.500000939999998, "GND", 0.6095999999999999], [83.947, 10.286999999999999, "GND", 0.6095999999999999], [7.25000074, 64.75000003999999, "+12V", 0.6095999999999999], [5.24999966, 65.75000057999999, "GND", 0.6095999999999999], [10.90699876, 65.24999903999999, "GND", 0.6095999999999999], [10.90699876, 71.74999874, "GND", 0.6095999999999999], [85.65600089999998, 56.49999876, "GND", 0.6095999999999999], [51.00100036, 63.74899874, "GND", 0.6095999999999999], [51.00100036, 58.749999339999995, "GND", 0.6095999999999999], [1.7499990399999998, 67.49999962, "GND", 0.6095999999999999], [1.7499990399999998, 70.62499972, "+12V", 0.6095999999999999], [16.25099874, 65.75000057999999, "GND", 0.6095999999999999], [18.24999906, 64.75000003999999, "+12V", 0.6095999999999999], [23.40900068, 63.74899874, "GND", 0.6095999999999999], [23.40900068, 61.24999942, "GND", 0.6095999999999999], [74.50099908, 24.800999419999997, "GND", 0.6095999999999999], [66.49999908, 36.50000066, "GND", 0.6095999999999999], [75.99899964, 30.248999700000002, "GND", 0.6095999999999999], [11.8529989, 36.36000093999999, "GND", 0.6095999999999999], [13.145000379999997, 36.36000093999999, "GND", 0.6095999999999999], [20.74900092, 92.04999878, "GND", 0.6095999999999999], [26.62499882, 88.50000080000001, "+12V", 0.6095999999999999], [28.44999898, 87.5880011, "GND", 0.6095999999999999], [28.44999898, 89.6390003, "GND", 0.6095999999999999], [28.44999898, 91.68899874, "GND", 0.6095999999999999], [30.549999860000003, 87.5880011, "GND", 0.6095999999999999], [30.549999860000003, 89.6390003, "GND", 0.6095999999999999], [30.549999860000003, 91.68899874, "GND", 0.6095999999999999], [28.44999898, 67.26899931999999, "GND", 0.6095999999999999], [28.44999898, 69.3190003, "GND", 0.6095999999999999], [28.44999898, 71.3699995, "GND", 0.6095999999999999], [30.549999860000003, 67.26899931999999, "GND", 0.6095999999999999], [30.549999860000003, 69.3190003, "GND", 0.6095999999999999], [30.549999860000003, 71.3699995, "GND", 0.6095999999999999], [28.44999898, 46.94899932, "GND", 0.6095999999999999], [28.44999898, 48.9990003, "GND", 0.6095999999999999], [28.44999898, 51.0499995, "GND", 0.6095999999999999], [30.549999860000003, 46.94899932, "GND", 0.6095999999999999], [30.549999860000003, 48.9990003, "GND", 0.6095999999999999], [30.549999860000003, 51.0499995, "GND", 0.6095999999999999], [28.44999898, 26.628001100000002, "GND", 0.6095999999999999], [28.44999898, 28.6790003, "GND", 0.6095999999999999], [28.44999898, 30.72899874, "GND", 0.6095999999999999], [30.549999860000003, 26.628001100000002, "GND", 0.6095999999999999], [30.549999860000003, 28.6790003, "GND", 0.6095999999999999], [30.549999860000003, 30.72899874, "GND", 0.6095999999999999], [28.44999898, 6.308001099999999, "GND", 0.6095999999999999], [28.44999898, 8.3590003, "GND", 0.6095999999999999], [28.44999898, 10.4099995, "GND", 0.6095999999999999], [30.549999860000003, 6.308001099999999, "GND", 0.6095999999999999], [30.549999860000003, 8.3590003, "GND", 0.6095999999999999], [30.549999860000003, 10.4099995, "GND", 0.6095999999999999], [5.499999159999999, 50.12500007999999, "+12V", 0.6095999999999999], [3.6249990999999997, 47.874999499999994, "+12V", 0.6095999999999999], [2.3749990600000004, 47.874999499999994, "+12V", 0.6095999999999999], [8.509, 50.02977293999999, "+12V", 0.6095999999999999], [23.72300056, 48.93300093999999, "GND", 0.6095999999999999], [25.00099902, 48.93300093999999, "GND", 0.6095999999999999], [26.280000779999998, 48.93300093999999, "GND", 0.6095999999999999], [55.99999976, 59.33499944, "GND", 0.6095999999999999], [63.999998999999995, 59.33499944, "GND", 0.6095999999999999], [18.7500006, 43.49999936, "+12V", 0.6095999999999999], [6.4999997, 66.8749996, "+12V", 0.6095999999999999], [4.62499964, 68.50000015999998, "+12V", 0.6095999999999999], [18.375000080000003, 66.8749996, "+12V", 0.6095999999999999], [16.50000002, 68.50000015999998, "+12V", 0.6095999999999999], [49.549999959999994, 38.57999904, "GND", 0.6095999999999999], [49.549999959999994, 40.531000979999995, "GND", 0.6095999999999999], [51.500999359999994, 38.57999904, "GND", 0.6095999999999999], [51.500999359999994, 40.531000979999995, "GND", 0.6095999999999999], [53.451998759999995, 38.57999904, "GND", 0.6095999999999999], [53.451998759999995, 40.531000979999995, "GND", 0.6095999999999999], [57.37500082, 39.99999874, "+3V3_HUB", 0.6095999999999999], [54.99999922, 39.49999973999999, "+3V3_HUB", 0.6095999999999999], [13.12500042, 38.12500122, "GND", 0.6095999999999999], [17.99999956, 40.49799876, "GND", 0.6095999999999999], [90.49999934, 55.50000076, "GND", 0.6095999999999999], [56.12500078, 55.624999239999994, "GND", 0.6095999999999999], [63.87500052, 54.1249997, "GND", 0.6095999999999999], [66.6250001, 53.8750002, "GND", 0.6095999999999999], [91.25000037999999, 83.99999964, "GND", 0.6095999999999999], [92.50000041999999, 81.74999906000001, "GND", 0.6095999999999999], [44.250000400000005, 44.000000899999996, "GND", 0.6095999999999999], [74.24999882, 30.25000046, "GND", 0.6095999999999999], [31.75, 93.24999892, "GND", 0.6095999999999999], [35.625001139999995, 91.8750004, "GND", 0.6095999999999999], [44.74999939999999, 93.24999892, "GND", 0.6095999999999999], [46.500000979999996, 94.62499998, "GND", 0.6095999999999999], [47.49999898, 94.62499998, "GND", 0.6095999999999999], [48.499999519999996, 94.62499998, "GND", 0.6095999999999999], [50.5000006, 94.62499998, "GND", 0.6095999999999999], [51.500001139999995, 94.62499998, "GND", 0.6095999999999999], [53.499999679999995, 94.62499998, "GND", 0.6095999999999999], [54.50000022, 94.62499998, "GND", 0.6095999999999999], [55.50000076, 94.62499998, "GND", 0.6095999999999999], [56.49999876, 94.62499998, "GND", 0.6095999999999999], [57.4999993, 94.62499998, "GND", 0.6095999999999999], [58.49999984, 94.62499998, "GND", 0.6095999999999999], [59.500000379999996, 94.62499998, "GND", 0.6095999999999999], [60.50000092, 94.62499998, "GND", 0.6095999999999999], [61.499998919999996, 94.62499998, "GND", 0.6095999999999999], [62.49999946, 94.62499998, "GND", 0.6095999999999999], [63.5, 94.62499998, "GND", 0.6095999999999999], [64.50000054, 94.62499998, "GND", 0.6095999999999999], [35.625001139999995, 87.37499924, "GND", 0.6095999999999999], [38.4999992, 87.37499924, "GND", 0.6095999999999999], [44.74999939999999, 86.00000071999999, "GND", 0.6095999999999999], [46.500000979999996, 87.37499924, "GND", 0.6095999999999999], [49.50000006, 87.37499924, "GND", 0.6095999999999999], [50.5000006, 87.37499924, "GND", 0.6095999999999999], [51.500001139999995, 87.37499924, "GND", 0.6095999999999999], [52.49999913999999, 87.37499924, "GND", 0.6095999999999999], [53.499999679999995, 87.37499924, "GND", 0.6095999999999999], [54.50000022, 87.37499924, "GND", 0.6095999999999999], [55.50000076, 87.37499924, "GND", 0.6095999999999999], [56.49999876, 87.37499924, "GND", 0.6095999999999999], [57.4999993, 87.37499924, "GND", 0.6095999999999999], [58.49999984, 87.37499924, "GND", 0.6095999999999999], [59.500000379999996, 87.37499924, "GND", 0.6095999999999999], [60.50000092, 87.37499924, "GND", 0.6095999999999999], [61.499998919999996, 87.37499924, "GND", 0.6095999999999999], [62.49999946, 87.37499924, "GND", 0.6095999999999999], [63.5, 87.37499924, "GND", 0.6095999999999999], [65.24999903999999, 87.50000026, "GND", 0.6095999999999999], [46.500000979999996, 71.49999924, "GND", 0.6095999999999999], [47.49999898, 71.49999924, "GND", 0.6095999999999999], [48.499999519999996, 71.49999924, "GND", 0.6095999999999999], [50.7500001, 71.49999924, "GND", 0.6095999999999999], [51.500001139999995, 71.49999924, "GND", 0.6095999999999999], [53.499999679999995, 71.49999924, "GND", 0.6095999999999999], [54.50000022, 71.49999924, "GND", 0.6095999999999999], [55.50000076, 71.49999924, "GND", 0.6095999999999999], [56.49999876, 71.49999924, "GND", 0.6095999999999999], [57.4999993, 71.49999924, "GND", 0.6095999999999999], [58.49999984, 71.49999924, "GND", 0.6095999999999999], [59.500000379999996, 71.49999924, "GND", 0.6095999999999999], [60.50000092, 71.49999924, "GND", 0.6095999999999999], [61.499998919999996, 71.49999924, "GND", 0.6095999999999999], [62.49999946, 71.49999924, "GND", 0.6095999999999999], [63.5, 71.49999924, "GND", 0.6095999999999999], [64.37499952, 71.49999924, "GND", 0.6095999999999999], [50.5000006, 64.37499952, "GND", 0.6095999999999999], [51.375000119999996, 64.37499952, "GND", 0.6095999999999999], [56.49999876, 64.37499952, "GND", 0.6095999999999999], [57.12499878, 64.37499952, "GND", 0.6095999999999999], [61.499998919999996, 67.12499910000001, "GND", 0.6095999999999999], [62.49999946, 67.12499910000001, "GND", 0.6095999999999999], [63.5, 67.12499910000001, "GND", 0.6095999999999999], [32.375000019999995, 51.2499991, "GND", 0.6095999999999999], [48.250000019999995, 51.2499991, "GND", 0.6095999999999999], [60.6249994, 51.2499991, "GND", 0.6095999999999999], [35.625001139999995, 46.750000480000004, "GND", 0.6095999999999999], [44.74999939999999, 45.37499942, "GND", 0.6095999999999999], [54.50000022, 46.750000480000004, "GND", 0.6095999999999999], [55.50000076, 46.750000480000004, "GND", 0.6095999999999999], [56.49999876, 46.750000480000004, "GND", 0.6095999999999999], [57.4999993, 46.750000480000004, "GND", 0.6095999999999999], [58.49999984, 46.750000480000004, "GND", 0.6095999999999999], [59.500000379999996, 46.750000480000004, "GND", 0.6095999999999999], [60.50000092, 46.750000480000004, "GND", 0.6095999999999999], [66.24999958000001, 45.37499942, "GND", 0.6095999999999999], [31.75, 32.249998999999995, "GND", 0.6095999999999999], [35.625001139999995, 33.62500006, "GND", 0.6095999999999999], [35.625001139999995, 23.75000076, "GND", 0.6095999999999999], [38.4999992, 23.75000076, "GND", 0.6095999999999999], [44.74999939999999, 25.124999279999997, "GND", 0.6095999999999999], [46.500000979999996, 23.75000076, "GND", 0.6095999999999999], [49.50000006, 23.75000076, "GND", 0.6095999999999999], [50.5000006, 23.75000076, "GND", 0.6095999999999999], [51.500001139999995, 23.75000076, "GND", 0.6095999999999999], [52.49999913999999, 23.75000076, "GND", 0.6095999999999999], [53.1210012, 26.50000034, "GND", 0.6095999999999999], [55.624999239999994, 26.50000034, "GND", 0.6095999999999999], [56.49999876, 26.50000034, "GND", 0.6095999999999999], [57.4999993, 26.50000034, "GND", 0.6095999999999999], [60.75000042, 26.50000034, "GND", 0.6095999999999999], [61.499998919999996, 26.50000034, "GND", 0.6095999999999999], [62.124998940000005, 26.50000034, "GND", 0.6095999999999999], [31.75, 11.99999886, "GND", 0.6095999999999999], [35.625001139999995, 10.62500034, "GND", 0.6095999999999999], [44.74999939999999, 11.99999886, "GND", 0.6095999999999999], [46.500000979999996, 10.62500034, "GND", 0.6095999999999999], [47.49999898, 10.62500034, "GND", 0.6095999999999999], [48.499999519999996, 10.62500034, "GND", 0.6095999999999999], [50.5000006, 10.62500034, "GND", 0.6095999999999999], [51.500001139999995, 10.62500034, "GND", 0.6095999999999999], [53.499999679999995, 10.62500034, "GND", 0.6095999999999999], [54.50000022, 10.62500034, "GND", 0.6095999999999999], [55.50000076, 10.62500034, "GND", 0.6095999999999999], [56.49999876, 10.62500034, "GND", 0.6095999999999999], [57.4999993, 10.62500034, "GND", 0.6095999999999999], [58.49999984, 10.62500034, "GND", 0.6095999999999999], [60.75000042, 10.62500034, "GND", 0.6095999999999999], [61.499998919999996, 10.62500034, "GND", 0.6095999999999999], [62.49999946, 10.62500034, "GND", 0.6095999999999999], [63.5, 10.62500034, "GND", 0.6095999999999999], [64.25000104, 10.62500034, "GND", 0.6095999999999999], [35.625001139999995, 3.3749995999999998, "GND", 0.6095999999999999], [38.4999992, 3.3749995999999998, "GND", 0.6095999999999999], [44.74999939999999, 4.7500006599999995, "GND", 0.6095999999999999], [46.37499995999999, 6.12499918, "GND", 0.6095999999999999], [49.62500108, 6.12499918, "GND", 0.6095999999999999], [50.5000006, 6.12499918, "GND", 0.6095999999999999], [51.500001139999995, 6.12499918, "GND", 0.6095999999999999], [52.49999913999999, 6.12499918, "GND", 0.6095999999999999], [53.499999679999995, 6.12499918, "GND", 0.6095999999999999], [54.50000022, 6.12499918, "GND", 0.6095999999999999], [55.50000076, 6.12499918, "GND", 0.6095999999999999], [56.49999876, 6.12499918, "GND", 0.6095999999999999], [57.4999993, 6.12499918, "GND", 0.6095999999999999], [58.49999984, 6.12499918, "GND", 0.6095999999999999], [59.500000379999996, 6.12499918, "GND", 0.6095999999999999], [60.50000092, 6.12499918, "GND", 0.6095999999999999], [61.499998919999996, 6.12499918, "GND", 0.6095999999999999], [62.49999946, 6.12499918, "GND", 0.6095999999999999], [63.5, 6.12499918, "GND", 0.6095999999999999], [66.24999958000001, 4.7500006599999995, "GND", 0.6095999999999999], [26.25000084, 78.25000098, "GND", 0.6095999999999999], [25.0000008, 82.0000011, "GND", 0.6095999999999999], [8.125000259999998, 22.125000200000002, "GND", 0.6095999999999999], [2.2500005800000005, 64.62499901999999, "GND", 0.6095999999999999], [17.125000039999996, 62.87499998, "GND", 0.6095999999999999], [84.87499916, 12.124999879999999, "GND", 0.6095999999999999], [81.87500008, 12.124999879999999, "GND", 0.6095999999999999], [92.12499989999999, 10.49999932, "GND", 0.6095999999999999], [86.74999921999999, 25.2500003, "GND", 0.6095999999999999], [21.625001199999996, 44.999998899999994, "GND", 0.6095999999999999], [6.2500002, 70.12500071999999, "GND", 0.6095999999999999], [89.75000083999998, 61.37500044, "GND", 0.6095999999999999], [79.49200001999999, 68.87500068, "GND", 0.6095999999999999], [18.375000080000003, 70.12500071999999, "GND", 0.6095999999999999], [77.00000093999999, 24.62500028, "GND", 0.6095999999999999], [35.500000119999996, 63.37499898, "GND", 0.6095999999999999], [37.87499918, 57.4999993, "GND", 0.6095999999999999], [58.749999339999995, 42.75000086, "GND", 0.6095999999999999], [45.14465698, 39.68884112, "UP_DP", 0.6095999999999999], [83.2620001, 6.3729997, "UP_DP", 0.6095999999999999], [45.775999379999995, 39.07899982, "UP_DM", 0.6095999999999999], [84.24600118, 9.12899876, "UP_DM", 0.6095999999999999], [54.99609016, 61.421977739999996, "$3N389", 0.6095999999999999], [55.68278932, 62.61667435999999, "$3N389", 0.6095999999999999], [38.78602352, 64.08507121999999, "SCL2", 0.6095999999999999], [37.75402406, 64.33907122, "SDA2", 0.6095999999999999], [69.07196244, 61.2910763, "PRSNT2#", 0.6095999999999999], [73.38995227999999, 62.0530763, "PRSNT2#", 0.6095999999999999], [40.56401843999999, 61.005077379999996, "SCL3", 0.6095999999999999], [39.02402152, 51.099097699999994, "SDA3", 0.6095999999999999], [38.451121979999996, 60.68617783999999, "SDA3", 0.6095999999999999], [35.9920286, 74.49914996, "SCL1", 0.6095999999999999], [37.500024059999994, 74.49914996, "SDA1", 0.6095999999999999], [37.375226239999996, 63.45237245999999, "SDA1", 0.6095999999999999], [73.37505263999999, 65.77786946, "EFUSE_EN1", 0.6095999999999999], [47.32600643999999, 67.72886378, "EFUSE_EN2", 0.6095999999999999], [53.07409502, 67.34896613999999, "EFUSE_EN3", 0.6095999999999999], [38.02402352, 29.001140879999998, "SCL4", 0.6095999999999999], [41.8340159, 63.545072299999994, "SCL4", 0.6095999999999999], [38.51602406, 30.77913834, "SDA4", 0.6095999999999999], [41.078718959999996, 63.394973539999995, "SDA4", 0.6095999999999999], [36.75402606000001, 6.14108754, "SCL5", 0.6095999999999999], [37.75402406, 6.14108754, "SDA5", 0.6095999999999999], [42.75401406, 13.340872479999998, "EFUSE_EN5", 0.6095999999999999], [57.99398358, 23.500852160000004, "EFUSE_EN5", 0.6095999999999999], [61.549975960000005, 23.500852160000004, "EFUSE_EN5", 0.6095999999999999], [75.40705009999999, 61.99587549999999, "EFUSE_EN5", 0.6095999999999999], [54.07199244, 67.221862, "VDAC2", 0.6095999999999999], [58.26198405999999, 58.713878, "VDAC2", 0.6095999999999999], [65.26197006, 47.28910532, "PRSNT3#", 0.6095999999999999], [73.13595482, 53.385092619999995, "PRSNT3#", 0.6095999999999999], [76.51164784, 56.433087539999995, "PRSNT3#", 0.6095999999999999], [65.49996805999999, 57.90208383999999, "VDAC3", 0.6095999999999999], [61.437977200000006, 21.46786156, "VDAC5", 0.6095999999999999], [65.50196958, 50.16980314, "VDAC5", 0.6095999999999999], [66.26396704, 59.408080319999996, "VDAC5", 0.6095999999999999], [64.75397006, 26.461145959999996, "PRSNT4#", 0.6095999999999999], [76.6919472, 53.89309261999999, "PRSNT4#", 0.6095999999999999], [77.19994466, 58.21108245999999, "PRSNT4#", 0.6095999999999999], [56.99000032, 56.83886524, "$3N384", 0.6095999999999999], [53.44789412, 60.453978660000004, "$3N384", 0.6095999999999999], [70.93175806, 14.08905996, "VBUS_UP", 0.6095999999999999], [57.97778346, 20.69304472, "VBUS_UP", 0.6095999999999999], [68.30996243999999, 77.54714487999999, "PRSNT1#", 0.6095999999999999], [81.00993704, 61.5451779, "PRSNT1#", 0.6095999999999999], [42.50001406, 74.49914996, "INT#", 0.6095999999999999], [42.50001406, 70.68915758, "INT#", 0.6095999999999999], [42.50001406, 51.131198219999995, "INT#", 0.6095999999999999], [42.50001406, 30.81123886, "INT#", 0.6095999999999999], [42.50001406, 10.4912795, "INT#", 0.6095999999999999], [43.51601406, 85.16712964, "INT#", 0.6095999999999999], [76.69474627999999, 80.48803816, "INT#", 0.6095999999999999], [78.47274374, 78.96404324, "INT#", 0.6095999999999999], [43.78001149999999, 74.6070517, "FAN_TACH_IN", 0.6095999999999999], [51.90799626, 74.6070517, "FAN_TACH_IN", 0.6095999999999999], [63.69497294, 75.65404986, "FAN_TACH_OUT", 0.6095999999999999], [66.48896786, 71.59005748, "FAN_TACH_OUT", 0.6095999999999999], [56.75008716, 75.98494835999998, "FAN_PWM", 0.6095999999999999], [51.670097319999996, 84.36693058, "FAN_PWM", 0.6095999999999999], [47.277804859999996, 76.5672459, "FAN_EN", 0.6095999999999999], [43.21381248, 76.5672459, "FAN_EN", 0.6095999999999999], [79.73503991999999, 81.67503604, "MUX_RST#", 0.6095999999999999], [36.725227540000006, 71.32655788, "MUX_RST#", 0.6095999999999999], [60.45607924, 56.13598882, "$3N397", 0.6095999999999999], [61.472076699999995, 55.11998882, "$3N397", 0.6095999999999999], [53.4720927, 58.118877919999996, "$3N381", 0.6095999999999999], [53.68279332, 55.9252882, "$3N381", 0.6095999999999999], [64.60186978, 56.74998556, "$3N400", 0.6095999999999999], [52.01599706, 55.22599064, "$3N400", 0.6095999999999999], [64.75397006, 6.14108754, "PRSNT5#", 0.6095999999999999], [73.38505262, 76.36684752, "PRSNT5#", 0.6095999999999999], [72.43275582, 77.31914432, "PRSNT5#", 0.6095999999999999], [43.8829196, 75.75794855999999, "INA_ALERT", 0.6095999999999999], [54.296899280000005, 77.53594602, "INA_ALERT", 0.6095999999999999], [77.1169527, 79.02004262, "INA_ALERT", 0.6095999999999999], [84.81502975999999, 78.88104111999999, "RXD0", 0.6095999999999999], [74.40095102, 80.40503858, "IO0", 0.6095999999999999], [85.57702975999999, 80.40503858, "TXD0", 0.6095999999999999], [88.93282187999999, 76.42064726, "NTC1", 0.6095999999999999], [88.93282187999999, 78.96064218000001, "NTC1", 0.6095999999999999], [87.86302468, 76.36684752, "NTC2", 0.6095999999999999], [89.64101959999999, 80.68483989999999, "NTC2", 0.6095999999999999], [84.3070323, 58.86488354, "NTC2", 0.6095999999999999], [62.46307547999999, 23.558952119999997, "NTC2", 0.6095999999999999], [55.35108818, 21.2729572, "NTC2", 0.6095999999999999], [86.84702722, 73.3188526, "EN", 0.6095999999999999], [84.0530323, 82.97083482, "EN", 0.6095999999999999], [36.00002706, 60.04008058, "+3V3", 0.6095999999999999], [49.31720134, 54.49999006, "+3V3", 0.6095999999999999], [82.56723389999999, 55.49998806, "+3V3", 0.6095999999999999], [88.34262240000001, 54.99998906, "+3V3", 0.6095999999999999], [87.8426234, 79.99993906, "+3V3", 0.6095999999999999], [43.4562123, 58.10440246, "SCL", 0.6095999999999999], [54.25119198, 60.644389759999996, "SCL", 0.6095999999999999], [70.09985979999999, 65.2163796, "SCL", 0.6095999999999999], [74.67184963999999, 69.78837198, "SCL", 0.6095999999999999], [62.591873799999995, 60.659977739999995, "SDA", 0.6095999999999999], [64.7498705, 61.421977739999996, "SDA", 0.6095999999999999], [82.27583494000001, 78.94794218, "SDA", 0.6095999999999999], [15.499999480000001, 45.12499992000001, "VIN_SW", 0.6095999999999999], [13.68799904, 40.99999928, "VIN_SW", 0.6095999999999999], [63.699971659999996, 47.0999058, "+5V", 0.6095999999999999], [64.29997046, 30.479939039999998, "+5V", 0.6095999999999999], [73.29995246, 29.87994024, "+5V", 0.6095999999999999], [65.49996805999999, 18.479963039999998, "+5V", 0.6095999999999999], [43.30001246, 77.81984436, "+5V", 0.6095999999999999], [28.900041260000002, 65.81986835999999, "+5V", 0.6095999999999999], [18.10006286, 71.81985635999999, "+5V", 0.6095999999999999], [73.37505263999999, 64.28197202, "EFUSE_EN4", 0.6095999999999999], [74.65495102, 57.594886079999995, "HUB_RST", 0.6095999999999999], [63.56087364, 30.24483918, "HUB_RST", 0.6095999999999999], [57.464883799999996, 28.212844259999997, "HUB_RST", 0.6095999999999999], [51.01209762, 35.324829019999996, "HUB_RST", 0.6095999999999999], [44.36721124, 33.10003286, "+3V3_HUB", 0.6095999999999999], [54.86719023999999, 35.10002886000001, "+3V3_HUB", 0.6095999999999999], [63.96717204, 35.50002806, "+3V3_HUB", 0.6095999999999999], [69.46716104, 32.732733620000005, "+3V3_HUB", 0.6095999999999999], [79.53004159999999, 25.500048059999997, "+3V3_HUB", 0.6095999999999999], [81.03003859999998, 24.00005106, "+3V3_HUB", 0.6095999999999999], [53.499999679999995, 28.49999888, "+3V3_HUB", 0.6095999999999999], [52.37500066, 27.125000359999998, "+3V3_HUB", 0.6095999999999999], [57.2499998, 19.75000114, "+3V3_HUB", 0.6095999999999999], [63.999998999999995, 19.75000114, "+3V3_HUB", 0.6095999999999999], [63.12499947999999, 27.374999860000003, "+3V3_HUB", 0.6095999999999999], [60.75000042, 27.50000088, "+3V3_HUB", 0.6095999999999999], [58.749999339999995, 27.62700088, "+3V3_HUB", 0.6095999999999999], [58.749999339999995, 40.25000078, "+3V3_HUB", 0.6095999999999999], [48.62500054, 39.62500076, "+3V3_HUB", 0.6095999999999999], [54.99999922, 40.25000078, "+3V3_HUB", 0.6095999999999999], [49.97799758, 27.106999379999998, "+3V3_HUB", 0.6095999999999999], [46.369000480000004, 30.749999459999998, "+3V3_HUB", 0.6095999999999999], [43.49999936, 30.749999459999998, "+3V3_HUB", 0.6095999999999999], [52.49999913999999, 41.50000082, "+3V3_HUB", 0.6095999999999999], [38.12500122, 58.749999339999995, "SDA", 0.6095999999999999], [43.24999986, 62.87499998, "SDA", 0.6095999999999999], [56.750000799999995, 61.37500044, "SDA", 0.6095999999999999], [49.62500108, 94.62499998, "VDAC1", 0.6095999999999999], [49.62500108, 96.25199952, "VDAC1", 0.6095999999999999], [73.25000082, 96.12499952, "VDAC1", 0.6095999999999999], [73.25000082, 85.75000122, "VDAC1", 0.6095999999999999], [74.24999882, 76.49999940000001, "VDAC1", 0.6095999999999999], [72.00000078, 54.50000022, "VDAC1", 0.6095999999999999], [68.12499964, 54.50000022, "VDAC1", 0.6095999999999999], [67.12499910000001, 55.87499874, "VDAC1", 0.6095999999999999], [67.12499910000001, 60.874998899999994, "VDAC1", 0.6095999999999999], [44.62500092, 32.249998999999995, "VDAC4", 0.6095999999999999], [43.87499988, 11.251999340000001, "VDAC4", 0.6095999999999999], [78.25000098, 11.12499934, "VDAC4", 0.6095999999999999], [78.25000098, 21.12499966, "VDAC4", 0.6095999999999999], [78.99999947999999, 26.875000859999997, "VDAC4", 0.6095999999999999], [78.99999947999999, 52.49999913999999, "VDAC4", 0.6095999999999999], [72.00000078, 53.25000018, "VDAC4", 0.6095999999999999], [69.87500122, 53.8750002, "VDAC4", 0.6095999999999999], [69.62499918, 55.87499874, "VDAC4", 0.6095999999999999], [64.99999954, 63.000001, "VDAC4", 0.6095999999999999], [59.62499886, 63.000001, "VDAC4", 0.6095999999999999], [59.62499886, 61.37500044, "VDAC4", 0.6095999999999999], [58.25000034, 59.99999937999999, "VDAC4", 0.6095999999999999], [42.49999882, 2.50000008, "GND", 0.6095999999999999], [46.500000979999996, 2.50000008, "GND", 0.6095999999999999], [50.5000006, 2.50000008, "GND", 0.6095999999999999], [54.50000022, 2.50000008, "GND", 0.6095999999999999], [58.49999984, 2.50000008, "GND", 0.6095999999999999], [62.49999946, 2.50000008, "GND", 0.6095999999999999], [66.49999908, 2.50000008, "GND", 0.6095999999999999], [70.50000124, 2.50000008, "GND", 0.6095999999999999], [74.50000086, 2.50000008, "GND", 0.6095999999999999], [82.5000001, 2.50000008, "GND", 0.6095999999999999], [86.49999972, 2.50000008, "GND", 0.6095999999999999], [90.49999934, 2.50000008, "GND", 0.6095999999999999], [74.50000086, 6.4999997, "GND", 0.6095999999999999], [90.49999934, 6.4999997, "GND", 0.6095999999999999], [94.49999895999999, 10.49999932, "GND", 0.6095999999999999], [74.50000086, 14.499998939999998, "GND", 0.6095999999999999], [82.5000001, 14.499998939999998, "GND", 0.6095999999999999], [86.49999972, 14.499998939999998, "GND", 0.6095999999999999], [90.49999934, 14.499998939999998, "GND", 0.6095999999999999], [94.49999895999999, 14.499998939999998, "GND", 0.6095999999999999], [30.499999959999997, 18.5000011, "GND", 0.6095999999999999], [46.500000979999996, 18.5000011, "GND", 0.6095999999999999], [58.49999984, 18.5000011, "GND", 0.6095999999999999], [62.49999946, 18.5000011, "GND", 0.6095999999999999], [70.50000124, 18.5000011, "GND", 0.6095999999999999], [82.5000001, 18.5000011, "GND", 0.6095999999999999], [86.49999972, 18.5000011, "GND", 0.6095999999999999], [90.49999934, 18.5000011, "GND", 0.6095999999999999], [94.49999895999999, 18.5000011, "GND", 0.6095999999999999], [70.50000124, 22.50000072, "GND", 0.6095999999999999], [74.50000086, 22.50000072, "GND", 0.6095999999999999], [82.5000001, 22.50000072, "GND", 0.6095999999999999], [86.49999972, 22.50000072, "GND", 0.6095999999999999], [90.49999934, 22.50000072, "GND", 0.6095999999999999], [94.49999895999999, 22.50000072, "GND", 0.6095999999999999], [90.49999934, 26.50000034, "GND", 0.6095999999999999], [94.49999895999999, 26.50000034, "GND", 0.6095999999999999], [82.5000001, 30.499999959999997, "GND", 0.6095999999999999], [86.49999972, 30.499999959999997, "GND", 0.6095999999999999], [90.49999934, 30.499999959999997, "GND", 0.6095999999999999], [94.49999895999999, 30.499999959999997, "GND", 0.6095999999999999], [82.5000001, 34.49999958, "GND", 0.6095999999999999], [86.49999972, 34.49999958, "GND", 0.6095999999999999], [90.49999934, 34.49999958, "GND", 0.6095999999999999], [94.49999895999999, 34.49999958, "GND", 0.6095999999999999], [30.499999959999997, 38.4999992, "GND", 0.6095999999999999], [66.49999908, 38.4999992, "GND", 0.6095999999999999], [82.5000001, 38.4999992, "GND", 0.6095999999999999], [86.49999972, 38.4999992, "GND", 0.6095999999999999], [90.49999934, 38.4999992, "GND", 0.6095999999999999], [94.49999895999999, 38.4999992, "GND", 0.6095999999999999], [70.50000124, 42.49999882, "GND", 0.6095999999999999], [86.49999972, 42.49999882, "GND", 0.6095999999999999], [90.49999934, 42.49999882, "GND", 0.6095999999999999], [94.49999895999999, 42.49999882, "GND", 0.6095999999999999], [82.5000001, 46.500000979999996, "GND", 0.6095999999999999], [86.49999972, 46.500000979999996, "GND", 0.6095999999999999], [90.49999934, 46.500000979999996, "GND", 0.6095999999999999], [94.49999895999999, 46.500000979999996, "GND", 0.6095999999999999], [50.5000006, 50.5000006, "GND", 0.6095999999999999], [82.5000001, 50.5000006, "GND", 0.6095999999999999], [86.49999972, 50.5000006, "GND", 0.6095999999999999], [90.49999934, 50.5000006, "GND", 0.6095999999999999], [94.49999895999999, 50.5000006, "GND", 0.6095999999999999], [94.49999895999999, 54.50000022, "GND", 0.6095999999999999], [34.49999958, 58.49999984, "GND", 0.6095999999999999], [78.50000048, 62.49999946, "GND", 0.6095999999999999], [82.5000001, 62.49999946, "GND", 0.6095999999999999], [78.50000048, 70.50000124, "GND", 0.6095999999999999], [82.5000001, 70.50000124, "GND", 0.6095999999999999], [82.5000001, 74.50000086, "GND", 0.6095999999999999], [30.499999959999997, 78.50000048, "GND", 0.6095999999999999], [34.49999958, 78.50000048, "GND", 0.6095999999999999], [50.5000006, 82.5000001, "GND", 0.6095999999999999], [58.49999984, 82.5000001, "GND", 0.6095999999999999], [62.49999946, 82.5000001, "GND", 0.6095999999999999], [66.49999908, 82.5000001, "GND", 0.6095999999999999], [94.49999895999999, 82.5000001, "GND", 0.6095999999999999], [74.50000086, 86.49999972, "GND", 0.6095999999999999], [86.49999972, 86.49999972, "GND", 0.6095999999999999], [90.49999934, 86.49999972, "GND", 0.6095999999999999], [94.49999895999999, 86.49999972, "GND", 0.6095999999999999], [34.49999958, 90.49999934, "GND", 0.6095999999999999], [46.500000979999996, 90.49999934, "GND", 0.6095999999999999], [50.5000006, 90.49999934, "GND", 0.6095999999999999], [74.50000086, 90.49999934, "GND", 0.6095999999999999], [78.50000048, 90.49999934, "GND", 0.6095999999999999], [86.49999972, 90.49999934, "GND", 0.6095999999999999], [90.49999934, 90.49999934, "GND", 0.6095999999999999], [94.49999895999999, 90.49999934, "GND", 0.6095999999999999], [90.49999934, 94.49999895999999, "GND", 0.6095999999999999], [89.49999879999999, 62.49999946, "GND", 0.6095999999999999], [89.49999879999999, 64.50000054, "GND", 0.6095999999999999], [89.49999879999999, 66.49999908, "GND", 0.6095999999999999], [89.49999879999999, 68.50000015999998, "GND", 0.6095999999999999], [89.49999879999999, 70.50000124, "GND", 0.6095999999999999], [89.49999879999999, 72.49999978, "GND", 0.6095999999999999], [89.6269988, 75.77000086, "GND", 0.6095999999999999], [96.50000003999999, 81.49999955999999, "GND", 0.6095999999999999], [92.50000041999999, 56.49999876, "GND", 0.6095999999999999], [94.49999895999999, 56.49999876, "GND", 0.6095999999999999], [96.50000003999999, 56.49999876, "GND", 0.6095999999999999], [74.36605373634853, 73.00705467634853, "VDAC1", 0.6095999999999999], [52.925499939999995, 59.50199935999999, "VDAC1", 0.6095999999999999], [40.62499876, 59.93750014, "SDA", 0.6095999999999999], [66.24999958000001, 26.99999934, "+3V3_HUB", 0.6095999999999999], [80.79985364, 7.724086659999999, "GND", 0.6095999999999999], [32.004, 47.879, "SCL3", 0.6095999999999999], [35.687, 47.625, "SCL3", 0.6095999999999999], [48.513999999999996, 59.562999999999995, "GND", 0.6095999999999999], [48.513999999999996, 58.166, "GND", 0.6095999999999999], [48.768, 56.260999999999996, "GND", 0.6095999999999999], [43.687999999999995, 55.372, "GND", 0.6095999999999999], [43.687999999999995, 47.49946558, "GND", 0.6095999999999999], [43.687999999999995, 50.55046024, "GND", 0.6095999999999999], [69.28849998, 52.561500159999994, "GND", 0.6095999999999999], [57.657999999999994, 32.766, "GND", 0.6095999999999999], [58.419999999999995, 62.864999999999995, "GND", 0.6095999999999999], [58.166, 62.102999999999994, "GND", 0.6095999999999999], [61.214, 63.626999999999995, "GND", 0.6095999999999999], [61.214, 61.549696559999994, "GND", 0.6095999999999999], [35.559999999999995, 37.592, "GND", 0.6095999999999999], [35.559999999999995, 39.381927839999996, "GND", 0.6095999999999999], [89.789, 79.62899999999999, "GND", 0.6095999999999999], [3.302, 46.101, "GND", 0.6095999999999999], [2.032, 42.519097079999995, "GND", 0.6095999999999999], [18.7500006, 23.449998819999998, "GND", 0.6095999999999999], [18.7500006, 17.94999966, "GND", 0.6095999999999999], [22.39300068, 23.34999902, "GND", 0.6095999999999999], [21.89200092, 17.94999966, "GND", 0.6095999999999999], [26.300000739999998, 20.80999902, "GND", 0.6095999999999999], [20.300000039999993, 24.349999559999997, "VIN_FUSED", 0.6095999999999999], [23.10100028, 9.19900116, "GND", 0.6095999999999999], [23.10100028, 11.598000679999998, "GND", 0.6095999999999999], [24.302001179999998, 9.19900116, "GND", 0.6095999999999999], [24.302001179999998, 11.598000679999998, "GND", 0.6095999999999999], [19.62500012, 8.624999259999997, "PD_CC2", 0.6095999999999999], [10.87499984, 8.87499876, "PD_CC2", 0.6095999999999999], [19.62500012, 9.499998779999999, "PD_CC1", 0.6095999999999999], [13.75000044, 9.24999928, "PD_CC1", 0.6095999999999999], [84.37500015999998, 57.0000003, "NTC2", 0.6095999999999999], [87.62499874, 53.499999679999995, "NTC2", 0.6095999999999999], [87.62499874, 20.25000014, "NTC2", 0.6095999999999999], [77.49999994, 20.25000014, "NTC2", 0.6095999999999999], [75.49999886, 18.375000080000003, "NTC2", 0.6095999999999999], [71.37500076, 18.375000080000003, "NTC2", 0.6095999999999999], [71.37500076, 21.625001199999996, "NTC2", 0.6095999999999999], [40.37499926, 22.250001219999998, "NTC2", 0.6095999999999999], [38.750001239999996, 21.625001199999996, "NTC2", 0.6095999999999999], [35.124999599999995, 21.625001199999996, "NTC2", 0.6095999999999999], [31.999999499999998, 19.874999619999997, "NTC2", 0.6095999999999999], [28.24999938, 19.874999619999997, "NTC2", 0.6095999999999999], [20.12499912, 18.375000080000003, "VIN_FUSED", 0.6095999999999999], [20.12499912, 22.999999719999998, "VIN_FUSED", 0.6095999999999999], [22.75000022, 24.49999926, "VIN_FUSED", 0.6095999999999999], [1.49999954, 23.874999239999998, "GND", 0.6095999999999999], [26.12499982, 20.00000064, "GND", 0.6095999999999999], [25.87500032, 16.50000002, "GND", 0.6095999999999999], [25.2500003, 24.49999926, "GND", 0.6095999999999999], [2.50000008, 28.49999888, "GND", 0.6095999999999999], [7.749999740000001, 28.49999888, "GND", 0.6095999999999999], [13.12500042, 28.49999888, "GND", 0.6095999999999999], [18.375000080000003, 28.49999888, "GND", 0.6095999999999999], [18.125000580000002, 14.12500096, "GND", 0.6095999999999999], [22.87500124, 16.00000102, "GND", 0.6095999999999999], [21.8750007, 26.37499932, "GND", 0.6095999999999999], [21.8750007, 28.24999938, "GND", 0.6095999999999999], [19.2499996, 2.99999908, "GND", 0.6095999999999999], [18.375000080000003, 10.87499984, "GND", 0.6095999999999999], [25.2500003, 19.62500012, "GND", 0.6095999999999999], [25.87500032, 21.374999159999998, "GND", 0.6095999999999999], [23.75000076, 18.375000080000003, "GND", 0.6095999999999999], [28.24999938, 52.37500066, "INA_ALERT", 0.6095999999999999], [30.999998960000003, 52.37500066, "INA_ALERT", 0.6095999999999999], [76.62500041999999, 65.50000108, "SCL", 0.6095999999999999], [76.62500041999999, 62.249999960000004, "SCL", 0.6095999999999999], [80.12500104, 55.12500024, "SCL", 0.6095999999999999], [80.12500104, 26.50000034, "SCL", 0.6095999999999999], [80.00000002, 21.625001199999996, "SCL", 0.6095999999999999], [80.00000002, 9.499998779999999, "SCL", 0.6095999999999999], [70.50000124, 9.3750003, "SCL", 0.6095999999999999], [70.50000124, 3.3749995999999998, "SCL", 0.6095999999999999], [39.37500126, 3.25000112, "SCL", 0.6095999999999999], [39.00000074, 14.87499946, "SCL", 0.6095999999999999], [35.99999912, 14.87499946, "SCL", 0.6095999999999999], [31.999999499999998, 35.74999962, "SCL", 0.6095999999999999], [28.24999938, 35.74999962, "SCL", 0.6095999999999999], [28.24999938, 15.375001000000001, "SCL", 0.6095999999999999], [31.999999499999998, 15.375001000000001, "SCL", 0.6095999999999999], [35.124999599999995, 15.375001000000001, "SCL", 0.6095999999999999], [35.57702896598635, 51.24999937466036, "GND", 0.6095999999999999], [18.49900034, 45.99900122, "GND", 0.6095999999999999], [16.500000000000007, 76.75000000000004, "FAN_EN", 0.6095999999999999], [26.250000000000014, 76.75000000000004, "FAN_EN", 0.6095999999999999], [17.75000000000001, 82.00000000000004, "FAN_TACH_OUT", 0.6095999999999999], [17.75000000000001, 82.75000000000004, "FAN_TACH_OUT", 0.6095999999999999], [26.250000000000014, 81.25000000000004, "FAN_TACH_OUT", 0.6095999999999999], [7.92500066, 76.581, "GND", 0.6095999999999999], [12.192, 75.52399932, "GND", 0.6095999999999999], [21.15300062, 85.35900124, "GND", 0.6095999999999999], [3.2160006799999996, 77.15199962, "GND", 0.6095999999999999], [12.207001239999999, 90.86600064, "GND", 0.6095999999999999], [16.01700124, 82.10300064, "GND", 0.6095999999999999], [22.13900068, 83.65700058, "GND", 0.6095999999999999], [3.048, 72.771, "GND", 0.6095999999999999], [13.132000659999997, 87.884, "GND", 0.6095999999999999], [16.942000659999998, 78.86699999999999, "GND", 0.6095999999999999], [42.799, 15.24, "GND", 0.6095999999999999], [46.73756992061261, 14.476430079387395, "GND", 0.6095999999999999], [42.799, 19.05, "GND", 0.6095999999999999], [50.927, 18.415, "GND", 0.6095999999999999], [35.559999999999995, 35.814, "GND", 0.6095999999999999], [73.78699999999999, 35.179, "GND", 0.6095999999999999], [71.247, 37.973, "GND", 0.6095999999999999], [74.676, 41.275, "GND", 0.6095999999999999], [82.169, 43.434, "GND", 0.6095999999999999], [73.152, 46.608999999999995, "GND", 0.6095999999999999], [73.279, 50.672999999999995, "GND", 0.6095999999999999], [37.973, 54.483, "GND", 0.6095999999999999], [73.66, 54.991, "GND", 0.6095999999999999], [29.464, 58.928, "GND", 0.6095999999999999], [78.50000000000004, 66.50000000000003, "GND", 0.6095999999999999], [38.50000000000002, 70.50000000000003, "GND", 0.6095999999999999], [79.121, 74.54899999999999, "GND", 0.6095999999999999], [59.943999999999996, 77.47, "GND", 0.6095999999999999], [61.976, 77.343, "GND", 0.6095999999999999], [89.50000000000004, 74.50000000000004, "GND", 0.6095999999999999], [88.646, 63.373, "GND", 0.6095999999999999], [88.646, 65.532, "GND", 0.6095999999999999], [88.646, 67.31, "GND", 0.6095999999999999], [88.773, 69.469, "GND", 0.6095999999999999], [88.646, 72.898, "GND", 0.6095999999999999], [1.397, 80.59699908, "+12V", 0.6095999999999999], [19.25000000000001, 87.00000000000006, "FAN_PWM_L", 0.6095999999999999], [76.2, 75.565, "GND", 0.6095999999999999], [75.692, 74.54899999999999, "GND", 0.6095999999999999]]} \ No newline at end of file diff --git a/.claude/r2/_base_silk_plan.json b/.claude/r2/_base_silk_plan.json new file mode 100644 index 0000000..9acd245 --- /dev/null +++ b/.claude/r2/_base_silk_plan.json @@ -0,0 +1,1052 @@ +{ +"L4": { +"x": 10.4, +"y": 13.7285, +"rot": 0, +"id": "2146c5010b27f971e14", +"lay": 4 +}, +"U32": { +"x": 51.5, +"y": 44.177, +"rot": 0, +"id": "5f55a4011135ec02e144", +"lay": 4 +}, +"U35": { +"x": 43.9875, +"y": 59.16, +"rot": 0, +"id": "cae6e71acb15f0d0e86", +"lay": 4 +}, +"L3": { +"x": 23.5, +"y": 72.4715, +"rot": 0, +"id": "019b306b4c888a73e17", +"lay": 4 +}, +"U31": { +"x": 80.0, +"y": 29.5715, +"rot": 0, +"id": "2bfa0ae43cb1db50e21", +"lay": 4 +}, +"U36": { +"x": 23.7, +"y": 7.38, +"rot": 0, +"id": "34b77b16b080a772e48", +"lay": 4 +}, +"Q3": { +"x": 2.95, +"y": 56.506, +"rot": 0, +"id": "83a62d0dac42d37be35", +"lay": 4 +}, +"R9A": { +"x": 7.6, +"y": 56.43, +"rot": 0, +"id": "dac7fe39c90e2798e16", +"lay": 4 +}, +"R9B": { +"x": 11.95, +"y": 56.43, +"rot": 0, +"id": "f5f2216da19a7893e16", +"lay": 4 +}, +"R9C": { +"x": 16.3, +"y": 56.43, +"rot": 0, +"id": "6aa519edd90470cbe16", +"lay": 4 +}, +"R9D": { +"x": 20.65, +"y": 56.43, +"rot": 0, +"id": "7f4f20d608ae6a9ce16", +"lay": 4 +}, +"R9E": { +"x": 25.0, +"y": 56.43, +"rot": 0, +"id": "dbafc2163978252ce16", +"lay": 4 +}, +"Rs6": { +"x": 15.4415, +"y": 43.5, +"rot": 0, +"id": "c27a5abe59b74cc1e16", +"lay": 4 +}, +"U37": { +"x": 21.0, +"y": 16.7525, +"rot": 0, +"id": "b69da7d7ba21c000e53", +"lay": 4 +}, +"L2": { +"x": 14.2592, +"y": 68.5, +"rot": 0, +"id": "8e1c2ece5abdcc3ce14", +"lay": 4 +}, +"D1": { +"x": 12.5, +"y": 29.894, +"rot": 0, +"id": "a3ba89572c00a94ee18", +"lay": 4 +}, +"D3": { +"x": 21.2047, +"y": 4.0, +"rot": 0, +"id": "1d0f27575fe106f7e18", +"lay": 4 +}, +"U6": { +"x": 57.9507, +"y": 61.1107, +"rot": 0, +"id": "194efedb86d06f79e65", +"lay": 4 +}, +"U7": { +"x": 61.2413, +"y": 59.16, +"rot": 0, +"id": "c3ecb9fa21145cbce65", +"lay": 4 +}, +"U13": { +"x": 19.5, +"y": 41.638, +"rot": 0, +"id": "783ab1d44a849414e41", +"lay": 4 +}, +"D2": { +"x": 12.192, +"y": 81.6445, +"rot": 0, +"id": "ad5062b997fca453e18", +"lay": 4 +}, +"Y1": { +"x": 39.878, +"y": 43.161, +"rot": 0, +"id": "0b57f5bb705c8b6ee19", +"lay": 4 +}, +"U19": { +"x": 7.6215, +"y": 68.5, +"rot": 90, +"id": "75c657393f3a24b3e26", +"lay": 4 +}, +"U30": { +"x": 19.5548, +"y": 71.0548, +"rot": 0, +"id": "674bc633e069bb92e26", +"lay": 4 +}, +"Q7": { +"x": 6.0926, +"y": 81.4036, +"rot": 0, +"id": "b2ac1d2844e6744fe19", +"lay": 4 +}, +"C9": { +"x": 12.5, +"y": 63.665, +"rot": 0, +"id": "2db8ff3d76ef04fde20", +"lay": 4 +}, +"C10": { +"x": 12.5, +"y": 73.335, +"rot": 0, +"id": "c7f86b989f2e2369e20", +"lay": 4 +}, +"C601": { +"x": 87.25, +"y": 58.085, +"rot": 0, +"id": "01ffce3772e260a9e20", +"lay": 4 +}, +"C734": { +"x": 25.0, +"y": 65.335, +"rot": 0, +"id": "1a2127c44a054dbce20", +"lay": 4 +}, +"C735": { +"x": 25.0, +"y": 59.665, +"rot": 0, +"id": "3b4951ec4fdb1c30e20", +"lay": 4 +}, +"C738": { +"x": 7.9248, +"y": 75.1159, +"rot": 0, +"id": "37086b7ad7173b7ce20", +"lay": 4 +}, +"C14": { +"x": 2.95, +"y": 30.035, +"rot": 0, +"id": "a4911d414e9b369de20", +"lay": 4 +}, +"C15": { +"x": 8.25, +"y": 30.035, +"rot": 0, +"id": "559c02a8ad45350de20", +"lay": 4 +}, +"C16": { +"x": 13.55, +"y": 26.865, +"rot": 0, +"id": "732011f5da17aff8e20", +"lay": 4 +}, +"C17": { +"x": 18.85, +"y": 30.035, +"rot": 0, +"id": "794d666e53b9563ce20", +"lay": 4 +}, +"Q6": { +"x": 22.1032, +"y": 88.5811, +"rot": 0, +"id": "28c580bf9e57ff9ae19", +"lay": 4 +}, +"Q8": { +"x": 1.8551, +"y": 76.2031, +"rot": 0, +"id": "77b2f42a540a05a7e19", +"lay": 4 +}, +"U29": { +"x": 2.032, +"y": 41.6125, +"rot": 0, +"id": "22ad4757fb4f348ce19", +"lay": 4 +}, +"Q9": { +"x": 13.208, +"y": 91.9125, +"rot": 0, +"id": "8037916d2de0a6f2e19", +"lay": 4 +}, +"Q10": { +"x": 19.731, +"y": 81.153, +"rot": 0, +"id": "ba8eaa2b682f64f2e19", +"lay": 4 +}, +"F1": { +"x": 12.5, +"y": 14.5625, +"rot": 0, +"id": "4bbc92a7a1c2d5d0e16", +"lay": 4 +}, +"C737": { +"x": 72.2532, +"y": 26.0, +"rot": 0, +"id": "43d00e51e2e9fc4de16", +"lay": 4 +}, +"C752": { +"x": 77.0, +"y": 31.646, +"rot": 0, +"id": "12187e91ada57748e20", +"lay": 4 +}, +"C21": { +"x": 21.0875, +"y": 15.1, +"rot": 0, +"id": "ab7ed67882f66277e20", +"lay": 4 +}, +"C4": { +"x": 17.5, +"y": 47.396, +"rot": 0, +"id": "916f5896dd3cfbece20", +"lay": 4 +}, +"C5": { +"x": 1.5, +"y": 19.324, +"rot": 0, +"id": "f471e57ac5bad584e20", +"lay": 4 +}, +"C7": { +"x": 8.8132, +"y": 65.75, +"rot": 0, +"id": "b81f271eab199c2ce20", +"lay": 4 +}, +"C608": { +"x": 51.0, +"y": 60.324, +"rot": 0, +"id": "d409726b326356d5e20", +"lay": 4 +}, +"C611": { +"x": 52.396, +"y": 57.75, +"rot": 90, +"id": "97d51c67c2bbe30ae20", +"lay": 4 +}, +"C731": { +"x": 4.896, +"y": 68.5, +"rot": 90, +"id": "ba6c1d57c5bed057e20", +"lay": 4 +}, +"C732": { +"x": 20.5218, +"y": 65.75, +"rot": 0, +"id": "5af5e544734031d5e20", +"lay": 4 +}, +"C751": { +"x": 68.7718, +"y": 36.5, +"rot": 0, +"id": "185b8e0abccde3ebe20", +"lay": 4 +}, +"C12": { +"x": 28.765, +"y": 17.365, +"rot": 0, +"id": "9a50e75825fb2932e20", +"lay": 4 +}, +"C22": { +"x": 23.9, +"y": 13.604, +"rot": 0, +"id": "0b6c32d3688e2f91e20", +"lay": 4 +}, +"C23": { +"x": 26.8175, +"y": 26.3, +"rot": 0, +"id": "97c90cfd87d64177e20", +"lay": 4 +}, +"C24": { +"x": 23.9, +"y": 29.696, +"rot": 0, +"id": "9b3418939c19a77be20", +"lay": 4 +}, +"DZ3": { +"x": 2.5935, +"y": 82.296, +"rot": 90, +"id": "dd3213ad487e31f6e31", +"lay": 4 +}, +"RT601": { +"x": 86.0, +"y": 27.1535, +"rot": 0, +"id": "1eb3dd1c64a6d00de16", +"lay": 4 +}, +"RT602": { +"x": 28.7411, +"y": 21.1411, +"rot": 0, +"id": "03d9de46327e54bee16", +"lay": 4 +}, +"R2": { +"x": 4.25, +"y": 72.2715, +"rot": 0, +"id": "6e63b8e2d47cc123e16", +"lay": 4 +}, +"R3": { +"x": 1.312, +"y": 65.25, +"rot": 90, +"id": "9b30ab7a96fd2cd4e16", +"lay": 4 +}, +"R601": { +"x": 82.5, +"y": 93.7715, +"rot": 0, +"id": "9cc114a94610c892e16", +"lay": 4 +}, +"R602": { +"x": 82.25, +"y": 82.2715, +"rot": 0, +"id": "36dc6f9164e04eaae16", +"lay": 4 +}, +"R604": { +"x": 75.5, +"y": 82.2715, +"rot": 0, +"id": "57a83b665ce1252ee16", +"lay": 4 +}, +"R605": { +"x": 78.5, +"y": 80.2285, +"rot": 0, +"id": "e33df61aae72b6bde16", +"lay": 4 +}, +"R606": { +"x": 81.0, +"y": 57.7715, +"rot": 0, +"id": "b65edc3095a484cae16", +"lay": 4 +}, +"R607": { +"x": 78.0, +"y": 55.4785, +"rot": 0, +"id": "cf9b547f345dcef1e16", +"lay": 4 +}, +"R608": { +"x": 73.562, +"y": 56.75, +"rot": 90, +"id": "afc179c78e4d262be16", +"lay": 4 +}, +"R609": { +"x": 75.812, +"y": 54.5, +"rot": 90, +"id": "51602becbeb917a8e16", +"lay": 4 +}, +"R610": { +"x": 72.0, +"y": 82.2715, +"rot": 0, +"id": "4c6cdf20477f594fe16", +"lay": 4 +}, +"R611": { +"x": 81.0, +"y": 84.5215, +"rot": 0, +"id": "ee82d86cc83cd43de16", +"lay": 4 +}, +"R614": { +"x": 53.25, +"y": 52.9785, +"rot": 0, +"id": "f95c82fed7463f0fe16", +"lay": 4 +}, +"R616": { +"x": 61.25, +"y": 53.4785, +"rot": 0, +"id": "d37761c9fc1db10ae16", +"lay": 4 +}, +"R617": { +"x": 63.25, +"y": 64.7715, +"rot": 0, +"id": "80d8030e653e22c8e16", +"lay": 4 +}, +"R660": { +"x": 88.5, +"y": 82.2715, +"rot": 0, +"id": "013a68fa3274a9d0e16", +"lay": 4 +}, +"R661": { +"x": 87.25, +"y": 84.5215, +"rot": 0, +"id": "cda723ce212ed5d5e16", +"lay": 4 +}, +"R706": { +"x": 16.75, +"y": 72.7715, +"rot": 0, +"id": "e8005687edbc7cece16", +"lay": 4 +}, +"R707": { +"x": 19.0338, +"y": 63.5, +"rot": 0, +"id": "d170fab0c4e24860e16", +"lay": 4 +}, +"R708": { +"x": 43.0162, +"y": 42.85, +"rot": 0, +"id": "a26f064bae45474de16", +"lay": 4 +}, +"R718": { +"x": 83.8649, +"y": 13.1149, +"rot": 0, +"id": "fbfbbb2d644bca2ee16", +"lay": 4 +}, +"R720": { +"x": 49.071, +"y": 28.409, +"rot": 0, +"id": "50e9fc343fff5a89e16", +"lay": 4 +}, +"R721": { +"x": 89.25, +"y": 10.938, +"rot": 0, +"id": "41fce1b9fe34422fe16", +"lay": 4 +}, +"R733": { +"x": 26.4425, +"y": 84.9776, +"rot": 0, +"id": "740c41a5d9f4decbe16", +"lay": 4 +}, +"R734": { +"x": 22.5712, +"y": 82.6371, +"rot": 0, +"id": "112e005ea433383fe16", +"lay": 4 +}, +"R746": { +"x": 8.3478, +"y": 82.042, +"rot": 0, +"id": "63efd90cf7eef461e16", +"lay": 4 +}, +"R747": { +"x": 7.8029, +"y": 78.0532, +"rot": 0, +"id": "a6ee7db56ea67525e16", +"lay": 4 +}, +"R750": { +"x": 9.906, +"y": 92.3345, +"rot": 0, +"id": "c14dc975e02e68f0e16", +"lay": 4 +}, +"R751": { +"x": 10.541, +"y": 87.97, +"rot": 0, +"id": "2a20aa4b229a4b66e16", +"lay": 4 +}, +"R753": { +"x": 15.621, +"y": 90.973, +"rot": 0, +"id": "183985a38c246bdbe16", +"lay": 4 +}, +"R754": { +"x": 14.1879, +"y": 84.1649, +"rot": 0, +"id": "64833c7b567cafb9e16", +"lay": 4 +}, +"R756": { +"x": 16.51, +"y": 77.8455, +"rot": 0, +"id": "168426d436711933e16", +"lay": 4 +}, +"R724": { +"x": 44.638, +"y": 35.35, +"rot": 90, +"id": "4f92525d105703fae16", +"lay": 4 +}, +"R725": { +"x": 40.9162, +"y": 34.15, +"rot": 0, +"id": "81ee09f2f2e8d3a2e16", +"lay": 4 +}, +"R726": { +"x": 46.9149, +"y": 31.9851, +"rot": 0, +"id": "8a5f9bfbb9d70acbe16", +"lay": 4 +}, +"R727": { +"x": 59.9838, +"y": 34.18, +"rot": 0, +"id": "4b2f579b7faed315e16", +"lay": 4 +}, +"R728": { +"x": 59.9838, +"y": 35.4, +"rot": 0, +"id": "0b117658cd938786e16", +"lay": 4 +}, +"R729": { +"x": 59.3149, +"y": 44.0649, +"rot": 0, +"id": "079253504ad53a1ae16", +"lay": 4 +}, +"R7": { +"x": 19.0, +"y": 12.688, +"rot": 0, +"id": "8f2700820a0c2bc4e16", +"lay": 4 +}, +"R8": { +"x": 24.85, +"y": 18.6785, +"rot": 0, +"id": "5029abd2770c630fe16", +"lay": 4 +}, +"R10": { +"x": 26.7795, +"y": 22.64, +"rot": 0, +"id": "87c9566ab0ad5413e16", +"lay": 4 +}, +"R11": { +"x": 27.275, +"y": 23.845, +"rot": 0, +"id": "b682307d6337b904e16", +"lay": 4 +}, +"R12": { +"x": 24.2, +"y": 15.5585, +"rot": 0, +"id": "ea801f23e9f10b85e16", +"lay": 4 +}, +"R13": { +"x": 24.2, +"y": 16.7785, +"rot": 0, +"id": "a643d888d1319bdee16", +"lay": 4 +}, +"R4": { +"x": 5.5107, +"y": 42.418, +"rot": 0, +"id": "101fc6ad0a6f7260e16", +"lay": 4 +}, +"R5": { +"x": 4.318, +"y": 46.5215, +"rot": 0, +"id": "abb42be18faec17fe16", +"lay": 4 +}, +"R6": { +"x": 3.937, +"y": 40.3805, +"rot": 0, +"id": "6065cabc0331129ae16", +"lay": 4 +}, +"R603": { +"x": 85.25, +"y": 82.2715, +"rot": 0, +"id": "31557a1455c84f96e16", +"lay": 4 +}, +"R615": { +"x": 53.8135, +"y": 63.75, +"rot": 90, +"id": "a869866551a54fa4e16", +"lay": 4 +}, +"R709": { +"x": 51.181, +"y": 31.2815, +"rot": 0, +"id": "1b3a6b471bbc4b0be16", +"lay": 4 +}, +"R710": { +"x": 47.2977, +"y": 29.845, +"rot": 0, +"id": "8f3d3d781db86f5be16", +"lay": 4 +}, +"R711": { +"x": 54.229, +"y": 31.2815, +"rot": 0, +"id": "5a34b5fe42f64511e16", +"lay": 4 +}, +"R712": { +"x": 55.2405, +"y": 27.8175, +"rot": 0, +"id": "a6ce6d3f89ce61e0e16", +"lay": 4 +}, +"R716": { +"x": 52.197, +"y": 32.5315, +"rot": 0, +"id": "9afeccc54193a19ce16", +"lay": 4 +}, +"R717": { +"x": 86.6865, +"y": 11.5, +"rot": 90, +"id": "73b5d8776be36562e16", +"lay": 4 +}, +"R719": { +"x": 57.1123, +"y": 29.845, +"rot": 0, +"id": "ab490ae5046f7ee6e16", +"lay": 4 +}, +"R722": { +"x": 91.5, +"y": 8.5635, +"rot": 0, +"id": "7cb8f9a74143fabbe16", +"lay": 4 +}, +"R748": { +"x": 7.3623, +"y": 73.914, +"rot": 0, +"id": "c5306c3f241fbf76e16", +"lay": 4 +}, +"R749": { +"x": 1.7385, +"y": 73.914, +"rot": 90, +"id": "b5274d31a8dca392e16", +"lay": 4 +}, +"R752": { +"x": 14.9823, +"y": 87.884, +"rot": 0, +"id": "79cb902711890973e16", +"lay": 4 +}, +"R755": { +"x": 12.1477, +"y": 78.2639, +"rot": 0, +"id": "218915c63c637928e16", +"lay": 4 +}, +"R757": { +"x": 18.542, +"y": 84.5875, +"rot": 0, +"id": "acc39e6ae4fb2243e16", +"lay": 4 +}, +"R723": { +"x": 42.926, +"y": 38.3145, +"rot": 0, +"id": "76f1d58ec2a1cff9e16", +"lay": 4 +}, +"C6": { +"x": 10.9708, +"y": 38.75, +"rot": 0, +"id": "59a3d129a74feb4ce18", +"lay": 4 +}, +"C8": { +"x": 8.1587, +"y": 71.5, +"rot": 0, +"id": "90dfbd6d48d220ade18", +"lay": 4 +}, +"C11": { +"x": 15.6165, +"y": 41.25, +"rot": 0, +"id": "30dc25f04976ab8ee18", +"lay": 4 +}, +"C603": { +"x": 85.0122, +"y": 54.25, +"rot": 0, +"id": "72da356a3d0db3bde18", +"lay": 4 +}, +"C604": { +"x": 57.3324, +"y": 53.4176, +"rot": 0, +"id": "c6134cb99653b06fe18", +"lay": 4 +}, +"C607": { +"x": 61.6373, +"y": 57.1127, +"rot": 0, +"id": "cbe1d600c803fa7ce18", +"lay": 4 +}, +"C610": { +"x": 33.0, +"y": 54.858, +"rot": 0, +"id": "6e48bf05e457e41ee18", +"lay": 4 +}, +"C612": { +"x": 64.6676, +"y": 52.9176, +"rot": 0, +"id": "ddd567f73d3466afe18", +"lay": 4 +}, +"C733": { +"x": 19.75, +"y": 74.2715, +"rot": 0, +"id": "7f40f4fdad0e4444e18", +"lay": 4 +}, +"C736": { +"x": 90.25, +"y": 85.0215, +"rot": 0, +"id": "09c296934688f4a1e18", +"lay": 4 +}, +"C739": { +"x": 91.5, +"y": 82.7715, +"rot": 0, +"id": "98abd52c3e52b7fae18", +"lay": 4 +}, +"C740": { +"x": 42.926, +"y": 44.97, +"rot": 0, +"id": "8f3d78922810d5a8e18", +"lay": 4 +}, +"C742": { +"x": 59.9378, +"y": 38.2, +"rot": 0, +"id": "3b69c59a20070c11e18", +"lay": 4 +}, +"C746": { +"x": 47.5378, +"y": 44.06, +"rot": 0, +"id": "59e76e1b86869871e18", +"lay": 4 +}, +"C748": { +"x": 59.4592, +"y": 41.1692, +"rot": 0, +"id": "803778d95574a4dfe18", +"lay": 4 +}, +"C749": { +"x": 51.4846, +"y": 35.1546, +"rot": 0, +"id": "99c983d7f4bfe77ee18", +"lay": 4 +}, +"C750": { +"x": 51.0673, +"y": 45.91, +"rot": 0, +"id": "aa49f852a6c6aa28e18", +"lay": 4 +}, +"C753": { +"x": 72.3993, +"y": 31.1007, +"rot": 0, +"id": "7b7fbe241e7491c0e18", +"lay": 4 +}, +"C13": { +"x": 21.458, +"y": 23.86, +"rot": 90, +"id": "682de3fbbcb1cee6e18", +"lay": 4 +}, +"C19": { +"x": 19.75, +"y": 25.8715, +"rot": 0, +"id": "2ad60ef97354080ce18", +"lay": 4 +}, +"C20": { +"x": 17.3575, +"y": 15.4075, +"rot": 0, +"id": "30c1189889dda916e18", +"lay": 4 +}, +"C602": { +"x": 91.5215, +"y": 56.5, +"rot": 90, +"id": "6c604f2cc25fc3b9e18", +"lay": 4 +}, +"C609": { +"x": 58.25, +"y": 55.5215, +"rot": 0, +"id": "cbf040c465bc82c8e18", +"lay": 4 +}, +"C741": { +"x": 39.2807, +"y": 37.338, +"rot": 0, +"id": "0ba1ca8c5fbac088e18", +"lay": 4 +}, +"C744": { +"x": 45.821, +"y": 36.449, +"rot": 90, +"id": "fa50c64a58e8d787e18", +"lay": 4 +}, +"C745": { +"x": 41.5983, +"y": 35.8833, +"rot": 0, +"id": "bb7b5b20a45f0e70e18", +"lay": 4 +}, +"C747": { +"x": 54.8173, +"y": 45.25, +"rot": 0, +"id": "8fd562c3710f26c0e18", +"lay": 4 +}, +"C18": { +"x": 17.3175, +"y": 24.85, +"rot": 0, +"id": "93bca0a8da2dfbcce18", +"lay": 4 +} +} \ No newline at end of file diff --git a/.claude/r2/_base_window.json b/.claude/r2/_base_window.json new file mode 100644 index 0000000..fc4333d --- /dev/null +++ b/.claude/r2/_base_window.json @@ -0,0 +1,100 @@ +{ + "window": [ + 0.5, + 73.5, + 26.84, + 97.09 + ], + "nets": [ + "$6N45", + "$6N48", + "$6N49", + "$6N55", + "$6N64", + "$6N74", + "+3V3", + "FAN_12V_SW", + "FAN_EN", + "FAN_IN_TACH_RAW", + "FAN_OUT_TACH_RAW", + "FAN_PWM", + "FAN_PWM_L", + "FAN_TACH_IN", + "FAN_TACH_OUT" + ], + "out_pen": 12, + "priority": [ + "$6N49", + "$6N64", + "$6N45", + "$6N74", + "$6N48", + "$6N55", + "FAN_IN_TACH_RAW", + "FAN_OUT_TACH_RAW", + "FAN_PWM_L", + "FAN_12V_SW", + "FAN_TACH_IN", + "FAN_TACH_OUT", + "FAN_PWM", + "FAN_EN", + "+3V3" + ], + "_note": "插槽方向在 repair_window._pen 里是 block_rect 封死,不是过路费;slot_pen 已证明无效(A* 宁可付 200 也抄近路),故删除 | pd_l1_extra = 按用户 2026-09-12 新摆位重开的 L1 走廊(旧的四条是按旧摆位开的,与件对不上 ⇒ 长途网必然布不通);逐 y 断面 11.80 ≥ 8.0,见 l1_section.py", + "pd_l1_extra": [ + [ + "FAN_EN", + [ + 12.0, + 76.1, + 27.5, + 77.1 + ] + ], + [ + "FAN_TACH_IN", + [ + 16.0, + 75.15, + 27.5, + 76.05 + ] + ], + [ + "FAN_TACH_IN", + [ + 13.7, + 76.05, + 16.2, + 90.4 + ] + ], + [ + "FAN_TACH_OUT", + [ + 17.4, + 80.7, + 27.5, + 81.7 + ] + ], + [ + "FAN_TACH_OUT", + [ + 17.4, + 81.7, + 18.8, + 84.1 + ] + ], + [ + "FAN_PWM_L", + [ + 10.3, + 83.9, + 22.5, + 87.3 + ] + ] + ] +} \ No newline at end of file diff --git a/.claude/r2/_base_window_repair.cor2.json b/.claude/r2/_base_window_repair.cor2.json new file mode 100644 index 0000000..60b7e83 --- /dev/null +++ b/.claude/r2/_base_window_repair.cor2.json @@ -0,0 +1 @@ +{"window": [0.5, 73.5, 26.84, 97.09], "nets": ["$6N45", "$6N48", "$6N49", "$6N55", "$6N64", "$6N74", "+3V3", "FAN_12V_SW", "FAN_EN", "FAN_IN_TACH_RAW", "FAN_OUT_TACH_RAW", "FAN_PWM", "FAN_PWM_L", "FAN_TACH_IN", "FAN_TACH_OUT"], "segs": [[2, 11.5, 81.25, 11.5, 81.75, 0.541, "FAN_12V_SW"], [2, 10.75, 79.5, 8.5, 79.5, 0.541, "FAN_12V_SW"], [2, 8.5, 79.5, 6.25, 79.5, 0.541, "FAN_12V_SW"], [2, 10.75, 81.25, 10.0, 82.0, 0.541, "FAN_12V_SW"], [2, 10.0, 82.0, 8.25, 82.0, 0.541, "FAN_12V_SW"], [2, 8.25, 82.0, 8.0, 82.25, 0.541, "FAN_12V_SW"], [2, 8.0, 82.25, 7.5, 82.25, 0.541, "FAN_12V_SW"], [2, 7.5, 82.25, 6.75, 83.0, 0.541, "FAN_12V_SW"], [2, 6.75, 83.0, 6.75, 83.25, 0.541, "FAN_12V_SW"], [2, 6.75, 83.25, 6.25, 83.75, 0.541, "FAN_12V_SW"], [2, 6.25, 83.75, 6.25, 84.0, 0.541, "FAN_12V_SW"], [2, 6.25, 84.0, 6.25, 88.0, 0.541, "FAN_12V_SW"], [2, 6.25, 88.0, 8.75, 90.5, 0.541, "FAN_12V_SW"], [2, 6.5, 88.25, 6.5, 96.25, 0.541, "FAN_12V_SW"], [2, 6.5, 96.25, 6.75, 96.5, 0.541, "FAN_12V_SW"], [2, 6.75, 96.5, 9.5, 96.5, 0.541, "FAN_12V_SW"], [2, 9.5, 96.5, 10.25, 95.75, 0.541, "FAN_12V_SW"], [2, 10.25, 95.75, 10.25, 95.25, 0.541, "FAN_12V_SW"], [2, 10.25, 95.25, 10.75, 94.75, 0.541, "FAN_12V_SW"], [2, 12.192, 79.924, 11.5, 81.25, 0.541, "FAN_12V_SW"], [2, 12.141, 82.55, 11.5, 81.75, 0.541, "FAN_12V_SW"], [2, 12.192, 79.924, 10.75, 79.5, 0.541, "FAN_12V_SW"], [2, 7.925, 79.766, 8.5, 79.5, 0.541, "FAN_12V_SW"], [2, 5.469, 79.629, 6.25, 79.5, 0.541, "FAN_12V_SW"], [2, 12.192, 79.924, 10.75, 81.25, 0.541, "FAN_12V_SW"], [2, 5.842, 84.442, 6.25, 84.0, 0.541, "FAN_12V_SW"], [2, 9.474, 91.313, 8.75, 90.5, 0.541, "FAN_12V_SW"], [2, 11.176, 94.29, 10.75, 94.75, 0.541, "FAN_12V_SW"], [2, 21.25, 75.5, 20.5, 76.25, 0.4, "+3V3"], [2, 20.5, 76.25, 18.5, 76.25, 0.4, "+3V3"], [2, 18.5, 76.25, 16.5, 74.25, 0.4, "+3V3"], [2, 19.75, 76.25, 19.75, 82.75, 0.4, "+3V3"], [2, 19.75, 82.75, 19.5, 83.0, 0.4, "+3V3"], [2, 19.75, 82.0, 20.25, 82.0, 0.4, "+3V3"], [2, 20.25, 82.0, 20.5, 82.25, 0.4, "+3V3"], [2, 20.5, 82.25, 20.5, 83.5, 0.4, "+3V3"], [2, 20.5, 83.5, 20.0, 84.0, 0.4, "+3V3"], [2, 20.0, 84.0, 20.0, 84.5, 0.4, "+3V3"], [2, 20.0, 84.5, 19.5, 85.0, 0.4, "+3V3"], [2, 19.5, 85.0, 19.5, 85.25, 0.4, "+3V3"], [2, 19.5, 85.25, 16.25, 88.5, 0.4, "+3V3"], [2, 21.7501, 74.9328, 21.25, 75.5, 0.3, "+3V3"], [2, 16.1644, 73.8217, 16.5, 74.25, 0.3, "+3V3"], [2, 18.974, 83.566, 19.5, 83.0, 0.4, "+3V3"], [2, 15.621, 89.103, 16.25, 88.5, 0.4, "+3V3"], [2, 24.574, 84.544, 24.0, 84.0, 0.15, "FAN_PWM"], [2, 23.7692, 84.492, 24.0, 84.0, 0.15, "FAN_PWM"], [2, 4.0, 78.5, 5.5, 78.5, 0.15, "$6N49"], [2, 4.0, 79.25, 4.0, 79.5, 0.15, "$6N49"], [2, 4.0, 79.5, 4.25, 79.75, 0.15, "$6N49"], [2, 4.25, 79.75, 4.25, 81.25, 0.15, "$6N49"], [2, 4.25, 81.25, 4.5, 81.5, 0.15, "$6N49"], [2, 4.5, 81.5, 4.5, 82.75, 0.15, "$6N49"], [2, 4.5, 82.75, 4.25, 83.0, 0.15, "$6N49"], [2, 4.25, 83.0, 2.25, 83.0, 0.15, "$6N49"], [2, 2.25, 83.0, 1.75, 83.5, 0.15, "$6N49"], [2, 3.167, 78.679, 4.0, 78.5, 0.15, "$6N49"], [2, 5.936, 78.486, 5.5, 78.5, 0.15, "$6N49"], [2, 3.167, 78.679, 4.0, 79.25, 0.15, "$6N49"], [2, 4.496, 82.042, 4.5, 81.5, 0.15, "$6N49"], [2, 1.397, 83.995, 1.75, 83.5, 0.15, "$6N49"], [2, 5.75, 74.5, 9.5, 74.5, 0.15, "FAN_EN"], [2, 9.5, 74.5, 10.0, 75.0, 0.15, "FAN_EN"], [2, 10.0, 75.0, 10.0, 77.5, 0.15, "FAN_EN"], [2, 10.0, 77.5, 10.25, 77.75, 0.15, "FAN_EN"], [2, 10.25, 77.75, 14.75, 77.75, 0.15, "FAN_EN"], [2, 14.75, 77.75, 15.0, 77.5, 0.15, "FAN_EN"], [2, 15.0, 77.5, 15.75, 77.5, 0.15, "FAN_EN"], [2, 15.75, 77.5, 16.5, 76.75, 0.15, "FAN_EN"], [1, 16.5, 76.75, 26.25, 76.75, 0.15, "FAN_EN"], [2, 5.131, 73.914, 5.75, 74.5, 0.15, "FAN_EN"], [2, 26.54, 76.5672, 26.25, 76.75, 0.15, "FAN_EN"], [2, 14.209, 89.916, 15.0, 90.0, 0.15, "FAN_TACH_IN"], [2, 15.621, 89.967, 15.0, 90.0, 0.15, "FAN_TACH_IN"], [2, 17.75, 81.75, 17.75, 82.0, 0.15, "FAN_TACH_OUT"], [1, 17.75, 82.0, 17.75, 82.75, 0.15, "FAN_TACH_OUT"], [2, 17.75, 82.75, 17.75, 83.0, 0.15, "FAN_TACH_OUT"], [1, 17.75, 82.0, 18.0, 82.0, 0.15, "FAN_TACH_OUT"], [1, 18.0, 82.0, 18.75, 81.25, 0.15, "FAN_TACH_OUT"], [1, 18.75, 81.25, 19.5, 81.25, 0.15, "FAN_TACH_OUT"], [1, 19.5, 81.25, 19.75, 81.0, 0.15, "FAN_TACH_OUT"], [1, 19.75, 81.0, 26.0, 81.0, 0.15, "FAN_TACH_OUT"], [1, 26.0, 81.0, 26.25, 81.25, 0.15, "FAN_TACH_OUT"], [2, 18.019, 81.153, 17.75, 81.75, 0.15, "FAN_TACH_OUT"], [2, 18.11, 83.566, 17.75, 83.0, 0.15, "FAN_TACH_OUT"], [2, 26.54, 81.75, 26.25, 81.25, 0.15, "FAN_TACH_OUT"], [2, 11.75, 88.5, 11.75, 88.25, 0.15, "$6N64"], [2, 11.5, 88.5, 11.0, 88.5, 0.15, "$6N64"], [2, 12.207, 88.966, 11.75, 88.5, 0.15, "$6N64"], [2, 12.268, 87.884, 11.75, 88.25, 0.15, "$6N64"], [2, 12.207, 88.966, 11.5, 88.5, 0.15, "$6N64"], [2, 10.541, 88.976, 11.0, 88.5, 0.15, "$6N64"], [2, 9.5, 85.5, 10.5, 86.5, 0.15, "FAN_OUT_TACH_RAW"], [2, 10.5, 86.5, 12.75, 86.5, 0.15, "FAN_OUT_TACH_RAW"], [2, 12.75, 86.5, 13.0, 86.25, 0.15, "FAN_OUT_TACH_RAW"], [2, 13.0, 86.25, 13.0, 83.0, 0.15, "FAN_OUT_TACH_RAW"], [2, 13.0, 83.0, 13.75, 82.25, 0.15, "FAN_OUT_TACH_RAW"], [2, 13.75, 82.25, 13.75, 81.75, 0.15, "FAN_OUT_TACH_RAW"], [2, 13.75, 81.75, 14.0, 81.5, 0.15, "FAN_OUT_TACH_RAW"], [2, 8.382, 84.442, 9.5, 85.5, 0.15, "FAN_OUT_TACH_RAW"], [2, 13.005, 82.55, 13.0, 83.0, 0.15, "FAN_OUT_TACH_RAW"], [2, 14.529, 81.077, 14.0, 81.5, 0.15, "FAN_OUT_TACH_RAW"], [2, 12.75, 93.25, 11.75, 92.25, 0.15, "FAN_IN_TACH_RAW"], [2, 11.75, 92.25, 11.25, 92.25, 0.15, "FAN_IN_TACH_RAW"], [2, 11.25, 92.25, 10.75, 91.75, 0.15, "FAN_IN_TACH_RAW"], [2, 10.75, 91.75, 10.75, 90.25, 0.15, "FAN_IN_TACH_RAW"], [2, 13.716, 94.29, 12.75, 93.25, 0.15, "FAN_IN_TACH_RAW"], [2, 10.338, 91.313, 10.75, 91.75, 0.15, "FAN_IN_TACH_RAW"], [2, 10.541, 89.84, 10.75, 90.25, 0.15, "FAN_IN_TACH_RAW"], [2, 23.5, 85.5, 24.0, 85.5, 0.15, "$6N55"], [2, 23.0, 84.5, 23.0, 84.25, 0.15, "$6N55"], [2, 23.053, 85.359, 23.5, 85.5, 0.15, "$6N55"], [2, 24.574, 85.41, 24.0, 85.5, 0.15, "$6N55"], [2, 23.053, 85.359, 23.0, 84.5, 0.15, "$6N55"], [2, 23.005, 83.657, 23.0, 84.25, 0.15, "$6N55"], [2, 15.5, 79.75, 15.5, 79.25, 0.15, "$6N74"], [2, 15.25, 79.75, 15.0, 79.75, 0.15, "$6N74"], [2, 16.017, 80.203, 15.5, 79.75, 0.15, "$6N74"], [2, 16.078, 78.867, 15.5, 79.25, 0.15, "$6N74"], [2, 16.017, 80.203, 15.25, 79.75, 0.15, "$6N74"], [2, 14.529, 80.213, 15.0, 79.75, 0.15, "$6N74"], [2, 3.25, 74.75, 3.25, 74.5, 0.15, "$6N45"], [2, 3.75, 74.75, 3.75, 74.5, 0.15, "$6N45"], [2, 3.216, 75.253, 3.25, 74.75, 0.15, "$6N45"], [2, 3.193, 73.914, 3.25, 74.5, 0.15, "$6N45"], [2, 3.216, 75.253, 3.75, 74.75, 0.15, "$6N45"], [2, 4.267, 73.914, 3.75, 74.5, 0.15, "$6N45"], [2, 5.5, 76.75, 5.5, 77.0, 0.15, "$6N48"], [2, 5.215, 76.203, 5.5, 76.75, 0.15, "$6N48"], [2, 5.936, 77.62, 5.5, 77.0, 0.15, "$6N48"], [2, 17.25, 93.25, 18.0, 92.5, 0.15, "FAN_PWM_L"], [2, 18.0, 92.5, 18.0, 91.25, 0.15, "FAN_PWM_L"], [2, 18.0, 91.25, 18.25, 91.0, 0.15, "FAN_PWM_L"], [2, 18.25, 91.0, 18.25, 88.0, 0.15, "FAN_PWM_L"], [2, 18.25, 88.0, 19.25, 87.0, 0.15, "FAN_PWM_L"], [1, 19.25, 87.0, 21.25, 87.0, 0.15, "FAN_PWM_L"], [2, 21.25, 87.0, 21.5, 87.25, 0.15, "FAN_PWM_L"], [2, 16.256, 94.29, 17.25, 93.25, 0.15, "FAN_PWM_L"], [2, 22.103, 87.358, 21.5, 87.25, 0.15, "FAN_PWM_L"]], "vias": [[16.5, 76.75, "FAN_EN"], [26.25, 76.75, "FAN_EN"], [17.75, 82.0, "FAN_TACH_OUT"], [17.75, 82.75, "FAN_TACH_OUT"], [26.25, 81.25, "FAN_TACH_OUT"], [19.25, 87.0, "FAN_PWM_L"], [21.25, 87.0, "FAN_PWM_L"]], "logs": ["FAN_TACH_IN: #trunk.edge0 没布通", "FAN_PWM_L: J27.4 没布通"], "unconnected": ["FAN_12V_SW: 铜分成 2 块", "FAN_PWM_L: J27.4 一根铜都没有", "+3V3: 铜分成 2 块"], "stray": 0} \ No newline at end of file diff --git a/.claude/r2/fan_rip.py b/.claude/r2/fan_rip.py new file mode 100644 index 0000000..c610830 --- /dev/null +++ b/.claude/r2/fan_rip.py @@ -0,0 +1,97 @@ +# -*- coding: utf-8 -*- +u"""按坐标**拆掉窗口内待布网的旧铜**(下发新布线之前的第一步)。 + + /c/Python314/python .claude/r2/fan_rip.py # 只列清单,不动板 + /c/Python314/python .claude/r2/fan_rip.py --push # 真删 + +⛔ 2026-09-12 实测:**删外层段会连带清掉过孔和它在内层的延续** —— 点名删 6 段,读回发现线少 12 段、 + 孔少 8 个,多掉的全在 L15/L16。⇒ 拆前后都要比对**全板**线 / 孔总数,不能只数自己点名的那几段。 + 这里每次都先读回全板、删完再读回,逐项打印差值。 + +判据与 `repair_window` 同口径:`_base_window.json` 的窗口 + 网名,**两个端点都在窗口内**才算窗口内的铜 +(跨窗边界的段是主干接口,必须留着)。 +""" +import io +import json +import math +import os +import sys + +sys.stdout.reconfigure(encoding='utf-8') +HERE = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, os.path.dirname(HERE)) +sys.path.insert(0, HERE) +from eda import run # noqa: E402 +import pcb_base as B # noqa: E402 + +MIL = 0.0254 +CFG = json.load(io.open(os.path.join(HERE, '_base_window.json'), encoding='utf-8')) +WIN = CFG['window'] +NETS = set(n.replace('@', '$') for n in CFG['nets']) +OPEN = ("await eda.dmt_EditorControl.openDocument('%s');" + "await new Promise(r=>setTimeout(r,2500));" % B.PCB) +READ = OPEN + """ +const L=(await eda.pcb_PrimitiveLine.getAll()||[]).filter(l=>[1,2,15,16].includes(l.layer)) + .map(l=>[l.primitiveId,l.net,l.layer,l.startX,l.startY,l.endX,l.endY,l.lineWidth]); +const V=(await eda.pcb_PrimitiveVia.getAll()||[]).map(v=>[v.primitiveId,v.net,v.x,v.y]); +return {L, V}; +""" + + +def inw(x, y): + return WIN[0] <= x <= WIN[2] and WIN[1] <= y <= WIN[3] + + +def read(): + r = run(READ, timeout=300) + assert r.get('success'), json.dumps(r, ensure_ascii=False)[:400] + return r['result'] + + +def main(): + d = read() + L, V = d['L'], d['V'] + outer = [l for l in L if l[2] in (1, 2)] + inner = [l for l in L if l[2] in (15, 16)] + print(u'板上:外层 %d 段 / 内层 %d 段 / 过孔 %d' % (len(outer), len(inner), len(V))) + kill = [] + for pid, net, lay, x1, y1, x2, y2, w in outer: + if net not in NETS: + continue + if inw(x1 * MIL, y1 * MIL) and inw(x2 * MIL, y2 * MIL): + kill.append((pid, net, lay, x1 * MIL, y1 * MIL, x2 * MIL, y2 * MIL)) + killv = [(v[0], v[1]) for v in V if v[1] in NETS and inw(v[2] * MIL, v[3] * MIL)] + print(u'要拆:%d 段 / %d 孔' % (len(kill), len(killv))) + by = {} + for k in kill: + by[k[1]] = by.get(k[1], 0) + 1 + for n in sorted(by): + print(u' %-18s %d 段' % (n, by[n])) + io.open(os.path.join(HERE, '_base_fan_ripped.json'), 'w', encoding='utf-8').write( + json.dumps({'segs': [[k[2], k[3], k[4], k[5], k[6], 0, k[1]] for k in kill], + 'vias': []}, ensure_ascii=False)) + if '--push' not in sys.argv: + print(u'(只列清单;加 --push 才真删)') + return + ids = [k[0] for k in kill] + [v[0] for v in killv] + r = run(OPEN + """ +const ids = %s; +let n = 0; +for (const id of ids) { try { await eda.pcb_PrimitiveLine.delete(id); n++; } catch (e) { + try { await eda.pcb_PrimitiveVia.delete(id); n++; } catch (e2) {} } } +await eda.pcb_Document.save(); +return n; +""" % json.dumps(ids), timeout=600) + print(u'删除返回:%s' % json.dumps(r.get('result'), ensure_ascii=False)) + d2 = read() + o2 = [l for l in d2['L'] if l[2] in (1, 2)] + i2 = [l for l in d2['L'] if l[2] in (15, 16)] + print(u'拆后:外层 %d 段(−%d,点名 %d)/ 内层 %d 段(−%d)/ 过孔 %d(−%d)' + % (len(o2), len(outer) - len(o2), len(kill), len(i2), len(inner) - len(i2), + len(d2['V']), len(V) - len(d2['V']))) + if len(outer) - len(o2) != len(kill) or len(inner) != len(i2): + print(u'⛔ 连带删除!实际掉的和点名的对不上,检查内层 / 过孔') + + +if __name__ == '__main__': + main() diff --git a/.claude/r2/l1_section.py b/.claude/r2/l1_section.py new file mode 100644 index 0000000..14e323f --- /dev/null +++ b/.claude/r2/l1_section.py @@ -0,0 +1,71 @@ +# -*- coding: utf-8 -*- +u"""L1 `+12V` 主块的**逐 y 水平断面**核算(§6.4 要 ≥ 8.0 mm)。 + + /c/Python314/python .claude/r2/l1_section.py # 核 pcb_base.PD_L1 现状 + /c/Python314/python .claude/r2/l1_section.py --cfg # 核 _base_window.json 里的 pd_l1_extra + +主块 x 0.5~27.8(宽 27.30),电流南北流 ⇒ 断面是水平线,线上被走廊占掉的 x 跨度要扣掉。 +横带(沿 x 长)很贵、竖带(沿 y 长)几乎免费 —— 旧注释「一根 0.15 的线占约 0.5」说的就是竖线。 +槽指头在 x ≥ 27.5,走廊 x 一律 ≤ 27.5 ⇒ 天然不碰任何一槽的供电路径。 +""" +import io +import json +import os +import sys + +sys.stdout.reconfigure(encoding='utf-8') +HERE = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, os.path.dirname(HERE)) +sys.path.insert(0, HERE) +import pcb_base as B # noqa: E402 + +MIN_SECTION = 8.0 +MAIN = B.l1_12v_rects()[0] +WIDTH = MAIN[2] - MAIN[0] + + +def check(corridors, step=0.05): + worst = (1e9, None) + y = MAIN[1] + while y <= MAIN[3]: + iv = [] + for _n, r in corridors: + if r[1] - 1e-9 <= y <= r[3] + 1e-9: + iv.append((max(r[0], MAIN[0]), min(r[2], MAIN[2]))) + iv.sort() + used, spans = 0.0, [] + for a, b in iv: + if b <= a: + continue + if spans and a <= spans[-1][1]: + spans[-1] = (spans[-1][0], max(spans[-1][1], b)) + else: + spans.append((a, b)) + for a, b in spans: + used += b - a + left = WIDTH - used + if left < worst[0]: + worst = (left, y) + y += step + return worst + + +def main(): + cor = [(n, r) for n, r in B.PD_L1 if n.startswith('FAN')] + if '--cfg' in sys.argv: + cfg = json.load(io.open(os.path.join(HERE, '_base_window.json'), encoding='utf-8')) + cor = [(n, tuple(r)) for n, r in (cfg.get('pd_l1_extra') or [])] + print(u'主块 x %.2f~%.2f(宽 %.2f);走廊 %d 条' % (MAIN[0], MAIN[2], WIDTH, len(cor))) + for n, r in cor: + kind = u'横带' if (r[2] - r[0]) >= (r[3] - r[1]) else u'竖带' + print(u' %-14s (%6.2f, %6.2f, %6.2f, %6.2f) %5.2f×%5.2f %s' + % (n, r[0], r[1], r[2], r[3], r[2] - r[0], r[3] - r[1], kind)) + left, y = check(cor) + ok = left >= MIN_SECTION + print(u'%s 逐 y 最窄断面 %.2f mm(y=%.2f),判据 ≥ %.1f' % + (u'[OK]' if ok else u'[X]', left, y, MIN_SECTION)) + return 0 if ok else 1 + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/.claude/r2/pcb_base.py b/.claude/r2/pcb_base.py index 7f42c55..ae6a53d 100644 --- a/.claude/r2/pcb_base.py +++ b/.claude/r2/pcb_base.py @@ -1,556 +1,614 @@ -# -*- coding: utf-8 -*- -u"""R2 底板 PCB(M5,**4 层 98 × 98**,D15):板框 + 槽阵 + 背面分区 + 安装孔 + L1 的 12V 铜。 - - /c/Python314/python .claude/r2/pcb_base.py # 只算 + 自检 - /c/Python314/python .claude/r2/pcb_base.py --outline # 画/重画板框(幂等) - /c/Python314/python .claude/r2/pcb_base.py --holes # 打安装孔 - /c/Python314/python .claude/r2/pcb_base.py --verify # 读回校验 - -2 层版(110 × 125,12V 西干道 / 3V3 槽墙 / D± 竖通道 / 刀片投影限高)整份存档在 -`archive_base2L/pcb_base.py`,那一套在这里**全部删掉**,下游引用到的会直接 AttributeError。 - -## 坐标系 - -**板左下角 = (0, 0),x 向右、y 向上**,两面**同一套坐标、都按从上往下看**。 -x = 槽长方向,y = 五片刀片堆叠方向(J38 最南 … J34 最北)。 - -## 叠层(D15) - - L1 插槽面 —— 只有 J34~J38 五个插槽(手焊)+ 西侧 12V 大铺铜 + 每排 12V 脚一根指 - L2 +3V3 —— 整层 +3V3,不布线(2026-09-10 由 GND 改,D15) - L3 GND —— 整层地,不布线(L4 上全部器件与 D± 的参考) - L4 器件面 —— 其余 133 件(工厂只贴这一面)+ 全部信号 + D±(参考 L3)+ 3V3/5V 局部铜 - -## ⛔ 板框必须是**折线**不是导线 - -`pcb_PrimitiveLine` 在嘉立创里是**导线(铜)**:渲染、DRC、几何校验全过,客户端就是不认板框 -(方案 §27.3)。`push_outline()` 只用 `pcb_PrimitivePolyline`,并删掉层 11 上遗留的导线。 - -## 12V 指头的 x 为什么停在 34.95(不是分区草图写的 35.1) - -槽针实测(`PIN_ROWS`,J36 读回):两排 12V 右边紧挨着的 x=35.5 是 **GND**, -焊盘左沿 35.15;35.1 只剩 0.05 mm。北排 12V 左边 x=32.5 也是 **GND**, -所以北排的指头只能从排外绕进来(L 形),不能像南排那样整块横穿。 -""" -import io -import json -import math -import os -import sys - -sys.stdout.reconfigure(encoding='utf-8') -HERE = os.path.dirname(os.path.abspath(__file__)) -# ⚠ 顺序不能反:`.claude` 下有同名的 R1 脚本,先插 .claude 会 import 到 R1 那一份且不报错。 -sys.path.insert(0, os.path.dirname(HERE)) -sys.path.insert(0, HERE) -from eda import run # noqa: E402 -import fp_edge # noqa: E402 - -PCB = '7b9524b6aaf6f235' # BASE-PCB(r2-uuids.json) -MIL = fp_edge.MIL -LAYERS = 4 -TOP, BOTTOM = 1, 2 # EPCB_LayerId:器件只能在这两层 - -# ── 板框(mm,D15)───────────────────────────────────────────────────── -BW, BH = 98.0, 98.0 # 硬上限 98(100 正压嘉立创特价档边界,同 D14) -CORNER_R = 5.0 -CORNER_SEG = 10 -OUTLINE_W = 0.15 -EDGE_KEEP = 0.5 # 铜 / 器件到板边 - -# ── 槽阵:五槽居中,长轴沿 x,rot 0 ─────────────────────────────────────── -SLOT_PITCH = 20.32 # 刀片堆叠间距,机械定死 -SLOT_N = 5 -SLOT_ROT = 0 -SLOT_CX = 49.0 -ARRAY_CY = 49.0 -SLOT_BODY_L = 42.0 # 槽体沿 x(`PCIE-64P11L` 焊盘外框) -SLOT_BODY_W = 9.2 # 槽体沿 y -PAD_ROW_DY = 3.6 # 两排焊盘 y = 槽心 ± 3.6 -PAD_L, PAD_W = 0.7, 2.0 # 单盘 0.7(x) × 2.0(y),脚距 1.0 -SHELL_U, SHELL_L, SHELL_W = 19.5, 3.0, 5.0 # 两端外壳 GND 盘:u = ±19.5,3(x) × 5(y) -SLOT_REFS = ('J34', 'J35', 'J36', 'J37', 'J38') - -# 针位表(u = 距槽心,板上 x = SLOT_CX + u;2026-09-10 从 J36 实测焊盘读回)。 -# S = 南排(焊盘 33~64,y = 槽心 − 3.6),N = 北排(焊盘 1~32,y = 槽心 + 3.6)。 -# 每排 32 针:u −16.5 … −6.5(11 针)+ 键位缺口 + u −3.5 … +16.5(21 针)。 -_U = [-16.5 + k for k in range(11)] + [-3.5 + k for k in range(21)] -_S = ('12V 12V 12V GND SCL SDA GND 3V3 NC NC INT ' - 'GND GND DP DM ' + 'GND ' * 15 + 'PRSNT GND').split() -_N = ('GND 12V 12V GND NC NC NC NC 3V3 3V3 EN ' - 'GND GND GND GND VDAC GND GND 5V ' + 'GND ' * 12 + '5V').split() -PIN_ROWS = {'S': dict(zip(_U, _S)), 'N': dict(zip(_U, _N))} -ROW_SIGN = {'S': -1, 'N': +1} - - -def pin_x(u): - return round(SLOT_CX + u if SLOT_ROT == 0 else SLOT_CX - u, 3) - - -def slot_y(i): - u"""槽 i(1 = 最南 = J38)的中心 y。""" - return round(ARRAY_CY + (i - (SLOT_N + 1) / 2.0) * SLOT_PITCH, 3) - - -def slot_ys(): - return [slot_y(i) for i in range(1, SLOT_N + 1)] - - -def slot_body(i): - y = slot_y(i) - return (SLOT_CX - SLOT_BODY_L / 2, y - SLOT_BODY_W / 2, - SLOT_CX + SLOT_BODY_L / 2, y + SLOT_BODY_W / 2) - - -def pad_rect(i, row, u): - u"""槽 i 某排 u 处那只针的焊盘外框。""" - x, y = pin_x(u), slot_y(i) + ROW_SIGN[row] * PAD_ROW_DY - return (x - PAD_L / 2, y - PAD_W / 2, x + PAD_L / 2, y + PAD_W / 2) - - -def shell_rects(i): - y = slot_y(i) - return [(pin_x(s * SHELL_U) - SHELL_L / 2, y - SHELL_W / 2, - pin_x(s * SHELL_U) + SHELL_L / 2, y + SHELL_W / 2) for s in (-1, 1)] - - -# 逻辑 USB 号 → 插槽位号 / 物理槽位(南起 1..5)。USB1 = J34 = 最北。 -USB_SLOT_REF = {1: 'J34', 2: 'J35', 3: 'J36', 4: 'J37', 5: 'J38'} -USB_SLOT_POS = {i: SLOT_N + 1 - i for i in range(1, SLOT_N + 1)} - - -def side_of(ref): - u"""器件放哪一面:五个插槽在 L1(TOP),其余一律 L4(BOTTOM)。""" - return TOP if ref in SLOT_REFS else BOTTOM - - -# ── 走廊:槽体之间那 11.12 mm,外加阵列两头 ──────────────────────────────── -def corridor(k): - u"""走廊 k(0 = 阵列最南,5 = 最北),整板宽。""" - y0 = 0.0 if k == 0 else slot_y(k) + SLOT_BODY_W / 2 - y1 = BH if k == SLOT_N else slot_y(k + 1) - SLOT_BODY_W / 2 - return (0.0, round(y0, 3), BW, round(y1, 3)) - - -def corridors(): - return [corridor(k) for k in range(SLOT_N + 1)] - - -def usb_corridor(i): - u"""USB i 的 D± 所在走廊:D± 在每槽**南排**,所以是槽体南侧那条。""" - return corridor(USB_SLOT_POS[i] - 1) - - -# ── 背面 L4 分区(用户 2026-09-10 确认,见 M14-4L-floorplan.png)────────────── -# 槽体正下方(`slot_body` 投影)是过孔带:槽脚在 L1,GND 打孔下 L2/L3、信号打孔下 L4,不放件。 -# 槽区 x 28~70 的走廊里只有 A4 两块,其余两条走廊留给布线。 -# ⛔ 与草图不同:**Hub 在中间槽正南(走廊 2)、mux/DAC 在正北(走廊 3)**(2026-09-10 用户拍板)。 -# U32 在底层只能 rot 270(口朝北),南去的几对要绕 U32 东侧;Hub 在走廊 3 时要绕三对、 -# 最远 D± ≈ 80 mm,放走廊 2 只绕两对、最远 ≈ 58 mm。详见 place_base 文件头。 -_C = corridors() -ZONES = { - 'A1': (0.5, 0.5, 27.5, 56.0), # 输入链 J1 F1 Q1 D1 C2/C3 Rs6 U13 - 'A2': (0.5, 57.5, 27.5, 74.0), # 辅助降压 U19 U30 L2 L3 - 'A6': (0.5, 75.5, 27.5, 97.5), # 风扇 J26 J27 + 驱动 - 'A3': (70.5, 40.0, 97.5, 97.5), # 控制 U20 ESP32 J33 … - 'A5': (70.5, 0.5, 97.5, 38.5), # 上行 J23 USB-C + U31 LDO - 'A4H': (28.5, _C[2][1], 69.5, _C[2][3]), # Hub U32 + Y1 + 去耦(走廊 2) - 'A4M': (28.5, _C[3][1], 69.5, _C[3][3]), # U35 mux + U6/U7 DAC(走廊 3) -} -H_BOTTOM = 14.0 # 背面限高:底板下 ≥ 15 mm 铜柱(C2/C3 直立电解 12 mm) - -# D± 在 L4 沿 x≈48 竖向成束(参考 L3);I²C / VDAC 沿 x≈37。只是布线意图,这里不做禁区。 -DP_TRUNK_X = 48.0 -I2C_TRUNK_X = 37.0 - - -def via_bands(): - u"""槽体正下方的过孔带(背面摆位禁区)。""" - return [slot_body(i) for i in range(1, SLOT_N + 1)] - - -# ── ESP32 天线缺口(东板边)──────────────────────────────────────────────────── -# 西沿 90.5 → 90.8(2026-09-10):U20 焊盘外框东沿正好在 90.5,地脚 1 / 40 离缺口边只有 0.155 mm, -# DRC「板框到贴片焊盘」要 0.3。东移 0.3 之后天线根部下面多留 0.3 mm 板材,影响可忽略。 -ANT_NOTCH = (90.8, 58.0, BW, 80.0) - - -def notch_rect(): - return ANT_NOTCH - - -# ── 安装孔(M3,NPTH)──────────────────────────────────────────────── -HOLE_D = 3.2 -HOLE_KEEP = 3.2 -HOLE_INSET = 4.0 -MOUNT_HOLES = { - 'H1': (HOLE_INSET, HOLE_INSET), - 'H2': (BW - HOLE_INSET, HOLE_INSET), - 'H3': (HOLE_INSET, BH - HOLE_INSET), - 'H4': (BW - HOLE_INSET, BH - HOLE_INSET), -} - - -def keepout_rects(): - u"""背面摆位禁区:过孔带 + 天线缺口(安装孔另按 HOLE_KEEP 判)。""" - return via_bands() + [ANT_NOTCH] - - -# ── L1 的 +12V 铜(9 A 干路,§6.4 断面 ≥ 8 mm)───────────────────────────── -# 主块贴西板边,东沿停在外壳 GND 盘(x 28~31)以西;每槽每排一根指头去够 12V 针。 -# 南排 12V 在 u −16.5/−15.5/−14.5,左右都没有异网针挡着(西边是外壳盘,只要不碰它的 y 段) -# ⇒ 从主块横着伸过去,上沿停在外壳盘下沿以南 V12_CLR。 -# 北排 12V 在 u −15.5/−14.5,左边 u −16.5 是 GND ⇒ 帽子在排外横过去,再从东边下一颗牙。 -V12_CLR = 0.20 # 到异网铜(规则底线 0.15,留 0.05) -V12_OUT = 2.0 # 指头伸出针排外沿多少(进走廊) -V12_MAIN = (EDGE_KEEP, EDGE_KEEP, None, BH - EDGE_KEEP) # 东沿在 l1_12v_rects() 里算 - - -def l1_12v_rects(): - u"""L1 +12V 铜:[主块] + 每槽 [南指, 北帽, 北牙]。全部同网,重叠处由铺铜合并。""" - c = V12_CLR - shell_x0 = pin_x(-SHELL_U) - SHELL_L / 2 # 外壳盘西沿 28.0 - x_main = round(shell_x0 - c, 3) - out = [(V12_MAIN[0], V12_MAIN[1], x_main, V12_MAIN[3])] - row_o = PAD_ROW_DY + PAD_W / 2 # 针排外沿 4.6 - x_e = round(pin_x(-13.5) - PAD_L / 2 - c, 3) # 东界:u −13.5 那只 GND 左沿 − 净距 - x_tooth = round(pin_x(-16.5) + PAD_L / 2 + c, 3) # 北牙西界:北排 u −16.5 GND 右沿 + 净距 - for i in range(1, SLOT_N + 1): - cy = slot_y(i) - y_shell = SHELL_W / 2 + c # 外壳盘上下沿 + 净距 - out += [ - (x_main - 0.3, round(cy - row_o - V12_OUT, 3), x_e, round(cy - y_shell, 3)), - (x_main - 0.3, round(cy + row_o + c, 3), x_e, round(cy + row_o + V12_OUT, 3)), - (x_tooth, round(cy + y_shell, 3), x_e, round(cy + row_o + c + 0.05, 3)), - ] - return out - - -# ── 下游脚本要的空壳 ───────────────────────────────────────────────────── -FLEX_W = {} -SLOT_Y = None -PHONE_ORG = None -PHONE_WH = None - - -def phone_holes(): - u"""所有层都不许压的孔:四个 M3 安装孔(`pcb_PrimitivePad`,不在 pads.json 里)。""" - return dict(MOUNT_HOLES) - - -def mill_cuts(): - return [] - - -def notch_break(): - return None - - -def corner(cx, cy, a0, a1): - pts = [] - for k in range(CORNER_SEG + 1): - a = math.radians(a0 + (a1 - a0) * k / CORNER_SEG) - pts.append((cx + CORNER_R * math.cos(a), cy + CORNER_R * math.sin(a))) - return pts - - -def outline_pts(): - u"""板框点列(逆时针,从底边左端 (r,0) 起,闭合回 (r,0))。东边带天线缺口。""" - r = CORNER_R - pts = [(r, 0.0), (BW - r, 0.0)] - pts += corner(BW - r, r, 270, 360) - pts += [(BW, ANT_NOTCH[1]), (ANT_NOTCH[0], ANT_NOTCH[1]), - (ANT_NOTCH[0], ANT_NOTCH[3]), (BW, ANT_NOTCH[3]), - (BW, BH - r)] - pts += corner(BW - r, BH - r, 0, 90) - pts += [(r, BH)] - pts += corner(r, BH - r, 90, 180) - pts += [(0.0, r)] - pts += corner(r, r, 180, 270) - out = [pts[0]] - for q in pts[1:]: - if abs(q[0] - out[-1][0]) > 1e-9 or abs(q[1] - out[-1][1]) > 1e-9: - out.append(q) - assert abs(out[0][0] - out[-1][0]) < 1e-9 and abs(out[0][1] - out[-1][1]) < 1e-9, \ - u'板框点列没有闭合' - return out - - -def outline_polygon(): - return outline_pts() - - -def zone_of(x, y): - for k, z in ZONES.items(): - if z[0] <= x <= z[2] and z[1] <= y <= z[3]: - return k - return None - - -def height_ok(h): - u"""背面限高(正面只有插槽)。""" - return h <= H_BOTTOM - - -def _overlap(a, b): - return a[0] < b[2] and b[0] < a[2] and a[1] < b[3] and b[1] < a[3] - - -def _gap(a, b): - u"""两个矩形的最小距离(重叠为 0)。""" - dx = max(b[0] - a[2], a[0] - b[2], 0.0) - dy = max(b[1] - a[3], a[1] - b[3], 0.0) - return math.hypot(dx, dy) - - -def selfcheck(): - bad = [] - ys = slot_ys() - for a, b in zip(ys, ys[1:]): - if abs((b - a) - SLOT_PITCH) > 1e-6: - bad.append(u'槽间距 %.3f != %.2f' % (b - a, SLOT_PITCH)) - if abs((ys[0] + ys[-1]) / 2.0 - ARRAY_CY) > 1e-6: - bad.append(u'阵列没居中: %s' % ys) - for i in range(1, SLOT_N + 1): - b = slot_body(i) - if b[0] < 2 or b[1] < 2 or b[2] > BW - 2 or b[3] > BH - 2: - bad.append(u'槽 %d 槽体 %s 贴板边 < 2 mm' % (i, b)) - # 针位表:每排 32 针,12V 共 5 针(南 3 北 2),D± 在南排 - for row in 'SN': - if len(PIN_ROWS[row]) != 32: - bad.append(u'%s 排 %d 针 != 32' % (row, len(PIN_ROWS[row]))) - n12 = [(r, u) for r in 'SN' for u, t in PIN_ROWS[r].items() if t == '12V'] - if len(n12) != 5: - bad.append(u'12V 针 %d 只 != 5' % len(n12)) - # 12V 铜:每只 12V 针都被某块指头盖到;到任何异网针 / 外壳盘 ≥ V12_CLR - rects = l1_12v_rects() - for i in range(1, SLOT_N + 1): - for row in 'SN': - for u, t in PIN_ROWS[row].items(): - p = pad_rect(i, row, u) - if t == '12V': - if not any(_overlap(p, r) for r in rects): - bad.append(u'槽 %d %s 排 u=%.1f 的 12V 针没被铜盖到' % (i, row, u)) - else: - g = min(_gap(p, r) for r in rects) - if g < V12_CLR - 1e-6: - bad.append(u'12V 铜离槽 %d %s 排 u=%.1f(%s)只有 %.3f' - % (i, row, u, t, g)) - for s in shell_rects(i): - g = min(_gap(s, r) for r in rects) - if g < V12_CLR - 1e-6: - bad.append(u'12V 铜离槽 %d 外壳盘只有 %.3f' % (i, g)) - main = rects[0] - if main[2] - main[0] < 8.0: - bad.append(u'L1 12V 主块只有 %.1f mm 宽,9 A 要 ≥ 8' % (main[2] - main[0])) - # 走廊铺满、净宽对 - cs = corridors() - for a, b in zip(cs, cs[1:]): - if a[3] > b[1] + 1e-6: - bad.append(u'走廊重叠: %s / %s' % (a, b)) - for k in range(1, SLOT_N): - w = cs[k][3] - cs[k][1] - if abs(w - (SLOT_PITCH - SLOT_BODY_W)) > 1e-6: - bad.append(u'走廊 %d 净宽 %.2f' % (k, w)) - # 背面分区:在板内、两两不重叠、不压过孔带 - zs = sorted(ZONES.items()) - for k, z in zs: - if z[0] < EDGE_KEEP - 1e-6 or z[1] < EDGE_KEEP - 1e-6 or \ - z[2] > BW - EDGE_KEEP + 1e-6 or z[3] > BH - EDGE_KEEP + 1e-6: - bad.append(u'分区 %s 出板: %s' % (k, z)) - for j, vb in enumerate(via_bands(), 1): - if _overlap(z, vb): - bad.append(u'分区 %s 压到槽 %d 过孔带' % (k, j)) - for n, (ka, za) in enumerate(zs): - for kb, zb in zs[n + 1:]: - if _overlap(za, zb): - bad.append(u'分区 %s / %s 重叠' % (ka, kb)) - if [USB_SLOT_REF[i] for i in range(1, SLOT_N + 1)] != list(SLOT_REFS): - bad.append(u'USB -> 插槽位号映射被改坏') - # 安装孔:不出板 / 不压槽体 / 不被圆角切 / 不落天线缺口 - for n, (hx, hy) in MOUNT_HOLES.items(): - if not (HOLE_KEEP < hx < BW - HOLE_KEEP and HOLE_KEEP < hy < BH - HOLE_KEEP): - bad.append(u'安装孔 %s 出板或贴边: (%.1f, %.1f)' % (n, hx, hy)) - hr = (hx - HOLE_KEEP, hy - HOLE_KEEP, hx + HOLE_KEEP, hy + HOLE_KEEP) - for i in range(1, SLOT_N + 1): - if _overlap(hr, slot_body(i)): - bad.append(u'安装孔 %s 压到槽 %d' % (n, i)) - for cx, cy in ((CORNER_R, CORNER_R), (BW - CORNER_R, CORNER_R), - (CORNER_R, BH - CORNER_R), (BW - CORNER_R, BH - CORNER_R)): - out_x = hx < cx if cx < BW / 2 else hx > cx - out_y = hy < cy if cy < BH / 2 else hy > cy - if out_x and out_y and math.hypot(hx - cx, hy - cy) > CORNER_R - HOLE_KEEP: - bad.append(u'安装孔 %s 被 R%.0f 圆角切到' % (n, CORNER_R)) - if _overlap(hr, ANT_NOTCH): - bad.append(u'安装孔 %s 落进天线缺口' % n) - sep = chr(10) + ' ' - assert not bad, u'底板自检不过:' + sep + sep.join(bad) - return True - - -# ── 下发 ────────────────────────────────────────────────────────────── -def call(js, timeout=180): - r = run(js, timeout=timeout) - if not r.get('success'): - raise RuntimeError(json.dumps(r, ensure_ascii=False)[:800]) - return r['result'] - - -def mil(v): - return round(v * MIL, 4) - - -def polygon_src(pts): - a = [mil(pts[0][0]), mil(pts[0][1])] - for q in pts[1:]: - a += ['L', mil(q[0]), mil(q[1])] - if pts[0] != pts[-1]: - a += ['L', mil(pts[0][0]), mil(pts[0][1])] - return a - - -def push_outline(): - u"""板框 = 一条闭合折线;顺带删掉层 11 上遗留的**导线**(§27.3 的坑)。""" - src = polygon_src(outline_polygon()) - js = ("await eda.dmt_EditorControl.openDocument('%s');" % PCB + - "await new Promise(r=>setTimeout(r,2500));" + - "const oldL = (await eda.pcb_PrimitiveLine.getAll()||[]).filter(l=>l.layer===11)" - ".map(l=>l.primitiveId);" + - "if (oldL.length) await eda.pcb_PrimitiveLine.delete(oldL);" + - "const oldP = (await eda.pcb_PrimitivePolyline.getAll()||[])" - ".filter(p=>p.getState_Layer()===11).map(p=>p.getState_PrimitiveId());" + - "if (oldP.length) await eda.pcb_PrimitivePolyline.delete(oldP);" + - "const poly = await eda.pcb_MathPolygon.createPolygon(%s);" % json.dumps(src) + - "const r = await eda.pcb_PrimitivePolyline.create('', 11, poly, %s);" % mil(OUTLINE_W) + - "await eda.pcb_Document.save();" + - "return {delLine: oldL.length, delPoly: oldP.length, made: !!r," - " now: (await eda.pcb_PrimitivePolyline.getAll()||[])" - ".filter(p=>p.getState_Layer()===11).length," - " line11: (await eda.pcb_PrimitiveLine.getAll()||[]).filter(l=>l.layer===11).length};") - r = call(js, timeout=300) - print(u'板框折线: %s(删旧导线 %d / 旧折线 %d);层 11 现有折线 %d / 导线 %d' - % (u'建好' if r['made'] else u'失败', r['delLine'], r['delPoly'], r['now'], r['line11'])) - if not r['made'] or r['now'] != 1: - raise SystemExit(u'!! 板框没画成') - return r - - -PUSH_HOLES_JS = u""" -await eda.dmt_EditorControl.openDocument('%s'); -await new Promise(r=>setTimeout(r,2500)); -const H = %s, D = %s; -for (const p of await eda.pcb_PrimitivePad.getAll()) { - const num = p.getState_PadNumber(); - if (typeof num === 'string' && /^H[1-9]$/.test(num)) - await eda.pcb_PrimitivePad.delete(p.getState_PrimitiveId()); -} -let k = 0; -for (const [name, x, y] of H) { - // layer 12 = 多层;末位 metallization=false ⇒ NPTH。参数位序照抄 pcb_blade.push_holes - await eda.pcb_PrimitivePad.create(12, name, x, y, 0, ['ELLIPSE', D, D], '', - ['ROUND', D], 0, 0, 0, false); - k++; -} -await eda.pcb_Document.save(); -return {made: k, now: (await eda.pcb_PrimitivePad.getAll()) - .filter(p => /^H[1-9]$/.test(String(p.getState_PadNumber()))).length}; -""" - - -def push_holes(): - arr = [[k, mil(v[0]), mil(v[1])] for k, v in sorted(MOUNT_HOLES.items())] - r = call(PUSH_HOLES_JS % (PCB, json.dumps(arr), mil(HOLE_D)), timeout=300) - print(u'安装孔: 下发 %d / 读回 %d,NPTH Φ%.1f' % (r['made'], r['now'], HOLE_D)) - for k, v in sorted(MOUNT_HOLES.items()): - print(u' %-3s (%6.2f, %6.2f)' % (k, v[0], v[1])) - return r - - -def verify(): - r = call("await eda.dmt_EditorControl.openDocument('%s');" - "await new Promise(r=>setTimeout(r,2000));" - "const ps = (await eda.pcb_PrimitivePolyline.getAll()||[])" - ".filter(p=>p.getState_Layer()===11);" - "const line11 = (await eda.pcb_PrimitiveLine.getAll()||[])" - ".filter(l=>l.layer===11).length;" - "const holes = (await eda.pcb_PrimitivePad.getAll())" - ".filter(p=>/^H[1-9]$/.test(String(p.getState_PadNumber())))" - ".map(p=>[String(p.getState_PadNumber()), p.getState_X(), p.getState_Y()]);" - "return {n: ps.length, poly: ps.length ? ps[0].getState_Polygon() : null," - " line11, holes, layers: await eda.pcb_Layer.getTheNumberOfCopperLayers()," - " comps: (await eda.pcb_PrimitiveComponent.getAll()).length};" % PCB, - timeout=180) - bad = [] - if r['layers'] != LAYERS: - bad.append(u'铜层数 %s != %d' % (r['layers'], LAYERS)) - if r['n'] != 1: - bad.append(u'层 11 上有 %d 条折线(应为 1)' % r['n']) - if r['line11']: - bad.append(u'层 11 上还有 %d 条**导线**(板框画成铜的老坑,§27.3)' % r['line11']) - pts = [] - src = r['poly'] - if isinstance(src, dict): - src = src.get('pointArr') or src.get('points') or src.get('polygon') or src - if isinstance(src, list): - i = 0 - while i < len(src): - if src[i] in ('L', 'l'): - i += 1 - continue - if isinstance(src[i], (int, float)) and i + 1 < len(src) and isinstance(src[i + 1], (int, float)): - pts.append((src[i] / MIL, src[i + 1] / MIL)) - i += 2 - else: - i += 1 - if pts: - xs = [p[0] for p in pts] - ys = [p[1] for p in pts] - if abs(min(xs)) > 0.01 or abs(max(xs) - BW) > 0.01 or \ - abs(min(ys)) > 0.01 or abs(max(ys) - BH) > 0.01: - bad.append(u'外接矩形 %.2f~%.2f x %.2f~%.2f != 0~%.0f x 0~%.0f' - % (min(xs), max(xs), min(ys), max(ys), BW, BH)) - if abs(pts[0][0] - pts[-1][0]) > 0.01 or abs(pts[0][1] - pts[-1][1]) > 0.01: - bad.append(u'折线首尾不重合: %s vs %s' % (pts[0], pts[-1])) - if abs(len(pts) - len(outline_polygon())) > 1: - bad.append(u'点数 %d != %d' % (len(pts), len(outline_polygon()))) - print(u'读回板框折线 1 条 / %d 点,外接 %.2f~%.2f x %.2f~%.2f;层 11 遗留导线 %d' - % (len(pts), min(xs), max(xs), min(ys), max(ys), r['line11'])) - else: - bad.append(u'读不回折线点列(原始值 %s)' % str(r['poly'])[:120]) - got = {h[0]: (round(h[1] / MIL, 3), round(h[2] / MIL, 3)) for h in r['holes']} - for n, (hx, hy) in sorted(MOUNT_HOLES.items()): - if n not in got: - bad.append(u'安装孔 %s 没打' % n) - elif abs(got[n][0] - hx) > 0.02 or abs(got[n][1] - hy) > 0.02: - bad.append(u'安装孔 %s 位置 %s != (%.1f, %.1f)' % (n, got[n], hx, hy)) - print(u'铜层 %s;安装孔读回 %d 个;板上元件 %d 件' % (r['layers'], len(got), r['comps'])) - if bad: - print(u'[X] 校验不过:') - for b in bad: - print(u' ' + b) - else: - print(u'[OK] 4 层、板框是一条闭合折线、外接矩形对上、安装孔齐') - return bad - - -if __name__ == '__main__': - selfcheck() - print(u'底板 %.0f x %.0f,%d 层,四角 R%.0f;PCB=%s' % (BW, BH, LAYERS, CORNER_R, PCB)) - print(u'槽阵 5 槽 @%.2f(长轴沿 x,rot %d,槽心 x %.1f): y = %s' - % (SLOT_PITCH, SLOT_ROT, SLOT_CX, u' / '.join('%.2f' % y for y in slot_ys()))) - print(u'走廊: %s' % u' | '.join('%.2f~%.2f' % (c[1], c[3]) for c in corridors())) - print(u'背面分区(限高 %.0f mm):' % H_BOTTOM) - for k, z in sorted(ZONES.items()): - print(u' %-4s (%5.1f, %5.1f)-(%5.1f, %5.1f) %6.0f mm²' - % (k, z[0], z[1], z[2], z[3], (z[2] - z[0]) * (z[3] - z[1]))) - r = l1_12v_rects() - print(u'L1 +12V:主块 x %.2f~%.2f(宽 %.1f)+ %d 块指头,指头东界 x=%.2f' - % (r[0][0], r[0][2], r[0][2] - r[0][0], len(r) - 1, r[1][2])) - if '--outline' in sys.argv: - push_outline() - verify() - elif '--holes' in sys.argv: - push_holes() - verify() - elif '--verify' in sys.argv: - verify() +# -*- coding: utf-8 -*- +u"""R2 底板 PCB(M5,**4 层 98 × 98**,D15):板框 + 槽阵 + 背面分区 + 安装孔 + L1 的 12V 铜。 + + /c/Python314/python .claude/r2/pcb_base.py # 只算 + 自检 + /c/Python314/python .claude/r2/pcb_base.py --outline # 画/重画板框(幂等) + /c/Python314/python .claude/r2/pcb_base.py --holes # 打安装孔 + /c/Python314/python .claude/r2/pcb_base.py --verify # 读回校验 + +2 层版(110 × 125,12V 西干道 / 3V3 槽墙 / D± 竖通道 / 刀片投影限高)整份存档在 +`archive_base2L/pcb_base.py`,那一套在这里**全部删掉**,下游引用到的会直接 AttributeError。 + +## 坐标系 + +**板左下角 = (0, 0),x 向右、y 向上**,两面**同一套坐标、都按从上往下看**。 +x = 槽长方向,y = 五片刀片堆叠方向(J38 最南 … J34 最北)。 + +## 叠层(D15) + + L1 插槽面 —— 只有 J34~J38 五个插槽(手焊)+ 西侧 12V 大铺铜 + 每排 12V 脚一根指 + L2 GND —— 整层地,不布线(L1 信号的参考;2026-09-10 晚曾改 +3V3,同日深夜改回 GND,双地) + L3 GND —— 整层地,不布线(L4 上全部器件与 D± 的参考) + L4 器件面 —— 其余 133 件(工厂只贴这一面)+ 全部信号 + D±(参考 L3)+ 3V3/5V 局部铜 + +## ⛔ 板框必须是**折线**不是导线 + +`pcb_PrimitiveLine` 在嘉立创里是**导线(铜)**:渲染、DRC、几何校验全过,客户端就是不认板框 +(方案 §27.3)。`push_outline()` 只用 `pcb_PrimitivePolyline`,并删掉层 11 上遗留的导线。 + +## 12V 指头的 x 为什么停在 34.95(不是分区草图写的 35.1) + +槽针实测(`PIN_ROWS`,J36 读回):两排 12V 右边紧挨着的 x=35.5 是 **GND**, +焊盘左沿 35.15;35.1 只剩 0.05 mm。北排 12V 左边 x=32.5 也是 **GND**, +所以北排的指头只能从排外绕进来(L 形),不能像南排那样整块横穿。 +""" +import io +import json +import math +import os +import sys + +sys.stdout.reconfigure(encoding='utf-8') +HERE = os.path.dirname(os.path.abspath(__file__)) +# ⚠ 顺序不能反:`.claude` 下有同名的 R1 脚本,先插 .claude 会 import 到 R1 那一份且不报错。 +sys.path.insert(0, os.path.dirname(HERE)) +sys.path.insert(0, HERE) +from eda import run # noqa: E402 +import fp_edge # noqa: E402 + +PCB = '7b9524b6aaf6f235' # BASE-PCB(r2-uuids.json) +MIL = fp_edge.MIL +LAYERS = 4 +TOP, BOTTOM = 1, 2 # EPCB_LayerId:器件只能在这两层 + +# ── 板框(mm,D15)───────────────────────────────────────────────────── +BW, BH = 98.0, 98.0 # 硬上限 98(100 正压嘉立创特价档边界,同 D14) +CORNER_R = 5.0 +CORNER_SEG = 10 +OUTLINE_W = 0.15 +EDGE_KEEP = 0.5 # 铜 / 器件到板边 + +# ── 槽阵:五槽居中,长轴沿 x,rot 0 ─────────────────────────────────────── +SLOT_PITCH = 20.32 # 刀片堆叠间距,机械定死 +SLOT_N = 5 +SLOT_ROT = 0 +SLOT_CX = 49.0 +ARRAY_CY = 49.0 +SLOT_BODY_L = 42.0 # 槽体沿 x(`PCIE-64P11L` 焊盘外框) +SLOT_BODY_W = 9.2 # 槽体沿 y +PAD_ROW_DY = 3.6 # 两排焊盘 y = 槽心 ± 3.6 +PAD_L, PAD_W = 0.7, 2.0 # 单盘 0.7(x) × 2.0(y),脚距 1.0 +SHELL_U, SHELL_L, SHELL_W = 19.5, 3.0, 5.0 # 两端外壳 GND 盘:u = ±19.5,3(x) × 5(y) +SLOT_REFS = ('J34', 'J35', 'J36', 'J37', 'J38') + +# 针位表(u = 距槽心,板上 x = SLOT_CX + u;2026-09-10 从 J36 实测焊盘读回)。 +# S = 南排(焊盘 33~64,y = 槽心 − 3.6),N = 北排(焊盘 1~32,y = 槽心 + 3.6)。 +# 每排 32 针:u −16.5 … −6.5(11 针)+ 键位缺口 + u −3.5 … +16.5(21 针)。 +_U = [-16.5 + k for k in range(11)] + [-3.5 + k for k in range(21)] +_S = ('12V 12V 12V GND SCL SDA GND 3V3 NC NC INT ' + 'GND GND DP DM ' + 'GND ' * 15 + 'PRSNT GND').split() +_N = ('GND 12V 12V GND NC NC NC NC 3V3 3V3 EN ' + 'GND GND GND GND VDAC GND GND 5V ' + 'GND ' * 12 + '5V').split() +PIN_ROWS = {'S': dict(zip(_U, _S)), 'N': dict(zip(_U, _N))} +ROW_SIGN = {'S': -1, 'N': +1} + + +def pin_x(u): + return round(SLOT_CX + u if SLOT_ROT == 0 else SLOT_CX - u, 3) + + +def slot_y(i): + u"""槽 i(1 = 最南 = J38)的中心 y。""" + return round(ARRAY_CY + (i - (SLOT_N + 1) / 2.0) * SLOT_PITCH, 3) + + +def slot_ys(): + return [slot_y(i) for i in range(1, SLOT_N + 1)] + + +def slot_body(i): + y = slot_y(i) + return (SLOT_CX - SLOT_BODY_L / 2, y - SLOT_BODY_W / 2, + SLOT_CX + SLOT_BODY_L / 2, y + SLOT_BODY_W / 2) + + +def pad_rect(i, row, u): + u"""槽 i 某排 u 处那只针的焊盘外框。""" + x, y = pin_x(u), slot_y(i) + ROW_SIGN[row] * PAD_ROW_DY + return (x - PAD_L / 2, y - PAD_W / 2, x + PAD_L / 2, y + PAD_W / 2) + + +def shell_rects(i): + y = slot_y(i) + return [(pin_x(s * SHELL_U) - SHELL_L / 2, y - SHELL_W / 2, + pin_x(s * SHELL_U) + SHELL_L / 2, y + SHELL_W / 2) for s in (-1, 1)] + + +# 逻辑 USB 号 → 插槽位号 / 物理槽位(南起 1..5)。USB1 = J34 = 最北。 +USB_SLOT_REF = {1: 'J34', 2: 'J35', 3: 'J36', 4: 'J37', 5: 'J38'} +USB_SLOT_POS = {i: SLOT_N + 1 - i for i in range(1, SLOT_N + 1)} + + +# 2026-09-12 用户拍板:这几件挪到顶面(L1),理由是装配 / 接线都在插槽那一面。 +# 五件的焊盘**全在封装 y = 0 那一排**(`_base_native_pads.json` 实测),而翻面只把 +# 原生偏移的 y 取反(`place_base.pad_off`)⇒ 孔位、针序、铜**一根都不动**, +# 纯粹是装配面 + 丝印换面。⛔ 换成焊盘不在一条线上的件(贴片、双排针)不成立: +# 那种翻面会把铜挪到 L1,要重新布线。 +TOP_EXTRA = ('C2', 'C3', # Φ8 470 µF 直立电解(12 mm 高) + 'J26', 'J27', # 2510-4A 风扇座(11 mm 立式) + 'J33') # 2.54 应急串口排针(11.5 mm 立式) + + +def side_of(ref): + u"""器件放哪一面:五个插槽 + TOP_EXTRA 在 L1(TOP),其余一律 L4(BOTTOM)。""" + return TOP if ref in SLOT_REFS or ref in TOP_EXTRA else BOTTOM + + +# ── 走廊:槽体之间那 11.12 mm,外加阵列两头 ──────────────────────────────── +def corridor(k): + u"""走廊 k(0 = 阵列最南,5 = 最北),整板宽。""" + y0 = 0.0 if k == 0 else slot_y(k) + SLOT_BODY_W / 2 + y1 = BH if k == SLOT_N else slot_y(k + 1) - SLOT_BODY_W / 2 + return (0.0, round(y0, 3), BW, round(y1, 3)) + + +def corridors(): + return [corridor(k) for k in range(SLOT_N + 1)] + + +def usb_corridor(i): + u"""USB i 的 D± 所在走廊:D± 在每槽**南排**,所以是槽体南侧那条。""" + return corridor(USB_SLOT_POS[i] - 1) + + +# ── 背面 L4 分区(用户 2026-09-10 确认,见 M14-4L-floorplan.png)────────────── +# 槽体正下方(`slot_body` 投影)是过孔带:槽脚在 L1,GND 打孔下 L2/L3、信号打孔下 L4,不放件。 +# 槽区 x 28~70 的走廊里只有 A4 两块,其余两条走廊留给布线。 +# ⛔ 与草图不同:**Hub 在中间槽正南(走廊 2)、mux/DAC 在正北(走廊 3)**(2026-09-10 用户拍板)。 +# U32 在底层只能 rot 270(口朝北),南去的几对要绕 U32 东侧;Hub 在走廊 3 时要绕三对、 +# 最远 D± ≈ 80 mm,放走廊 2 只绕两对、最远 ≈ 58 mm。详见 place_base 文件头。 +_C = corridors() +ZONES = { + 'A1': (0.5, 0.5, 27.5, 56.0), # 输入链 J1 F1 Q1 D1 C2/C3 Rs6 U13 + 'A2': (0.5, 57.5, 27.5, 74.0), # 辅助降压 U19 U30 L2 L3 + 'A6': (0.5, 75.5, 27.5, 97.5), # 风扇 J26 J27 + 驱动 + 'A3': (70.5, 40.0, 97.5, 97.5), # 控制 U20 ESP32 J33 … + 'A5': (70.5, 0.5, 97.5, 38.5), # 上行 J23 USB-C + U31 LDO + 'A4H': (28.5, _C[2][1], 69.5, _C[2][3]), # Hub U32 + Y1 + 去耦(走廊 2) + 'A4M': (28.5, _C[3][1], 69.5, _C[3][3]), # U35 mux + U6/U7 DAC(走廊 3) +} +H_BOTTOM = 14.0 # 背面限高:底板下 ≥ 15 mm 铜柱(C2/C3 直立电解 12 mm) + +# D± 在 L4 沿 x≈48 竖向成束(参考 L3);I²C / VDAC 沿 x≈37。只是布线意图,这里不做禁区。 +DP_TRUNK_X = 48.0 +I2C_TRUNK_X = 37.0 + + +def via_bands(): + u"""槽体正下方的过孔带(背面摆位禁区)。""" + return [slot_body(i) for i in range(1, SLOT_N + 1)] + + +# ── ESP32 天线缺口(东板边)──────────────────────────────────────────────────── +# 西沿 90.5 → 90.8(2026-09-10):U20 焊盘外框东沿正好在 90.5,地脚 1 / 40 离缺口边只有 0.155 mm, +# DRC「板框到贴片焊盘」要 0.3。东移 0.3 之后天线根部下面多留 0.3 mm 板材,影响可忽略。 +ANT_NOTCH = (90.8, 58.0, BW, 80.0) + + +def notch_rect(): + return ANT_NOTCH + + +# ── 安装孔(M3,NPTH)──────────────────────────────────────────────── +HOLE_D = 3.2 +HOLE_KEEP = 3.2 +HOLE_INSET = 4.0 +MOUNT_HOLES = { + 'H1': (HOLE_INSET, HOLE_INSET), + 'H2': (BW - HOLE_INSET, HOLE_INSET), + 'H3': (HOLE_INSET, BH - HOLE_INSET), + 'H4': (BW - HOLE_INSET, BH - HOLE_INSET), +} + + +def keepout_rects(): + u"""背面摆位禁区:过孔带 + 天线缺口(安装孔另按 HOLE_KEEP 判)。""" + return via_bands() + [ANT_NOTCH] + + +# ── L1 的 +12V 铜(9 A 干路,§6.4 断面 ≥ 8 mm)───────────────────────────── +# 主块贴西板边,东沿停在外壳 GND 盘(x 28~31)以西;每槽每排一根指头去够 12V 针。 +# 南排 12V 在 u −16.5/−15.5/−14.5,左右都没有异网针挡着(西边是外壳盘,只要不碰它的 y 段) +# ⇒ 从主块横着伸过去,上沿停在外壳盘下沿以南 V12_CLR。 +# 北排 12V 在 u −15.5/−14.5,左边 u −16.5 是 GND ⇒ 帽子在排外横过去,再从东边下一颗牙。 +V12_CLR = 0.20 # 到异网铜(规则底线 0.15,留 0.05) +V12_OUT = 2.0 # 指头伸出针排外沿多少(进走廊) +V12_MAIN = (EDGE_KEEP, EDGE_KEEP, None, BH - EDGE_KEEP) # 东沿在 l1_12v_rects() 里算 + + +def l1_12v_rects(): + u"""L1 +12V 铜:[主块] + 每槽 [南指, 北帽, 北牙]。全部同网,重叠处由铺铜合并。""" + c = V12_CLR + shell_x0 = pin_x(-SHELL_U) - SHELL_L / 2 # 外壳盘西沿 28.0 + x_main = round(shell_x0 - c, 3) + out = [(V12_MAIN[0], V12_MAIN[1], x_main, V12_MAIN[3])] + row_o = PAD_ROW_DY + PAD_W / 2 # 针排外沿 4.6 + x_e = round(pin_x(-13.5) - PAD_L / 2 - c, 3) # 东界:u −13.5 那只 GND 左沿 − 净距 + x_tooth = round(pin_x(-16.5) + PAD_L / 2 + c, 3) # 北牙西界:北排 u −16.5 GND 右沿 + 净距 + for i in range(1, SLOT_N + 1): + cy = slot_y(i) + y_shell = SHELL_W / 2 + c # 外壳盘上下沿 + 净距 + out += [ + (x_main - 0.3, round(cy - row_o - V12_OUT, 3), x_e, round(cy - y_shell, 3)), + (x_main - 0.3, round(cy + row_o + c, 3), x_e, round(cy + row_o + V12_OUT, 3)), + (x_tooth, round(cy + y_shell, 3), x_e, round(cy + row_o + c + 0.05, 3)), + ] + return out + + +# ── 下游脚本要的空壳 ───────────────────────────────────────────────────── +# ── D16:L1 12V 大铜上扣出来、只归个别网的窗口(route_base 挡线图 / pour_base 铺铜共用)────────── +# 用户 2026-09-11 选:① J1(USB-C)的 CC 夹在两组 VBUS 之间,VIN_RAW 一合流就出不来 ⇒ 在两组 VBUS 之间 +# 打孔上 L1、东去 U36 再下来(CC2 在南、CC1 在北,两根不交叉;CC2 东段压低到 y ≤ 8.95 是为了让开 +# J1 东侧外壳长槽在 L1 上的焊盘,它到 y 8.26);② U37 两侧 VIN 经 L1 上的 VIN_FUSED 小岛连通(TI 做法)。 +# 12V 主块在小岛这一段还剩 x 0.5~18.6(18 mm),CC 两根只切 J38 那一个槽的供电路径。 +PD_ISLAND = (18.9, 13.4, 22.9, 29.2) +PD_L1 = [('PD_CC2', (10.3, 8.1, 12.9, 9.35)), ('PD_CC2', (12.9, 8.1, 20.4, 8.95)), + ('PD_CC1', (13.2, 9.1, 20.4, 10.2)), + ('VIN_FUSED', PD_ISLAND), + # 2026-09-12(第三批,用户重摆整窝之后):风扇那一窝的长途网借 L1 横穿 A6。 + # A6 那一带 L1 整片是 12V 主块(x 0.5~27.8)⇒ 过孔上得去但走不动,等于单层,而 L4 已被 22 件占满。 + # ⛔ 前两批走廊是按**旧摆位**开的(注释里写的 `R748.1(18.2,91.0)` / `R757.2(27.2,93.0)` 都是旧坐标), + # 用户 2026-09-12 重摆之后件全变了位置,走廊与件对不上 ⇒ 四条长途网必然布不通。已整体替换。 + # ⚠ 走廊必须**盖住焊盘正上方**:只盖"沿途"不行,那只脚得先在 L4 挪到走廊下方才能打孔上来, + # 实测 J27.4 / Q10.3 就是这么卡住的(v1 只盖沿途 ⇒ 未完成 3;v2 盖住焊盘 ⇒ 未完成 2)。 + # ⚠ 只挡**导线图**;铺铜那边不用开窗(L1 的 12V 铺铜本来就绕开异网导线,CC 两根走的同一路子)。 + # 断面(`l1_section.py`,§6.4 要 ≥ 8.0):逐 y 最窄 **11.80 mm**(y=76.10)。 + # 走廊 x 一律 ≤ 27.5,而槽指头在 x ≥ 27.5 ⇒ 不碰任何一槽的供电路径。 + ('FAN_EN', (12.0, 76.10, 27.50, 77.10)), # R748.1(5.13,73.91) 西段走 L4,东段借 L1 到窗缘 + ('FAN_TACH_IN', (16.0, 75.15, 27.50, 76.05)), # 主干端点 (26.00,75.62) 在窗缘 + ('FAN_TACH_IN', (13.7, 76.05, 16.20, 90.40)), # 竖带盖住 Q9.3(14.21,89.92) / R753.2(15.62,89.97) + ('FAN_TACH_OUT', (17.4, 80.70, 27.50, 81.70)), # 盖住 Q10.3(18.02,81.15) + ('FAN_TACH_OUT', (17.4, 81.70, 18.80, 84.10)), # 竖段接 R757.2(18.11,83.57) + ('FAN_PWM_L', (10.3, 83.90, 22.50, 87.30))] # 盖住 J27.4(10.92,84.44) 与 Q6.3(22.10,87.36) # R733.1(14.0,94.1) 往东出区 + + +def rect_minus(r, holes): + u"""矩形 r 减去若干矩形 → 不重叠的矩形列表。""" + out = [tuple(r)] + for h in holes: + nxt = [] + for a in out: + if not (a[0] < h[2] and h[0] < a[2] and a[1] < h[3] and h[1] < a[3]): + nxt.append(a) + continue + if a[0] < h[0]: + nxt.append((a[0], a[1], h[0], a[3])) + if h[2] < a[2]: + nxt.append((h[2], a[1], a[2], a[3])) + x0, x1 = max(a[0], h[0]), min(a[2], h[2]) + if a[1] < h[1]: + nxt.append((x0, a[1], x1, h[1])) + if h[3] < a[3]: + nxt.append((x0, h[3], x1, a[3])) + out = nxt + return out + + +FLEX_W = {} +SLOT_Y = None +PHONE_ORG = None +PHONE_WH = None + + +def phone_holes(): + u"""所有层都不许压的孔:四个 M3 安装孔(`pcb_PrimitivePad`,不在 pads.json 里)。""" + return dict(MOUNT_HOLES) + + +def mill_cuts(): + return [] + + +def notch_break(): + return None + + +def corner(cx, cy, a0, a1): + pts = [] + for k in range(CORNER_SEG + 1): + a = math.radians(a0 + (a1 - a0) * k / CORNER_SEG) + pts.append((cx + CORNER_R * math.cos(a), cy + CORNER_R * math.sin(a))) + return pts + + +def outline_pts(): + u"""板框点列(逆时针,从底边左端 (r,0) 起,闭合回 (r,0))。东边带天线缺口。""" + r = CORNER_R + pts = [(r, 0.0), (BW - r, 0.0)] + pts += corner(BW - r, r, 270, 360) + pts += [(BW, ANT_NOTCH[1]), (ANT_NOTCH[0], ANT_NOTCH[1]), + (ANT_NOTCH[0], ANT_NOTCH[3]), (BW, ANT_NOTCH[3]), + (BW, BH - r)] + pts += corner(BW - r, BH - r, 0, 90) + pts += [(r, BH)] + pts += corner(r, BH - r, 90, 180) + pts += [(0.0, r)] + pts += corner(r, r, 180, 270) + out = [pts[0]] + for q in pts[1:]: + if abs(q[0] - out[-1][0]) > 1e-9 or abs(q[1] - out[-1][1]) > 1e-9: + out.append(q) + assert abs(out[0][0] - out[-1][0]) < 1e-9 and abs(out[0][1] - out[-1][1]) < 1e-9, \ + u'板框点列没有闭合' + return out + + +def outline_polygon(): + return outline_pts() + + +def zone_of(x, y): + for k, z in ZONES.items(): + if z[0] <= x <= z[2] and z[1] <= y <= z[3]: + return k + return None + + +def height_ok(h): + u"""背面限高(正面只有插槽)。""" + return h <= H_BOTTOM + + +def _overlap(a, b): + return a[0] < b[2] and b[0] < a[2] and a[1] < b[3] and b[1] < a[3] + + +def _gap(a, b): + u"""两个矩形的最小距离(重叠为 0)。""" + dx = max(b[0] - a[2], a[0] - b[2], 0.0) + dy = max(b[1] - a[3], a[1] - b[3], 0.0) + return math.hypot(dx, dy) + + +def selfcheck(): + bad = [] + ys = slot_ys() + for a, b in zip(ys, ys[1:]): + if abs((b - a) - SLOT_PITCH) > 1e-6: + bad.append(u'槽间距 %.3f != %.2f' % (b - a, SLOT_PITCH)) + if abs((ys[0] + ys[-1]) / 2.0 - ARRAY_CY) > 1e-6: + bad.append(u'阵列没居中: %s' % ys) + for i in range(1, SLOT_N + 1): + b = slot_body(i) + if b[0] < 2 or b[1] < 2 or b[2] > BW - 2 or b[3] > BH - 2: + bad.append(u'槽 %d 槽体 %s 贴板边 < 2 mm' % (i, b)) + # 针位表:每排 32 针,12V 共 5 针(南 3 北 2),D± 在南排 + for row in 'SN': + if len(PIN_ROWS[row]) != 32: + bad.append(u'%s 排 %d 针 != 32' % (row, len(PIN_ROWS[row]))) + n12 = [(r, u) for r in 'SN' for u, t in PIN_ROWS[r].items() if t == '12V'] + if len(n12) != 5: + bad.append(u'12V 针 %d 只 != 5' % len(n12)) + # 12V 铜:每只 12V 针都被某块指头盖到;到任何异网针 / 外壳盘 ≥ V12_CLR + rects = l1_12v_rects() + for i in range(1, SLOT_N + 1): + for row in 'SN': + for u, t in PIN_ROWS[row].items(): + p = pad_rect(i, row, u) + if t == '12V': + if not any(_overlap(p, r) for r in rects): + bad.append(u'槽 %d %s 排 u=%.1f 的 12V 针没被铜盖到' % (i, row, u)) + else: + g = min(_gap(p, r) for r in rects) + if g < V12_CLR - 1e-6: + bad.append(u'12V 铜离槽 %d %s 排 u=%.1f(%s)只有 %.3f' + % (i, row, u, t, g)) + for s in shell_rects(i): + g = min(_gap(s, r) for r in rects) + if g < V12_CLR - 1e-6: + bad.append(u'12V 铜离槽 %d 外壳盘只有 %.3f' % (i, g)) + main = rects[0] + if main[2] - main[0] < 8.0: + bad.append(u'L1 12V 主块只有 %.1f mm 宽,9 A 要 ≥ 8' % (main[2] - main[0])) + # 走廊铺满、净宽对 + cs = corridors() + for a, b in zip(cs, cs[1:]): + if a[3] > b[1] + 1e-6: + bad.append(u'走廊重叠: %s / %s' % (a, b)) + for k in range(1, SLOT_N): + w = cs[k][3] - cs[k][1] + if abs(w - (SLOT_PITCH - SLOT_BODY_W)) > 1e-6: + bad.append(u'走廊 %d 净宽 %.2f' % (k, w)) + # 背面分区:在板内、两两不重叠、不压过孔带 + zs = sorted(ZONES.items()) + for k, z in zs: + if z[0] < EDGE_KEEP - 1e-6 or z[1] < EDGE_KEEP - 1e-6 or \ + z[2] > BW - EDGE_KEEP + 1e-6 or z[3] > BH - EDGE_KEEP + 1e-6: + bad.append(u'分区 %s 出板: %s' % (k, z)) + for j, vb in enumerate(via_bands(), 1): + if _overlap(z, vb): + bad.append(u'分区 %s 压到槽 %d 过孔带' % (k, j)) + for n, (ka, za) in enumerate(zs): + for kb, zb in zs[n + 1:]: + if _overlap(za, zb): + bad.append(u'分区 %s / %s 重叠' % (ka, kb)) + if [USB_SLOT_REF[i] for i in range(1, SLOT_N + 1)] != list(SLOT_REFS): + bad.append(u'USB -> 插槽位号映射被改坏') + # 安装孔:不出板 / 不压槽体 / 不被圆角切 / 不落天线缺口 + for n, (hx, hy) in MOUNT_HOLES.items(): + if not (HOLE_KEEP < hx < BW - HOLE_KEEP and HOLE_KEEP < hy < BH - HOLE_KEEP): + bad.append(u'安装孔 %s 出板或贴边: (%.1f, %.1f)' % (n, hx, hy)) + hr = (hx - HOLE_KEEP, hy - HOLE_KEEP, hx + HOLE_KEEP, hy + HOLE_KEEP) + for i in range(1, SLOT_N + 1): + if _overlap(hr, slot_body(i)): + bad.append(u'安装孔 %s 压到槽 %d' % (n, i)) + for cx, cy in ((CORNER_R, CORNER_R), (BW - CORNER_R, CORNER_R), + (CORNER_R, BH - CORNER_R), (BW - CORNER_R, BH - CORNER_R)): + out_x = hx < cx if cx < BW / 2 else hx > cx + out_y = hy < cy if cy < BH / 2 else hy > cy + if out_x and out_y and math.hypot(hx - cx, hy - cy) > CORNER_R - HOLE_KEEP: + bad.append(u'安装孔 %s 被 R%.0f 圆角切到' % (n, CORNER_R)) + if _overlap(hr, ANT_NOTCH): + bad.append(u'安装孔 %s 落进天线缺口' % n) + sep = chr(10) + ' ' + assert not bad, u'底板自检不过:' + sep + sep.join(bad) + return True + + +# ── 下发 ────────────────────────────────────────────────────────────── +def call(js, timeout=180): + r = run(js, timeout=timeout) + if not r.get('success'): + raise RuntimeError(json.dumps(r, ensure_ascii=False)[:800]) + return r['result'] + + +def mil(v): + return round(v * MIL, 4) + + +def polygon_src(pts): + a = [mil(pts[0][0]), mil(pts[0][1])] + for q in pts[1:]: + a += ['L', mil(q[0]), mil(q[1])] + if pts[0] != pts[-1]: + a += ['L', mil(pts[0][0]), mil(pts[0][1])] + return a + + +def push_outline(): + u"""板框 = 一条闭合折线;顺带删掉层 11 上遗留的**导线**(§27.3 的坑)。""" + src = polygon_src(outline_polygon()) + js = ("await eda.dmt_EditorControl.openDocument('%s');" % PCB + + "await new Promise(r=>setTimeout(r,2500));" + + "const oldL = (await eda.pcb_PrimitiveLine.getAll()||[]).filter(l=>l.layer===11)" + ".map(l=>l.primitiveId);" + + "if (oldL.length) await eda.pcb_PrimitiveLine.delete(oldL);" + + "const oldP = (await eda.pcb_PrimitivePolyline.getAll()||[])" + ".filter(p=>p.getState_Layer()===11).map(p=>p.getState_PrimitiveId());" + + "if (oldP.length) await eda.pcb_PrimitivePolyline.delete(oldP);" + + "const poly = await eda.pcb_MathPolygon.createPolygon(%s);" % json.dumps(src) + + "const r = await eda.pcb_PrimitivePolyline.create('', 11, poly, %s);" % mil(OUTLINE_W) + + "await eda.pcb_Document.save();" + + "return {delLine: oldL.length, delPoly: oldP.length, made: !!r," + " now: (await eda.pcb_PrimitivePolyline.getAll()||[])" + ".filter(p=>p.getState_Layer()===11).length," + " line11: (await eda.pcb_PrimitiveLine.getAll()||[]).filter(l=>l.layer===11).length};") + r = call(js, timeout=300) + print(u'板框折线: %s(删旧导线 %d / 旧折线 %d);层 11 现有折线 %d / 导线 %d' + % (u'建好' if r['made'] else u'失败', r['delLine'], r['delPoly'], r['now'], r['line11'])) + if not r['made'] or r['now'] != 1: + raise SystemExit(u'!! 板框没画成') + return r + + +PUSH_HOLES_JS = u""" +await eda.dmt_EditorControl.openDocument('%s'); +await new Promise(r=>setTimeout(r,2500)); +const H = %s, D = %s; +for (const p of await eda.pcb_PrimitivePad.getAll()) { + const num = p.getState_PadNumber(); + if (typeof num === 'string' && /^H[1-9]$/.test(num)) + await eda.pcb_PrimitivePad.delete(p.getState_PrimitiveId()); +} +let k = 0; +for (const [name, x, y] of H) { + // layer 12 = 多层;末位 metallization=false ⇒ NPTH。参数位序照抄 pcb_blade.push_holes + await eda.pcb_PrimitivePad.create(12, name, x, y, 0, ['ELLIPSE', D, D], '', + ['ROUND', D], 0, 0, 0, false); + k++; +} +await eda.pcb_Document.save(); +return {made: k, now: (await eda.pcb_PrimitivePad.getAll()) + .filter(p => /^H[1-9]$/.test(String(p.getState_PadNumber()))).length}; +""" + + +def push_holes(): + arr = [[k, mil(v[0]), mil(v[1])] for k, v in sorted(MOUNT_HOLES.items())] + r = call(PUSH_HOLES_JS % (PCB, json.dumps(arr), mil(HOLE_D)), timeout=300) + print(u'安装孔: 下发 %d / 读回 %d,NPTH Φ%.1f' % (r['made'], r['now'], HOLE_D)) + for k, v in sorted(MOUNT_HOLES.items()): + print(u' %-3s (%6.2f, %6.2f)' % (k, v[0], v[1])) + return r + + +def verify(): + r = call("await eda.dmt_EditorControl.openDocument('%s');" + "await new Promise(r=>setTimeout(r,2000));" + "const ps = (await eda.pcb_PrimitivePolyline.getAll()||[])" + ".filter(p=>p.getState_Layer()===11);" + "const line11 = (await eda.pcb_PrimitiveLine.getAll()||[])" + ".filter(l=>l.layer===11).length;" + "const holes = (await eda.pcb_PrimitivePad.getAll())" + ".filter(p=>/^H[1-9]$/.test(String(p.getState_PadNumber())))" + ".map(p=>[String(p.getState_PadNumber()), p.getState_X(), p.getState_Y()]);" + "return {n: ps.length, poly: ps.length ? ps[0].getState_Polygon() : null," + " line11, holes, layers: await eda.pcb_Layer.getTheNumberOfCopperLayers()," + " comps: (await eda.pcb_PrimitiveComponent.getAll()).length};" % PCB, + timeout=180) + bad = [] + if r['layers'] != LAYERS: + bad.append(u'铜层数 %s != %d' % (r['layers'], LAYERS)) + if r['n'] != 1: + bad.append(u'层 11 上有 %d 条折线(应为 1)' % r['n']) + if r['line11']: + bad.append(u'层 11 上还有 %d 条**导线**(板框画成铜的老坑,§27.3)' % r['line11']) + pts = [] + src = r['poly'] + if isinstance(src, dict): + src = src.get('pointArr') or src.get('points') or src.get('polygon') or src + if isinstance(src, list): + i = 0 + while i < len(src): + if src[i] in ('L', 'l'): + i += 1 + continue + if isinstance(src[i], (int, float)) and i + 1 < len(src) and isinstance(src[i + 1], (int, float)): + pts.append((src[i] / MIL, src[i + 1] / MIL)) + i += 2 + else: + i += 1 + if pts: + xs = [p[0] for p in pts] + ys = [p[1] for p in pts] + if abs(min(xs)) > 0.01 or abs(max(xs) - BW) > 0.01 or \ + abs(min(ys)) > 0.01 or abs(max(ys) - BH) > 0.01: + bad.append(u'外接矩形 %.2f~%.2f x %.2f~%.2f != 0~%.0f x 0~%.0f' + % (min(xs), max(xs), min(ys), max(ys), BW, BH)) + if abs(pts[0][0] - pts[-1][0]) > 0.01 or abs(pts[0][1] - pts[-1][1]) > 0.01: + bad.append(u'折线首尾不重合: %s vs %s' % (pts[0], pts[-1])) + if abs(len(pts) - len(outline_polygon())) > 1: + bad.append(u'点数 %d != %d' % (len(pts), len(outline_polygon()))) + print(u'读回板框折线 1 条 / %d 点,外接 %.2f~%.2f x %.2f~%.2f;层 11 遗留导线 %d' + % (len(pts), min(xs), max(xs), min(ys), max(ys), r['line11'])) + else: + bad.append(u'读不回折线点列(原始值 %s)' % str(r['poly'])[:120]) + got = {h[0]: (round(h[1] / MIL, 3), round(h[2] / MIL, 3)) for h in r['holes']} + for n, (hx, hy) in sorted(MOUNT_HOLES.items()): + if n not in got: + bad.append(u'安装孔 %s 没打' % n) + elif abs(got[n][0] - hx) > 0.02 or abs(got[n][1] - hy) > 0.02: + bad.append(u'安装孔 %s 位置 %s != (%.1f, %.1f)' % (n, got[n], hx, hy)) + print(u'铜层 %s;安装孔读回 %d 个;板上元件 %d 件' % (r['layers'], len(got), r['comps'])) + if bad: + print(u'[X] 校验不过:') + for b in bad: + print(u' ' + b) + else: + print(u'[OK] 4 层、板框是一条闭合折线、外接矩形对上、安装孔齐') + return bad + + +if __name__ == '__main__': + selfcheck() + print(u'底板 %.0f x %.0f,%d 层,四角 R%.0f;PCB=%s' % (BW, BH, LAYERS, CORNER_R, PCB)) + print(u'槽阵 5 槽 @%.2f(长轴沿 x,rot %d,槽心 x %.1f): y = %s' + % (SLOT_PITCH, SLOT_ROT, SLOT_CX, u' / '.join('%.2f' % y for y in slot_ys()))) + print(u'走廊: %s' % u' | '.join('%.2f~%.2f' % (c[1], c[3]) for c in corridors())) + print(u'背面分区(限高 %.0f mm):' % H_BOTTOM) + for k, z in sorted(ZONES.items()): + print(u' %-4s (%5.1f, %5.1f)-(%5.1f, %5.1f) %6.0f mm²' + % (k, z[0], z[1], z[2], z[3], (z[2] - z[0]) * (z[3] - z[1]))) + r = l1_12v_rects() + print(u'L1 +12V:主块 x %.2f~%.2f(宽 %.1f)+ %d 块指头,指头东界 x=%.2f' + % (r[0][0], r[0][2], r[0][2] - r[0][0], len(r) - 1, r[1][2])) + if '--outline' in sys.argv: + push_outline() + verify() + elif '--holes' in sys.argv: + push_holes() + verify() + elif '--verify' in sys.argv: + verify() diff --git a/.claude/r2/repair_window.py b/.claude/r2/repair_window.py new file mode 100644 index 0000000..7310ad7 --- /dev/null +++ b/.claude/r2/repair_window.py @@ -0,0 +1,303 @@ +# -*- coding: utf-8 -*- +u"""**窗口内整体重布**:把一块矩形区域里的几个网连同周边 `+3V3` / `GND` 局部一起重布。 + + bash .claude/r2/remote_repair_window.sh # 入口(本机) + DCDC_ROUTE_SERVER=1 pypy3 .claude/r2/repair_window.py + +## 和 `repair_base.py` 的区别(为什么要单独一份) + +`repair_base` 是**按网**补:给它 `+3V3`,它就在**全板**范围重布这个网 —— 2026-09-12 实测, +它把新的 `+3V3` 线从 **J34~J37 插槽针排的焊盘中间穿过去**(`fan_check` 十几处 −0.2, +还压 U13.7 −0.449)。插槽 1 mm 间距、手焊,那是致命的。 + +这一份改成**按窗口**补,三条约束缺一不可: + +1. **`bypad` 只装窗口内的脚**。窗口外的同网脚一概不参与 ⇒ 布线器不会去动全板的主干。 +2. **窗口外的已有铜照常留在占用图里**。它们是「本网已有的铜」,A* 从窗口内的脚出发, + 碰到就算到达 —— 这就是和外面主干的接口,不需要显式指定接口点。 +3. **窗口外加高过路费**(`OUT_PEN`)。不是封死:万一窗口内绕不出去,它还能出去一点点, + 但代价高到不会乱跑。封死会让本来能绕的网直接报「没布通」。 + +拆线(窗口内目标网的旧铜)由本机 `remote_repair_window.sh` 先做掉,这里只读拆完的板面快照。 + +输入:`_base_fan_input.json`(板上现有铜)+ `_base_window.json`(窗口与网名,本机写)。 +输出:`_base_window_repair.json`(只有新增的段与孔)。 +""" +import io +import json +import math +import os +import sys + +sys.stdout.reconfigure(encoding='utf-8') +HERE = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, os.path.dirname(HERE)) +sys.path.insert(0, HERE) + +if not os.environ.get('DCDC_ROUTE_SERVER'): + sys.exit(u'⛔ 布线(A*)只在 10.5.5.13 上跑(CLAUDE.md):bash .claude/r2/remote_repair_window.sh') + +import router as RT # noqa: E402 +import route_base as RB # noqa: E402 + +CFG = json.load(io.open(os.path.join(HERE, '_base_window.json'), encoding='utf-8')) +WIN = tuple(CFG['window']) # (x0, y0, x1, y1) +NETS = [n.replace('@', '$') for n in CFG['nets']] +OUT_PEN = int(CFG.get('out_pen', 40)) +# 朝插槽那一侧的过路费:必须高到 A* 不会为了抄近路钻进槽区(槽体 x 28~70,手焊 1 mm 针排) +SLOT_PEN = int(CFG.get('slot_pen', 200)) +# 虚拟落点沿主干往窗内退多少(避开压在主干线上导致起步格点为 0) +RETREAT = float(CFG.get('retreat', 0.75)) +# 窗口内「别的网」的焊盘外扩多少封死(收费挡不住,见 _pen 的注释) +PAD_KEEP = float(CFG.get('pad_keep', 0.10)) +cp = json.load(io.open(os.path.join(HERE, '_base_fan_input.json'), encoding='utf-8')) + +# ── L1 走廊(`pcb_base.PD_L1` 的运行时追加)───────────────────────────────── +# ⛔ A6 那一带 L1 整片是 `+12V` 主块(x 0.5~27.8)⇒ 过孔上得去但走不动,等于单层, +# 而 L4 已被 22 件占满。`PD_L1` 里那几条走廊是**按旧摆位**开的(注释里写的坐标就是旧的), +# 用户重摆之后与件对不上 ⇒ 长途网(FAN_EN / 两路 TACH / FAN_PWM_L)必然布不通。 +# 这里让走廊跟着 `_base_window.json` 走,免得每试一组就改 `pcb_base.py`。 +# ⚠ 判据(§6.4):逐 y 的水平断面上,Σ 走廊 x 跨度 ≤ 27.30 − 8.00 = 19.30 mm。 +# 本机 `l1_section.py` 核;走廊 x 一律 ≤ 27.5,槽指头在 x ≥ 27.5,天然不碰。 +_extra = CFG.get('pd_l1_extra') +if _extra is not None: + _keep = [(n, r) for n, r in RB.B.PD_L1 if not n.startswith('FAN')] + RB.B.PD_L1 = _keep + [(n, tuple(r)) for n, r in _extra] + print(u'L1 走廊:保留 %d 条非风扇 + 本轮 %d 条 %s' + % (len(_keep), len(_extra), ' '.join(sorted(set(n for n, _ in _extra))))) + +pads = RB.load_pads() + + +def in_win(x, y, m=0.0): + return WIN[0] - m <= x <= WIN[2] + m and WIN[1] - m <= y <= WIN[3] + m + + +# ── 窗口外加过路费:包住整块板,挖掉窗口 ────────────────────────────────── +_orig_pen = RT.pen_pads + + +def _toll_pads(): + u"""窗口内**不属待布网**的焊盘 —— 必须一起收过路费,否则新线会贴着它们走。 + + 2026-09-12 实测:不收的话,`+3V3` 贴 `Q8.3` 只剩 **0.003**、`FAN_OUT_TACH_RAW` 贴 + `Q10.2` 只剩 **0.027**(判据 0.15),`fan_check` 一跑就拦下来、整版不能下发。 + `route_base._pen` 本来就是靠 `GND_PEN_PADS` / `LATER_PEN_PADS` 收这笔费的, + 我覆盖 `RT.pen_pads` 时漏了这一步。 + + ⛔ 判据是「**不是当前正在布的那个网**」,不是「不在待布网集合里」。第一版写成后者, + 于是 `Q8.3`(网 `$6N48`,本身也在待布名单里)被漏掉 —— 实测它周围过路费始终是 0, + 而 `+3V3` 的新线就贴着它走到 **0.003**。同属待布名单的别的网,对当前这个网来说一样是障碍。 + """ + out = [] + for p in pads: + if p[6] not in RT.LAY or str(p[1]).endswith(RB.TH_SUFFIX): + continue + if in_win(p[2], p[3]): + out.append(p) + return out + + +def _pen(g, ps, halfw): + u"""窗口外收过路费。⛔ **不能各向同性**(2026-09-12 实测)。 + + 朝插槽那一侧(x > 窗口东界)必须近乎封死:`OUT_PEN` 从 40 降到 12 的那一轮, + `$6N64` / `FAN_EN` 立刻跑到 x 28.75~32.50 —— **正是槽体 x 28~70 的插槽区**, + 183 段里 50 段跑出窗口(之前每轮都是 0)。而降它本是为了让跨窗口的网够得着 U20 那边的主干。 + ⇒ 分开定价:东侧(插槽方向)用 `SLOT_PEN`,其余三面用 `OUT_PEN`。 + """ + _orig_pen(g, list(ps) + _toll_pads(), halfw) + # ⛔ 光收过路费**挡不住**(2026-09-12 第二次印证,同「插槽方向」那一条): + # 实测 `Q8.3` 周围过路费确实是 10,A* 照样贴着它走到 **0.003**;`Q10.2` 同理 0.027。 + # `penalize` 只是定价,`block_rect` 才是墙 ⇒ 窗口内**别的网**的焊盘按 `PAD_KEEP` 外扩封死。 + # 代价实测很小:外扩 0.10 时窗口内可走格点 7297 → 6802(72% → 68%,少 495 个)。 + # ⛔ 外扩量必须按**当前这一档的线宽**算,不能写死。2026-09-12 实测:按 0.15 细线定的 + # `PAD_KEEP=0.10` 挡不住 0.40 的 `+3V3`(它半宽就有 0.20)—— 照样贴 `Q8.3` 到 **0.003**。 + # `route_groups` 是按线宽分档建图的,每档传进来的 `halfw` 正是「半宽 + 净距」,直接用它。 + # (一刀切取最粗的 0.56 会把细线通道也削掉 1/3:窗口内可走格点 68% → 52%。) + r = max(PAD_KEEP, halfw) + for p in _toll_pads(): + g.block_rect(p[6], p[2] - p[4] / 2 - r, p[3] - p[5] / 2 - r, + p[2] + p[4] / 2 + r, p[3] + p[5] / 2 + r, net=p[7]) + for l in RT.LAY: + for r in RB.B.rect_minus((0.0, 0.0, RB.B.BW, RB.B.BH), [WIN]): + if r[0] >= WIN[2] - 1e-6: + continue # 东侧(插槽方向)下面单独封死,不是加价 + g.penalize(l, r[0], r[1], r[2], r[3], OUT_PEN) + # ⛔ 插槽方向必须**封死**,不能只加价:本机实测过路费确实加到了 200 + # (窗口内 0 / 插槽区 200),A* 照样钻 —— `$6N64` 宁可付 200×若干格也要从 + # x 25.75 抄到 27.75,因为窗口内绕不过去。`penalize` 只是定价,`block_rect` 才是墙。 + # 槽体 x 28~70 是 1 mm 间距的手焊针排,走线进去是致命的。 + g.block_rect(l, WIN[2], 0.0, RB.B.BW, RB.B.BH, net='#slotwall') + + +RT.pen_pads = _pen + +segs = [tuple(s) for s in cp['segs']] +vias = [tuple(v) for v in cp['vias']] +board_vias = [tuple(v) for v in cp['board_vias']] + +# ⛔ 只装**窗口内**的脚;窗口外的同网铜留在 segs 里当「已有铜」。 +bypad = {} +outside = {} +for p in pads: + if not p[7] or p[7] not in NETS or str(p[1]).endswith(RB.TH_SUFFIX): + continue + if in_win(p[2], p[3]): + bypad.setdefault(p[7], []).append(p) + else: + outside[p[7]] = outside.get(p[7], 0) + 1 + +# ⛔⛔ 2026-09-12 实测(第一版**漏了这一步,是设计缺陷**): +# 「窗口外的同网铜留在占用图里,A* 碰到就算到达」——**不成立**。 +# `route_groups` 布的是 `bypad[net]` 里的脚**两两相连**,窗外主干根本不是它的终点判据。 +# 于是「窗外还有脚」的网全军覆没:`FAN_PWM` / `FAN_EN` 窗内只剩 1 只脚 ⇒ 跨度 0、无事可做; +# `FAN_TACH_IN` / `FAN_TACH_OUT` / `+3V3` 窗内那两只脚彼此并不需要连(各自要去的是窗外主干) +# ⇒ 实测这 5 个网**一段都没产出**,而窗外脚数为 0 的 8 个网全部正常产出。 +# ⇒ 把主干在**窗口边界处的端点**做成虚拟焊盘塞进 bypad,A* 才有终点可去 +# (同 `route_base` 用 `finger_escape()` 的 launch 点喂金手指的办法)。 +def _clip(v, lo, hi): + return max(lo, min(hi, v)) + + +edge_pts = {} +for s in cp['segs']: + lay, x1, y1, x2, y2, w, net = s[0], s[1], s[2], s[3], s[4], s[5], s[6] + if net not in NETS or lay not in RT.LAY: + continue + a, b = in_win(x1, y1), in_win(x2, y2) + if a == b: + continue # 整段在窗内或整段在窗外,都不是接口 + if lay != RB.B.BOTTOM: + # ⛔ 落点不能取在 **L1**:那一层在这一带整片是 `+12V` 大铜,格点是 255(多网叠加, + # 谁都不能走)。实测 `FAN_EN` 的落点取到 L1 之后「起步格点 0 个」,直接报「出不来」。 + continue + ix, iy = (x1, y1) if a else (x2, y2) # 取落在窗内的那一头 + # ⛔ 端点正好压在主干线上(`FAN_PWM` 实测净距 −0.127)⇒ 起步格点也是 0。 + # 沿这一段往**窗内**退 RETREAT,让出一个能起步的格点。 + ox, oy = (x2, y2) if a else (x1, y1) # 段的另一头(窗外那一侧) + seg_len = math.hypot(ix - ox, iy - oy) + if seg_len > 1e-6: + ux, uy = (ix - ox) / seg_len, (iy - oy) / seg_len + ix, iy = ix + ux * min(RETREAT, seg_len * 0.4), iy + uy * min(RETREAT, seg_len * 0.4) + edge_pts.setdefault(net, []).append((lay, round(ix, 4), round(iy, 4), w)) +# 主干整条都在窗外的网:取离窗口最近的那个端点,夹到窗边上当落点 +for net in NETS: + if net in edge_pts or not outside.get(net): + continue + best = None + for s in cp['segs']: + # ⛔ 同样只在 L4 找:窗缘落点分支第一版漏了这条,`FAN_EN` 的落点取到 **L1**, + # 而那一层这一带整片是 `+12V` 大铜、格点是 255(多网叠加,谁都不能走), + # 于是「起步格点 0 个 ⇒ 出不来」,本机单独验那个坐标却有 16 个可起步 —— 差别就在层。 + if s[6] != net or s[0] != RB.B.BOTTOM: + continue + for (px, py) in ((s[1], s[2]), (s[3], s[4])): + cx = _clip(px, WIN[0], WIN[2]) + cy = _clip(py, WIN[1], WIN[3]) + d = ((px - cx) ** 2 + (py - cy) ** 2) ** 0.5 + if best is None or d < best[0]: + best = (d, s[0], px, py, s[5]) + if best and best[0] <= 6.0: # 主干就在窗边上:直接拿它当落点 + edge_pts.setdefault(net, []).append((best[1], round(best[2], 4), round(best[3], 4), best[4])) + elif best: + # ⛔ 主干远在窗外(`FAN_EN` / `FAN_TACH_OUT` 的最近端点在 x≈42~43,**在槽区里面**, + # 离窗 14.5~15.6 mm)。**不能**放宽上限去接它 —— 那等于让 A* 从窗口里拉一条 15 mm 的线 + # 横穿插槽区,正是设窗口要避免的事(上一版 `+3V3` 穿针排就是这么来的)。 + # ⇒ 在**窗口边缘**给它一个落点:窗内这一段布到边上为止,窗外那一小段单独接。 + ex = _clip(best[2], WIN[0] + 0.3, WIN[2] - 0.3) + ey = _clip(best[3], WIN[1] + 0.3, WIN[3] - 0.3) + edge_pts.setdefault(net, []).append((best[1], round(ex, 4), round(ey, 4), best[4])) + print(u' ⚠ %s 的主干离窗 %.1f mm(在槽区里),只布到窗缘 (%.2f, %.2f),窗外那段要另接' + % (net, best[0], ex, ey)) + +n_virt = 0 +for net, pts in edge_pts.items(): + pts.sort(key=lambda q: -q[3]) # 宽的(主干)优先 + for (lay, px, py, w) in pts[:2]: # 每个网最多给两个落点,够 A* 挑 + bypad.setdefault(net, []).append( + ['#trunk', 'edge%d' % n_virt, px, py, 0.3, 0.3, lay, net, 'RECT']) + n_virt += 1 +print(u'给跨窗口的网补了 %d 个「主干接口」虚拟落点:%s' + % (n_virt, ' '.join(sorted(edge_pts)) or u'无')) +print(u'窗口 x %.2f~%.2f y %.2f~%.2f;窗口外过路费 %d' % (WIN[0], WIN[2], WIN[1], WIN[3], OUT_PEN)) +for n in NETS: + print(u' %-18s 窗口内 %d 脚 / 窗口外 %d 脚(外面的不参与,只当已有铜的接口)' + % (n, len(bypad.get(n, [])), outside.get(n, 0))) +drop = [n for n in NETS if not bypad.get(n)] +if drop: + print(u' (这些网窗口内一只脚都没有,跳过:%s)' % ' '.join(drop)) + +print(u'现有铜 %d 段 / %d 孔' % (len(segs), len(vias))) +n0, v0 = len(segs), len(vias) +RT.AUTO_CACHE.clear() + +# ⛔ 诊断:`$6N49` / `$6N74` / `$6N45` 这几条链一路报「一根铜都没有」,而窗口空着 85%、 +# 焊盘尺寸与 width_of 都正常 —— 看着不像拥塞,像**布线器压根没处理它们**。 +# `route_groups` 按线宽分档、逐档调 A*,这里把「每一档收了哪些网」和每档前后的段数打出来, +# 一眼就能看出某个网是不是从头到尾没进过任何一档。 +_orig_rg = RT.route_groups + + +def _rg(bp, pd, sg, vi, bv, auto, priority=(), only=None): + want = set(only) if only is not None else set(bp) + seen = {} + for net, ps in bp.items(): + if only is not None and net not in only: + continue + seen[net] = round(RT.width_of(net, auto, ps), 3) + buckets = {} + for net, w in seen.items(): + buckets.setdefault(w, []).append(net) + print(u' 分档(线宽 → 网):') + for w in sorted(buckets, reverse=True): + print(u' %.3f mm: %s' % (w, ' '.join(sorted(buckets[w])))) + miss = sorted(want - set(seen)) + if miss: + print(u' ⚠ 这些网在 only 里却没进任何一档:%s' % ' '.join(miss)) + before = len(sg) + out = _orig_rg(bp, pd, sg, vi, bv, auto, priority=priority, only=only) + print(u' route_groups 共产出 %d 段' % (len(sg) - before)) + by = {} + for s in sg[before:]: + by[s[6]] = by.get(s[6], 0) + 1 + for net in sorted(seen): + print(u' %-18s %s' % (net, (u'%d 段' % by[net]) if net in by else u'⛔ 0 段')) + return out + + +RT.route_groups = _rg +# ⛔ 顺序决定成败:`route_groups` 按「出口数少 → 跨度大」排,`$6N49` 排在 `FAN_12V_SW`(37 段) 之后, +# 走廊被先布的线占掉 ⇒ 它四只脚**两两直连全被挡**(本机实测 −0.499 ~ +0.139,最好的一对差 0.011), +# 报「一根铜都没有」,看着像板子挤,其实是顺序。router 自己的注释里记过同一个坑 +# ("同样的摆位,先布它就通")。⇒ 把这几条挤在一起的本地链**顶到 priority 最前面**。 +PRI = tuple(CFG.get('priority') or ()) + tuple(n for n in NETS if n not in (CFG.get('priority') or ())) +print(u'布线优先级:%s' % ' '.join(PRI[:6])) +logs = RT.route_groups(bypad, pads, segs, vias, board_vias, {}, + priority=PRI, only=set(bypad)) +if logs and '--repair' in sys.argv: + print(u' 还剩 %d 条没布通,拆线重布(只拆本次新布的)' % len(logs)) + segs, vias, logs = RT.repair(bypad, pads, segs, vias, logs, board_vias, {}, n0, v0) + +new_s = [list(s) for s in segs[n0:]] +new_v = [list(v) for v in vias[v0:]] +print(u'新增 %d 段 / %d 孔' % (len(new_s), len(new_v))) +for m in logs: + print(u' [!] ' + m) + +# 连通性只看窗口内的脚(窗口外的主干本来就通) +chk = [q for q in RB.check_pads(pads) if q[7] in set(bypad) and in_win(q[2], q[3])] +left = RT.check_connected(chk, segs, vias) +print(u'连通性(窗口内口径):%s' % (u'全通' if not left else left)) + +# 跑出窗口的新铜要点名 —— 这是这套办法最该盯的失败模式 +stray = [s for s in new_s if not (in_win(s[1], s[2], 0.5) and in_win(s[3], s[4], 0.5))] +print(u'跑出窗口的新线段:%d%s' % (len(stray), u' ⚠' if stray else u' ✓')) +for s in stray[:8]: + print(u' %s L%s (%.2f,%.2f)->(%.2f,%.2f)' % (s[6], s[0], s[1], s[2], s[3], s[4])) + +json.dump({'window': list(WIN), 'nets': NETS, 'segs': new_s, 'vias': new_v, + 'logs': list(logs), 'unconnected': list(left), 'stray': len(stray)}, + io.open(os.path.join(HERE, '_base_window_repair.json'), 'w', encoding='utf-8'), + ensure_ascii=False) +print(u'已写 _base_window_repair.json') diff --git a/.claude/r2/silk_base.py b/.claude/r2/silk_base.py new file mode 100644 index 0000000..47acfd7 --- /dev/null +++ b/.claude/r2/silk_base.py @@ -0,0 +1,190 @@ +# -*- coding: utf-8 -*- +u"""底板**位号丝印**的重排与下发。 + + /c/Python314/python .claude/r2/silk_base.py # 只算 + 体检(改前 / 改后对照) + /c/Python314/python .claude/r2/silk_base.py --push # 下发(pcb_PrimitiveAttribute.modify)+ 读回核对 + +## 判据 + +位号文字框(字高 `fs`、字宽 ≈ 0.62×字高×字符数,`alignMode=3` 居中)不许: +① 压同面焊盘(顶层丝印 layer 3 对 L1 + 通孔盘;底层 layer 4 对 L4 + 通孔盘) +② 压过孔 ③ 越板框(留 `EDGE` 0.5) ④ 与别的位号重叠 + +⚠ **大件(本体 ≥ 5 mm)的位号保留原位**:五个插槽的位号故意放在槽体西侧 x=28(离本体 21 mm), + 那是设计,不是问题;U20 / 电解 / 座子同理。它们先占位,小件绕开它们。 + +⚠ 位号必须**紧挨器件**才有意义 ⇒ 离本体外框有硬上限 `MAXD`。够不着就降级: + 理想位 → 允许压过孔 → 允许压焊盘 → 保留原位。单纯"找个空地"会把位号甩到十几毫米外。 + +⚠ `rotation` 字段单位是**度且不归一化**(900 = 180°),读回要 `%% 360`。 +""" +import io +import json +import math +import os +import sys + +sys.stdout.reconfigure(encoding='utf-8') +HERE = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, os.path.dirname(HERE)) +sys.path.insert(0, HERE) +from eda import run # noqa: E402 +import pcb_base as B # noqa: E402 +import place_base as PL # noqa: E402 + +MIL = 0.0254 +SNAP = os.path.join(HERE, '_base_silk.json') +PLAN = os.path.join(HERE, '_base_silk_plan.json') +CHAR_W, EDGE, GAP, MAXD = 0.62, 0.5, 0.15, 2.2 +# ⛔ 保留原位的**显式名单**(位号故意远离本体,不是问题): +# 五个插槽的位号放在槽体西侧 x=28(离本体 21 mm)、U20 让开天线净空、 +# 顶面件与板边 USB-C 的位号只能朝板内放。 +# ⚠ 别用「本体 ≥ 5 mm」当判据:那会把 R9A(7.4×3.5) / D3(6.8×2.2) / U13(2.3×5.8) +# 这些**该重排**的中等件也豁免掉 —— 实测残留 25 个里有 18 个是这么来的。 +KEEP = {'J34', 'J35', 'J36', 'J37', 'J38', 'U20', + 'J26', 'J27', 'J33', 'C2', 'C3', 'J1', 'J23'} + +READ = u""" +await eda.dmt_EditorControl.openDocument('%s'); +await new Promise(r=>setTimeout(r,2500)); +const M = 0.0254, nrm = v => ((v %% 360) + 360) %% 360; +const A = (await eda.pcb_PrimitiveAttribute.getAll()||[]).filter(a=>a.key==='Designator') + .map(a=>({ref:a.value, lay:a.layer, x:a.x*M, y:a.y*M, rot:nrm(a.rotation), + fs:a.fontSize*M, vis:a.valueVisible?1:0, id:a.primitiveId})); +const C = (await eda.pcb_PrimitiveComponent.getAll()||[]) + .map(c=>({ref:c.designator, x:c.x*M, y:c.y*M, rot:nrm(c.rotation||0), lay:c.layer})); +const V = (await eda.pcb_PrimitiveVia.getAll()||[]).map(v=>[v.x*M, v.y*M, String(v.net), v.diameter*M]); +return {attrs:A, comps:C, vias:V}; +""" % B.PCB + + +def snap(): + r = run(READ, timeout=600) + d = r.get('result') + assert d, json.dumps(r, ensure_ascii=False)[:400] + io.open(SNAP, 'w', encoding='utf-8').write(json.dumps(d, ensure_ascii=False)) + return d + + +def tbox(ref, x, y, rot, fs): + h = fs + w = CHAR_W * h * len(ref) + if rot in (90, 270): + w, h = h, w + return (x - w / 2., y - h / 2., x + w / 2., y + h / 2.) + + +def ov(p, q): + return not (p[2] <= q[0] or q[2] <= p[0] or p[3] <= q[1] or q[3] <= p[1]) + + +def plan(d, pads, sz): + comp = {c['ref']: c for c in d['comps']} + V = d['vias'] + padsL = {3: [p for p in pads if p[6] in (1, 12)], 4: [p for p in pads if p[6] in (2, 12)]} + + def hit_pad(bb, lay): + return any(ov(bb, (p[2] - p[4] / 2., p[3] - p[5] / 2., p[2] + p[4] / 2., p[3] + p[5] / 2.)) + for p in padsL[lay]) + + def hit_via(bb): + return any(ov(bb, (v[0] - v[3] / 2., v[1] - v[3] / 2., v[0] + v[3] / 2., v[1] + v[3] / 2.)) + for v in V) + + def outside(bb): + return bb[0] < EDGE or bb[1] < EDGE or bb[2] > B.BW - EDGE or bb[3] > B.BH - EDGE + + placed, out, stat = [], {}, {} + for a in d['attrs']: + if a['vis'] and a['ref'] in KEEP: + placed.append((a['lay'], tbox(a['ref'], a['x'], a['y'], a['rot'], a['fs']))) + stat[u'白名单保留'] = stat.get(u'白名单保留', 0) + 1 + small = [a for a in d['attrs'] if a['vis'] and a['ref'] not in KEEP] + small.sort(key=lambda a: -(sz.get(a['ref'], (1, 1))[0] * sz.get(a['ref'], (1, 1))[1])) + for a in small: + ref, c, lay, fs = a['ref'], comp.get(a['ref']), a['lay'], a['fs'] + if not c: + continue + w, h = sz.get(ref, (1.0, 1.0)) + if int(round(c['rot'])) % 180: + w, h = h, w + best, level = None, None + for lv in (0, 1, 2): + r = 0.0 + while r <= MAXD and best is None: + for ang in (90, 270, 0, 180, 45, 135, 225, 315): + for rot in ((0, 90) if ang in (0, 180) else (0,)): + tw, th = CHAR_W * fs * len(ref), fs + if rot == 90: + tw, th = th, tw + ca, sa = math.cos(math.radians(ang)), math.sin(math.radians(ang)) + if abs(ca) <= 0.7 and abs(sa) <= 0.7: + off = math.hypot(w / 2. + tw / 2., h / 2. + th / 2.) + GAP + r + elif abs(ca) > 0.7: + off = w / 2. + tw / 2. + GAP + r + else: + off = h / 2. + th / 2. + GAP + r + x, y = c['x'] + off * ca, c['y'] + off * sa + bb = tbox(ref, x, y, rot, fs) + if outside(bb) or any(b[0] == lay and ov(bb, b[1]) for b in placed): + continue + if lv < 2 and hit_pad(bb, lay): + continue + if lv < 1 and hit_via(bb): + continue + best, level = (round(x, 4), round(y, 4), rot, bb), lv + break + if best: + break + r += 0.25 + if best: + break + if best: + placed.append((lay, best[3])) + out[ref] = {'x': best[0], 'y': best[1], 'rot': best[2], 'id': a['id'], 'lay': lay} + k = [u'理想位', u'允许压过孔', u'允许压焊盘'][level] + stat[k] = stat.get(k, 0) + 1 + else: + stat[u'无解(保留原位)'] = stat.get(u'无解(保留原位)', 0) + 1 + return out, stat + + +def main(): + d = snap() + pads = json.load(io.open(os.path.join(HERE, '_base_pads.json'), encoding='utf-8')) + sz = PL.sizes() + p, stat = plan(d, pads, sz) + io.open(PLAN, 'w', encoding='utf-8').write(json.dumps(p, ensure_ascii=False, indent=0)) + print(u'位号 %d(可见 %d);重排 %d 个' % (len(d['attrs']), sum(a['vis'] for a in d['attrs']), len(p))) + for k, v in sorted(stat.items(), key=lambda t: -t[1]): + print(u' %-14s %d' % (k, v)) + if '--push' not in sys.argv: + print(u'(只算;加 --push 下发)') + return + rows = [[v['id'], v['x'] / MIL, v['y'] / MIL, v['rot']] for v in p.values()] + n = 0 + for k in range(0, len(rows), 60): + r = run(u""" +await eda.dmt_EditorControl.openDocument('%s'); +await new Promise(r=>setTimeout(r,1500)); +const R = %s; +let n = 0; +for (const [id, x, y, rot] of R) { + try { await eda.pcb_PrimitiveAttribute.modify(id, {x: x, y: y, rotation: rot}); n++; } catch (e) {} +} +return n; +""" % (B.PCB, json.dumps(rows[k:k + 60])), timeout=600) + n += r.get('result') or 0 + run(u"await eda.pcb_Document.save(); return 1;", timeout=300) + print(u' modify 成功 %d / %d' % (n, len(rows))) + # 读回核对 + d2 = snap() + now = {a['ref']: a for a in d2['attrs']} + bad = [k for k, v in p.items() + if k not in now or abs(now[k]['x'] - v['x']) > 0.02 or abs(now[k]['y'] - v['y']) > 0.02 + or int(now[k]['rot']) % 360 != v['rot'] % 360] + print(u'读回核对:%d 个对上,%d 个没对上 %s' % (len(p) - len(bad), len(bad), bad[:10])) + + +if __name__ == '__main__': + main() diff --git a/PROGRESS.md b/PROGRESS.md index 77e53c6..dbad943 100644 --- a/PROGRESS.md +++ b/PROGRESS.md @@ -5,8 +5,1094 @@ - **以后所有 PCB 布线运算都用 `10.5.5.13` 服务器跑。** 本机仅做快照、结果校验、 EasyEDA 下发与 DRC,不再做完整重算或局部 D± 试算。 - 底板入口为 `.claude/r2/remote_route.ps1`;`route_base.py` 已加本机硬阻断,避免新会话误跑。 +- **刀片**入口为 `bash .claude/r2/remote_blade.sh ['变体' ...]`(2026-09-11 新加);`router.py --replan/--pf` 同样本机硬阻断。 -## ⭐⭐⭐ 下次从这里开始(2026-09-10 夜,清上下文前写) +## ⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐ 2026-09-12(定版):底板以**用户自己布好的那版**定稿 + 位号丝印重排(已下发) + +用户:「按当前 eda 中底板状态定版,优化丝印放置」「现在 eda 中是我已经布好了的」 +⇒ **铜不再动**(下面那一节我下发的窗口重布之后,用户又自己布过;板上 2060 段 / 671 孔是用户的版本)。 + +⚠ 因此下面那节里「22 个缝合孔压内层线、准备删掉」的收尾**作废**:按坐标去板上找,一个都不在了 +(`deleted 0` 是没误删,不是失败)。要复查 DRC 请以板上当前状态重跑。 + +### 位号丝印重排(`silk_base.py`,已下发并读回核对) + +板上 164 个位号(`pcb_PrimitiveAttribute` 里 `key=='Designator'` 那条),字高统一 1.143 mm、 +居中、不镜像;顶层 10 / 底层 153 可见(`C743` 不可见,保持)。**板上没有元件外框丝印**,只有位号。 + +| 判据 | 改前 | 改后 | +|---|---|---| +| 压同面焊盘 | **128** | **4** | +| 压过孔 | 48 | 8 | +| 越板框 | 8 | 3 | +| 互相重叠 | 34 对 | **0** | + +重排 150 个(理想位 143 / 降级压过孔 4 / 降级压焊盘 3),白名单保留 13 个; +`modify` 150/150 成功,**读回 150 个逐个对上、0 个没对上**。离本体平均 2.19 / 最远 6.97 mm。 + +**三条坑**(细节见 R2 §39): +1. `rotation` 是**度且不归一化**(900=180°、720=0°)。按 ×10 读会得到「9°/18°/27°」这种 + 看着像真的、其实全错的朝向分布。 +2. **别拿「本体 ≥5 mm」当保留白名单** —— 会把 `R9A`/`D3`/`U13` 这些该重排的中等件豁免掉 + (残留 25 个里 18 个是这么来的)。改成显式名单 `silk_base.KEEP`(五个插槽 + U20 + 顶面件 + 板边 USB-C)后残留 25 → 12。 +3. **「离本体」要设硬上限**(2.2 mm)+ 降级策略。不设的话贪心会把位号甩到十几毫米外的空地 + (实测最远 22.2 mm),对装配毫无指向性。 + +可行性先算过:现字高下 163 个里 161 个有解 ⇒ **不用缩字号**。 + +## ⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐ 2026-09-12(收尾):按用户最新布局**重布风扇窗口并已下发** —— 窝内只差 J27.4 + +用户:「将底板按照现在我的布局重新布线」→ 选「风扇窗口整体重布(拆掉那 43 段重来)」+「GND 回流孔一起补」。 + +**动手前查清的板上现状**(只读抓板,`_snap_outer/_snap_inner`): +- 板上铜与 10:31 快照一致,**变的只有摆位**;用户在 10:56 之后又挪了 11 件(`D2 DZ3 J27 Q9 R746 R750 R751 R752 R753 R754 R757`)。 +- 板上比快照**多 43 段,全在风扇窗口里** —— 是**用户自己在客户端手布的**(已按用户选择拆掉重来)。 +- 新摆位不压任何异网焊盘;唯一压铜处 `R754.1` 压 `FAN_12V_SW` **−0.271**(属待拆网,自解)。 +- ⚠ **API 回的是 mil,不是 mm**(抓板脚本第一版漏了 ×0.0254 ⇒ 连通性判据全错、每只脚都报"未接")。 + +### ⭐ 这一轮最有价值的发现:**L1 走廊是按旧摆位开的** + +`pcb_base.PD_L1` 里那四条走廊的注释写着 `R748.1(18.2,91.0)` / `R757.2(27.2,93.0)` —— 都是**旧坐标**。 +用户重摆后 `R748.1` 到了 (5.13,73.91)、`R757.2` 到了 (18.11,83.57),**走廊和件对不上**, +而 A6 那一带 L1 整片是 12V 主块、L4 被 22 件占满 ⇒ 四条长途网必然布不通。这就是根因,不是布线器参数问题。 +- 重开走廊后未完成 **4 → 3 → 2**(`FAN_EN` 一条就从 0 段变 11 段并布通)。 +- ⚠ **走廊必须盖住焊盘正上方**:只盖"沿途"不行(那只脚得先在 L4 挪到走廊下方才打得了孔)。 + v1 只盖沿途 = 3 条未完成,v2 盖住焊盘 = 2 条。 +- ⚠ L4 逐 x 扫过:**没有一条彻底堵死**(最窄也有 0.9 mm 纵向空隙)⇒ 布不通不是"墙",是单层绕不过来。 +- 新走廊六条(已固化进 `pcb_base.PD_L1`),逐 y 断面 11.80 mm;**铺铜后实测 L1 12V 主块最窄 9.82 mm**(§6.4 要 8.0)。 +- 再次印证「priority 是按下葫芦浮起瓢」:顶 `FAN_EN` 到最前 ⇒ 它通了、`FAN_TACH_IN` 掉了,总数不变。**别再调**。 + +### 板上最终状态(都已下发、读回核对过) + +| 项 | 数 | +|---|---| +| 拆 | 43 段(窗口内 8 个网,用户手布的那批) | +| 补 | **139 段 / 7 孔**(`_base_window_repair.cor2.json`) | +| GND 回流孔 | **10 个**(10 只脚全找得到落点;vs 内层 116 段手布线净距全达标) | +| 缝合过孔 | 新增 25 个 | +| 板上合计 | 外层 1960 段 / 内层 116 段 / 过孔 669 | + +校验:`fan_check` 对**板上真实快照**逐项净距达标(线 ≥0.15 / 钻孔 ≥0.25 / 含"新孔 vs 内层线"); +全部 669 个过孔 vs 本轮新线异网净距 **0 处** < 0.15;铺铜自检全过、三条断面全过。 + +### ✅ 与拆线前逐网对比:本轮**没引入任何新的连通性问题** + +用拆线前快照(`_base_board_pre_fanwin_0912.json`)按同一套并查集判据算,前后对照: + +| 网 | 拆线前 | 现在 | +|---|---|---| +| `GND` | 186 块 / 未接 58 | 196 块 / **未接 48**(补了 10 个回流孔) | +| `FAN_PWM_L` | 0 块 / 未接 3 | 1 块 / 未接 1 | +| `FAN_TACH_IN` | 1 块 / 未接 2 | 2 块 / **未接 0** | +| `FAN_TACH_OUT` | 2 块 / 未接 1 | 2 块 / **未接 0** | +| `+3V3` | 4 块 / 未接 2 | 4 块 / **未接 0** | +| `+12V` | 11 块 / 未接 15 | 11 块 / 未接 15(**一字不差**) | +| `XTAL1` / `XTAL2` | 3 / 4 块 | 3 / 4 块(老误报,圆弧读不回) | + +⇒ `board_check` 现在 **113 / 121**,比历史基线 118/121 多的 5 条里,3 条是下面的风扇遗留, +另 2 条(`+3V3` 分块、`+12V` 的 `DZ3.1`)**拆线前就存在**。 +(还核过一件事:这 8 条与「我把 `_base_routes.json` 换成板面版」无关 —— 还原缓存后重跑,输出一字不差。) + +### ⛔ 还差的(如实交接) + +1. **`FAN_PWM_L`: J27.4 一根铜都没有**(窝内唯一没接上的脚)。已排除:走廊没盖到(盖了)、 + 落不下换层孔(0.25 mm 处就能落)、L1 不可达(泛洪 686 个格点可达)。**剩下的怀疑对象是 A\* 自己**。 +2. **三条到 U20 的窗外段**(`FAN_EN` / `FAN_TACH_IN` / `FAN_TACH_OUT`):窗内已布到窗缘, + 缺口 15.6 / 17.7 / 16.6 mm,中间是槽体 x 28~70 的**手焊 1 mm 针排**,按设计不许穿 ⇒ 本来就留给窗外单独接。 + ⚠ 这三条**拆线前也没通**,不是这一轮弄断的。 +3. `FAN_TACH_IN` 窝内只有 `Q9.3↔R753.2` 那一段(2 段)。 + +### 这一轮沉淀的工具 + +| 文件 | 用途 | +|---|---| +| `l1_section.py` | L1 12V 主块的**逐 y 水平断面**核算(§6.4 ≥ 8.0)。横带很贵、竖带几乎免费;`--cfg` 核 `_base_window.json` 里的候选走廊 | +| `fan_rip.py` | 按窗口 + 网名拆窗口内旧铜,**拆前后比对全板线 / 孔总数**(防连带删除) | +| `repair_window.py` 的 `pd_l1_extra` | 走廊改成跟着 `_base_window.json` 走,试一组不用改 `pcb_base.py`(服务器单轮 1.5 s) | + +⚠ **EasyEDA 会合并线段**:拆线点名 43 段、实际外层只少 42(`FAN_PWM` 主干被延长); +下发 139 段、板上净增 142,有 8 段"按坐标找不到" —— 逐段核过**全部被同网同层的铜覆盖,真缺失 0**。 +⇒ 下发/拆线后不能只按坐标比对,要按"几何是否被覆盖"判。 + +⚠ `_base_routes.json` 现在是**板面版**(为 `pour_base` 的缝合避让与断面校核换的), +原布线器缓存备份在 job tmp `_base_routes.orig.json`。⛔ 别拿板面版去 `--push`。 + +## ⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐ 2026-09-12(续):风扇区按用户摆的座位重排 —— **布局已下发,布线差 5 条** + +用户在客户端把两只座挪成 **rot90 竖放并排**(J26 (4.572, 85.852) / J27 (10.795, 85.852),顶面), +要求「按我现在摆放的风扇座位置,重新布局其外围器件」。 + +**已完成**: +- 两只座**各南移 2.61 mm**(用户 2026-09-12 拍板):J26 (4.572, **83.240**, rot90) / J27 (10.795, **83.240**, rot90), + 本体 y 78.14~88.34 ⇒ **完全退出 J34 那片刀片**(原来各重叠 1.60 mm),两座净距 1.22 mm。 +- A6 那 22 件(`place_base.FAN_REFS`)按新座位重排并下发(`--only-fan --fan-gap 2.5`,**链成组**版)+ R751/R752 微调 + (1.25 / 0.50 mm,网格对齐)。读回逐件对上;**四项净距核查全 0**,其中「焊盘压板上现有铜」也是 **0 处**(原先 8 处)。 +- `R753.1` 的 `+3V3` 支线已补(3 折 Z 形,净距 0.456)。 + +**板上最终状态**(2026-09-12 收尾,已与客户端读回核对一致): +164 件 / 顶面 10 件(`C2 C3 J26 J27 J33` + 五个插槽)/ 铜 **1936 段**(其中内层 119)/ 过孔 **629**。 +- 两只座:`J26 (4.572, 83.240, rot90, L1)` / `J27 (10.795, 83.240, rot90, L1)`,已退出刀片、净距 1.22。 +- 风扇 22 件按你摆的座位重排并下发(含「链不跨列」判据),**焊盘压现有铜 0 处**; + `$6N49` 四只脚 x=13.55/19.25/22.75/26.00,**全在 J27 通孔列以东**。 +- 重布窗口 `x 0.50~27.60 / y 73.53~97.50`(东界压在槽体 28.0 之前):**已拆空**, + 只剩必须保住的 `$2N74` 2 段。⇒ 这一窝的 14 个网**区内是断的,等重布**。 +- ⛔ 十轮试算**没有一版下发**,全部隔离在 `$CLAUDE_JOB_DIR/tmp/*_REJECTED.json`; + 板面未被任何一版污染(客户端读回 1936/629 与输入快照逐项一致)。 + +**⛔ 还没做完**:这一窝 14 个网的布线。区内旧铜已拆 49 段,补线算到 149 段 / 17 孔, +但 **5 条没布通**(`$6N64:Q9.1`、`FAN_TACH_IN:R753.2`、`FAN_TACH_OUT:Q10.3/R757.2`、`FAN_EN:R748.1`), +且有 1 条净距 0.076(`$6N49` 距 DZ3.1)⇒ **一段都没下发**,板上这一窝现在是「件已重排、线是断的」。 + +⚠ **座子本体与 J34 那片刀片重叠 1.60 mm**(本体 y 80.75~90.95,刀片板面 y 88.84~90.44)。 + 两只各南移 **2.61 mm**(中心 y → 83.24)即完全退出,且焊盘不压任何背面件 —— **等用户定**。 + +### 布不通的根因(已定位,不是随机现象) + +1. **A6 那一带只有单层可用**:L1 整片是 `+12V` 主块(x 0.5~27.8 / y 0.5~97.5)⇒ 过孔上得去但走不动, + 而 L4 被 22 件占满。扫了 800 个座子落位 + 4 套布局间距(gap 1.5/2.0/2.5/3.0)都布不通。 +2. **`PD_L1` 开走廊有效但不够**:新增三条(`FAN_TACH_OUT` 贴东缘竖带 + `FAN_EN` / `FAN_PWM` 短横带) + 把未完成从 6 压到 5。⚠ **指头只在主块以东 x > 27.50**,主块内部没有指头 ⇒ 竖带不碰供电路径; + 三条叠加后逐 y 最窄断面 **12.80 mm**(§6.4 要 8.0)。 +3. **排布器把本地链拉散了**(真正的瓶颈):`sat_target` 让每个件各自去贴「同网锚脚」, + 而 Q9 同时挂 `$6N64`(本地) 和 `FAN_TACH_IN`(跨区→U20),大件先摆时被拉到东缘 x≈25, + 小电阻 R751/R752 后摆只好贴西边座子上的 `FAN_IN_TACH_RAW` ⇒ **同一条 `$6N64` 拉成 23.8 mm**。 + 已加 `local_nets()` + 「本地链优先」排序键,但**没有效果** —— 因为 `FAN_IN_TACH_RAW` 自己也是本地链, + 键没有区分度。**真正要改的是摆放顺序**(让同一条本地链的件连续摆、后摆的优先贴先摆的那件), + 不是排序键。⇒ 已实现(`chain_id()` 并查集 + `_ord` 让同链连续摆 + `sat_target` 的 `same_chain` 键), + 实测链距合计 **99.3 → 65.7 mm**(`$6N64` 23.8→6.8、`$6N74` 21.6→5.0)。 + ⚠ 并链时要**只并小链**:脚数 ≤ `CHAIN_MAX_PINS`(4) 且不含手排锚件(`TOP_EXTRA`)—— + 第一版没这两条过滤,`FAN_12V_SW`(7 脚,串起 C738/D2/两只座/Q7/R750/R754)把整窝 22 件并成**一个组**,等于没加。 +4. **⛔ 排布器根本不看板上已有的铜**(2026-09-12 新发现,最隐蔽的一条):它只避「别的件 + 禁区」。 + 于是在**已经布过线**的板上重排时,R751 / R752 被直接摆到既有的 `+3V3` 走线上(实测净距 **−0.14 / −0.03**), + A* 报「R751.1 出不来」,看着像那一带太挤 —— 其实摆位阶段就把件放到铜上了,而且这本身就是 DRC 违规。 + ⇒ 已加 `track_blocks()`。**必须只给正在重排的那个分区加**:`blockers()` 是全板口径, + 在那儿加会让别的分区的件(C607/C610/C611/C10…)也被现有铜挡住 —— 实测自检 17 → 139 条、3 件没摆。 + 加在 `plan()` 的 `zfixed`(`zone == 'A6'`)才对。 + +**验收这一窝的布局要过四项**(缺一项就会在 DRC 或 A* 里以别的面目冒出来): +① vs 五个顶面通孔件(**跨层**,焊盘穿透两层)② vs 其余背面件 ③ 22 件彼此 ④ **vs 板上现有铜**。 + +5. **⛔ 删线会连带清掉过孔和它在内层的延续**(2026-09-12 实测):点名删 6 段,读回发现 + **线少了 12 段、孔少了 8 个** —— 多掉的 6 段全在 **L15/L16**(`$6N48` / `$6N64` / `$6N45`), + 8 个孔也都是这几个网的换层孔。删掉外层那一段后,过孔失去连接,客户端把孔连同它在内层的延续一并清理。 + ⇒ **拆线前后都要比对全板线/孔总数**,不能只数自己点名的那几段;这几个网原本靠内层换层, + 路径被连带清掉之后补线立刻从 8 条退到 12 条没通(那一版还顺手把 `+3V3` 也带断了)。 + +### ⚠ 迭代到此为止的实测数据(别再盲目重排) + +| 布局 | 补线未完成 | +|---|---| +| gap2.5,不链成组、不避铜 | **5 条**(最好) | +| gap2.5,链成组、不避铜 | 8 条 | +| 避铜 + gap 2.0 / 2.5 / 3.0 / 3.5 | 11 / 8 / 10 / **6** | +| 链成组 + 拆掉被压的 6 段 + 带 `+3V3` 一起补 | 12 条(内层换层路径被连带清掉) | + +6. **⛔ `+3V3` 这种全板大网不能交给 `repair_base` 整网重布**(2026-09-12 实测): + 只因为拆了 4 段就把它列进待补网,布线器把新的 `+3V3` 线**从 J34~J37 插槽针排的焊盘中间穿过去** + (`fan_check` 实测十几处 **−0.2**,还压 U13.7 −0.449)。插槽是 1 mm 间距针排、**手焊**, + 在那里乱穿是致命的。⇒ 大网只在**出问题的局部**补(几条短线手画 + `fan_check` 核净距), + 别整网交给 A*。那一版结果已挪到 `$CLAUDE_JOB_DIR/tmp/fan_repair_with3v3_REJECTED.json`,**不要下发**。 + +7. **窗口内整体重布**(用户 2026-09-12 选):`repair_window.py` + `remote_repair_window.sh`。 + 做法是把 `bypad` **只装窗口内的脚**(窗口外的同网铜留在占用图里当接口),窗口外加过路费 `OUT_PEN`。 + ✅ 窗口约束**有效**:新线「跑出窗口 0 段」,`+3V3` 再没穿插槽针排。 + ❌ 但未完成仍是 10 条。**两条被排除的假说**: + - 「面积不够」——窗口 538 mm²,焊盘圈占 17% / 件本体 14%,**走线余量只用了 15%**(147 / 953 mm)。 + - 「0.25 网格下出口格点不够」——`--grid 0.125` 实测 111 → 116 段,**失败脚一模一样**,无改善。 + ⇒ 剩下的怀疑对象是**布线器自身**(分档 / 宽度 / 过路费),不是板子挤。下次从这里查,别再重排。 + + **✅ 两条线索都查到底了**(`repair_window.py` 里加了「每一档收了哪些网 / 每个网产出几段」的诊断输出, + 一跑就看出来):15 个网全部正常进了 0.150 mm 那一档、`route_groups` 也确实跑了(产出 119 段), + 但其中 **6 个网一段都没产出**,而且分成**两种完全不同的病**: + + - **「窗外还有脚」的 5 个网(`FAN_EN` / `FAN_PWM` / `FAN_TACH_IN` / `FAN_TACH_OUT` / `+3V3`) + —— 是 `repair_window.py` 第一版的设计缺陷**。我原以为「窗外的同网铜留在占用图里, + A* 碰到就算到达」,**不成立**:`route_groups` 布的是 `bypad[net]` 里的脚**两两相连**, + 窗外主干根本不是它的终点判据。于是 `FAN_PWM`/`FAN_EN` 窗内只剩 1 只脚 ⇒ 跨度 0、无事可做; + 两路 TACH 和 `+3V3` 的窗内两只脚彼此并不需要连。**对照很干净:窗外脚数为 0 的 8 个网全部正常产出**。 + ⇒ 修法:把主干在**窗口边界处的端点**做成虚拟焊盘塞进 `bypad`(同 `route_base` 喂金手指 launch 点的办法)。 + ⚠ 主干远在窗外的(`FAN_EN` / `FAN_TACH_OUT` 最近端点在 x≈42~43,**在槽区里**,离窗 14.5~15.6 mm) + **不许**放宽上限去接 —— 那等于从窗口里拉一条 15 mm 的线横穿插槽区,正是上一版 `+3V3` 穿针排的老路; + 只在**窗缘**给个落点,窗外那一小段另接。 + - **⛔ `$6N49` 的真因:J27 的通孔盘列把这条链劈成了东西两半**(顶进 `priority` 最前也没用,仍 0 段)。 + 两只座 rot90 竖放后四只脚排成**一列**(J26 x=4.57 / J27 x=10.79,y 79.43~87.05), + 而 `$6N49` 的脚跨 x 8.00~13.93 —— `DZ3.2`/`R746.1` 在西、`Q7.1`/`R747.2` 在东, + 所有东西向连接都要绕过那列 1.6 mm 的通孔盘。本机绕行验证吻合:三对有路(净距 0.34~0.51), + 只有 `R746.1→R747.2` 无路(0.107)。**不是没救,是要绕,而 A* 在默认代价下不肯绕那么远。** + ⇒ 真正的解法在**摆位层面**:别让同一条本地链跨过座子的通孔列。 + 已加判据 **`place_base.chain_split_by()`**(`selfcheck` 报警 + `plan()` 挑位置时排除,只在 `--only-fan` 下启用)。 + 写这条判据踩了三次,每次都是「粒度」错: + ① 按 `chain_id()` 的**并查集组**判 ⇒ `$6N48` 共用 `Q8`/`R747`,把 `$6N45+$6N48+$6N49` 传染成 + 一条 7 件大链(横跨 x 8~18,被劈是必然的,报出来也没法处理)⇒ 改成**按网**判; + ② 按网判之后误报 10 件 ⇒ `FAN_12V_SW` / `FAN_PWM_L` 这些网**一端本来就接在座子上**(J26.2/J27.2), + 天生跨列,不是摆位错误 ⇒ 加「本网自己接在这个件上就跳过」; + ③ 还要**按座子分别判**:`FAN_IN_TACH_RAW` 接的是 J26,却真的跨 J27 那一列(西2/东1)—— + 「天生跨列」的豁免只对它自己接的那只座成立。 + ④ 墙**只能由 ≥3 脚的通孔件构成**(`WALL_MIN_PINS`):`TOP_EXTRA` 里的 C2/C3 是两脚 Φ8 电解, + 焊盘框同样窄于 3 mm,被当成墙之后,Hub 区的 R712/R719/R725/U32、入口链的 Rs6/U13/R9A + 这些**隔着半块板**的件全被报「被 C2 劈开」; + ⑤ 墙**只管贴着它的那一窝**(`WALL_NEAR = 8.0`):否则 J26/J27 的列会去劈半块板外的件。 + 最终判据只报 `DZ3` / `R746` / `R747` 三件,对应**一条真被劈的链 `$6N49`** + (`FAN_IN_TACH_RAW` 接的是 J26、在 8 mm 范围外,不该算)。 + ✅ **判据接进 `plan()` 的候选筛选后见效**:重排一次,`$6N49` 从「西2/东2」变成 **西0/东4(同侧)**, + 四只脚落到 x 13.55~26.00 全在 J27 列以东;四项净距仍全 0、自检回到 17 条(全是板上既有问题)、 + 不带 `--only-fan` 时判据完全不生效(0 条)。布局已下发,读回逐件对上、最大差 0.002 mm。 + ⚠ `FAN_IN_TACH_RAW` 仍跨 J27 列(西2/东1)—— 它一端就接在 J26 上,脚天生分居两侧,**摆位解不掉**。 + ⚠ 挪位代价已量化:`DZ3` 挪到列东要走 14.5 mm,会把 `$6N49` 的最近同网脚从 3.55 拉到 8.35 mm, + **不划算**;`R746` 只需 4.5 mm、代价 1.7 mm,是划算的那一个。 + - **`$6N64` 掉段与拥塞无关**:加了虚拟落点那一轮它从 3 段掉到 0 段,但实测三只脚周围 + 挡住出口的是 **0 处**,先布的 `$6N74`(45 段, x 1.75~17.75) 也没盖到它(它在 x 18.25~23.13)。 + 更像 A* 被过路费 / 代价上限劝退,下次查 `route_net` 的返回而不是再调摆位。 + - ✅ **虚拟落点这一步确实有效**:`+3V3` 0→25 段、`FAN_TACH_OUT` 0→14 段、`FAN_TACH_IN` 0→3 段, + 总产出 119→157 段,且「跑出窗口 0 段」始终成立。 + +8. **⛔ `penalize` 是定价,`block_rect` 才是墙**(2026-09-12,这一轮最贵的一条): + 窗口外过路费从 40 降到 12(为了让跨窗口的网够得着 U20 那边的主干)之后, + `$6N64` / `FAN_EN` 立刻跑到 **x 28.75~32.75 —— 正是槽体 x 28~70 的插槽区**, + 183 段里 50 段跑出窗口(之前每轮都是 0)。把插槽方向单独提到 `SLOT_PEN = 200` **也没用**: + 本机实测过路费确实加到了 200(窗口内 0 / 插槽区 200),**A\* 照样钻** —— + 它宁可付 200 × 若干格也要抄近路,因为窗口内绕不过去。 + ⇒ 插槽方向必须 `g.block_rect(...)` **封死**,其余三面才用 `penalize` 加价。 + 本机验证:封死后插槽区不可走、窗口内照常可走。 + ⚠ 代价:`FAN_EN` / `FAN_TACH_OUT` 的主干最西端在 x 42~43(**在槽区里面**),封死之后 + 窗口内接不上它们,只能靠「窗缘落点」布到 x=27.30 为止,**窗外那一小段留给人工**。 + +9. **窗口要跟着布局重算**:窗口 y 上界原按旧布局的焊盘范围定在 94.33,而「链不跨列」判据把件往北推, + 于是 D2 / R733 / R749 / R750 四件落到了窗外,它们的脚天然在窗外 ⇒ A\* 出窗是被迫的。 + 重算后窗口 x 0.50~27.60 / y 73.53~97.50(**东界压在槽体 28.0 之前**),22 件全部落回窗内。 + + **另外两条已排除 / 已调的**: + - `OUT_PEN = 40` 量级偏高:同一套代价体系里 `CHAIN_PEN = 4` / `UNDER_12V_PEN = 6` / `HUG_PEN = 12`。 + 跨窗口的那四个网(`FAN_PWM` / `FAN_EN` / `FAN_TACH_IN` / `FAN_TACH_OUT`,另一端在 U20) + 必须走出窗口才能碰到主干,**很可能是被这个过路费劝退的**。先降到 6~12 再跑一次。 + (`router.pen` 是 `bytearray`,0~255,40 不会溢出,不是溢出问题。) + - ⛔ **`$6N49` 整条链「一根铜都没有」至今没有解释**:4 只脚全在窗口内、间距 7.4 mm、 + 窗口还空着 85%,焊盘尺寸正常(0.54~1.2)、`width_of` = `rule_width` = 0.15 正常、 + 分档也没问题。`$6N74` / `$6N45` 同样。**这不像拥塞,像布线器根本没处理这几个网** —— + 下次直接在服务器脚本里打印 `route_groups` 每一档收了哪些网、每个网 A* 的返回值。 + +### 2026-09-12 收尾:用户自己重摆了整窝,布线随之大幅好转 + +用户把 24 件全重摆(两只座改回 **rot0 横放**)。这一版**比我做的任何一版都好**: +四项焊盘级冲突**全是 0**,链距合计从 118 mm 收到 **55.8 mm**(`$6N48` 11.9→1.6、`FAN_OUT_TACH_RAW` 19.3→5.9)。 +⇒ 布局只改一处:`J27` 南移 1.15 mm 到 y=85.840(原本撞槽5刀片面 0.65 mm),南移后四项仍全 0、两座净距 3.45。 +⇒ 窗口跟着重算并**收窄南界到 73.50**:把 A2 那一窝(`$2N70` / `+5V` / `BST3V3`)和 6 段 `+3V3` 排除在外, + 于是**一段都不用拆**(窗口内只剩必须保住的 `$2N74` 2 段),`R753.1` / `R757.1` 也不会悬空。 +⇒ 窗口重布:**142 段 / 3 孔、未完成 6 条**(此前最好 10 条),跑出窗口 0 段, + 10 个纯本地网里 8 个全通 —— 先前最顽固的 `$6N49`(10 段) / `$6N64` / `$6N74` 这次都通了。 + +**剩下 6 条的根因(都已查到底并修进 `repair_window.py`)**: +1. **窗口内非待布网的焊盘没收过路费** ⇒ 新线贴着它们走:`+3V3` 距 `Q8.3` 只剩 **0.003**、 + `FAN_OUT_TACH_RAW` 距 `Q10.2` **0.027**,`fan_check` 拦下、整版不可下发。 + `route_base._pen` 本来就靠 `GND_PEN_PADS`/`LATER_PEN_PADS` 收这笔费,我覆盖 `RT.pen_pads` 时漏了。 + 窗口内这类焊盘只有 15 只(GND 12 + `+12V` 3)⇒ 已加 `_toll_pads()` 并进去。 +2. **虚拟落点取到了 L1** ⇒ 那一层这一带整片是 `+12V` 大铜,格点是 **255(多网叠加,谁都不能走)**, + 实测 `FAN_EN` 落点「起步格点 0 个」⇒ 造落点时排除 L1,只在 L4 取。 +3. **虚拟落点压在自己的主干线上** ⇒ `FAN_PWM` 落点距主干 **−0.127**,起步格点同样是 0 + ⇒ 沿主干往窗内退 `RETREAT`(0.75) 再取点。 +4. **过路费的判据是「不是当前正在布的那个网」,不是「不在待布网集合里」**:第一版写成后者, + 于是 `Q8.3`(网 `$6N48`,本身也在待布名单里)拿不到过路费 —— 实测它周围始终是 0, + `+3V3` 的新线就贴着它走到 **0.003**。放宽后 toll 焊盘 15 → 57 只,`Q8.3` / `Q9.1` / `R750.2` 全部收到 10。 +5. **`router.pen_pads` 第一行就是 `g.reset_pen()`**(先清空再打)⇒ 自定义的窗口惩罚**必须加在它之后**。 + 实测:先加窗口惩罚再调 `pen_pads`,窗外过路费被抹成 0;反过来才保住 12。 +5b. **⛔「收费挡不住」第二次印证**:把窗口内别的网的焊盘并进过路费之后,实测 `Q8.3` 周围确实拿到 10, + 但 `+3V3` 的新线**照样贴到 0.003**、`FAN_OUT_TACH_RAW` 贴 `Q10.2` 0.027 —— 和「插槽方向 `SLOT_PEN=200` + 照样被钻」完全同源。**`penalize` 只是定价,`block_rect` 才是墙**。 + ⇒ 改成外扩**封死**。封死立竿见影:未完成 9 → **5 条**,`$6N45`/`$6N49`/`$6N64` 这几条本地链同时布通。 + ⚠ **外扩量必须按「当前这一档的线宽」算,不能写死**:第一版按 0.15 细线定成 0.10, + 挡不住 0.40 的 `+3V3`(它半宽就有 0.20)—— 照样贴 `Q8.3` 到 **0.003**。 + `route_groups` 本来就按线宽分档建图,每档传进来的 `halfw`(半宽+净距)直接用即可。 + 一刀切取最粗的 0.56 会误伤细线:窗口内可走格点 68% → 52%。 + ✅ **改成 `r = max(PAD_KEEP, halfw)` 之后,`fan_check` 第一次报「全部净距达标」** —— + 此前每一版都卡在净距上根本不能下发(0.003 / 0.027 / 0.058 之类), + **这 107 段是第一个可下发的结果**。未完成 5 → 6 只是换了人,而那个「5 条」的版本本身带违规、下发不了。 + ⇒ 判断哪一版更好,**先看 `fan_check` 过不过,再看未完成条数**。 +6. **⛔ 顺序这个旋钮是「按下葫芦浮起瓢」,别再拨了**:`$6N64:R751.1` 某一轮突然掉段,实测是被 + **本轮先布的 `FAN_TACH_IN`** 五条新线围在 0.325~0.500(未违规但占满出口)⇒ 把 `priority` 改成 + 「本地小链 → 窝内网 → 跨区网 → `+3V3`」之后,`FAN_EN` 确实从 0 段变 **24 段**(排除 L1 那条也一并生效), + 但 **`$6N45` / `$6N49` 反过来掉成 0 段** —— 先布的小链被后布的大网挤掉了出口。 + 三轮下来未完成始终在 6~9 条之间换人,**没有单调改善**。⇒ 下次不要再调 `priority`, + 要么按下面 ⓑ 从摆位减负,要么接受人工补完。 + +⚠ `FAN_IN_TACH_RAW` 整网 0 段**不是**被座子通孔列劈开(判据报「无」,三只脚同侧、出口也通畅): + 实测 `J26.3→R750.1` 直连净距 **0.036**(差 0.114),但**换 Z 形就有 0.508** —— + 兜底连法已算好存在 `$CLAUDE_JOB_DIR/tmp/fix_in_tach.json` + (`(13.72,94.29)→(13.72,92.29)→(5.03,92.29)→(5.03,89.86)` + `R750.1→R751.2` 直连,共 14.10 mm)。 + +### ⛔ 九轮参数迭代的数据(同一块板、同一批 14~15 个网)——**别再调参了** + +| 方案 | 范围 | 未完成 | +|---|---|---| +| A 不链成组 / 不避铜 gap2.5 | 全板补线 | **5**(至今最好) | +| B 链成组 gap2.5 | 全板补线 | 8 | +| C 避铜 gap 2.0/2.5/3.0/3.5 | 全板补线 | 11 / 8 / 10 / 6 | +| D 链成组 + 拆被压铜 + 带 `+3V3` | 全板补线 | 12 | +| E 窗口重布 `out_pen=40` | 窗口 | 10 | +| F 同上 + `--grid 0.125` | 窗口 | 10(失败脚一模一样) | +| G 窗口 + 虚拟落点 + 优先级 | 窗口 | 11 | +| H 窗口 + 「链不跨列」布局 | 窗口 | 17 | +| I 同上 + 封死插槽方向 | 窗口 | 17(但跑出窗口 0 ✓) | + +**在 5~17 之间反复震荡,没有单调改善的趋势**——每修好一处就顶出另一处。 +已排除的假说:面积不够(窗口余量只用 15%)、网格太粗(0.125 毫无改善)、 +线宽/分档异常(`width_of` 全正常)、拥塞(失败脚周围常只有 1~2 个障碍、出口格点合法)。 +已定位并修进代码的真因有三条:窗外主干不是终点判据、链被座子通孔列劈开、`penalize` 不是墙。 + +**第十轮(在「链不跨列」新布局上重跑全板补线):152 段 / 16 孔、未完成 10 条 —— 比窗口方案的 17 条好, +但 ⛔ 侵入插槽区**:26 段落进槽体 x 28~70,`FAN_TACH_IN` 距 **J35.19 焊盘 −1.074**(直接压在 1 mm 手焊针排上), +另有 2 条净距 0.125。⇒ 再次印证「全板补线无保护不可用」,这正是当初设窗口的原因。 + +**三种方案各有致命处,这就是目前的全部事实**: +| 方案 | 未完成 | 致命处 | +|---|---|---| +| 全板补线(当前布局) | 10 | 26 段侵入插槽,压 J35 焊盘 −1.074 | +| 窗口重布(封死插槽) | 17 | 不侵入,但未完成最多 | +| 方案 A 那 111 段 | 5 | **与当前布局对不上**(111 段里只剩 2 段端点还在焊盘上),已作废 | + +⇒ **下一步不该再动参数**,而是二选一: +ⓐ **窗口方案 + 人工补完**(保守,板不会被压坏):窗口重布不侵入插槽,把它那版下发后剩 17 条人工布; +ⓑ **从摆位层面减负**(治本):`FAN_EN` / `FAN_TACH_OUT` 的主干最西端在 x 42~43(**槽区里面**), + 天然要跨半块板 —— 把 `R753` / `R757` 这类**只挂跨区网**的件移出 A6、靠近 U20 放, + 能同时解掉「跨窗口接不上」和「窗口内拥挤」两个问题,这是唯一还没试过的方向; +ⓒ 若要用全板补线的 10 条那版,**必须先给它加插槽禁区**(`route_base` 已有 `keep_rects()` 机制, + 把槽体 + 针排外扩后塞进去),否则它一定会从针排中间穿过去。 + +**「避铜」和「布得通」是矛盾的**:避开现有铜等于把件推离目标脚,线更长更难布。 +真正的出路只有两条 —— ⓐ 把这一窝连同周边 `+3V3` / `GND` 的局部**整体重布**(而不是在缝隙里塞件), +ⓑ 剩下几条手工布。**不要再单纯调 `--fan-gap` 或重排**,四套间距 × 两种策略都试过了。 + +### 这一轮沉淀的工具(`.claude/r2/`) + +| 文件 | 用途 | +|---|---| +| `fan_layout_scan.py` + `remote_fan_layout.sh` | 「布局 × 可布性」扫描:几套布局各跑一遍 14 网补线,按未完成条数挑(单套 ~2 s) | +| `fan_gnd_vias.py` | 给这一窝重排后的 GND 脚补过孔(`plane_vias` 是全板口径、`repair_base` 不做平面网扇出 ⇒ 实测 10 只脚新位置底下没孔)。**已算好 10 个落点,未下发** | +| `place_base.FAN_REFS` / `--only-fan` / `--fan-gap` | 只重排风扇这一窝,其余件钉在板上现位 | +| `place_base.th_pad_blocks()` | ⛔ 顶面通孔件的焊盘**穿透两层**,背面件不许摆上去。原来 `selfcheck` 遇到不同层就 `continue` ⇒ 排布器把 C738/R746/Q7/R754 摆到两只座的通孔盘上(最深 −0.496),几何全过、DRC 才报 | +| `repair_window.py` + `remote_repair_window.sh` | **窗口内整体重布**:`bypad` 只装窗口内的脚 + 给跨窗口的网补「主干接口」虚拟落点 + 窗口外加价、**插槽方向 `block_rect` 封死**。配置在 `_base_window.json`(窗口 / 网名 / `out_pen` / `priority`)。诊断输出会打印「每一档收了哪些网、每个网产出几段」——`$6N49` 整链 0 段就是这么发现的 | +| `place_base.chain_split_by()` | ⛔ 同一个网的脚不许被顶面通孔件的**焊盘列**劈到两边(座子 rot90 竖放就是一道墙)。粒度踩过五次坑,见上文 | + +### 回退点(`$CLAUDE_JOB_DIR/tmp`) + +`ROLLBACK_board_before_fanplace.json`(重排前全板铜 1997 段 / 640 孔)、 +`ROLLBACK_live_before_fanplace.json`(重排前 164 件位姿)、 +`ripped_backup_fan2.json`(拆掉的 49 段几何,可原样画回)。 + +## ⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐ 2026-09-12:五件挪到底板**顶面**(已下发,待人眼确认) + +用户:「将风扇座,C2,C11,J33 移到顶面」→ 追问时澄清 **C11 其实是指 C3**(两颗 Φ8 电解一起上顶面), +并选「两只风扇座都南移」。最终板上: + +| 件 | 结果 | 代价 | +|---|---|---| +| `C2` `C3`(Φ8 470 µF)/ `J33`(2.54 应急口)| **原位翻面**,坐标一格没动 | **零** —— 焊盘全在封装 y=0 那一排,翻面只把原生偏移的 y 取反 ⇒ 孔位 / 针序 / 铜一根不变 | +| `J26`(进风座)| **原位翻面**(13.5, 94.5)| **零** —— 拆掉的线已原样画回 | +| `J27`(排风座)| 挪到 **(9.0, 85.5, rot180)** | 拆 22 段 / 补 60 段 3 孔 | + +- **顶面的限高不归 `H_BOTTOM` 管**:插槽把刀片底边抬到板上约 11 mm,刀片自己 y 0~11 又是金手指 + 禁布区(两面无件)⇒ 顶面件只有**横向**约束:不许碰竖在 `y = 槽心 ±0.8` 的刀片板面、不许压槽体。 + `place_base.selfcheck` 已加这一支(`CARD_HALF` / `CARD_CLR`),`pcb_base.TOP_EXTRA` 是顶面件名单。 +- **J27 为什么非挪不可**:原位 (13.5, 88.0) 本体 y 85.5~90.5 正好穿过 J34 那片刀片(89.64)。 + 而 x=13.5 那一列往南,焊盘先压 C738 再压 R754(通孔盘 1.6,背面那一窝驱动件让不开)⇒ 只能往西。 + +### ⛔ 这一轮最贵的三个坑(都已修进代码) + +1. **西北角 L1 整片是 `+12V` 大铜**(`l1_12v_rects` 主块 x 0.5~27.8 / y 0.5~97.5)⇒ 过孔上得去但走不动, + A6 那一带等于**单层布线**,而 L4 已被驱动件占满。「两只座都南移」扫了 **800 个候选落位**始终有 3~4 条布不通。 + ⇒ 解法是给 `FAN_PWM_L` 在 `pcb_base.PD_L1` 里开一条 **L1 走廊 (4, 86, 21, 89)**(只挡导线图; + 铺铜不用开窗,12V 铺铜本来就绕异网导线,CC 那两根走的同一路子)。断面账:主块 27.30 宽, + 一根 0.15 的线占约 0.5 ⇒ 仍 ≈26.8 mm ≫ §6.4 要的 8 mm;y 86~89 不碰任何一槽的 12V 指头。 +2. **`route_base.TH_GROW` 把所有通孔盘放大 0.6**(本是为 J1/J23 的长槽孔加的)⇒ 2.54 间距的风扇座 + 在占用图里变成 2.2×2.2、相邻两脚只剩 0.34,而出口要 1.33 才落得下第一格 ⇒ **中间那几只脚一根铜都出不来**。 + 症状是「J26.3 没布通 / 一根铜都没有」,看着像没地方走。已改成按件区分(`th_grow()`,只有长槽件放大)。 +3. **搜索判据缺一条就会被精准钻空子**:`fan_scan` 起初没查「两只座本体不许重叠」, + 扫出来的「最优」是 J26=(13.5,94.5) / J27=(12.0,94.5) —— 两只座摞在一起,布线代价当然最低。已补判据。 + +### 沉淀下来的工具(都在 `.claude/r2/`) + +| 文件 | 用途 | +|---|---| +| `repair_base.py` + `remote_repair.sh` | **底板**的定点补线:只布指定的几个网,别的一根不动。现有铜取**板上快照**(不是 `_base_routes.json`,它和板上差几十段)。`EXTRA=--repair` / `FAN_W=` 可透传 | +| `fan_scan.py` + `remote_fan_scan.sh` | 「落位 × 可布性」联合扫描:候选落位逐个真跑一遍补线(PyPy 上单轮 ~1.2 s),按未完成条数挑 | +| `fan_check.py` | 下发前的本机净距自算,**含布线器不查的那一项:新过孔 vs 内层线**(板上有 125 段手布的内层线,不查就是往人家线上扎孔)| + +⚠ **`_base_routes.json` 不含这一轮的改动**(定点补线只改板、不回写缓存)。要整板重算前先想清楚: + 板上还有 **125 段手工内层线**(L15/L16,HUB_RST / +3V3_HUB / IO0 / INT# …共 742 mm), + `remote_route.ps1 --replan` 会把它们连同本轮的改动一起覆盖掉。 + +## ⭐⭐⭐⭐⭐⭐⭐⭐⭐ 2026-09-11 深夜:D16 底板电源入口改 USB-C PD(原理图已下发;PCB 未动;设计记录 R2 §36) + +用户:「能否将电源输入改为 Type-C 从 120W 氮化镓取电」→「能不能兼容各个手机厂商的氮化镓电源」→「走方案 B」(做进底板)。 +- ✅ 结论:各家 100~120W 都是私有协议(要手机鉴权),**公约数只有 PD**;单口 20V×5A ⇒ 12V 侧 ≈95W(常态 10~25W 够,最坏 108W 靠固件限功率)。 + 20V 不能直接进 12V 母线(U29 泄放 / SMBJ13A / 刀片 TPS54622)⇒ 加一级 20V→12V 降压,12V 以下全不改。 +- ✅ 新页 **A1B-PD**(`602ac9904a220348`,`r2/a1b_pd.py`):J1 USB-C(C165948,与 J23 同料)→ F1 → U36 **CH224A**(R7 120k 只要 20V) + → D3 SMBJ22A + 输入电容 → U37 **LM61495QRPHRQ1**(720 kHz,L4 SRP1265A-4R7M,FB 110k/10k = 12.0V,EN 门限 13.9V)→ `VIN_SW`。 + CH224A 的 I²C 走 TCA9548A 通道 5(`SDA6`/`SCL6`),固件读 0x50 定功率上限。 +- ✅ **A1-INPUT** 删旧入口 6 件(J1 DC-005 / F1 / Q1 / DZ1 / R1 / C1),母线从 D1 起,`VIN_SW` 旗接 A1B;顺带清掉了页上 88 条历次残留文字。 +- ✅ **A3-CTRL** TCA9548A 脚 15/16 引出 SDA6/SCL6;A2 地旗挪 (530,290)。`a3-ctrl-nc.json` 以前是旧的(推送时从不写),现在推送会写回 + 存盘。 +- ✅ 验证:三页 `verify_sch`(带各自 NC 清单)PASS、`xpage` 真正漏接 0、`port_audit --r2 BASE` 可疑 0;本机截图自查过(A1B 第一版有一行说明压在 R11 地旗字上,已下移重推)。 + 改前 A1/A3 快照 `r2/_a1_a3_pre_d16.json`。eda-parts.json 新增 8 颗料(CH224A / LM61495 / SRP1265A / SMBJ22A / 1µ50V / 100n50V / 110k / 120k)。 +- ⬜ **等用户截图确认三页**(CLAUDE.md 规矩)。 +- 🔶 **PCB(2026-09-11 深夜 ~ 09-12,细节 R2 §36.5)**: + - ✅ 导入:上次推三页后 74 件原理图 uniqueId 全空(存盘也不分配)⇒ 原理图侧 `setState_UniqueId` 写回 PCB 那套; + 对话框从表格 React props 读 `rows`;**导入前后全板焊盘网名逐脚比对,差异 = 对话框清单**。 + - ✅ 摆位:`place_base.PD_HAND` 27 件手排 + `--only-pd`(图 v4 发过用户)。U37 rot 270 SW 朝西接横放 L4、信号边朝东。 + - ✅ 用户定:CC 走 L1 细线(两组 VBUS 之间打孔)/ U37 两侧 VIN 经 **L1 VIN_FUSED 小岛**连通 / RT602 改测降压。 + - ✅ 脚本:`pcb_base.PD_L1` 窗口、`route_base` 12V 挡线图扣窗口、`pour_base.PD_POUR` 手画铜块、`rules_base` SW12(已推、审计过)、 + `_base_npth` 补 J1 定位孔;新 `d16_route / d16_check / d16_push / d16_tap / d16_reach / d16_rip / remote_d16.sh`。 + - ✅ 南带补线(服务器 4 轮,固定构造 32 段 / 6 孔先本机校核 0 条):除 I²C 外全通,197 段 / 49 孔**已下发存盘** + (快照 `r2/_base_board_post_push_d16.json`;EasyEDA 把两段同网线拼了一下,按实际坐标核过覆盖 / 间距)。 + - ⚠ 删旧铜后线数对不上:EasyEDA 删除过程中把残段合成了新线 ⇒ 删完一律「旧快照 − 删除清单」与读回逐条比。 + - ⚠ **`reload_base` 重载前会先 save()**:拆束那次 `d16_push` 读回差 1 段(0.25 mm 的 SCL 碎段,被旁边 0.25 宽的同网线整段盖住、 + EasyEDA 合并掉了)没存盘,但命令写成 `d16_push … | tail && reload_base`,管道的退出码是 tail 的,失败被吃掉,reload 顺手把这版存了。 + 这回无害,以后这类链条一律 `set -o pipefail` 或不接管道。 + - ✅ **SDA6/SCL6 布不通 → 用户选 CH224A 改挂主 I²C**:泛洪诊断(`d16_reach`)U35.15/16 被 J36 一带原有布线圈在北半边。 + 两页原理图已改(verify_sch PASS / xpage 0,截图已发)、已导入(焊盘网名比对 0 意外)。 + - ✅ SCL 能接;**SDA 被 U13 东侧三线束夹死**(INA_ALERT / SDA / SCL 0.5 mm 并排,本体底下还有 SCL 的 2—5 脚连线) + ⇒ 用户选**拆 U13 这一束重布**:`d16_rip.py` 12 组先后 × 线宽全都断 1 块以上;候选落点 30 → 100 + 逐步排序 + **INA:1 → SDA:1 → SDA(U36):2 → SCL:1 → SCL(U36):2**(线宽 0.15)0 块断开,拆 20 段 / 1 孔、新 132 段 / 21 孔(~303 mm, + U13 的 SCL 绕了 44 段 / 13 孔、INA_ALERT 36 段 / 5 孔),已下发。 + - ✅ 收尾(修正 3):R10 采样线 0.2 → 0.3(VIN_SW 属 PWR9A,DRC 线宽下限 0.3);删 3 个服务器扇出的孔(紧挨固定孔, + 钻孔间距 0 / 8.5 mil —— `d16_check` 原来只查异网,已补同网钻孔间距);J36.4 / Q6.2 各补一个 GND 孔(新线切了铺铜 / 铺铜分块变了)。 + - ✅ **最终(快照 `r2/_base_board_final_d16.json`,图 `r2/M18-d16-routed.png`)**:2104 段 / 648 孔;重铺 147 填 135(功率铜面全填, + 空的 12 块是 GND 小瓦片);**DRC 间距 0 / 连接性 0**,只剩插槽封装自带 5 条(老问题);`board_check` 118 / 121 + (GND 6 只通孔 / 铺铜脚 + XTAL1/2 圆弧,都是老误报)。断面 VIN_SW 7.95 / L1 12V 13.20。 + - ✅ **2026-09-12 复核板面并恢复**(用户问「现在板上是不是最后那版」):与 `_base_board_final_d16.json` 逐项比, + **少了 16 块铺铜,全是内层地**(GND-L2-0~7 / GND-L3-0~7;L2/L3 各 13 → 5),L1 55 / L4 66 一块没少,线 / 孔 / 弧 / 填充 / 164 件位姿全同; + 另有 **USB2 差分对 5 段直角改成 45° 斜切**((46.4,63.77)、(46.9,63.27)、(48.5,63.27) 三个角)—— 四层精确净距重算 **0 条**, + 是改好不是改坏,**保留不动**(恢复成直角属于倒退)。⇒ 只 `pour_base --push` 重建 147 块 / 填 135, + 重铺前后线 0 变、孔 0 变、元件位姿 0 变;`board_check` 118/121、DRC 间距只剩插槽封装 5 条 / 连接性 0。 + 恢复前存档 `r2/_base_board_before_repour_0912.json`,恢复后基准 `r2/_base_board_d16_restored_0912.json`。 + - ⬜ 待用户:① 截图确认 A1B-PD / A3-CTRL 两页;② 客户端看一眼南带(尤其 U37 肚子底下 SPSP→VCC 那根 0.15 线、两处 L1 CC 走廊和小岛); + ③ NTC2 绕了 108 mm / 12 孔、U13 的 SCL 绕了 44 段 / 13 孔 —— 通,不好看,要不要再收;④ git 未提交。 + - 已知:`board_check` 把 L4.1(3.5×5)读成 5×3.5(C18→L4.1 那段终点已伸进焊盘绕过);它不读铺铜、不读圆弧。 +- ⬜ 固件:CH224A 驱动(**主 I²C 总线 0x22/0x23**,读 0x09 / 0x50;**禁止写 0x0A=5**)+ 整板功率上限按 0x50 取。 +- ⬜ 丝印:J1「PWR 20V」、J23「USB」。 + +## ⭐⭐⭐⭐⭐⭐⭐⭐ 2026-09-11 晚:刀片重新布局 —— 主板转 180°、两条槽到顶部、U4 到右侧(进行中;设计记录 R2 §35) + +用户:「重新优化刀片板布局」→「排线插槽和排线移到顶部,主板不旋转」→(电池排线 38 mm 够不到顶边,核账后) +**「都挪,主板跟着旋转」** →「U4 移到右侧」。板框仍 90 × 68。**下面这一节取代 §34 那版的布局,§34 的待办大半作废。** +- ✅ 几何:`pcb_blade.PHONE_ROT = 180` + `phone_xy()`;槽 y 56.86~59.86;七个孔 / 侧键跟着转(自检过)。 +- ✅ 摆位:`pcb_place` J5/J4 底层 rot 180、C60/J3 顶部服务带、U7 在 J4 正南 rot 180;功率链 `flip_pwr()` 刚体转 180°(F1 底 / U3 顶, + 锚 (80, 27.6) —— **27.6 是让 U2 四边脚落 0.25 格点**);U4 (60, 38) rot 0;九个区重划;自检过。 +- ✅ 修掉的老毛病:`ctrl_hand` 的上拉电阻 R40/R41 位号写反(SDA↔SCL 交叉)+ 盘朝向(改按网名反查、pad1 朝 U4); + Rs1.1 的 4 A 只有一个 Ø0.3 孔进 L3(`KELVIN_SENSE` + `VIAS_PER_PAD`)。 +- ✅ L3:VO_P 岛到上半(U 形绕电池槽)、+12V 岛到下半(金手指 → F1);**+12V 不再在 L1/L4 走线**(`PLANE_VIA_NETS`)。 +- ✅ D±:`dp_blade()` 新走法,53.07 / 53.07 mm、每根 1 孔、零交叉。 +- ✅ 离线试布线工具:`synth_pads.py`(按新摆位刚体变换旧焊盘表,旧表 / 旧摆位存 `r2/archive_blade_prerot_0911/`)、 + `remote_blade.sh` 加 `NOSNAP=1`(板上还是旧铜,不抓板)、`pads_diff.py`(下发后读回对账)、router 新开关 `--gndvia` / `--vkeep`。 +- ✅ 服务器试布线 11 轮(细节 R2 §35.5):**按铜 0 个断网、`router_check` 精确净距 0 条**(§34 那版断 5 网 + 27 只 GND 脚够不着)。 + 候选 = `_blade_routes.r11new-v0.json`(= 现在的 `_blade_routes.json`,`--gndvia --first EFUSE_FLT,EDL_EN`):678 段 / 275 孔(GND 51)/ 2012 mm, + D± 53.07 / 53.07 mm。图 `r2/M17-rot180-routed-offline.png`。还有 16 只 GND 脚没打上孔(C13.2 J4.16 K4.1 Q3.2 Q4.2 U1.2/3/15 U2.1/16 U3.2 U4.9/21 U6.2 U7.2), + 等铺铜后按 DRC 连接性看哪些真没接上。 + 这几轮修掉 / 新加的:U2 对格(U1_Y 27.6)、上拉 R40/R41 位号和朝向、排布器「连线不交叉」+「接芯片的盘朝芯片」(`flip_2pin`)、 + U2 八只脚 + U4 两只脚的**预扇出**(`router.QFN_FAN`,U4 那两只就地换 L1)、`--gndvia` 放到信号之后且每个孔精确核净距、虚拟焊盘改名 `qfan:`。 + `_blade_stitch_pts.json`(旧布局的缝合孔落点)已删,归档里有;`_blade_board_vias.json` 现在是 `[]`(离线试布线用)。 +- ✅ **已下发(用户确认,= 板上现在这版)**。下发前板上其实已经**没有铜**(§34 的 1207 段 / 359 孔不在了)、**15 件被用户手动挪过** + (U4 (67.3,13.8) rot 270、U5、U3、Rs1、Q1、R9~R15、R18、C13、C68、J3)—— 问过用户后覆盖;下发前整板快照 `r2/_blade_board_prerot_0911.json`(含那 15 件坐标)。 + 顺序:`pcb_blade --slots/--holes` → `pcb_place --push`(读回 82 件全对)→ `pcb_route --dump` → `pads_diff`(**359 块焊盘和合成表逐块一致**, + 底层 rot 180 / 90 的推导都对)→ `router --push` 678 段 / 275 孔 → 缝合孔 72(服务器算,`NOSNAP` + 离线导线快照,布线孔当零长度导线一起避让)→ + `miter --push`(4 轮到 0 直角)→ `reload_base --blade`(逐项相等)→ `pcb_pour --push` **25/25** → `board_check` **信号 56/56** → DRC。 + DRC 第一遍 10 条 = PCIe 缺口 4 + GND 连接性 6(U1.2/3、U3.1/2、J4.12/16)⇒ 补 6 段 + 1 孔(U1 两只地脚接散热盘、U3.2 接 U3.1、J4.12 直连 J4.8 的孔、 + J4.16 往南出排再下 L2,`router_check` 0 条后下发,已并进 `_blade_routes.json`)⇒ **DRC 4 条,全是 PCIe 缺口 0.2 mm(§27.8 老问题),连接性 0**。 + 最终快照 `r2/_blade_board_rot180_final_0911.json`,图 `r2/M17-rot180-routed.png`(离线渲染,= 缓存;板上另有斜切)。 +- ✅ **PCIe 缺口 1.9 → 1.6**(用户拍板,CEM 值):缺口边到 11/12 号指 0.2 → **0.35**。`fp_edge.NOTCH_W` 改 1.6,`fp_edge.py --notch` + 只重画封装板框层(个人库原件 + **工程库副本 `a1ad3dea…`**,J1 实例引用的是它;改副本 + 重载 J1 就跟着变,焊盘网名 64/64 不变)→ + `pcb_blade --outline` → 铺铜 25/25 → `board_check` 信号 56/56 → **DRC 0 条**。代价:插槽防呆筋配合余量少 0.15(CEM 卡本来就是 1.6)。 + ⚠ `lib_Footprint.search` 在这台客户端上抛 `o[r].match is not a function`,`fp_edge.py --push` 走不通,要重建整个封装得先改成按 uuid 开。 +- ⬜ 待用户:② 机械:SIM 卡托转到左边会伸出板左沿 ~1.8、C60 顶离板边 1.0(顶边导轨 ≤ 1 mm)、 + 排线实物走一遍(尾插 55 mm / 电池 38 mm 都是从接口边往上翻,长度比原来宽裕);③ 客户端里看一眼摆位 / 丝印方向; + ④ 小瑕疵:+12V_F 从 Cin 绕一大圈才到 R4(EN 分压上臂,电流很小),想收短可手改。 +- ⚠ 下面 §34 那一节的待办(`HANDROUTE-90x68.md` 5 个网 / 27 只 GND 脚)**全部作废**(布局整个换了)。 + +## ⭐⭐⭐⭐⭐⭐⭐ 2026-09-11 傍晚:刀片压到 90 × 68(进行中;设计记录见 R2 方案文档 §34) + +用户:「完善刀片板」→ 中途改为「将刀片板压缩到 90*68mm」。可行性核账后拍板两处:**手机上移、C60 留两槽之间**;**删 J2**。 +- ✅ 原理图:B4-EDGE 删 J2、B3B-USB 的 U7 两侧对调(手性,零交叉)、J1 不进 BOM;verify_sch / xpage / port_audit 全过;截图自查过,⬜ 等用户确认。 +- ✅ 导入:`uid_sync_base.py --blade` 对齐 uniqueId(J2 挪到 `zzdel_J2`)→ 导入 → 82 件逐件对上 → 重抓焊盘。 +- ✅ 板框 90×68 + 两条槽 + 七个孔下发、`pcb_blade --verify` 过;旧铜(1183 线 / 424 孔 / 2 铺铜)清空,改前整板快照 `r2/_blade_board_0911_before.json`。 +- ✅ 摆位下发、读回 82 件全对(`pcb_place.py` 用 DX/DY/PX 平移;U7 手排 J4 正北;J3 挪服务带)。 +- ✅ D± 构造 `router.dp_blade()`:42 / 40.5 mm、每根 1 孔(旧 60~63 mm、6~7 孔);本机静态校核 0 处 < 0.15。设计规则已重推(差分线宽下限 0.15)。 +- ✅ 服务器布线第一轮:v0 19 条没搞定 / v1(`--pf`)21 条。根因:`+12V` 五根指出口被电池槽 + R19/Q2 + 先布的 `+3V3` 长线封死; + 外加我引入的三处摆位退化(EFUSE_AUX 变窄、U6 离 J3 20 mm、C68 离 U5 7.9 mm)。已改:`+12V` 排 `FIRST_NETS` 最前; + EFUSE_AUX 回 11.2 宽、SVC_E 先于 EFUSE_AUX、SVC_R 收紧;新摆位已下发读回。(第一版 `remote_blade.sh` 的 run.sh 0 字节空转,已修。) +- ✅ 第二~四轮(细节见 R2 §34.5):+12V 通了;比变体一律看 **`blade_conn.py`(按铜判连通)**,布线器自报的「铜分成 N 块」多半是误报。 + DIS(R19+Q2)挪到电池车道正北(原位堵死 U4 往东的唯一走廊);第四轮最好 v3 只断 2 个网(`+12V_F: R4.1`、`+5V: U5.1`)。 + `router_check` 查出六组都有 U2 角孔压线 −0.095。先按「过孔图口径」修(同 VIA_MAP_FIX),第五轮六组**逐段不变** ⇒ 不是它; + 真根因是 `plan_all()` FIRST_NETS 循环**没把本轮已放的过孔打进占用图**(`route_groups` 早修过同一对 EFUSE_EN/$1N147、$1N164/EFUSE_PG),已补。 + 顺带修:`router_check` 不再本机算缝合孔(假问题 + 违规)、`board_check` 刀片 +3V3 按布线网查、`repair_route --cache` + `MODE=repair`、`reload_base --blade`。 +- ✅ 第六轮(补上「已放的过孔进占用图」):非 `--pf` 三组**精确净距 0**;选 v2(缓存 `r6-v2` = 现 `_blade_routes.json`),按铜断 5 个网;服务器定点补线接不上。 +- ✅ **已下发并收尾(= 板上现在这版)**:`router.py --push` 711 段 → 缝合孔 78(服务器算;布线器的 23 个地指母线 GND 孔保留)→ 斜切 241 角 → + `reload_base --blade` 逐项相等 → 铺铜 25/25 → `board_check` **51/57** → DRC **间距 4(全是 PCIe 缺口老问题)/ 连接性 39**。 + 中途修了一个斜切在凹侧压孔的角(DRC 7 → 4)。详细数和两个工具毛病见 R2 §34.6。 +- ⬜ **待用户定**(报告里给了选项): + 1. **5 个信号网 / 7 只脚没接上**(`$1N147` U2.15、`EFUSE_PG` U2.2、`INA_ALERT`、`SDA`、`$5N71`)—— 作业单 `r2/HANDROUTE-90x68.md`:客户端手补(环绕 / 忽略障碍模式,别推挤、别挪件), + 或者继续自动化(要改结构:+12V 那条 L4 竖线和 D± 墙并排把东西向封死,或把 U4 往中间挪)。 + 2. **27 个 GND 细间距焊盘铺铜够不着**(J4 ×14、U2 1/16/EP、U3 1/2/7、U1 2/3、U4 20/21、Q4.2、K4.1、C13.2)—— 要加「GND 引出 + 过孔」一步(服务器算落点),或手补。 + 3. PCIe 缺口 0.2 mm(§27.8);C60 焊盘离铣槽 0.45;手机顶离板边 1.0(顶边导轨 ≤1 mm);H2 螺钉头离板边 0.6。 + 4. B4-EDGE / B3B-USB 两页原理图截图确认。 + 补完之后:`reload_base.py --blade` → `pcb_pour.py --push` → `board_check.py` → `drc_read.py --blade --conn`(`--conn` 新加,列连接性明细)。 +- ⚠ 投板前要确认:C60 焊盘离两侧铣槽 0.45;手机顶离板边 1.0(顶边导轨 ≤ 1 mm);H2 螺钉头离板边 0.6;PCIe 缺口 0.2 mm(§27.8,老问题)。 + +## ⭐⭐⭐⭐⭐⭐ 2026-09-11 中午:EasyEDA 自动布线评审 → 混合布线(进行中,**板上现在只有锁定的预布铜**) + +**评审**(用户在客户端点了 EasyEDA 自带自动布线,快照 `r2/_base_board_autoroute_0911.json`,图 `r2/AR-easyeda-autoroute-*.png`): +信号网 112/112 全通、143 孔、铜长 ≈ 0.94 × MST —— 布通率远好于我们的 A*(r34 断 26)。但不能投板: +① L2/L3(设计 = 整层 GND)上走了 983 mm 信号,含 UP / USB5 / USB6 三对 D± 整段在内层;USB1/2 在 L4 上跨 L3 缝 5~6 次; +② 全板 **0 个 GND 孔**、无缝合,内层地只靠几只通孔地脚接地;③ Kelvin 当普通 +12V 网布(U13.10 从 J37.2 拉 19 mm 线 + 经 L3 接 Rs6.2); +④ XTAL2 走 L3、FB3V3 上 L1、$2N72 走 L2(各 2 孔);⑤ USB4 / USB6 对内孔数不等(1/3、2/3);FAN_12V_SW 走 L2; +另:它不知道 L1 西半 12V 大铜 / L4 入口链铜面不许走信号,上一版有信号线穿 L1 12V 区。 + +**用户选定:混合布线**(脚本 `r2/ar_hybrid.py`): +1. ✅ `--clear`:删四层导线 2634 / 过孔 143 / 铜面 119(读回全 0)。 +2. ✅ `--push --verify`:`r2/_base_preroute_0911.json`(r34-v0 中 GND / +12V / 入口链 / Kelvin / XTAL1/2 / RBIAS / VDD18(PLL) / + FB3V3 / $2N72 / +3V3_HUB / USB1~6 整网 + UP 两端到第一个孔,599 段 / 312 孔,离线预判 DRC 0/0)**全部锁定**下发。 + 读回 572 段(EasyEDA 合并共线段)/ 312 孔全锁;按「被同层同网同宽锁定线盖住」核对只差 J23 口 UP 两段 0.15 颈缩(疑被并进 0.28 段,布完查连通)。 + r34 里这些网自己就没接上的:XTAL1–R723.1、VIN_SW–C4.2、+3V3_HUB 6 只脚、+12V R4.2 无孔,交给自动布线补。 +3. ⬜ **EasyEDA 自动布线由用户手动点**(`pcb_Document.autoRouting` 在 3.2.149 上不存在,`--route` 用不了): + 布线层只勾顶层 / 底层、保留已有导线和过孔、忽略 GND / +12V / VIN_RAW / VIN_FUSED。 + ⚠ **用户手动点了 5 次,全部「进度很快走完、无提示、零产出」—— 连清除布线后的空板也一样**(上午同一窗口还能布)。已排除: + 锁定(`--unlock` 全解;过孔的 `modify({primitiveLock:false})` 不生效,只能删了按 5 参数原位重建)/ 已有铜违规(删了 UP 6 段 0.15 颈缩 + + 微段后 DRC 只剩插槽封装自带 5 条)/ 飞线卡住(`reload_base` 后照旧;`active` 只表示「启用」)/ 层属性(四层都是 SIGNAL、未锁)/ + 只读窗口(用户是清空后撤销恢复的,同一窗口)。客户端日志(`sys_Log.sort()`)没有任何布线记录。 + 导出的布线输入(`pcb_ManufactureData.getAutoRouteJsonFile`)看着正常:route [1,2]、109 网全开、忽略的 4 网已剔除。 + 对话框只有「忽略网络」一项(没有层 / 保留移除 / 选中网络)。上午能布的那次 +12V 被布了 ⇒ 当时没忽略 +12V; + 下一个嫌疑:忽略列表(带 `+` 的网名?)或服务端。**预布铜仍在板上(569 段 / 312 孔,均已解锁)**。 + ⭐ **用户找到原因:自动布线要勾上内层才会跑**(只勾顶 / 底层就是那种秒结束零产出)。 + - 试 1:L2/L3 各加整板 NO_WIRES 禁布区(`ar_hybrid --keepout`;API 没有「禁止过孔」类型)+ 四层全勾 ⇒ 内层 0 线、预布铜未动、 + XTAL1–R723.1 接上了,但**全板只新加 6 个孔**(UP 4 / USB3 2),其余网都单层走 ⇒ 离线断 48 个网(r34 是 26)。 + 导出的布线输入里 prohibitedRegions 只有 path + layers、不带规则类型 ⇒ 布线器把整板禁布区当「连孔也禁」。快照 `r2/_base_board_ar_keepout_0911.json`。 + - 试 2(用户选定,进行中):`ar_hybrid --strip --unkeepout --plane` —— 删自动布线加的 1020 段 / 6 孔(预布铜补回 2 段合并连带删掉的), + 删两块禁布区,**L2/L3 层类型改成内电层(PLANE)**,读回确认。⚠ 内电层怎么接 GND 还没定(API 里没有内电层区域图元), + 铺铜计划里 L2/L3 的正片 GND 铺铜要换掉;试不成就 `ar_hybrid --signal` 改回信号层。 + - 试 2 结果:内电层 + 对话框全勾 ⇒ 不跑;内电层 + 只勾顶 / 底 ⇒ 也不跑(我经 DOM 点「运行」,1 分钟零产出)。 + ⇒ **结论:这版 EasyEDA 自动布线只有勾上「信号层类型的内层」才运行;「内层零走线 + 正常打孔」用它自带的布线器做不到**。 + 已 `ar_hybrid --signal` 改回,读回四层 SIGNAL、板上 572 段 / 312 孔(= 预布)、无区域、无铺铜。 + - 试 3(用户选「只放开 L3」):内层改回 SIGNAL,对话框只勾 顶 / 底 / 内层2(L2 不勾),我经 DOM 设好并核对后点「运行」⇒ **也不跑**(1 分钟零产出)。 + ⇒ 汇总:只有**四层全勾**才运行(SIGNAL + 全勾 = 用户上午那两次);只勾顶底 / 顶底+内层2 / 内电层 都不跑 ⇒ **布线层勾选实际上只能全选**, + 避层只能靠禁布区,而整板禁布区 = 连孔也禁。L3 关键区禁布区已离线算好(会话临时目录 `l3_keepout.json`:D± 走廊 ±0.9、晶振、两颗 Buck、入口链,5 块 / 1429 mm²),未下发。 + - 试 4(用户选「关键区禁布 + 四层全勾」):`ar_hybrid --zones` 在 L2/L3 各建 4 块 NO_WIRES(`_base_inner_keepout_0911.json`:USB1~6 的 + L1/L4 D± 段 ±0.9 + 晶振 / 两颗 Buck / 入口链,1578 mm²),我经 DOM 四层全勾点「运行」⇒ **能跑**(进度到 ~65% 结束,约 6 分钟)。 + 快照 `r2/_base_board_ar_zones_0911.json`:2543 段(L1 491 / L4 978 / L2 51 / L3 1023)/ 445 孔;**离线只断 6 个网** + (+3V3_HUB〔r34 本来就没接全〕、CFGSEL0、SDA〔U13.4 / U35.23〕、VBUS_DET、VDAC1、VDAC4);预布铜完好(L1 303 段都还在 L1)。 + 问题:① 差分对不理禁布区 —— USB6 每根在 L3 上**又并了一条**(+58 mm、孔 2→5,碎段中位 0.27 mm),USB3 各多绕 5.5 mm / 1 孔; + UP 全程它布、~90 mm 几乎都在 L3(L3 的近邻是 L4 器件层,没有像样参考);② L1 12V 大铜里:VIN_SW 0.3 线 18 mm(去 C4.2)、 + 风扇区 $6N45/48/49/64 / FAN_EN / +5V 10 个孔 + $6N49 7.6 mm、SCL3 2.5 mm;③ 内层普通信号 L2 17 网 / 321 mm、L3(去掉 UP/USB6)约 240 mm。 + USB1/2/4/5 未被动。界面上的「报告错误」是器件库面板的按钮,**不是**布线出错。 + - 收拾(用户四项全选,按序做): + ① ✅ USB3/USB6 重复路径删掉(`ar_hybrid.strip({'USB3_*','USB6_*'})`,398 段 / 8 孔;读回两对都回到预布、连通)。 + ② ⏳ UP 对:自动布线布的 UP 铜已删(615 段 / 5 孔,预布两端到孔的段保留),**用户在客户端用差分对布线(Alt+D)在 L1/L4 手布**; + 端点孔 U32 侧 (45.18, 39.83) / (45.78, 39.08),J23 侧 (82.5, 6.5) / (84.5, 8.88)。布完读板核长度差 / 孔数 / 间距。 + ③ ⏳ L1 12V 大铜:断面校核(`pour_base.check_cuts` 喂板上快照)L1 12V 主块最窄 13.20 → **8.95**(要 8.0),刀口就是 VIN_SW 那根 L1 线; + 风扇区 10 孔 + $6N49 / SCL3 不是瓶颈 ⇒ 留着。C4.2 被 +12V Kelvin 线挡住、L4 接不过去 ⇒ 服务器扫描(`c4_scan`,孔不进焊盘) + 用户选「接功率铜」:`ar_hybrid.C4_FIX_*`(孔 A (15.5, 45.125) → L1 4.5 mm → 孔 B (13.688, 41.0) → Rs6.1 旁 2.0 宽 VIN_SW 铜), + 离线校验异网最小净距 0.218、L1 12V 主块回到 11.90。**等 UP 布完再 `fix_c4()`**。 + ④ ⬜ 剩下断网:+3V3_HUB / CFGSEL0 / SDA / VBUS_DET / VDAC1 / VDAC4 —— 拟用对话框「所选网络」只对它们再跑一次自动布线 + (会话临时目录 `run_ar5.py`:doCrossProbeSelect 选网 → 所选网络 + 保留 + 四层全勾 → 运行 → 轮询)。 + ⑤ ⬜ 然后:缝合孔(`stitch_points` 喂板上快照)→ `pour_base --push` → `board_check --base` → DRC;内层关键区禁布区投板前要不要删再定。 + - ⚠ **所有布线搜索(含扫孔位这种小脚本)都上 10.5.5.13**(用户 2026-09-11 纠正):本机只做快照 / 校验 / 下发。 + - **用户:「你来布完剩下的」(2026-09-11 下午)**,进度: + · ✅ C4.2 改接(`ar_hybrid.fix_c4()`,服务器 `c4_scan` 选孔):L1 12V 主块最窄 8.95 → 11.90。 + · ✅ **UP 对:服务器 `up_route.py --centerline --pre-only --free-3v3hub --pitch 0.52`** —— 「DP 先 DM 跟」DM 总是 10~12 孔(DP 抢 J37 东端 1.2 mm 窄缝); + 改成整对当 0.78 宽线只在 L1 上 A*、再向两侧各偏 0.26 劈开:UP_DP 70.7 / UP_DM 68.8 mm(差 1.9)、每根只有预布 2 孔、全在 L1、 + 对内净距 0.213 / 对异网 0.195。为它腾位置删了 +5V / EFUSE_EN4 / HUB_RST 的自动布线铜 + +3V3_HUB 离 U32 > 8 mm 的远程线(`ar_hybrid.apply_up`)。 + ⚠ 期间踩坑:`strip()` 补预布段不看网,把刚删的 +3V3_HUB 远程线补回来压在 UP 上 —— 已删、已修(指定 nets 只补这些网);读板 UP 对异网净距 0 处不足。 + · ✅ 基准改为 `_base_preroute_0911b.json`(去 +3V3_HUB 远程线,加 C4 改接、UP、服务器补网 A),`ar_hybrid.SUBSET` 已指向它。 + · ✅ 「所选网络」自动布线补 9 网(`run_ar5.py`:单选框要调 input 的 onChange,点 label 不生效):接通 VBUS_DET / EFUSE_EN4 / HUB_RST。 + · ✅ 服务器 `route_nets.py`(按板上铜分连通块、每块挑代表、route_one 连树)补网 A:SDA / VDAC1(97 mm / 11 孔)/ VDAC4(142 mm / 13 孔)接通, + +3V3_HUB 7 块 → 2 块;离线复核 0 处净距不足,已下发。 + · ⬜ **还剩 3 只脚真被围死**(线宽 0.15~0.2 也布不出):+5V J37.19(L1 上北 UP、南 USB4、下面 L4 是 U32 南排脚)、 + CFGSEL0 U32.41→R711.1、+3V3_HUB C744.1+U32.52 那一块(U32 西南角)。要么挪 UP / 拆邻线重排,要么客户端手连。 + · 快照:`r2/_base_board_ar_final_0911.json`(补 9 网后);服务器结果 `_up_route.cl_b52.json`、`_route_nets.A.json`。 + · 用户选「继续拆邻线重排」: + - ✅ **+5V J37.19**:UP 中心线整板障碍下加禁区重布失败(`fix3.py`),改走焊盘**南沿**:L1 y 31.0 东去接 J37.32(同为 +5V), + 0.2 宽,离线校验异网最小 0.181(USB4_DP 孔 0.195)—— 构造 3 段已下发,读板 +5V 一整块。 + - ❌ U32 南 / 西南区(`fix3.py --no-up --rip ... --order ...`,服务器 8 种拆法 / 顺序,结果 `_fix3.V1~8.json` / `_fix3.noup.json`): + **没有一种优于现状**(现状断 2:+3V3_HUB 的 C744.1+U32.52 块、CFGSEL0;各变体最少断 3)。$4N596(U32.51→R724.1)一拆就布不回, + 它和 C744.1 抢同一条出路;CFGSEL0/1、NONREM0/1、VBUS_DET 挤在 U32 南排 0.5 脚距出口,贪心 A* 解不开 ⇒ **保留现状不拆**。 + - ⬜ **投板前必须手连(或微调 C744 / R711 摆位)**:C744.1→+3V3_HUB 主网(U32.52 = VDDA33)、U32.41→R711.1(CFGSEL0 strap)。 + · 收尾第一轮:缝合孔 103(服务器 `stitch_srv.py` 喂板上快照算,本机复核 0 问题后下发)→ `reload_base` → `pour_base --push` + (119 块填 110,功率铜面全填;L1 12V 主块 13.20、VIN_SW 7.41)→ `board_check`:没通 +3V3_HUB / CFGSEL0(上面两处)+ GND 6 只脚 + (J1.2/J1.3/J26.1/J27.1 通孔、U13.7/U20.40 早就挂着「要补地孔」)。 + · ⚠ **DRC 查出内层短路 —— 我的锅**:`route_nets.py` 第一版只拿 L1/L4 的线当障碍,补网 A 的孔戳在 EasyEDA 留在 L2/L3 上的线上 + (VDAC1 孔压 L3 SDA、+3V3_HUB 孔压 L2 NTC2 = 0 mil;SDA / VDAC1 孔离内层线 3.9 / 4.9 mil;+3V3_HUB 叠孔 1 对);本机复核也只查了 L1/L4。 + 另 USB5 对内 5.6 mil(「所选网络」那轮 EasyEDA 在 USB5 上加的碎段)→ `strip(USB5)` 已清。 + 修法:`route_nets.py` 加内层线挡过孔(包 `grid_now`,沿内层线在 L1 过孔图上封一圈)——但整网重布 VDAC1 要 273 mm / 25 孔,不要; + 改用服务器 `via_nudge.py` **只挪那 4 颗孔**(0.14~1.47 mm,改接线长度基本不变),删 1 颗叠孔;本机四层全查 0 问题。 + ⇒ **以后本机复核过孔一律查四层**。基准 0911b 已同步(挪孔 + J37.19 改接)。 + · ✅ **收尾第二轮(= 板上现在这版,快照 `r2/_base_board_final_0911.json`,图 `r2/AR-hybrid-final-4layer.png`)**: + 挪孔下发读回 0 缺 → `reload_base` 逐项相等 → `pour_base --push` 119 填 110(功率铜面全填)→ `board_check`:**110 / 113 全通**, + 没通 = +3V3_HUB(C744.1+U32.52 块)、CFGSEL0(U32.41–R711.1)、GND 6 只脚(同前)→ **DRC 间距错误 0 条真问题**: + 剩插槽封装自带 5 条 + UP 在 J23 口 0.15 颈缩 6 条(USB-C 盘 0.3 宽,已知);连接性 39 条(这个计数不可靠,以 board_check 为准)。 + 板上:1779 段(L1 629 / L4 1024 / L2 53 / L3 73)/ 567 孔(GND 346 含缝合 103)。L2/L3 上 8 块关键区禁布区还在(投板前删不删待定)。 + · ⬜ 待用户:① 手连 C744.1→+3V3_HUB、U32.41→R711.1(投板前必须);② U13.7 / U20.40 补地孔;③ 内层禁布区删不删; + ④ 手连之后跑 `pour_base --push` + `board_check --base` + `drc_read --base`。 + · ⚠ **用户手连之后(2026-09-11 傍晚)板子变坏了**:客户端推挤把 U32 周围一片线挤走,对「手连前」快照删 156 段 / 加 176 段, + `board_check` 没连通 3 → **13**(新断 XTAL1/XTAL2〔各 4 块〕、NONREM0/1、VBUS_DET、CFGSEL1、HUB_RST、VBUS_UP、BLD_A、BLD_REF、 + +3V3_HUB 改断 R716.2;CFGSEL0 仍断);好的一面:C744.1 接上了、U13.7 / U20.40 挨上铜了(新增 GND 孔 23)。 + ⚠ 我跑的 `pour_base --push` 在 JS_DEL 那步删完铜面就 **save()** 了(随后被我停掉:119 块只建回 96、未填)⇒ 用户的手改已被存盘, + 「回到上次保存」回不到手连前。手连前完整快照:`r2/_base_board_final_0911.json`(1779 段 / 567 孔)。**等用户定怎么恢复**。 + · 用户选「按快照恢复、留地孔」:手改后的板备份 `r2/_base_board_usermanual_0911.json`;用户新加的 GND 里对手连前铜(四层)不冲突的 + 14 孔 / 30 段留下(`r2/_usermanual_gnd_keep.json`)。`restore.py`(会话临时目录):删四层全部线 / 孔 → 下发快照 + 留下的 GND。 + ⚠ 第一次批量删漏了 4 段(EasyEDA 删到一半在拆 / 并段,ID 变了),脚本的「没删干净就停」挡住了;逐段再删后重跑,下发 1809 段 / 581 孔 0 失败, + 读板回到 110 / 113(U13.7、U20.40 挨上地了)。 + ⚠ 但 DRC 间距错误 5 → 50(0 mil 碰铜一片):**用户手连时还挪了 17 个元件**(Y1 / C740 / C741 / R723 晶振一团、C744 / C745、 + R709~R712 / R716 / R719 / R720 strap 电阻、R4 / R5 / R6 / U29),旧走线对不上新焊盘;`board_check` 用的是旧焊盘文件看不出来。 + ⇒ 按 `_base_place_live.json`(其余 128 件与板上逐件一致,= 手连前摆位)用 `place_base.push(only=17 件)` 挪回,读回 145 件全对。 + ⇒ **以后判恢复要同时比元件位置**;读板判连通前若怀疑动过件,先 `place_base --dump` 重抓焊盘。 + 挪回后 DRC 仍多 15 条(晶振一带 XTAL1/2 碰 Y1 焊盘、SDA5 碰 XTAL2,西侧 +12V 填充压 BLD_A / R6.1): + `getPrimitivesInRegion` 查出**手连还留下 10 段圆弧**(XTAL1/2 ×9 在 Y1 周围、+12V ×1,客户端布线的圆角)和 **2 块 +12V 填充** + (L4,(4.4~6.7, 42.9~44.9) 与 (2.2~5.1, 50.0~53.2);底板脚本从不画填充,V12_PATCH 是铺铜)—— 恢复只重建了线 / 孔,它们还在手连时的位置。 + ⇒ 全部删除后重铺 + DRC。**恢复 / 对比板面要查全图元类型:线、孔、圆弧、填充、元件位置**。 + · ✅ **恢复完成(= 板上现在这版,快照 `r2/_base_board_restored_0911.json`)**:圆弧 10 / 填充 2 删净 → `pour_base --push` 119 填 110 + (功率铜面全填)→ `board_check` **110 / 113**(没通 = +3V3_HUB 的 C744.1 块、CFGSEL0 U32.41–R711.1、GND 通孔 J1.2/J1.3/J26.1/J27.1; + U13.7 / U20.40 这回挨上地了)→ **DRC 间距错误只剩插槽封装自带 5 条 + UP 在 J23 口 0.15 颈缩 6 条**(连接性 26 条不可靠)。 + 板上 = 手连前(`_base_board_final_0911.json`)+ 用户新加且不冲突的 GND 14 孔 / 30 段。 + · ⬜ 仍待用户:C744.1→+3V3_HUB、U32.41→R711.1 两处手连(**布线模式先切「环绕」或「忽略障碍」,别用推挤**;也别挪件); + 内层 8 块关键区禁布区投板前删不删。手连完:`pour_base --push` → `board_check --base` → `drc_read --base`。 + · 🔁 **用户随后要求「恢复我刚才手连的那版」**:`restore_manual.py`(会话临时目录)清空线 / 孔 / 圆弧 / 填充 → 17 件挪回手连位置 + (`place_base.push`)→ 按 `_base_board_usermanual_0911.json` 下发 1799 段 / 582 孔 + 8 段圆弧(快照里有完整参数;后来区域查询多出的 + 2 段小弧来历不明,没恢复)+ 2 块 +12V 填充 → `place_base --dump` 重抓焊盘 → 重铺 → 连通 / DRC。 + 三版存档:手连前 `_base_board_final_0911.json` / 恢复版 `_base_board_restored_0911.json`(摆位 `_base_place_live.premanual.json`、 + 焊盘 `_base_pads.premanual.json`)/ 手连版 `_base_board_usermanual_0911.json`。 + ✅ 已恢复(快照 `r2/_base_board_manual_restored_0911.json`):读回线 1810(拆段)/ 孔 582 / 弧 8 / 填充 2、17 件位置 0 不符;重抓焊盘; + 重铺 119 填 109(功率铜面全填);**DRC 间距错误只剩插槽封装自带 5 条**。 + ⭐⭐ **更正:「手连挤断 11 个网」是我误判** —— 当时 `board_check` 用的是件挪动之前的旧焊盘文件。重抓焊盘后用户那版: + CFGSEL0、strap 网、BLD_A/BLD_REF、HUB_RST、VBUS_UP 全通。`board_check` 报 XTAL1/XTAL2「3 块」也是误报 —— **它不读圆弧**, + 手连的圆角圆弧就是连接段;按弦近似算进去两网都是一整块。 + 真没通的只有:① +3V3_HUB:C746.1 / C750.1 / U32.5 / U32.64 那块与主网断开,最近缺口 ~0.9 mm(L4,(48.63, 41.38)↔(49.25, 42.03), + 手连前这里有一段 0.3 线,被改线拆掉了);② U29.3(GND,U29 被挪 + 转向)一根铜都不挨,看 L4 地铜盖不盖得到。 + ⬜ `board_check.py` 要补读圆弧(`pcb_PrimitiveArc`),否则手连出来的板永远误报。 + 用户问「看着连上的线 DRC 却报、重连一次就不报」= API 批量建线后客户端的连接性索引没刷新(`drc_read.py` 头注早记过)。 + `reload_base`(逐项相等)→ 重铺 119 填 109 → **DRC 连接性 357 → 2,间距错误仍只剩插槽封装 5 条**;XTAL1/2 DRC 不报(它认圆弧)。 + 剩下 2 条连接性 = +3V3_HUB 那块(~0.9 mm 缺口)+ U29.3 地。⇒ **API 下发后跑 DRC 之前一律先 reload**。 + - 自动布线对话框可经 DOM 操作(`布线` 菜单 → `自动布线...`;单选:布线网络 / 拐角 / 已有导线过孔 保留·移除 / 效果优先级; + 勾选框 `[class*=checkbox_]` 依次 = 所有层 / 顶层 / 底层 / 内层1 / 内层2(`active` 类 = 勾上);忽略网络列表会记住;按钮「运行」)。 + 点法照 `pour_base.JS_REBUILD` 的 React onClick;脚本在会话临时目录 `run_ar.py` / `dom3.js` / `dom4.js`,要长期用再收进 `ar_hybrid.py`。 +4. ⬜ 布完:只读快照 → 查内层 0 线 / 锁定铜未动 / 敏感网 / D± / 信号线侵入 L1 12V 与 L4 功率铜面(按真实走线做断面校核)→ + 缝合孔(`pour_base.stitch_points` 要改喂板上快照,它默认读 `_base_routes.json`)→ `pour_base --push` 重建铜面 → `board_check --base` → DRC。 + ⚠ 铜面现在全删了,**不管后面做不做,最后都要 `pour_base --push`**。 + +## ⭐⭐⭐⭐⭐ 2026-09-10 深夜:参考公开资料后用户拍板的一整套改动(进行中,按顺序做) + +调研(Microchip USB2517 检查清单 / AN26.2 / AN15.17、乐鑫 ESP32-S3 布局指南、TI TPS54622 / INA226 / SPRAAR7、 +Ott 叠层、多槽集群底板)之后,用户选定**全部**: +1. **补 Hub 晶振 1 MΩ 跨接电阻(XTAL1–XTAL2)—— 底板和 R1 载板都补**。检查清单 p9 原文: + "A 1 MΩ resistor connected across XTAL1 and XTAL2 is **required**. Failure to place this resistor will result in unstable + crystal operation.";数据手册 p52 Figure 9-1 也画着 1Meg。板上 XTAL1/XTAL2 只有 U32 / Y1 / C740 / C741 —— **漏了**。 +2. **Hub 改回 strap 模式(`CFG_SEL=000`)用 `PRT_SWP` 翻转北去三对 D± 极性**,删掉 U 形掉头 —— 推翻决策 #19(仅底板;R1 不变)。 +3. **U32 周边按检查清单重摆**:VDDA33 每脚 0.1 µF、VDD18PLL 1 µF 紧贴,RBIAS 紧贴 + 独立地孔,晶振 + 1 MΩ + 负载电容成团。 +4. **敏感网单层 + 换层回流**:晶振 / RBIAS / VDD18PLL / Buck 反馈 / Kelvin 只走 L4;D± 每根 ≤ 4 孔;换层孔旁补 GND 孔;天线附近缝合孔 2~3 mm。 +5. **L2 由整层 +3V3 改整层 GND**(双地,+3V3 ≈ 0.5 A 改走线)—— 改 D15 的 L2 决定。 +顺序:原理图(1、2)→ 叠层 / 规则(5)→ 摆位(3)→ 布线规则(4 + 去掉 U 形掉头)→ 服务器重布 → 下发 → 铺铜 → 验收。 + +**第 1 阶段(底板原理图,A4-HUB 页)进度**: +- `a4_hub.py` 已改(离线自检全过:38 件 / 137 段 / 短路 0 漏连 0 悬空 0):`to_strap_mode()` 把 13 脚端口改名 GND、 + R712 上拉旗换地旗;`add_straps()` 加 R724~R726(51/49/47 上拉 +3V3_HUB)、R727~R729(33/31/17 下拉 GND)、 + R723 1 MΩ(Y1 正上方 y=800,两端 XTAL1/XTAL2 端口);NC 表移出六个 strap 脚;B 块说明重写。 +- 1 MΩ 器件:`lib_Device.search()` 本机报 `TypeError: o[r].match is not a function`(传不传库 UUID 都一样), + 改用 **`lib_Device.getByLcscIds(['C26083'])`** 取到,`lib_Device.get()` 核过是 0402WGF1004TCE 1MΩ;已写进 `eda-parts.json`。 +- 文档已同步:五路设计文档决策清单 **19a**、§21.4 晶振表补 1 MΩ 行;R2 方案文档 BOM 表 Hub 行。 +- U32 strap 脚在底板上的位置(2026-09-10 实测):51/49 在西(外侧 1.6~2.2 mm 是 C751/C749)、47/33 在南、31/17 在东, + 外侧只有去耦和可改道的布线 —— 比 R1 载板(三颗 0 解)好,摆位阶段与去耦一起求解。 +- ⭐ **补一处关键遗漏**:PRT_SWP 只在片内对调,原理图上 Hub 侧 1/2、3/4、6/7 脚的端口网名**也要对调** + (1 脚 → USB1_DP …,`SWAP_ROWS`),否则片内翻了、网表没翻,极性反而错。 +- 截图发现的三处排版问题(几何验证 / text_clash / flag_clash 都抓不到)已修: + ① R728(31 脚)的 GND 端口标签被 R709/R710 的 `VBUS_DET` 输出端口 (90,360) 标签顶住 → 改挂一面朝上的地旗; + ② 平移过来的 VBUS 分压块 `VBUS_UP` 标签压 R725 → 整块再右移 40(`SHIFT_D=(40,380)`),R725 右端改竖线接到 47 行(端点相交); + ③ strap 电阻相邻两行只差 20:上一颗阻值字(`Name`=`{Value}`,本体下 15)落在下一颗位号(本体上 5)上 → + 下发后用 `sch_PrimitiveAttribute.modify(id,{valueVisible:false})` 隐藏 R724~R729 阻值字(R725 实测读回生效; + 清页重画会冲掉,已写进 `a4_hub.hide_strap_values()` 随每次下发走)。 + 新增 `port_label_clash()`:端口标签盒 vs 端口标签 / 两脚件本体,只报告不拦(R1 原有 VDD18 竖端口那条是盒子模型误报)。 +- `verify_sch` 的 FAIL = NC 表那 26 只故意悬空的脚(U32 ×24 + J23 A8/B8),逐只对上,预期内;`xpage` 漏接 0。 +- ✅ A4-HUB 已下发(第四版):38 件逐脚核对、strap 阻值字隐藏并存盘;verify_sch 的 ! = NC 26 只;xpage 漏接 0。 + 截图 `a4_hub_000d.png` 已发给用户,**等用户确认方向与排版**。 +- ✅ 用户确认排版(2026-09-11)。**PCB 导入变更已完成**: + - 整页重画让 A4-HUB 31 件的 uniqueId 整体 +66(skill §9o-2),对话框原本是 31 移除 + 38 增加(整窝 Hub 删了重建)。 + 新脚本 **`r2/uid_sync_base.py`** 按位号两阶段写回(旧值快照 `_base_uid_pre_sync.json`),回查 138 件一致无重号。 + - 之后对话框(`p1_import_rows2.py --base`,已加 `--base`)只剩真实差异:增加 R723~R729 ×7、改网络 18 条 + (U32 1/2、3/4、6/7 对调;13 脚与 R712.2 → GND;六只 strap 脚接新网;J23 CC 两个自动网名换号)、通道ID 属性 33 条。 + `pcb_import.py --base --apply --verify`:145 件位号 + 封装逐件对上;板上焊盘网名逐项读回核对无误。 + - `place_base.dump_live_positions` 的件数断言由写死 138 改为读原理图 BOM 件数。 + +**第 3 阶段(U32 周边按检查清单重摆)✅ 已下发并读回**(`place_base.py --only-hub --push`,29 件, +其余 116 件钉在板上现位不动;145 件位姿逐件对上、离线镜像模型与板上焊盘最大差 0.003 mm、朝向断言全过): +- ⭐ **用户拍板(2026-09-11):放开 U32 正南(J37 北排投影)/ 正北(J36 南排投影)两条窄带给 Hub 卫星件** + (`place_base.HUB_STRIPS`,推翻「插槽过孔带不放件」在这两小段上的适用)。不放开的话 46 脚去耦只能到 7~8 mm、 + 5/10 脚去耦 >15 mm(47 脚夹在 46 西边只能南出;5/10 脚被 D± 围死)。 +- 摆法见 `place_base.HUB_SAT` 注释(逐脚手排,坐标相对 U32 中心,U32 挪了会跟着走);卫星件免 U32 扇出圈。 + 焊盘中心距:VDD18PLL C743 1.37 / RBIAS R708 1.67 / VDD18 C742 1.34 / VDDA33 5·10·52·57 = 1.29·1.29·1.38·2.97 / + VDD33 46 C749 1.29 / 24 脚 C748 1.45 / VDD33PLL 64 C746 2.18;晶振 Y1 rot 0(X1 西北、X2 东南)+ C740/C741/R723 成团; + strap 2.0~5.6(直流,不敏感)。C751 10µF 放 DP_H 车道东边(+3V3_HUB 入口)。 +- 南带:C749 正对 46 脚;45→40 脚的件往东排成阶梯(每脚一层,40 脚 33.15、往西每脚低 0.30),R709 挂在 44 脚那层延长线上; + 最西的 R720 下沿到 y 30.27(进 J37 两排之间 ~1 mm)。这段 J37 北排槽针的过孔要改打到两排之间。 +- ⚠ 第 4 阶段要一起定的:① C750/C747(5/10 脚)地脚朝北,地孔拟打在正上方 J36 南排 GND 针 49.5 / 52.5 的**盘中孔** + (要塞孔);北去 D± 出脚各让 ~0.06 mm,USB3 在 C750 上方向西;② 57 脚的线要从 USB6 / 上行两组过孔之间斜下到 C745; + ③ R716(HUB_RST 上拉)的 +3V3_HUB 脚在 J37 两排之间,要沿 L4 接回西南 R726 那一撮; + ④ HUB_CX 东移 2.5 的理由(USB3 U 形掉头)已不存在,D± 构造重画时再决定回不回 49.0(卫星件坐标跟着 U32 走); + ⑤ 板上 Hub 区的旧走线已全部失效,服务器重布前 `--clear`。 + +**第 5 阶段(L2 由整层 +3V3 改整层 GND)✅**(2026-09-11): +- 代码侧上一轮已改好(`pour_base` 计划 GND-L2 ×13、`route_base.PLANE_NETS = ('GND', '+12V')`、`board_check --base` + 把 +3V3 当布线网查);这轮补了 `pcb_base` / `route_base` 里还写着「L2 +3V3」的注释。 +- 板上:`pour_base.py --swap-l2`(新)只删 L2(Inner1)的 13 块 +3V3 铜面轮廓、按计划建 13 块 GND-L2,**没有重填**; + 读回 L2 = GND ×13。填充留到服务器重布之后 `pour_base --push` 统一做。两层内层在 EasyEDA 里本来就是 SIGNAL(正片)层,不用改层属性。 + 离线 `pour_base.py` 自检全过,断面校核不变(VIN_SW 7.41 / L1 12V 13.20)。 +- ⚠ 后果(第 4 阶段处理):+3V3 现在是 **47 只焊盘的布线网**,其中五个槽各 3 只(南排 x 39.5、北排 x 40.5 / 41.5,在 L1), + 以前一针一孔扎进 L2 就完事,现在要一条 ~0.5 A 的干线(线宽 0.4)把 U19 → U20 / U35 / U6 / U7 / 五槽串起来; + 板上还有 34 个 +3V3 过孔原来是往 L2 扎的,现在悬空,重布 `--clear` 时一起删。 + +**第 4 阶段(布线规则 + 去掉 U 形掉头)✅ 代码完成、本地静态校验全过,还没上服务器重布**(2026-09-11): +- **D± 构造重画**(`route_base.dp_construct`):口 1~3 片内对调后北去三对与槽上同序,`usb3_uturn` 删除。 + USB1/2 阶梯 45° 上车道北上,到目标槽南排**外侧**东拐、在焊盘南端外打孔从南边进;USB3 贴着 C750 东侧直直北上, + 在 J36 两排之间西拐(DP 48.2 / DM 48.9)打孔从北边进;USB4 越过 5/10 脚供电孔再东去 DP_H(47.75 / 48.25); + USB5 出脚就东拐(43.75 / 44.25,C747 压在上面)。**USB1~5 每根 1 个孔**,构造长度差 0.5~1.9 mm。 +- **U32 北沿**(`u32_north` 重写):5/10 脚竖线北上 → 半路横接 C750 / C747 → J36 两排之间打孔上 L1 → L1 东去 x 66 + 落孔回 L4(虚拟落点 `fan:e3v3` 交给 A* 接 +3V3_HUB);电容地孔也在两排之间(**不用盘中孔了**);13/19 脚直连散热盘。 + 为此 **C750 挪到 5 脚西侧 (49.20, 45.91)、C747 挪到 10 脚东侧 (52.95, 45.25)**(焊盘中心距 2.52 / 1.93 mm): + 5/10 脚除了去耦还要供电,窄带正上方是 J36 南排焊盘,供电孔只能落在两排之间,电容只能偏到供电线一侧; + **C744 南移 0.15**(离 USB6_DM 西侧孔原来只有 0.04)。三件都已下发并读回。 +- **敏感网只走 L4**(`NOVIA_NETS`,A* 过孔代价 1e9、路径一换层就作废记未完成):XTAL1/2、RBIAS、VDD18PLL、VDD18、 + 两颗 Buck 的 FB(U19.4 = FB3V3、U30.4 = 自动网名,按脚取);Kelvin 两条走同一个无孔 A*。 +- **D± 换层旁补 GND 回流孔**(`dp_return_vias`,离最近换层孔 ≤ 1.3、最远 ≤ 2.6,可共用):静态校验 7 处放了 6 颗 + (上行 / USB6 共用一颗);**每根 D± ≤ 4 孔**(`dp_via_limit`,超了记未完成)。 +- **天线净空周边加密缝合**(`pour_base.stitch_points`):离净空框 0.9~3.0 mm、间距 ≥ 2 mm,干跑 10 颗(西 6 / 南 3 / 北 1); + 缝合孔统一落在 1 mm 子网格上,`pour_base.stitch` 删旧孔、`route_base.load_board_vias` 认缝合孔都改按子网格判。 +- 本地只跑了**纯几何**的构造 + 回流孔校验(`j23_bridges` / `u32_north` / `dp_construct` / `dp_return_vias`,不含 A*)。 +- ✅(2026-09-11 做完,见下面「第 4 阶段服务器重布」)服务器重布(`remote_route.ps1 -AcceptAny`,摆位 / 构造都改了,旧缓存没有可比性)→ `--clear` → `--push --force` + → `via_check` → `reload_base` → `pour_base --stitch` / `--push` → `board_check --base` → DRC。 + +3V3 这回先按普通网布一轮(47 只脚,其中五槽各 3 只在 L1),不行再上构造干线。 +- ⚠ 预判的难点(第 3/4 阶段一起设计):极性翻转后 USB3 从 U32 6/7 脚直接西北斜出接 J36 46/47; + 夹在 USB2 与 USB3 之间的 **5 脚(+3V3_HUB)原来往北出线,会被这对斜线挡住**,脚距 0.5 旁边塞不下过孔; + 10 脚同理。13 脚改 GND 后可从焊盘向内接散热焊盘(EP=GND)。`u32_north` / `usb3_uturn` / `dp_construct` 的 + 脚号 ↔ 网名假设都要按新网表改(现在 1 脚是 USB1_DP)。 +- ⬜ R1 载板补 1 MΩ(C2-HUB 页 + PCB2 找位置)。 + +**第 4 阶段服务器重布(2026-09-11 上午)**: +- 第 16 轮(`-Variants @('--grid 0.125','--grid 0.125 --repair') -AcceptAny`):v0 单轮胜出 **147 条**(拆线重布 50 轮 56 → 56 原地踏步,20 分钟白跑)。 + 总数比板上 160 版少,但**信号网 25 → 40**(降的全是 GND 打孔 80 → 51、+3V3 10 → 0);存 `_base_routes.r16-147.json`,没下发。 + XTAL1 / RBIAS / VDD18PLL 仍然没通 —— 第 3/4 阶段就是冲着它们去的。 +- ⭐ **根因:D± 回流孔落进晶振通道**。`dp_return_vias` 在所有信号网之前落孔、挑离换层孔最近的空格, + 上行那组挑了 (45.12, 40.62) —— 正好堵死 U32.60/61 往西的直出通道(孔外径 0.6,y 40.22~41.02 全堵); + XTAL2 只好北绕,绕出来的线又把 61/62/63 圈在它和芯片之间(NOVIA 不能打孔逃出来)。 + ⚠ 起初以为是卫星件的 GND 孔 —— 不是,普通 GND 孔是 `late`(信号之后)打的。 +- ⇒ 新构造 **`route_base.u32_west()`**(在 `dp_construct` 之后、`route_pairs` / 回流孔之前,坐标全按焊盘推算): + XTAL2 60 脚直西进 Y1.3(比脚心线高 0.07 让上行 DP 孔,3.85 mm);XTAL1 61 脚西去、从 Y1 上下两排焊盘正中穿过进 Y1.1 + (盘距 0.5,0.15 线两边各 ~0.175,6.64 mm;Y1 对角焊盘、XTAL1 的盘在远端,这已是最短);VDD18PLL → C743.1 1.46 mm; + RBIAS → R708.1 2.02 mm;**VDDA33 57 → C745.1、52 → C744.1**(各只有一条缝,回流孔改落 (45.25, 38.25) 时又正压 57 脚那条)。 + 本机静态校验(构造 + geom_check + 回流孔,不含 A*)全过;构造图 `static_west.png`(会话临时目录,没存)。 +- 第 17 轮(单轮 `--grid 0.125`,PyPy 153 s):**144 条、信号网 38**,XTAL1 / RBIAS / VDD18PLL 通了;新坏 $4N596(51 脚被 52 脚构造 + C744 挤到 + 只剩一条 ~0.19 宽的竖缝)。D± 七对与第 16 轮完全相同(USBUP DM 仍 8 孔超上限);NPTH 零压孔。已接受为 `_base_routes.json`。 +- 剩余信号网:Hub 本地 CFGSEL1 / VBUS_DET / $4N596 / +3V3_HUB(e3v3 落点、C744.1 另一头);回流孔 USB6 / 上行 ×2 落不下; + 其余是老面孔(U20 扇出一带 EFUSE_EN3~5 / PRSNT2#/5# / NTC1 / INT# / RXD0 / UP_VBUS_DET / FAN_TACH_IN、U35 的 SDA1/4/5 / SCL4、 + 风扇区 $6Nxx / FAN_12V_SW / FAN_PWM_L、J23 VBUS_UP、+5V J37、SDA / INA_ALERT、VIN_SW C4.2、+12V R4.2)。 +- ⚠ **+3V3 改布线网后占 367 mm 铜 + 47 孔**(平面时 41 mm),约全板走线的 9%,U20 / U35 一带变差多半是它挤的 ⇒ 下一步考虑构造干线。 +- ✅ **第 17 轮已下发并验收**:`--clear`(旧线 1857 / 孔 730)→ `--push --force` 2042 段 → `via_check` 642 孔逐个对上 → + `reload_base` 通过(板上 1999 段:EasyEDA 把共线相接的段合并了,离线数出可合并 62 处,不是丢线)→ + `pour_base --stitch --push`:缝合 116 颗、铜面 119 块填 113(功率铜面全填,空的 6 块是 GND-L4 碎瓦片),VIN_SW 最窄 6.80(要 6.5)→ + `board_check` **没连通 35 个网**,与布线器清单逐个对上(布线器自检另报 XTAL1/XTAL2/$3N173/NTC2「铜分成 2 块」,读板判全通,是它的误报)。 + DRC 间距错误 **21 条**:+3V3/+5V 线到异网孔 4.9~5.4 mil ×15(新)、GND 回流孔离 USB3_DM 构造孔 5 mil ×1(新)、 + UP 对内 7.3 mil ×4、板边 $1N114 1 mil ×1;另插槽封装自带 5 条、UP 对 7 段 0.15 颈缩。 +- ⭐ **DRC 新增那 16 条的根因:占用图「过孔图」的口径错了**(`route_base.grid_now` 与 `router.route_groups` / `pf_solve` 同一段写法): + ① 已布线打进过孔图时 `extra = VIA_D/2 + CLR − (halfw + ww/2)`,**丢了这条线自己的半宽** —— 0.4 的线旁 0.625 处照样能落孔(净距 0.125); + 正确是 `VIA_D/2 + CLR − halfw`(和 `build_grid` 里焊盘 / 旧孔同一套)。历来的「+5V 线离信号孔 4.9~5.4 mil」也是它。 + ② 已布的孔只 `block_rect` 进了走线图、**没进过孔图**,`free_via` 看不见它们 —— 回流孔 / GND 孔可以贴着别人的孔落。 + ③ 修 ① 后过孔图沿用走线图的保守取整(向外多封一整格),细线旁 0.625 这种合法落孔点也没了 ⇒ `Grid.block_both` / `block_track` + 加 `exact_v`:过孔图用精确模式(格点中心在框内才封),线再补 `VIA_EXACT_M = 0.04` 的采样余量。 + ⚠ `router.py` 前半段 `plan_all` / `fanout`(刀片那套)的 `block_track` 没改;刀片若再用 `route_groups` 会同样受益(更严)。 + ⚠ 本机默认网格 **G = 0.25**,服务器是 `--grid 0.125` —— 本机做静态校验 / 单测一定带上 `--grid 0.125`,否则取整会骗人。 + 单测(0.125 网格)6 点全对:0.4 线旁 0.625 封 / 0.75 放;0.15 线旁 0.625 放 / 0.5 封;旧孔旁 0.75 封 / 0.875 放。回流孔 7 处全落下。 +- 第 18 轮(西沿构造 + 过孔图修复,单轮 158 s):**158 条,但信号网 38 → 37**(新好 $2N70 $3N176 RXD0,新坏 $4N579 PRSNT1#), + 多的全是 GND 打孔失败 49 → 63(第 17 轮 49 条里读板只有 5 只 GND 脚真不挨铜,其余靠铺铜连上 —— 基本无害); + UP_DM 过孔 8 → 6(仍超 4)。**离线预判 DRC:线到异网孔 0、孔到异网孔 0**(第 17 轮 15 + 1,预判器拿第 17 轮验过与 DRC 一条不差)。 + `remote_route.ps1` 按总条数判优劣把它拒了 ⇒ **手动接受**(`_base_routes.r18-158.json` → `_base_routes.json`;第 17 轮存 `r17-144.json`)。 + ⚠ 以后比较版本看**信号网数 + 预判 DRC**,别看总条数(GND 打孔失败会把总数搅乱)。工具:`.claude/r2/route_compare.py [新] [旧]`(默认 新 = `_base_routes.json`、旧 = `r17-144`)。 +- ✅ **第 18 轮已下发并验收(= 板上现在这版,`onboard.json` 已更新)**:NPTH 零压孔;`--clear` → `--push --force` 2007 段 → + `via_check` 627 孔逐个对上 → `reload_base` 通过 → 缝合 125 颗、铜面 119 块填 113(功率铜面全填)、断面校核同上 → + `board_check` **没连通 34 个网**(不挨铜的 GND 脚仍是 J1.2/J1.3/J26.1/J27.1/U13.7 五只 ⇒ 多出的 GND 打孔失败全被铺铜兜住)→ + **DRC 间距错误 21 → 1**(只剩板边到 $1N114 1 mil;UP 对内 7.3 mil ×4 也跟着没了,同一个 bug);差分对 0.15 颈缩 6 段、插槽封装自带 5 条。 + +**+3V3 定点构造(2026-09-11,用户选「定点改」,不做全套干线)**: +- 服务器对照实验(`route_base` 新增诊断开关 `--3v3-plane` / `--3v3-skip`,结果只做对照、别下发):以第 18 轮为底, + 信号网 **37 → 33(每脚一孔的平面式)/ 29(完全不布)** ⇒ +3V3 最多挡 8 个网,现实能救 3~5 个。 + 完全不布时救回:U20 组 EFUSE_EN4/5、INT#、NTC1、PRSNT1#/5#、UP_VBUS_DET;U35 组 SCL4、SDA1、SDA5;电源旁 $2N72。 +- 冲突定位(拿 skip 版里这些网的走线对第 18 轮的 +3V3 铜):① 西南段(电源经 x≈29 斜下喂 U13/C11 + y 56.1 那排孔)→ INT#/SCL4/SDA1; + ② x≈40 附近 L1 跳线(J36 过孔带里绕 U35 西侧)→ SDA5;③ 北东支 y≈81 / 南东支 y≈55 / U20 的 +3V3 脚附近 → INT#/PRSNT5#/EFUSE_EN5。 + 离 +3V3 铜 1 mm 内卡住的脚只有 6 只,全是上拉 / 分压电阻的信号脚(另一脚就是 +3V3,横排里 +3V3 脚与信号脚交替)。 +- ⭐ 两条几何事实:**插槽键位缺口**(偏移 −5.5 / −4.5 没针,x 42.85~45.15)五个槽两排都没针没孔;但 **NPTH 定位柱也在 x 44.15、槽心线上**。 + **U13 四面被围**(西 Kelvin、北 12V/VIN_SW 脚、东列信号、南 VIN_SW 铜),+3V3(6 脚)只能从东南角进;L1 在 x < 27.8 是 12V 主块, + U13 的信号往东只能先走 L4 —— 旧走法从东北喂 U13 必然横在它们前面。 +- ⇒ **`route_base.v3_trunk()`**(`u32_west` 之后,诊断开关下跳过): + A. U35 东侧旁路:J36 北排 9/10 L1 并线 → 槽内孔 → L4 y 51.0 东到键位列 x 44.0 → 北上穿 A4M 走廊 → y 67.6 西拐 → 孔上 L1 接 J35.40 / 9 / 10; + B. U13 东南进:U13.6 ↔ C11.1 往下到 **y 40.45** → L4 东去 → 孔 (28.5, 39.5) 上 L1 → y 39.5 东去横穿 I²C 车道 → 孔 (39.3, 39.5) 回 L4 北上 → 槽外孔上 L1 接 J36.40。 + 17 段 / 5 孔 / ~62 mm,WALL 落点 3 个(旁路走廊中段 ×2、L1 横段中点);另查 L1 不压 12V 主块 / 指头。 + ⚠ 起初 B 段走 y 41.9,服务器 geom_check 报「+3V3 线离 +12V 线 −0.325」—— 本机静态校验漏跑了 `kelvin()` / `v12_handoff()`。 + **本机静态校验要按 plan_all 完整顺序(Kelvin → 12V 过渡 → J23 桥 → U32 北沿 → D± → U32 西沿 → v3_trunk)**。 + ⚠ 代价:C11 本来就坐在 VIN_SW 铜的东北角里,y 40.45 这条线在 VIN_SW-2 顶端(x 17.1~19.75)划一道 ~0.7 的缝(电流去 Rs6.1 可从缝下过)。 +- ⭐⭐ **顺带挖出 U13 的 SDA / INA_ALERT 一直不通的真正原因:Kelvin IN− 把 U13 东列圈死了**。 + IN−(+12V,只走 L4、最先布)37 mm:U13.9 → 从芯片底下穿到南边 → y 41.25 东去 → x 23.5 北上 → 斜到 (27.75, 47.4) → 北上 50.5 → + 沿 y 50.6 西拐到 x 15 → 下到 Rs6.2。它 + IN+(6.7 mm)+ Rs6 + U13 围成闭合圈,东列 SDA/SCL/INA_ALERT 在圈里:L4 出不去,L1 在 x < 27.8 是 12V 主块。 + 根源是引脚顺序与 Rs6 方向交叉:U13.10(IN+,在上)接 Rs6 **南**端 VIN_SW,U13.9(IN−,在下)接 Rs6 **北**端 +12V —— 两条都只许 L4,必有一条绕远。 + 最干净的解:**原理图对调 IN+ / IN−**(INA226 读数变负,固件取一次反)。⬜ 待用户拍板(改原理图 + 导入 + 固件)。 + 固件侧(`firmware/components/drv/ina226.c`):电流有符号,SW-8 反灌判据靠符号 ⇒ 输入那片(0x43)读数取反即可;ALERT 寄存器没配置过,无告警方向要翻。 +- 第 19 轮(定点构造第一版):信号网 37 → 40,**但 +3V3 断成 6 块**,结果不作数。两个原因: + ① `router.route_net` 的 WALL 种子 bug:种子挑「出口最多」的焊盘(C9),src = 它的出口 ∪ WALL 格点,两者之间没铜 ⇒ 长成两棵树还报布通。 + 已修:有 WALL 就只从 WALL 里挑种子。 + ② 我的 A、B 两段构造本身不相连(A 接 J36 北排 9/10、B 接南排 40,同槽两排不相通)⇒ 两组 WALL 在两块铜上。已修:B 的 L4 竖线北上穿 J36 槽内东接孔 J。 + 另:B 竖线 39.3 时它的孔在走线图上保守封到 x 40.0,XTAL1 绕 Y1 西侧的 2 格通道被堵 ⇒ 改 38.9。 +- ⭐ **布线器自己的 [连通性] 不可靠**:第 18 轮它报「+3V3 铜分成 11 块」,读板 `board_check` 判通;穿盘而过的线也会报「一根铜都没有」。 + ⇒ `route_compare.py` 加**离线铜连通检查**(按铜重叠并查集,平面网 GND/+12V 不判);拿第 18 轮验过:33 个网 = `board_check` 的 34 条去掉 GND 那条。 + **以后比较版本必须看这一项**(信号网数 + 预判 DRC + 离线连通)。 +- 第 20 轮(构造连成一块 + WALL 种子修复):信号网 40,**+3V3 仍断成 3 块**。离线找两两最近点:两颗 +3V3 孔 (43.38, 57.50) / (44.62, 56.12) + 贴着旁路竖段、差 0.12 没碰上 —— `route_net` 给 A* 的是 WALL 落点**外一圈的出口格点**(离中心 0.625),引出脚却只给**种子那一只**补, + 其余 WALL 的出口只进了 src。已修:出口格点 → 所属落点记成字典,路径从哪个出口出发就给哪只落点补引出脚。 + ⚠ 这版总数 158 与缓存打平,`remote_route.ps1` **自动接受了**(它只比总条数)⇒ 缓存已换回第 18 轮(= 板上版本)。 + `remote_route` 的接受判据以后该加「离线连通 + 信号网数」,现在先人工把关。 +- 第 21 轮(WALL 引出脚修复):**+3V3 终于连成一块**,DRC 预判 0 / 0,但**信号网 37 → 44** + (新好 CFGSEL1 VBUS_DET EFUSE_EN3/4/5 SCL4 SDA1 VDAC1 UP_DM FAN_12V_SW FAN_PWM_L $6N45; + 新坏 19 个,集中在 U32 南侧 strap CFGSEL0 / NONREM0/1 / HUB_RST、U35 北侧 SCL1/2 SDA2 MUX_RST#、VDAC3/4、EFUSE_EN1、NTC2…)。 + ⇒ **定点构造结论:不采用**。+3V3 真连通之后比第 18 轮布线器自己的走法差 7 个网;「最多挡 8 个」是上限,定点改兑现不了。 + `v3_trunk` 改为默认关(`--v3-trunk` 才启用,代码留着);两处 WALL 修复(种子只挑 WALL、全部 WALL 补引出脚)与离线连通检查是真 bug 修正,保留。 + **板上仍是第 18 轮,缓存 = `onboard.json` = `r18-158`**。各轮缓存:`r19` / `r20` / `r21`(均未下发)。 + +**⬜ 下一步(按收益排)**: +1. ~~+3V3 构造干线~~ → 定点构造做了 4 轮(19~21),**不采用**(+3V3 连通后信号网 44 > 37),保留第 18 轮。 + ✅ **U13 Kelvin IN+/IN− 对调(2026-09-11 用户同意)**: + - 原理图 `a1_input.py`:删 R1 的三段(10 脚直通 Rs6.1、9 脚短竖线、9 脚并 VBUS 横线),9 脚折线进 Rs6.1、10 脚挂 +12V 旗 + (原理图上也会交叉,所以用旗);说明并进右下【D】组(第一次放 (60,326) 压了 R6 旗的**标签** —— text_clash 只比引脚点,截图才看出来)。 + verify_sch PASS(U13.9 与 Rs6.1 同在 VIN_SW、U13.10 = +12V)、xpage 漏接 0、`port_audit --r2 BASE` 355 个可疑 0。 + - ⚠ `a1_input.py --push` 原来**不存盘** ⇒ 新元件没有 uniqueId;存盘了也还是空,**要打开一次「从原理图导入变更」对话框才分配** + (gge176~200)。之后 `uid_sync_base.py --push` 对齐 25 件,对话框只剩:通道ID 属性 + 无名网络换号 + **U13:9 +12V→VIN_SW、U13:10 VIN_SW→+12V**。 + `--push` 末尾已补 `sch_Document.save()`。`pcb_import --base --apply --verify`:145 件逐件对上。 + - 固件(`firmware/`,⚠ 这套是 **R1** 的固件):`ina226_set_reversed(addr, bool)` / `ina226_is_reversed()`,只对分流电压 / 电流取反, + 默认全部正接(R1 不变);`test_ina226` 17 → 20 例全绿,`host/test.sh` 14 组全绿。R2 固件启动时要对 0x43 打开(R2 方案文档 §8.1 A3 那行已写)。 + - `route_base.KELVIN`:U13.10 ↔ Rs6.2、U13.9 ↔ Rs6.1。 + - ⚠ 导入之后发现**板上布线不是第 18 轮**(四层都有线、136 孔、无 GND 孔,疑似客户端里跑过 EasyEDA 自动布线,07:38 之后;摆位 145 件未动)。 + 已备份到 `_base_board_backup_0911_0807.json`(2654 段 / 136 孔),用户选「覆盖,按新 Kelvin 重布」。 + - `place_base.py --dump` 的 `DUMP_JS` 原来**不自己开文档**(skill §9l):导入后前台是原理图 ⇒ `getAll()` 回 null、报 reading 'map'。已补 `openDocument`。 + 重抓后 `_base_pads.json`:U13.10 = +12V、U13.9 = VIN_SW(836 焊盘 / 113 网)。 + - 第 22 轮(新 Kelvin,`-AcceptAny`):信号网 38、离线断开 35、预判 DRC 0/0。**两条 Kelvin 缩到 7.3 / 6.7 mm**(原 IN− 37 mm 的圈没了), + U13 的 **SDA / SCL 通了**;INA_ALERT 仍不通 —— 2/5 两只 SCL 脚从芯片底下连(挡西)、SDA 出脚就斜向东北(挡东),3 脚夹死。 + - 第 23 轮(`EARLY_NETS = ('INA_ALERT',)`,普通信号之前先布):**信号网 35、离线断开 32**(历来最好),INA_ALERT 通了, + 但反过来 SDA / SCL 在 U13 断了。三个网抢同一侧出口,调顺序只能二选一。 + - ⇒ `route_base.u13_fan()`:3 / 4 脚各平直东出 1.2 mm(0.5 间距上 0.15 线净空 0.35),末端给 A* 落点;2/5 两只 SCL 照旧。 + 第 24 轮:信号网 38、离线断开 35、**预判 DRC 冒出 2 处**(GND 线离 EFUSE_EN5 孔 0.03),SDA 从直出末端照样出不去 —— 卡的不只是出脚。 + `u13_fan` 改为默认关(`--u13-fan` 才开)。 + - ✅ **下发第 23 轮**(总体最好:信号网 35 / 离线断开 32 / 预判 DRC 0)。代价:U13 的 **SDA / SCL 没接上**(INA_ALERT 通)。 + 第 22 轮正相反(SDA/SCL 通、INA_ALERT 不通,但总数多 3)—— 缓存 `r22` 留着,要换随时换。 + 各轮缓存 `r22` / `r23` / `r24`。 + - ✅ **U13 三个网整体构造出线(2026-09-11 下午,`route_base.u13_esc()`,默认开,`--no-u13-esc` 关;接替 `--u13-fan`)**: + - 走法(全在 L4,39 mm,2 孔):SCL 2/5 在芯片底下 x 20.5 相连,5 脚东出 → 45° 下到 y 41.9 东去 → 孔 (28.3, 41.9) 上 L1 + (J37 / J36 两个 12V 指头之间那条 L1 横带);SDA 4 脚 45° 东北 → 外壳盘孔阵两行之间 y 48.0 东去 → 孔 (33.0, 48.0) 上 L1; + INA_ALERT 3 脚 45° 东北(与 SDA 平行,中心距 0.354)→ R9E 与 J36 外壳盘孔阵之间那条 1.4 mm 走廊 x 27.05 北上到 y 57。 + 三个末端各给 A* 一个落点(`esc:SCL/SDA/INA`)。本机静态校验:geom_check 过,早段 GND 孔阵(R9E.2 / J36.65)余量 0.235、一颗不挤。 + - ⭐ **第 22~24 轮的过孔快照里有 131 颗 EasyEDA 自动布线残孔**(`_base_board_vias.json` 08:21,推第 23 轮之前抓的), + 那三轮都把它们当固定障碍绕着布(U13 旁就有一颗 VIN_SW、U35 西头有 INA_ALERT / SDA 的)。 + 重抓后「其余」= 0(715 = 布线 593 + 缝合 122)⇒ 第 25 轮起才是干净的对照,**第 23 轮的 32 不能直接拿来比**。 + - 服务器结果(离线铜连通口径): + · r25-v0 不构造(干净基线):31 个网断开,U13 的 SDA 不通 + · r25-v1 构造、SDA 孔 31.5:33,U13 三网全通(多断的在 U35 西头 SCL4 / SDA1 —— SDA/SCL 真接上后占了穿 J36 北排那条 L4 带) + · r25-v2 构造 + `--no-early`:37,INA_ALERT 反而不通 + · r26-v0/1/2/4(INA 北端 53 / SDA 不打孔 / SCL 不打孔 / 组合):33,与 r25-v1 断开清单完全相同 + · **r26-v3 SDA 孔 33.0:29,U13 三网全通**(逐块核过:SDA 7 脚 / SCL 8 脚 / INA_ALERT 3 脚各一整块),预判 DRC 0/0,NPTH 零压孔。 + 布线器自检报「SDA 分成 2 块 / SCL 3 块」是误报。对第 23 轮按日志口径:新好 SCL SDA SCL1/2 SDA1/2/5 MUX_RST# CFGSEL0 + NONREM0/1 HUB_RST FAN_EN FAN_PWM IO0 EFUSE_EN1 $2N72;新坏 INT# NTC1 EFUSE_EN3/4/5 SCL3 XTAL1 CFGSEL1 VBUS_DET UP_DM(6 孔)$2N70 风扇区 $6N45/48/55/64。 + - 缓存:`r25-v0/1/2`、`r26-v0~4`(同名 `.log` 是服务器日志)。 + - ✅ **r26-v3 已下发并验收(用户同意;= 板上现在这版,`_base_routes.json` = `onboard.json` = `r26-v3`)**: + `npth_base --check-routes` 零压孔 → `--clear`(1953 段 / 715 孔;清完读板四层导线 0、过孔 0,无内层残线)→ + `--push --force` 1935 段 → `via_check` 618 孔逐个对上 → `reload_base` 通过(板上 1870 → 1869 段,共线段合并)→ + 缝合 113、铜面 119 填 111(功率铜面全填,空的 8 块是 GND 碎瓦片)、VIN_SW 最窄 7.41 / L1 12V 13.20 → + `board_check` **没连通 30 个网**(第 23 轮 33;其中 GND 那条是不挨铜的 5 只脚 J1.2/J1.3/J26.1/J27.1/U13.7, + U20.40 / U30.1 这回挨上了 ⇒ 真断 29 = 离线预判)→ **DRC 间距错误 1 条**(板边到 $1N182 1 mil,老问题); + 差分对 UP 0.15 颈缩 6 段、插槽封装自带 5 条,同前。 + - `remote_route.ps1` 改:每个变体都拉回本机 `_base_routes.var.json / .log`(原来只留最优,对照组随远程目录一起删了)。 + ⚠ 它仍按**总条数**自动接受:第一批自动接受了最差的 v2,第二批接受的 v3 碰巧是对的 —— 跑完一律按离线连通人工复核、手动换缓存。 + `route_base --u13e NAME=VAL`(可多次)在变体里改 `U13E_*` 参数,不用改文件。 + - ⚠ A* 对小改动极敏感(一处改动就有 10~15 个网洗牌):单次结果看不出趋势 —— 先定好对照组,参数扰动开一批并行变体挑最好的(服务器 24 核)。 + - ✅ **第 23 轮已下发并验收(= 板上现在这版,`onboard.json` 已更新)**:NPTH 零压孔 → `--clear`(⚠ 只删 L1/L4 的 1926 段)→ + **另删内层 15/16 遗留的 724 段**(自动布线留下的;我们的设计从不在内层走线;循环删到 0,L1/L4 数目不变)→ + `--push --force` 1986 段 → `via_check` 593 孔逐个对上 → `reload_base` 通过(145 / 1953 / 593 / 836)→ + 缝合 122、铜面 119 填 113(功率铜面全填)、VIN_SW 最窄 7.41 → `board_check` **没连通 33 个网** → **DRC 间距错误 1 条** + (板边到 $1N182 1 mil,老问题,R9 串联段换了自动编号)。 + ⚠ `route_base --clear` 只清 L1/L4 —— 板上若有别处来的内层线,要另删。 + - ⬜ **不挨铜的 GND 脚 5 → 7 只**,新增 **U20.40(ESP32 接地焊盘)/ U30.1(5V Buck 地)**,要补地孔(其余 J1.2/J1.3/J26.1/J27.1/U13.7 同前)。 + - ⬜ A1 页截图(`a1_swap2.png` 已发用户)等用户确认方向与排版。 + - ⚠ 改 `.claude/r2/` 下的文件时别和 `remote_route.ps1` 同时跑:它先在本机 import `route_base`(间接 import `place_base`)再打包 —— + 改到一半的 `place_base` 让第 22 轮第一次在 `--snapshot-vias` 就挂了。 +2. **U32 南沿 strap / VBUS_DET 构造**:$4N596(51 脚被 52 脚构造 + C744 挤到只剩 ~0.19 的竖缝)、CFGSEL1(42 → R712)、 + VBUS_DET(44 → R710);+3V3_HUB 的 R716.2 / C749.1 / e3v3 落点。 +3. 回流孔:USB6、上行两处落不下(西侧孔带两边是晶振 / 57 脚构造);UP_DM 6 孔超上限 4。 +4. 风扇区($6N45/48/55/64/74、FAN_12V_SW、FAN_PWM_L)、J23 VBUS_UP、+5V 槽针(11 只全落空)、VIN_SW C4.2、+12V R4.2 —— 老面孔。 + (~~SDA / INA_ALERT~~ 已由 `u13_esc` 解决,第 26 轮。)U20 北沿一带 INT# / NTC1/2 / EFUSE_EN3~5 / PRSNT 这回集中断在一起,值得单独看。 + **U20 一簇诊断(2026-09-11 下午,进行中)**: + - 切线量化(U20 以南横切 y 58/50/40/30、竖切 x 70/60/50):L4 每道切线空余 100+ 条道、只用了 4~7 条 ⇒ **不是通道容量**; + 失败的 13 个网一根都没穿过任何一道切线 ⇒ 是端点被围。 + - 新工具 `reach_audit.py`(**只在服务器跑**,占用图上泛洪;本机 `/tmp` 下 `remote_audit.sh` 打包上传):默认 = 每个失败网的连通域 + 围墙网; + `--dump` 导出两层掩码(本机画图);`--starts` 按 route_net 的起步方式复核;`--replay` 在最终占用图上原样重放 route_net; + `--dbg-cmp` 和 `route_base --dbg-nets`(失败那一刻存占用图)配对,逐格比「当时封、最终空」。 + - 结论分两类: + · **B 类(最终图上也不通,真被围)**:一道横贯全板、两层同时封死的南北墙 —— L1 是 U20 扇出后西去的横线带(y 55~63、y 76~83) + + U20 西侧 x 70~75 那列扇出孔,L4 同一处是 U35 / U6 / U7 与它们的竖线、孔(围墙网:MUX_RST# RXD0 TXD0 IO0 +3V3 $6N49 GND)。 + 被它切断:INT#、NTC1、SCL3、$6N55、$6N64、FAN_PWM_L、+5V(J34/J35 段);局部口袋:NTC2(U20.38)、EFUSE_EN3(J36.11)、SDA4(U35.10)、PRSNT2# / PRSNT5#、风扇区几个。 + · **A 类(最终图上重放布得通,布线当时却报没布通)**:EFUSE_EN4/5、UP_VBUS_DET(第 26 轮还有 PRSNT1#)。最终图的铜只比当时多,本不该这样。 + - 顺带修掉 `route_net` 途中封过孔图的口径 bug(刚打的孔按 VIA_D + 2·CLR = 0.92 保守封 ⇒ 应为 VIA_D + CLR = 0.76 精确;刚布的线少算了自己的半宽), + 和 `grid_now` / `route_groups` 开轮建图同一套:`router.VIA_MAP_FIX = True`,`route_base --old-viamap` 退回旧口径做对照。 + 第 27 轮 A/B:旧口径与 r26-v3 **一段不差**(开关干净、结果可复现);新口径 离线断开 29 → 29、孔 618 → 602、预判 DRC 0/0 + (新好 PRSNT1# PRSNT2#,新坏 FAN_TACH_IN PRSNT3#)。**A 类没救回来 —— 这个 bug 是真的,但不是主因**。缓存 `r27-v0/1/2`(均未下发)。 + - ⭐ **A 类根因(`route_base --dbg-nets` + `reach_audit --dbg-cmp`,服务器 `/tmp` 下 `remote_dbg.sh`)**:失败那一刻比同一次运行的最终占用图 + 多封了 L1 458 格 / L4 276 格,按归属网的外框看**全在各网自己的焊盘附近**(SDA 的外框正好框住 U35/U6/U7/U20/R602)。 + 存缓存前没有改几何的后处理(只有 dedupe_vias),所以不是「后处理收紧」—— 是 **`route_net` 途中给引出脚占位时挑形状用的是主图 `g` + (种子那条干脆不传图),而 `route_groups` 真正发出去的引出脚用 `gt`**,两边挑出的直线 / L 形不一样:占的是一个形状、发的是另一个, + 每个网在自己脚边多封一小片「影子引出脚」,后布的网被它们挡死。`route_groups` 里本来有「两边判据必须同一张图」的注释,`route_net` 漏了。 + ⇒ `router.STUB_SAME_GRID = True`(占位也用 gt;引出脚的过孔图口径和干线一致),`route_base --old-stub` 退回。 + ⚠ **更正:第 28 轮 A/B 三组(新 / `--old-stub` / 扰动)与 r27-v0 逐段相同** —— 引出脚占位的形状在实际上没有差别,「影子引出脚」**不是**根因。 + `STUB_SAME_GRID` 让占位与发线同判据,本身是对的,保留(对结果零影响)。缓存 `r28-v0/1/2`(= r27-v0,均未下发)。 + 存缓存前只有 `dedupe_vias`(只补线不删线)、单轮 `--passes 1` ⇒ 失败时刻的铜应是最终铜的子集,那 458 格从哪来仍待查; + 另一个嫌疑是 `route_net` 的起点 / 终点筛选(终点只取最近 24 个出口、种子按出口数挑)—— 最终图上的重放是按最终图重算的起终点,不一定和当时一样。 + ⭐⭐ **真正根因(`--dbg-cmp` 扩展版)**:① 在失败那一刻的图上泛洪,J37.11 → U20.fan:20 **确实不通**(可达 3011 mm² 但碰不到)⇒ 不是 A* 漏路; + ② 差异格点离本网最终走线中位 0.46~0.55 mm,四个样本点**全都挨着一颗落点孔**(SDA 构造孔 (33.0,48.0)、SCL 构造孔 (28.3,41.9)、 + INA_ALERT 扇出孔 (78.5,76.63)、VDAC5 孔 (49.63,13.38)),最终缓存在那儿都有「两层各一段 0.2 宽」的 dedupe 补接段。 + ⇒ **影子孔**:扇出 / 构造的落点(虚拟焊盘)只挂在 L1,A* 要走 L4 时不在现成的孔上换层,而是在旁边 0.28 mm 再打一颗孔; + 它在布线途中一直占着地方(走线图半径 ~0.7),布完才被 `dedupe_vias` 合掉(「同网过孔合并」每轮 57~60 颗),最终图上看不见。 + U20 西侧那列扇出孔本来就密,EFUSE_EN4/5、UP_VBUS_DET 就是被这些影子孔挡死的。 + ⇒ `router.VIA_LAUNCH_BOTH = True`:落点形状标 `'VIA'`(扇出落点、U32 北沿 `fan:e3v3`、U13 构造的 SCL / SDA 孔;D± 构造的落点暂不动)的, + `route_net._nodes` 把**孔心另一层也算出口**(种子 / WALL 多源 / 终点三处都用它)。 + 第 29 轮 A/B:影子孔 **59 → 25 颗**(剩下的是没改的 D± / GND 落点),但离线断开 **29 → 32**(新好 INT# NTC2,新坏 RXD0 TXD0 SDA2 PRSNT1/2/3#), + **EFUSE_EN4/5、UP_VBUS_DET 仍不通**;旧行为对照与 r28-v0 一段不差。⇒ 影子孔是真 bug,但去掉它救不回这几个网 —— + U20 西侧就是挤,贪心顺序此消彼长。**`VIA_LAUNCH_BOTH` 默认关**(`--via-launch` 才开,代码留着)。缓存 `r29-v0/1/2`(均未下发)。 + - **现在的默认 = r28-v0**(VIA_MAP_FIX + STUB_SAME_GRID 开):离线断开 29、孔 602、预判 DRC 0/0,与板上 r26-v3 同分 ⇒ 不重新下发。 + - ⭐⭐ **B 类那道南北墙是摆位 / 引脚分配层面的结构问题**(查了墙上各网的两端): + **FAN_TACH_OUT / FAN_TACH_IN / FAN_EN 从 U20 南排(y 60.2,x 82~86)一路西去西北角风扇电路(x 17~27、y 75~95)**,MUX_RST# 从 U20 北排西去 U35.3(36.7, 62.2), + 这几根东西向长线加 L4 的 U35 / U6 / U7 一片,在 y 60~80 合成两层都封死的墙;往南去槽的 INT# / NTC / EFUSE_EN / PRSNT 全要穿它。 + (RXD0 / TXD0 / IO0 / EN 只是北去 J33,短,不是主因。)ESP32 在东、风扇在西北、槽在西南 —— 布线器怎么排都是此消彼长,第 26~29 轮四组 A/B 已证。 + 可选方向:① ESP32 引脚重分配(GPIO 矩阵可任意映射:风扇那组换到 U20 北排 / 西列靠北的脚,槽信号换到南排)—— 改原理图 + 固件引脚表,要先做可行性扫描; + ② 风扇电路整体东移靠近 U20(改摆位);③ 定点构造给 INT# / NTC1 / NTC2 等穿墙网画死通道(像 u13_esc,副作用不可控);④ 剩下的在客户端手工补。 + ✅ **用户选 ①(2026-09-11)**。现分配方向全反:**NTC1/NTC2 在北排东头(IO1/IO2)却要去南边**(RT601 (85,26) / RT602 (19,8)),**风扇组在南排(IO4~7)却要去西北角**。 + 试算不先改原理图:`route_base --u20-remap A|A2` 只改布线器读到的 U20 焊盘网名(自检:每个网在 U20 上仍恰好一只脚), + 缓存记 `u20_remap`、`--push` 看到就拒绝;`route_compare` 按同一张表换网名做离线连通。候选(模组脚 → IO,全走 GPIO matrix,不碰 USB / UART0 / strapping / PSRAM): + · A :4(IO4, ADC1_CH3)=NTC1 5(IO5, ADC1_CH4)=NTC2 39(IO1)=FAN_TACH_OUT 38(IO2)=FAN_TACH_IN 24(IO47)=FAN_PWM 25(IO48)=FAN_EN 6(IO6)=UP_VBUS_DET 7 / 23 空出 + · A2:同 A,FAN_PWM / FAN_EN 放 23(IO21) / 24(IO47),25 空出 + 引脚审计(`s3_pin_audit.audit()`,R8 八线严格口径):现分配 / A / A2 都是 ERROR 0,WARN 同为 IO0 strapping + UART0 两脚(有意为之)。 + 第 30 轮(离线断开,基线 r28-v0 = 29;缓存 `r30-v0/1/2`,带 `u20_remap` 标记、不能下发): + · A:29(新好 INT# NTC2 UP_VBUS_DET $6N64;新坏 EFUSE_EN2 PRSNT2# **RXD0 TXD0**) · A2:29(同 A) + · **A + `--via-launch`:28**(新好 NTC1 NTC2 INT# EFUSE_EN5 PRSNT5# $6N64;新坏 EFUSE_EN2 PRSNT2# RXD0 TXD0 SDA2)—— 目前最好;预判 DRC 均 0/0 + RXD0/TXD0 断是 A 自己造成的:它们固定在北排 36/37(UART0)要北上 J33,A 把风扇测速放在北排东头 38/39 往西走,正好横过。 + ⇒ 方案 **B**:38/39 空出,风扇整组集中到西列北段 22(IO14)=FAN_TACH_OUT 23(IO21)=FAN_TACH_IN 24(IO47)=FAN_PWM 25(IO48)=FAN_EN, + PRSNT5# 挪到南排 7(IO7),NTC1/NTC2 = 4(IO4)/5(IO5),UP_VBUS_DET = 6(IO6)。引脚审计 ERROR 0(同上 3 条 WARN)。 + 第 31 轮(缓存 `r31-v0/1/2`,带 `u20_remap`、不能下发):**B:27**(新好 FAN_TACH_IN NTC2 PRSNT5# UP_VBUS_DET;新坏 PRSNT2# RXD0)· + B + via-launch:28 · A2 + via-launch:27;预判 DRC 均 0/0。 + 六组重分配合看:**NTC2 六组全通**、INT# / PRSNT5# 四组通、UP_VBUS_DET 三组通(方向对了、收益稳定); + 但 **RXD0、PRSNT2# 六组全断**(系统性代价,不是洗牌);EFUSE_EN3/4/5、PRSNT3#、SCL3、SDA4 仍不通 —— U20 一簇 12 → 10,没根治。 + RXD0 为什么断:**扇出孔落在北排焊盘南边**(84.875, 76.625,模组本体一侧),J33 在北 18 mm —— `fanout()` 只挑「离焊盘最近」的空格点 + (奇数脚再往外错 1 mm),不管这个网要去哪;重分配后北排周围格局变了,最近的空位正好翻到背离目的地那一侧。PRSNT2# 同样是扇出孔那头没接上。 + ⇒ `fanout()` 加 **`--fan-dir W`**(默认关):候选按 距离 + W × 背离程度 排,目的地 = 本网其余脚(含落点)的质心。 + 第 32 轮(`r32-v0/1/2`):B + fan-dir 1.0:29 · B + fan-dir 2.5:28(EFUSE_EN3/4/5 全通,但新坏 EFUSE_EN2 PRSNT2# RXD0 SCL2 SDA3 SDA5 VDAC5 $3N192)· + 不重分配 + fan-dir 1.0:31 ⇒ **`--fan-dir` 不采用**(RXD0 照断、洗牌更大;默认关,代码留着)。 + - **小结(2026-09-11 晚,停在这里等用户拍板)**:U20 一簇做了 7 轮服务器试算(第 26~32 轮)。 + · 布线器两个真 bug 已修、默认开:途中封过孔图口径(`VIA_MAP_FIX`)、引出脚占位与发线同图(`STUB_SAME_GRID`)⇒ 默认结果 = r28-v0(29 个,孔 602)。 + · 影子孔(`--via-launch`)、朝目的地扇出(`--fan-dir`)都是真现象,但去掉后不净增 ⇒ 默认关。 + · 唯一稳定的正收益是**引脚重分配:方案 B 29 → 27**(NTC2 / PRSNT5# / UP_VBUS_DET / FAN_TACH_IN 通;代价 RXD0、PRSNT2# 在所有重分配变体里都断; + EFUSE_EN3/4/5、NTC1、PRSNT3#、SCL3 仍不通)。 + · 落地 B 要改:A3-CTRL 原理图(pinmap_base 那套删端口重建;24/25 要新接线、38/39 改 NC,不是纯互换)→ `pcb_pinswap.py` 的 WANT 表 → + `a3_ctrl.py` GPIO 表 / `_esp32_pinmap.json` r2_base(本来就过时)/ R2 文档 GPIO 表 → 服务器正式重布 → 下发验收; + RXD0 那一截(扇出孔落在北排南侧)另行手补或单独构造。 + · 板上仍是 r26-v3,缓存 = onboard;各轮缓存 r25~r32 都在 `.claude/r2/`(r30~r32 带 `u20_remap` 标记,`--push` 会拒绝)。 + ✅ **用户选「落地方案 B」(2026-09-11)**,已落地(设计记录见 R2 方案文档 §29.6): + · 原理图 `u20_remap_b.py --push`:A3-CTRL 删端口 / 旗 13、删线 7、J33 挪到 (450,420)、画线 7、建端口 12,读回改后状态逐项对上。 + J33 挪位是因为 U20 的 24/25 两行(y 480/470)原被 J33 的地线和端口标签占着;J33 地线改接 U20 地干线节点 (320,440)。 + · 验证:`verify_sch` 单脚网络 0 / 无名端口 0 / 一网多名 0(悬空 20 只全是有意空脚,数目与改前相同);`xpage` 真正漏接 0; + `port_audit --r2 BASE` 354 个可疑 0;截图已发用户(⬜ 等用户确认方向与排版)。 + · PCB `pcb_pinswap.py --push`(WANT = §29.5 那 9 只 + 方案 B 这 10 只,38/39 置空):19 只读回逐个对上; + `place_base --dump` 重抓 `_base_pads.json`(836 焊盘,U20 与方案 B 表全对);`pcb_import --base --probe`:**导入对话框 0 条变更**。 + · 源头表:`a3_ctrl.py` 的 PINMAP / U20_NC / J33 画法改成方案 B(顺带更正 §29.5 那 9 只一直没同步进来的网名),本地自检通过、 + `_esp32_pinmap.json` 的 `r2_base` 由它重写;R2 文档 §20.6 更正、新增 §29.6。 + · ✅ **第 33 轮(按真实焊盘重布)已下发并验收(= 板上现在这版,缓存 = onboard = `r33-v0`)**: + r33-v0 与试算 r31-v0 **逐段 / 逐孔 / 逐条日志完全相同**(原理图 → PCB 焊盘 → `_base_pads.json` 一路与试算一致); + 离线断开 27(新好 NTC2 PRSNT1# PRSNT5# UP_VBUS_DET,新坏 PRSNT3# RXD0)、预判 DRC 0/0、NPTH 零压孔;`--via-launch` 那组 28,不用。 + `--clear` 1869 段 / 731 孔(清完四层 0 线 0 孔)→ `--push --force` 1953 段 → `via_check` 617 孔逐个对上 → `reload_base` 通过(并 4 段)→ + 缝合 113、铜面 119 填 111(功率铜面全填)、VIN_SW 最窄 7.41 / L1 12V 13.20 → `board_check` **没连通 28**(GND 那条同前 ⇒ 真断 27;上一版 30)→ + **DRC 间距错误 1 条**(板边到 $1N182,老问题)。 + · ✅ **RXD0 补上 —— 第 34 轮已下发并验收(= 板上现在这版,缓存 = onboard = `r34-v0`)**: + `route_base --early-add A,B` 试算开关;`EARLY_NETS` 默认改为 `('INA_ALERT', 'RXD0')`(普通信号之前先布)。 + 第 34 轮三组(离线断开,r33-v0 = 27):**+RXD0:26**(新好 RXD0 INT# EFUSE_EN5 $6N64;新坏 SCL4 SDA2 VDAC1)· +RXD0,PRSNT3#:29(TXD0 断)· + +RXD0,TXD0:28 ⇒ 取 +RXD0。预判 DRC 0/0、NPTH 零压孔。 + `--clear` 1885 段 / 730 孔(清完四层 0 线 0 孔)→ `--push --force` 2056 段 → `via_check` 636 孔逐个对上 → `reload_base` 通过(并 4 段)→ + 缝合 100、铜面 119 填 113(功率铜面全填)、VIN_SW 最窄 7.41 / L1 12V 13.20 → `board_check` **没连通 27**(GND 那条 = 不挨铜的 6 只脚 + J1.2/J1.3/J26.1/J27.1/U13.7/**U20.40** ⇒ 真断 26,**RXD0 通**)→ **DRC 间距错误 1 条**(板边到 $1N182,老问题)。 + · 方案 B 这一簇前后对比(离线断开):第 26 轮 29 → 第 33 轮 27 → **第 34 轮 26**。U20 一簇仍断的:EFUSE_EN3/4、NTC1、PRSNT2#/3#、SCL3/SCL4、SDA2/SDA4、VDAC1。 + · ⬜ 待办:A3 页截图等用户确认方向与排版;U20.40(ESP32 接地焊盘)补地孔;R2 固件写的时候按 R2 文档 §29.5 + §29.6 的引脚表。 + · ⚠ **板上现在没有铺铜**:想借 `reload_base.CANCEL_JS` 关导入对话框,`import reload_base` 却**直接跑了它的主流程** + (模块顶层就执行,没有 `__main__` 保护)⇒ 删了 119 块铺铜边框、存盘、重载。重载前后元件 145 / 导线 1869 / 过孔 731 / 焊盘 836 逐项相等, + 布线和元件无损。下发流程里本来就有「reload → 重铺」,走完下发 `pour_base --push` 会重建;**若最后不下发,也要单独跑一次 `pour_base --push` 补回铺铜**。 + ✅ `reload_base.py` 已改:顶层 41 行收进 `main()` + `__main__` 保护,import 只拿常量 / 函数(实测 import 后 `CANCEL_JS` 可用、不触发重载)。 + 落地路子(选定方案后):`pinmap_base.py` 改原理图 → `pcb_pinswap.py` 直接改 PCB 焊盘网名(§29.5 那次就是这么换的,不走导入对话框)→ + `a3_ctrl.py` 的 GPIO 表、`_esp32_pinmap.json` 的 `r2_base`(⚠ 现在还是 §29.5 之前的旧分配,已过时)、固件引脚表一起改。 +5. R1 载板补 1 MΩ(C2-HUB 页 + PCB2)。 + +## ⭐⭐⭐⭐ 2026-09-10 深夜:填铜查通了、发现插槽定位柱压线,正在服务器重布(进行中) + +**已查清 / 已改(代码都在 `.claude/r2/`)**: +1. **「重建所有」填 0 块** = 飞线计算卡住(skill §9ae-4)。新脚本 `reload_base.py`:数基线 → 删铜面边框 → save → + reload → 再数、**必须与基线逐项相等**才放行。实测重载后导线 2222 → 2220(L4 丢 2 段,`board_check` 37 个网逐条不变,判为重合段被合并)。 +2. 重载后填出来了,但 **83 块只填 61 块,缺的正是大电流铜**:L1 12V 主块 + J37/J38 指头、L4 VIN_SW 主块、VIN_RAW 两块。 + 原因:读回的优先级**不按创建顺序**(整板 GND 拿到 18,功率铜 23~34),GND 先铺占完地盘。 + ⇒ `pour_base.plan()` 加 `pwr_cut`:**GND 底填在几何上挖掉同层功率铜面**,不再依赖优先级(skill §9j 第 6 条)。 + GND-L1 / GND-L4 各 13 → 31 块瓦片;断面校核不变(VIN_SW 7.41 / L1 12V 13.20)。 + ⚠ `board_check --base` **判不了填充**(按计划铜面判),填没填上要数 `pcb_PrimitivePoured` 对应的铜面名。 +3. **DRC「挖槽区域」= 封装自带的 NPTH**:五个 `PCIE-SMD_PCIE-64P11L` 插槽各两颗 **Ø1.21 定位柱,在槽心线上 x 44.15 / 67.30** + (e149 / e150)+ J23 两颗 Ø0.61(81.1 / 86.9, 6.456)(e55 / e56)。布线器原来**没有这些孔**: + USB1 D±(北上车道正压 J36/J35/J34 西柱)、+5V、SCL3、FAN_EN、PRSNT4#/5#、VDAC5、UP_DP、UP_VBUS_DET、VBUS_UP 共 17 处压孔, + 下单钻孔会切断。新脚本 `npth_base.py`(从 L2/L3 反焊盘拟合圆弧反解,写 `_base_npth.json`;`--check-routes` 校验缓存)。 + `route_base`:`NPTH` 进 `keep_rects()`(全层、线 + 孔),构造铜的 `geom_check` / `usb3_uturn` 加 `_npth_bad`; + USB1/2 北上车道 `DPC_SHIFT` 3.5/2.5 → **2.47/2.35**(竖线 45.28/45.78/46.40/46.90,西界柱、东界 USB3 掉头孔)。 + `pour_base` 缝合孔也避开 NPTH。 +4. **重布前的过孔快照是错的**:`router.load_vias()` 读板上全部过孔,布线下发之后再重算会把旧的 604 个布线孔 + 122 个缝合孔 + 当固定障碍。`route_base.load_board_vias()` 已改为剔除「布线缓存里的(同网 0.2 内)」和「缝合网格上的 GND」。 + 顺带发现 USB3_DM 掉头孔在板上比缓存偏了一格 5 mil(-0.127, +0.127),原因不明,下发后要逐孔对位置。 +5. `drc_read.py` 以前把「差分对错误」「同封装内间距错误」两类吞掉(只剩标题),已补。 + +**DRC 里另有待定**(不是这次引入的):~~六对 D± 对内长度差 56~136 mil > 规则 1 mm~~ → ✅ **用户定:放宽到 150 mil** +(`rules_base` 3.81 mm,R2 文档 §6.3 已记,规则已下发);UP 对 7 段 0.15 线宽(颈缩);GND 线碰 $6N45 线 0 mil(真短路,重布后再看); +插槽封装自己的外壳盘 65 压定位柱(封装内,库的事)。 + +**服务器重布结果(带 NPTH 障碍 + 干净的过孔快照,`-Variants @('--grid 0.125','--grid 0.125 --repair')`)**: +v1(拆线重布,17 分钟)胜出,**169 条**(旧 191):信号网 **40 个**(旧 40,换了 7 个:新坏 $3N173 $3N189 $6N64 FAN_TACH_OUT +SCL3 UP_VBUS_DET VDAC1,新好 EFUSE_EN1 FAN_PWM_L INA_ALERT NTC1 PRSNT2# PRSNT5# RXD0),GND 打孔失败 85 → 67、+3V3 10 → 15。 +`npth_base --check-routes` ✅ 零压孔;七对 D± 长度差 0.2~3.5 mm(USBUP 3.5 最大,规则 3.81 以内);⚠ USBUP 的 DM 打了 8 个孔(DP 2 个)。 +已接受为 `_base_routes.json`,正在下发(`--clear` 已删旧线 2220 段 / 孔 726)。下发后先 `via_check.py`(逐孔对位置)再重载。 + +**已下发并验收(169 条这一版)**:`via_check` 620 个布线孔逐个对上 + 缝合 109;`reload_base` 通过(导线少 3 段 ≤1%); +铺铜 119 块填 110,**功率铜面全部填出**(空的 9 块是没有本网孔的 GND/3V3 小瓦片);`board_check` 没连通 **35 个网**(旧 37); +DRC 间距错误 **40 → 18**:压定位孔 27 条、GND 碰 $6N45 短路都没了。剩 +5V 线到信号孔 4.9~5.4 mil(要 5.9)14 条、 +UP 对内线到孔 7.3 mil(要 7.9)4 条、板边到 $1N114 1 mil 1 条;另 UP 对 7 段 0.15 颈缩、插槽封装自带 5 条。 + +**走线方向(2026-09-10 用户定)**:插槽面 L1 顺槽长走(x)、背面 L4 横穿槽阵走(y),逆向每格代价 ×2(软偏好)。 +`route_base` 原来 `RT.LAYER_DIR = {}`(八方向同价),已改为 `{2:'v', 1:'h'}` + `CROSS_COST 2.0`,`--no-dir` 可退回对照。 +下一轮服务器重布不加 `-AcceptAny`:比 169 差就进 `_base_routes.rejected.json`,不覆盖板上这版。 +- 第一轮(方向偏好对全部网生效):v0 细网格 **168 条,信号网 40 → 30**,GND 打孔失败 67 → 81;方向符合度(`dir_stats.py`) + L1 顺 x 38.6% → **78.4%**、L4 顺 y 31.9% → **67.7%**;铜总长 4122 → 5051 mm(+22%)、过孔 620 → 652。 + 新坏 XTAL1 / RBIAS(U32 本地短连接)等 10 个、新好 20 个。存为 `_base_routes.r14-dir168.json`,**没下发**: + ⚠ **USBUP 长度差 3.5 → 5.7 mm(超 3.81 规则)**,USB6 / USBUP 过孔每根 2 → 4 个 —— 方向偏好把差分对也逼去换层了。 +- ⇒ `route_pairs()` 里临时 `RT.LAYER_DIR = {}`(D± 八方向同价,布完恢复),其余网照开 ×2。正在服务器重布。 +- 过孔快照改为按 **`_base_routes.onboard.json`**(`route_base --push` 成功后自动写,= 板上现在那一版)认布线孔; + 以前按 `_base_routes.json` 认,缓存被没下发的新结果换掉后,板上 620 个旧孔会被当成固定障碍。 + 当前 `onboard.json` = `r13-onboard169`(板上现在就是这版)。 +- 第二轮(D± 八方向同价、其余网 ×2):v1 拆线重布胜出,**160 条、信号网 27**(历来最好),GND 打孔失败 80、+3V3 11; + L1 顺 x 71.9%、L4 顺 y 64.3%;铜总长 4248 mm(比 169 版 +3%);七对 D± 与旧版完全相同(USBUP 3.5 mm ✓);NPTH ✅。 + 剩余信号网:$2N70 $6N45 $6N49 $6N64 $6N74 +3V3_HUB +5V EFUSE_EN2/3/5 FAN_12V_SW FAN_TACH_IN INA_ALERT INT# NTC2 PRSNT5# + RBIAS RXD0 SCL4 SDA SDA1 SDA4 VBUS_DET VBUS_UP VDAC4 VDD18PLL VIN_SW。 + ✅ **已下发(= 板上现在这版,`onboard.json` 已自动更新)**:via_check 643 + 缝合 87 逐个对上;重载通过(导线并 3 段); + 铺铜 119 块填 109,功率铜面全部填出;`board_check` **没连通 26 个网**(旧 35);DRC 间距错误 **5 条**(旧 18): + UP 对内线到孔 7.3 mil ×4、板边到 $1N114 1 mil ×1;另 UP 对 7 段 0.15 颈缩、插槽封装自带 5 条。 +- U32 卫星件离脚太远(摆位问题,不是布线参数):VDD18PLL 去耦 5.6 mm、RBIAS 7.6 mm、晶振 3.9/5.1 mm、 + +3V3_HUB 各脚到最近去耦 2.5~7.5 mm —— 这几个网正是一直布不通的那批。用户要求参考公开资料优化布局 / 走线,三路调研进行中。 + +**下发顺序(重布结果回来后)**:`npth_base --check-routes` → `route_base --clear` → `route_base --push --force` → +`pour_base --stitch` → `pour_base --push` → 数功率铜面是否全填 → `board_check --base` → `drc_read --base`。 +路由缓存备份:`_base_routes.r12-onboard191.json`(= 板上现在这版)。 + +## ⭐⭐⭐ 下次从这里开始(2026-09-10 夜,清上下文前写)—— 已被上一节接手 **板子现在的状态**(EasyEDA `BASE-PCB` `7b9524b6aaf6f235`,4 层,98×98): - 摆位已定稿并下发(138 件,5 插槽在 L1、133 件在 L4),读回校验全过。叠层 **L1 槽面 / L2 整层 +3V3 / L3 整层 GND / L4 器件面**。 diff --git a/刀片式方案规划-R2.md b/刀片式方案规划-R2.md index 6938bec..3b2a0da 100644 --- a/刀片式方案规划-R2.md +++ b/刀片式方案规划-R2.md @@ -29,9 +29,10 @@ | D11 | **DAC 沿用 DAC63204** | 固件 A4 驱动、NVM 安全默认值、R1 §4.5 三条外围硬要求零改动 | | **D11b** | ⚠️ **2026-09-08 改判:DAC 不放刀片,放底板 —— 2 颗喂 5 路**(就是 R1 的 U6/U7 那套原样搬)| 5 颗 → 2 颗;刀片再省 5 个无源件与一个 I²C 设备。**敢跨连接器的依据是设计文档 §4.4 的失效表**:`VDAC` 断线 = Rinj 悬空 = 3.890 V(正好是目标值)、对地短路 = 4.010 V,注入增益只有 0.2007,噪声与两板地差到输出衰减 5 倍。见 §15 | | D12 | **D± 留一条退路**:刀片与底板各引 4 pin 1.25 mm 座 | 金手指那条路万一不稳,割断改飞 5 根短线;代价 ¥2 | -| **D14** | **刀片板框硬上限 98 × 98 mm**(不是 100 × 100)| 用户要求刀片控制在 10×10 cm 内。留 2 mm 余量是因为 100.0 正好压在嘉立创特价档的边界上,尺寸判定没有余地。**当前实际 98 × 76,两个方向都有富余。** | +| **D14** | **刀片板框硬上限 98 × 98 mm**(不是 100 × 100)| 用户要求刀片控制在 10×10 cm 内。留 2 mm 余量是因为 100.0 正好压在嘉立创特价档的边界上,尺寸判定没有余地。~~当前实际 98 × 76~~ ⇒ **2026-09-11 用户拍板压到 90 × 68**(§34);同日晚 **主板转 180°、两条排线槽到顶部、U4 到右侧**(§35,已下发)。 | +| **D16** | **底板电源入口改 USB-C PD 取电**(2026-09-11 用户拍板「走方案 B」,取代决策 #20 的 DC-005):C 座 + CH224A 只请求 20V → LM61495 降压到 12V,12V 母线及以下不改 | 兼容各家手机氮化镓充电器的只有 PD(私有 100~120W 协议要手机鉴权);单口 20V×5A = 100W ⇒ 12V 侧约 95W,常态 10~25W 够、最坏 108W 靠固件限功率。见 §36 | | **D13** | **ESP32-S3 的原生 USB 接到 Hub 的第 6 个下行口**,删掉 J22 调试 USB-C,改留一个 5 针 UART 应急口 | **全机只剩一根线到电脑**(5 台手机 + 控制器共用上游)。详见 §8.2 | -| **D15** | **底板改 4 层、板框硬上限 98 × 98,插槽面只放 5 个插槽,其余器件全部放背面**(2026-09-10 用户拍板,取代 D5)| 2 层版布到 63 条卡死:D± 墙(19 个网 0 通过)+ 西侧 12V 干道(18 个网只能走底层跳)。4 层后 L2/L3 两块完整地给 D± 和所有信号当参考,墙不存在;背面没有刀片投影,高件不限位置;U32 可直接坐在中间槽正下方。**叠层:L1 插槽面 = 槽焊盘 + 12V 大铺铜 + 少量线 / ~~L2 GND~~ ⇒ **L2 整层 +3V3**(2026-09-10 用户拍板,见下)/ L3 GND / L4 器件面 = 全部器件 + 信号 + D±(参考 L3)+ 5V 局部铜**。 +| **D15** | **底板改 4 层、板框硬上限 98 × 98,插槽面只放 5 个插槽,其余器件全部放背面**(2026-09-10 用户拍板,取代 D5)| 2 层版布到 63 条卡死:D± 墙(19 个网 0 通过)+ 西侧 12V 干道(18 个网只能走底层跳)。4 层后 L2/L3 两块完整地给 D± 和所有信号当参考,墙不存在;背面没有刀片投影,高件不限位置;U32 可直接坐在中间槽正下方。**叠层:L1 插槽面 = 槽焊盘 + 12V 大铺铜 + 少量线 / ~~L2 GND~~ ⇒ ~~L2 整层 +3V3~~(2026-09-10 晚)⇒ **L2 整层 GND**(2026-09-10 深夜用户拍板:双地,L1 信号参考 L2 地、L4 参考 L3 地,换层回流靠 GND 孔闭合;依据 Ott 叠层 / 乐鑫 ESP32-S3 指南 / TI SPRAAR7;+3V3 约 0.5 A 改回布线)/ L3 GND / L4 器件面 = 全部器件 + 信号 + D±(参考 L3)+ 5V 局部铜**。 **L2 改 +3V3 的理由**:4 层布线跑了十轮,信号网卡在 37~38 个,大头是 +3V3 这棵 47 只脚、跨全板的电源树。L3 保持整层地(L4 上全部器件与 D± 的参考不变,M5「D± 参考层 L3 无开口」原样成立);L2 让出来做一整块 +3V3,+3V3 每脚打孔下去、不再布线。L1 上仅有的几段 D±(USB6 / 上行、USB4 的一跳)参考的是一整块 +3V3,同样不跨分割。曾考虑在 L3 分区,被否:L3 在 D± 下必须留地条,会把 +3V3 切成几块,+5V 平面也排不开。98 的理由同 D14。**插槽手焊**,工厂只贴背面。代价:2 层版布局布线作废(存档 `.claude/r2/archive_base2L/`);背面最高 12 mm(C2/C3 直立电解),底板下要 ≥ 15 mm 铜柱,外壳跟着改 | ### 0.2 本文档按这些默认值展开(要改说一声) @@ -123,7 +124,7 @@ | | 值 | |---|---| -| 刀片板框 | **98 × 76 mm**(硬上限 98×98,见 D14),1.6 mm 厚(金手指要求),四角 R2 | +| 刀片板框 | ~~98 × 76~~ ⇒ **90 × 68 mm**(2026-09-11,§34;硬上限 98×98,见 D14),1.6 mm 厚(金手指要求),四角 R2。下面分区图是 98×76 版,新数见 §34.1 | | 底板板框 | ~~110 × 125 mm~~ ⇒ **≤ 98 × 98 mm、4 层**(D15,2026-09-10),1.6 mm 厚(插槽保持力),四角 R5 | | 槽距 | **20.32 mm**(A4),5 槽跨度 81.28 mm | | 插槽 | PCI-E x4 直插,槽体 39 mm(A1) | @@ -226,7 +227,7 @@ R1 §22.3e 里有一处**自相矛盾**——「侧键面(贴合面)最高 | 底板 | **J33 调试应急口 5P 1.25 mm**(GND / TXD0 / RXD0 / EN / IO0) | 1 | **R2 新增(D13 的退路)** | | 底板 | **U35 TCA9548A** I²C 八路多路器 | 1 | **R2 新增(D8)** | | 底板 | U13 INA226(输入侧)+ Rs6 5 mΩ | 1 | R1 §19 | -| 底板 | U32 USB2517I + Y1 24 MHz + R708 12k + U31 AMS1117-3.3 + J23 上游 USB-C | 1 套 | R1 §21,**`CFG_SEL[2:0]=110` 不变**(R1 §21.6b) | +| 底板 | U32 USB2517I + Y1 24 MHz + R708 12k + U31 AMS1117-3.3 + J23 上游 USB-C | 1 套 | R1 §21,~~`CFG_SEL[2:0]=110` 不变~~ → **2026-09-10 改 `000`**:`PRT_SWP1~3` 上拉(口 1~3 片内对调,北去三对不再 U 形掉头)、`PRT_SWP4~6` 下拉,+ **`R723` 1 MΩ 跨晶振**(检查清单 required,R1 起漏了)。接法见 `.claude/r2/a4_hub.py` 文件头 | | 底板 | 风扇:Q7/Q9/Q10 + J26~J30 + RT601/602 | 1 套 | R1 §22.6 | | 底板 | **5 × PCI-E x4 插槽** | 5 | R2 新增 | | 底板 | D± 退路座 4pin 1.25 mm | 5 | **R2 新增(D12)** | @@ -345,6 +346,10 @@ A16 让给 `VDAC`(上下两针都是地,是全连接器夹得最干净的位 > 理由:U32 翻到背面后只能 rot 270(下行口朝北、USB1 在西),南去的几对要绕 U32 东侧; > Hub 在走廊 3 要绕三对、D± 最远 ≈ 80 mm,走廊 2 只绕两对、最远 ≈ 58 mm(估算 45/23/3/40/58)。 > M5 验收的「D± ≤ 45 mm」只有 U32 进中间槽正下方的过孔带才做得到,没选;两层版是 ~70 mm。 +> **2026-09-11 用户拍板:「插槽过孔带不放件」在 U32 正南 / 正北各开一条窄带的口子**(`place_base.HUB_STRIPS`: +> J37 北排投影 x 44~58.2 / y 30.2~34、J36 南排投影 x 44~58 / y 43.4~46.4)。走廊 2 净高 11.12 而 U32 占 9.75, +> 按检查清单「VDDA33 / VDD33 每脚 0.1 µF 紧贴」,南排 46 脚和北排 5 / 10 脚的去耦只有放进这两条才能 ≈1.3 mm +> (不放开是 7~8 mm / >15 mm)。代价:这两段槽针的过孔改打到两排之间;5 / 10 脚去耦的地孔拟打在正上方 J36 GND 针的盘中孔。 ### 6.1 叠层 @@ -381,9 +386,13 @@ R2 里 Hub 坐在槽阵正中、D± 又排在近端针位: | 最近一对(槽 3) | ≈ 8 mm | | 第 6 对(→ ESP32,D13) | ESP32 在 y 84~114,穿过槽阵,≈ **55 mm** | -USB 2.0 不要求 pair-to-pair 等长,只管 **intra-pair skew(目标 ≤ 1 mm)**, +USB 2.0 不要求 pair-to-pair 等长,只管 **intra-pair skew(≤ 150 mil = 3.81 mm)**, 所以 8 mm 与 41 mm 并存没问题。 +> 2026-09-10 用户定:底板 skew 由 1 mm 放宽到 **150 mil**。底板 D± 是按构造画的(北去 U 形掉头、南去东绕), +> 实测六对长度差 56~136 mil,全部超 1 mm;USB 2.0 HS 480 Mbps 下 150 mil ≈ 25 ps,是常用预算,不必加蛇形。 +> 规则在 `rules_base.DIFF['differentailPairLenTolerMax']`。 + **阻抗估算**(1.6 mm 双面板 1 oz 微带,εr ≈ 4.3): | 线宽 / 间距 | 估算 Zdiff | @@ -552,7 +561,7 @@ R1 §10.2 的四条关键回路**一条不变**,而且因为刀片小、只有 | 任务包 | 影响 | |---|---| | A2 HAL | 无 | -| A3 INA226 驱动 | 无(地址表从「六片不同地址」变成「五片同地址 + 一片输入侧」) | +| A3 INA226 驱动 | 地址表从「六片不同地址」变成「五片同地址 + 一片输入侧」。⚠ **底板输入侧 U13(0x43)的 IN+ / IN− 对调接**(2026-09-11,A1-INPUT:IN+ 接 Rs6 下游 +12V、IN− 接上游 VIN_SW —— 为了让两条 Kelvin 在 PCB 上不交叉;原来 IN− 绕 37 mm 把 U13 的 I²C 圈死)⇒ 芯片读数为负。驱动已加 `ina226_set_reversed()`(默认全部正接 = R1 行为),**R2 固件启动时必须调 `ina226_set_reversed(INA226_ADDR_INPUT, true)`**,否则 SW-8 反灌判据会把正常供电当成反灌 | | A4 DAC63204 驱动 | **无**(D11 的全部意义)。**D11b 之后连地址表都不用改**:仍是 R1 的 `U6` 0x4A / `U7` 0x4B 两颗、通道映射表原样,而且 DAC 挂主干总线,**写 DAC 不用进 mux 事务** | | **A5 74HC595 驱动** | ⛔ **作废**(D9 改用 PCA9555)。代码保留但不再挂进链路 | | A6 PCA9555 驱动 | **复用**,从 1 个实例变 5 个实例;「接地脚永远是输入」那条硬约束照旧 | @@ -1203,10 +1212,12 @@ T7 那颗 2A 慢断保险丝**当场就用同样的办法找到了**,见 §20. R1 的 `new` 表不能直接用:5 个 `VBUS_EN*` + 4 个 `KEY_*` 随 D9/D13 空了出来, 新增 `PRSNT#×5` 与 `MUX_RST#`。共 26 脚(23 信号 + `USB6_D±` + `IO0`/`TXD0`/`RXD0`/`EN`)。 -- `NTC1 = IO1` / `NTC2 = IO2` —— **必须 ADC1**(ADC2 与 WiFi 冲突),脚本里有断言。 +- `NTC1` / `NTC2` —— **必须 ADC1**(ADC2 与 WiFi 冲突),脚本里有断言。 + ~~`NTC1 = IO1` / `NTC2 = IO2`~~ ⇒ **2026-09-11 方案 B 改为 `NTC1 = IO4` / `NTC2 = IO5`**(仍是 ADC1,见 §29.6)。 - `USB6_DM = IO19` / `USB6_DP = IO20` —— 原生 USB 硬定死,脚名脚号从 `_p3_live.json` 查的。 - ⚠️ **模组是 R8(八线 PSRAM)还是 N8 没定**:本页按可能上 R8 保守处理,`IO35/36/37` 全部不接。 - 若确定 N8,这三脚可放出来当 GPIO —— 现在全板只剩 `IO47/IO48` 两个备用脚。 + 若确定 N8,这三脚可放出来当 GPIO。~~现在全板只剩 `IO47/IO48` 两个备用脚~~ ⇒ 方案 B 之后 + `IO47/IO48` 给了风扇,备用脚变成 **`IO1/IO2`**(模块脚 39/38,都是 ADC1)。 ### 20.7 ✅ T7 也一起结了:`F1` = `F1206SB2000V063TM`(2026-09-08) @@ -2041,6 +2052,7 @@ M4b 画的 37 段板框、M6 之后的状态,全都不在了(何时被删无 ⚠ 它以前不报,是因为**板框那时候是「导线」**(§27.3),DRC 根本没把它当板框。 ⇒ 要么下单时和嘉立创确认「金手指缺口处铜到板边 0.2 mm 可做」,要么把缺口收窄到 CEM 的 1.6 mm(clearance 变 0.35,但防呆筋的配合余量少 0.15)。**这一条需要用户拍板。** +⇒ ✅ **2026-09-11 晚 用户拍板 1.6**,已落地(§35.7),刀片 DRC 0 条。 ### 27.9 新增/改动的脚本 @@ -2476,6 +2488,34 @@ R1 §交接二 踩过一次(配错一格,把一个本来正确的风扇块 验收:原理图端口读回 8 个逐个对上;`xpage` 每个 `EFUSE_EN` 2 个端口 / 每个 `PRSNT` 3 个, **真正漏接 0**;PCB 焊盘读回 9 只脚逐个对上。 +### 29.6 ⛔ ESP32 的 NTC / 风扇 / UP_VBUS_DET / PRSNT5# 引脚**重新分配**(方案 B,2026-09-11 用户拍板) + +底板 4 层布线做到第 26 轮,U20 周围约 10 个网(INT#、NTC1/2、EFUSE_EN3~5、PRSNT…)断在同一道横贯全板、两层都封死的墙上。 +查墙上各网的两端(PROGRESS「U20 一簇诊断」):**NTC1/NTC2 在北排东头(IO1/IO2)却要去南边的热敏电阻**(RT601 (85,26) / RT602 (19,8)), +**风扇那组在南排(IO4~IO7)却要去西北角风扇电路** —— 两组方向全反,风扇线横穿全板就是那道墙。布线器层面四轮 A/B 都是此消彼长。 +服务器上先只改布线器读到的焊盘网名做试算(`route_base --u20-remap`),六组重分配里方案 B 最好:离线断开 **29 → 27**。 + +| 模块脚 | IO | 换前 | **换后** | +|---|---|---|---| +| 4 / 5 | IO4 / IO5(ADC1_CH3/CH4)| `FAN_TACH_OUT` / `FAN_TACH_IN` | **`NTC1` / `NTC2`** | +| 6 / 7 | IO6 / IO7 | `FAN_PWM` / `FAN_EN` | **`UP_VBUS_DET` / `PRSNT5#`** | +| 22 / 23 | IO14 / IO21 | `PRSNT5#` / `UP_VBUS_DET` | **`FAN_TACH_OUT` / `FAN_TACH_IN`** | +| 24 / 25 | IO47 / IO48 | 备用 | **`FAN_PWM` / `FAN_EN`** | +| 38 / 39 | IO2 / IO1 | `NTC2` / `NTC1` | **备用**(仍是 ADC1)| + +电气约束:全部走 GPIO matrix,不碰 USB(IO19/20)/ UART0(IO43/44)/ strapping(IO0/3/45/46)/ R8 PSRAM(IO35~37); +NTC 仍在 ADC1。`s3_pin_audit.audit()` 按 R8 八线严格口径:ERROR 0,WARN 与换前相同(IO0 strapping、UART0 两脚,均有意为之)。 +风扇测速线原理图上有 10k/3.3k 分压(最高 2.98 V),接任意 GPIO 都安全;`FAN_EN` 复位高阻由 A6 的 100k 下拉保证关断,IO48 非 strapping。 + +**怎么改的**:原理图 `u20_remap_b.py`(删端口重建;24/25 新接线、38/39 删端口删线;**J33 从 (430,455) 挪到 (450,420)** 给 24/25 两行让位, +地线改接 U20 地干线节点 (320,440));PCB `pcb_pinswap.py`(`WANT` 加这 10 只,38/39 置空);源头表 `a3_ctrl.py` 的 `PINMAP` / `U20_NC` / +J33 画法、`_esp32_pinmap.json` 的 `r2_base` 一起改(顺带把 §29.5 那 9 只一直没同步进 `a3_ctrl.py` 的网名也更正了)。 +验收:原理图读回改后状态逐项对上;`verify_sch` 单脚网络 0、无名端口 0(悬空只剩 20 只有意空脚,数目与换前相同); +`xpage` 真正漏接 0;`port_audit --r2 BASE` 354 个可疑 0;PCB 焊盘读回 19 只逐个对上;**「从原理图导入变更」0 条变更**。 + +⚠ **固件**:R2 底板固件尚未开写;写的时候按本节 + §29.5 的表(`_esp32_pinmap.json` 的 `r2_base` 是机器可读版)。 +代价:第 31 轮试算里 RXD0(应急 UART)与 PRSNT2# 在所有重分配变体都断 —— 布线器问题(RXD0 的扇出孔落在北排焊盘南侧),另补。 + --- ## 30. `+3V3` 铜墙(2026-09-10 用户拍板) @@ -2683,3 +2723,605 @@ M10 旋转插槽后,旧路由器不是单纯左右镜像:D± 从插槽北排 恰好堵住 U32→U20 的 USB6 通道,已规划移到 `(78,109.5)` / `(78,111)` 并通过布局自检; 但 EasyEDA 窗口断开导致定点下发 HTTP 500,板端尚未移动。重连后要先下发这两件、 重抓 `_base_pads.json`,再重跑完整路由 / 连通性 / DRC。 + +--- + +## 34. 刀片压到 90 × 68(2026-09-11 用户拍板) + +**用户要求**:刀片 98×76 → **90×68**。先做可行性核账(几何两个方向都放得下, +真正要取舍的只有 C60 和功率列宽度),两处交用户拍板: +**手机上移、C60 留在两槽之间**;**删掉 J2**。 + +### 34.1 几何(事实来源 `pcb_blade.py`,与手机绑定的一律从 `PHONE_ORG` 推) + +| 项 | 旧(M7) | 新 | +|---|---|---| +| 板框 | 98 × 76 | **90 × 68**,四角 R2,一条闭合折线(读回 54 点、外接 0~90 × 0~68)| +| 手机原点 | (3, 29) | **(1.5, 22.34)** | +| 左边距 | H2 离板边 3.7 | **2.2**:M1.6 尼龙螺钉头 Ø3.2 还剩 **0.6** | +| 服务带(金手指区上沿 → 接口边)| 18 | **11.34** = C60 本体 11 + 0.34 | +| 手机顶 → 板边 | 2.34 | **1.0** ⇒ ⚠ **顶边导轨只能咬 ≤ 1 mm**,否则压到主板 | +| 功率列 | x 72~98(26)| **x 70.59~90(19.4)**:整块西移 8,§7.2 四条回路的相对关系一点没动 | +| 排线槽 y | 24.8~27.8 | **18.14~21.14**(接口边外 1.2~4.2,跟手机走,不再写死)| +| 金手指 | x=49 | **x=45**(仍居中;底板插槽不用改,只是悬臂两侧各短 4 mm)| +| 七个孔 | — | H1 (2.90,32.24) H2 (2.20,49.64) H3 (3.20,61.04) H4 (43.40,24.24) H5 (58.90,63.54) H6 (66.10,50.44) H7 (66.30,54.74) | + +**C60** 定在 **(38.175, 16.5)**:x 取两槽正中,y **贴着金手指区上沿**(本体 11 的下沿 = 11.0)。 +居中(上下各余 0.17)时 H4 的螺钉头圈只剩 2.07 < `HOLE_KEEP` 2.2;贴下沿之后上沿离接口边 0.34、离 H4 2.24。 +⚠ 它的焊盘外沿 12.9 宽,离两侧铣槽各只有 **0.45**(本体按 11 算是 1.4;项目 `MILL_KEEP` 0.5 是按本体判的, +嘉立创铣槽到铜下限约 0.3)—— 投板前再确认一次。 + +### 34.2 原理图两处(B4-EDGE / B3B-USB 整页重画,截图已自查) + +1. **删 `J2`**(D± 退路座):底板 `J39~J43` 在 §28.11 已删,刀片这头没了对端,D12 实质作废; + 旧版 D± 往东绕到 x≈60 就是为了它。 +2. **`U7` 两侧对调**:1/3 脚 = 金手指侧 `USB_DM/DP`,6/4 脚 = 手机侧 `USB_DMJ/DPJ`(R1 相反)。 + **手性推导**:`U7` 在 B 面,信号从 4/6 那排流向 1/3 那排时 DP 永远在前进方向右手边(旋转不改手性,只有镜像改); + 而金手指(DP 在西、向北出线)和 J4(DPJ 在东、从北边进)两头都要 DP 在**左**手边 ⇒ + 旧接法前后各要交叉一次(旧版 DP/DM 各 6~7 个孔)。1↔6、3↔4 内部直通,电气等价。 +3. `J1` 改为**不进 BOM**(§17 遗留)。 +4. 验证:两页 `verify_sch --nets` PASS、`xpage` 漏接 0、`port_audit --r2 BLADE` 142 个可疑 0。 + +⚠ 整页重画让 B3B 那 9 件的 uniqueId 整体差 1(skill §9o-2),导入对话框一度提出「J2 换成 BM24 封装、J4 换成 SOT-23-6」。 +`uid_sync_base.py --blade`(新加)按位号两阶段写回;**「PCB 有、原理图没有」的件(J2)占着的号正是错位那一串要用的** ⇒ +同一次写入把它挪到 `zzdel_J2`。对齐后对话框只剩真实差异(删 J2、U7 四只脚改网、R62/R64/R65/C67/C68 两脚互换 = 无极性件重画后脚号翻转), +应用后 82 件逐件对上。 + +### 34.3 摆位(`pcb_place.py`) + +- 所有 M7 手排坐标改成「M7 值 + 平移」:跟手机的加 `DX/DY = (−1.5, −6.66)`,功率区加 `PX = −8`。 + 侧键 MOS 只移 y(Q4 本来就贴板边)。 +- `J3`(EDL 座)挪到**服务带里、尾插槽东头**,rot 270,读回信号盘在西 x 67.18、正对槽口。 +- `U7` **手排在 J4 那两只 D± 脚正北** (51.40, 30.55),下排直直往南 ~2 mm 接 J4;它北边 B 面留一块换层孔的空地。 +- `DIS`(泄放 R19 2512 + Q2)**第三版挪到电池车道正北、手机投影下**(R19 (22.07, 31.0) / Q2 (29.50, 31.0),B 面、都 < 1 mm 高): + 前两版放在电池槽正下方,而服务带压到 11.34 之后,**槽下那条 6.4 mm 高的带是 U4(左下角)往东去的唯一走廊** + (~8 个网:SDA/SCL/BUCK_PG/EDL_EN/VBUS_EN/EFUSE_FLT/INA_ALERT/EFUSE_PG),R19+Q2 把 B 面那一层从 x 18 到 32 整段占满。 + 第三轮服务器试「三个长网先布」:它们通了,SDA 整网断成 4 块 —— 典型的此消彼长,是走廊容量问题不是顺序问题。 + 新位置紧挨电池座 J5(R19 本来就接 VO_P = 电池正),正下方是 VO-L3 北叶,就地扎孔照旧。 +- VO-L3 岛西沿 17.5、北叶跟手机走,V12-L3 岛跟板边走。 +- 分区第二版(第一轮服务器布线之后改的,见 §34.5):`EFUSE_AUX` 回到 M7 的 11.2 宽、整块放到 J3 以北 + (x 64.8~76 × y 20.7~40);`SVC_E` 在 J3 正北一小块、`GROUPS` 里排在 EFUSE_AUX **前面**(两区重叠,谁先摆谁先挑); + `SVC_R` 只留 U7 换层孔空地以东。 +- 读回 82 件位置 / 层全对;自检(重叠 / 越框 / 金手指区 / 槽与车道 / 螺钉头 / 分段限高)全过。 +- `place_audit` 报 11 处「摆错边」/ 8 处「去耦 > 3 mm」:U4 上拉、U1 FB、C6/C7 与 M7 相对位置完全相同; + 仍偏远的是 U5 那一簇(`C68` CT 9 mm、`C67` VBUS 7.2 mm、`R64` 绕 U5)—— 都是低速 / 直流网,暂接受。 + +### 34.4 D± 构造(`router.dp_blade()`,不交给 A*) + +金手指 B14/B15 顶层直上 → 并拢成 **W 0.28 / S 0.18** → 尾插槽上沿以北 45° 东让 H4(线边离孔边 0.53)→ 北上 → +东去到 U7 正上方 → 南下、在 U7 上排北边**各一个孔**下 B 面;U7 下排 → J4 在 B 面 **0.18** 宽(BM24 0.35 节距)。 +中心线折线 + 左右各偏 0.23、斜接 ⇒ 45° 拐角处线距不变。 + +| | 旧(M7,A* 分开布)| 新 | +|---|---|---| +| USB_DP / USB_DM | 59.6 / 63.4 mm,**0.531** / 0.15 宽,7 / 6 孔 | **42.05 / 40.52 mm**,0.28 / 0.28,1 / 1 孔 | +| USB_DPJ / USB_DMJ | 11.0 / 25.8 mm(差 14.8)| **2.42 / 2.34 mm**(差 0.08)| + +本机静态校核(纯几何):净距 < 0.15 的 0 处,最紧 0.17(进 J4 那 0.8 mm,节距定死的)。 +对内长度差 1.52 mm 来自两个右拐角内侧线短(规则容差 5.0;底板 UP 那对是 1.9)。 +`pcb_rules.DIFF` 的差分线宽下限 0.20 → **0.15**(否则整对 USBPHONE 在 DRC 里刷线宽)。 +顺带:旧版 `USB_DP` 被撑到 0.531 = U7 焊盘宽 —— 线宽被焊盘封顶逻辑反向拉宽了;构造之后这两对不再经过那段逻辑。 + +### 34.5 布线上服务器 + +CLAUDE.md 的「布线运算只在 10.5.5.13」原来只落实在底板(`remote_route.ps1`)。刀片补上: +- `router.py`:`--replan` / `--pf` 在本机**硬阻断**(没有 `DCDC_ROUTE_SERVER` 直接退出); + 离线时板上已有过孔改读 `_blade_board_vias.json`(`--snapshot-vias` 写)。 +- `remote_blade.sh ['变体' ...]`:快照 → 打包(不带 `_base_*` / png)→ 服务器每个变体一份副本、PyPy 并行 → + 拉回 `_blade_routes.var.json/.log`,**不自动覆盖缓存**。`MODE=stitch` 同一套流程算 GND 缝合孔落点 + (`pcb_route.py --stitch-plan`,本机 `--stitch` 只下发)。 +- ⚠ 第一版脚本把远程命令写成 `cat > run.sh && setsid … &`:结尾的 `&` 把整条 && 链(连 cat)放后台, + ssh 一返回 stdin 就关 ⇒ run.sh 0 字节、一个变体都没起、`done` 永远不出现,本机空转。 + 已改成「先 scp 上传 run.sh、另起一次 ssh 启动」,并在 5 秒内查不到 `v*.log` 就退出。 + +**第一轮(v0 默认 19 条没搞定 / v1 `--pf` 21 条,M7 是全通)**,按根因分三类: +1. **`+12V` 整条没布**(五根指全失败、F1.1 一根铜都没有):不是 D± 挡的 —— M7 那条 0.8 的 12V 是 B 面 x≈36 + 从阻尼电容两盘之间北上、y≈60 顶层东去 F1,全程在 D± 顶端(y 35.7)以北。这回五根指(x 28~31)出口被封: + 北边电池槽(y 18.14),B 面正上方 R19/Q2,而 `+3V3`(在 `FIRST_NETS` 里)先布、一根 y 15.5 的顶层长线把槽下走廊封死。 + 服务带 18 mm 时这事吸收得了,11.34 就不行 ⇒ **`+12V` 排到 `FIRST_NETS` 最前**。 +2. **我自己引入的摆位退化**:EFUSE_AUX 西边少 4.3 mm(`$1N165: R16.1`)、U6 被挤到离 J3 20 mm(`$3N45`)、 + C68 离 U5 7.9 mm(`$5N71`)⇒ 分区第二版(§34.3)。 +3. U1/U2 一带 `+3V3 / EFUSE_EN / EFUSE_PG / $1N136 / $1N173` 各断成两块 —— 同一片拥塞,看第二轮。 + +**第二 ~ 四轮**: +- 第二轮(+12V 排最前 + 分区第二版):v0 自报 11 条,但**按铜判只断 3 个网**(`$1N173` / `BUCK_PG` / `EDL_EN`,都是从 U4 / Q2 所在的西南角出发的长网); + 布线器自报的 `+3V3 / VBUS / SCL / SDA / $1N136`「铜分成 2 块」全是误报 ⇒ 新写 `blade_conn.py`(离线按铜重叠并查集),**比较变体只看它**。 +- 第三轮(`router.py --first` 把三个长网提前,4 组变体):三个长网通了,**SDA 整网断成 4 块** —— 此消彼长。 + 量化:U4 往东约 8 个网,唯一走廊是电池槽下那条 6.4 mm 高的带,DIS(R19+Q2)把 B 面那一层整段占满 ⇒ DIS 第三版挪走(§34.3)。 +- 第四轮(DIS 挪走后 6 组变体):最好的 v3(三长网先布 + `--pf`)按铜只断 2 个网(`+12V_F: R4.1`、`+5V: U5.1`,都是局部被围)。 + 但 `router_check` 精确净距查出**六组全部**在 U2 角上有两处孔压线(−0.095)+ 两处线距 0.054,另有若干 0.125(< 0.15)。 + +**第五 / 六轮(修 FIRST_NETS 循环之后)**: +- 第五轮(只修过孔图口径):六组逐段不变 ⇒ 否掉那个假设。 +- 第六轮(补上「已放的过孔进占用图」):**非 `--pf` 的三组精确净距 0 条**(U2 角孔压线、0.054 线距全消失); + 代价是按铜真断开升到 5~7 个网 —— 以前「少失败」有一部分是靠线压着别人的孔换来的,去掉之后露出真实的容量瓶颈。 + `--pf` 三组仍有一批 0.125(它自己那条路的口径另有问题),不采用。 +- 选 **v2**(三长网先布、不带 `--pf`)做底:净距 0,断 5 个网 —— + U2 角 `$1N147`(U2.15) / `EFUSE_PG`(U2.2)(M6/M7 就是最难的那两只)、U4 角 `INA_ALERT`(U4.15) / `SDA`(U4.23·R40.1·U3.4 都断开)、 + `$5N71`(U5.4,C68 摆得远)。缓存 `r6-v2`;下一步只对这 5 个网在服务器上补线(`MODE=repair`)。 + +**这一轮顺带修掉的四个工具毛病**: +| 毛病 | 后果 | 改法 | +|---|---|---| +| `router_check.py` 现算 `pcb_route.stitch_points()` | 本机扫孔位(违反 CLAUDE.md);板上还没铜时算出不避让导线的 5 mm 格点 ⇒ 一排「+12V 线 vs GND 过孔 −0.895」、三处「孔压孔 −0.041」全是假问题 | 只读服务器算好的 `_blade_stitch_pts.json`,没有就不算 | +| `plan_all()` 的 FIRST_NETS 循环往过孔图打线时少了 `VIA_D/2 + CLR − halfw` | 表里先布的网的孔可以落在更早那根线旁 0.2 mm 内。底板在 `route_groups` / `grid_now` 早修过(VIA_MAP_FIX),刀片这条路没跟上 | 同 `_block_stub` 的口径 + `exact_v`。⚠ **第五轮 A/B:六组逐段不变 —— 这不是 U2 角那两处的原因**(方向猜反了)| +| ⛔ **同一个循环从来没把本轮已放的过孔打进占用图**(`build_grid` 只含板上旧孔 / D± / VO_P 孔)| 金手指 launch 孔、表里先布的网的孔只靠挂在上面的短线间接挡着(0.15 线只护住孔心 ±0.31),**后布的线压进 Ø0.6 的孔**:`$1N164` 的孔压 `EFUSE_PG`、`EFUSE_EN` 的孔压 `$1N147`(−0.095)—— 和 `route_groups` 注释里 M7 记过的是同一对,那边早修了、这边漏了 | `g` / `gt` 两张图都按 `route_groups` 的口径把 `vias` 打进去 | +| `board_check.py` 在刀片上把 `+3V3` 当铜面网 | 只查「脚挨不挨铜」,刀片 +3V3 的真实连通一直没验过(条件是给底板槽墙写的,写反了)| 两块板都按布线网查 | +| `repair_route.py` 只能读 M6 的板上读回 | 没法在服务器上对缓存补线 | `--cache` 读 `_blade_routes.json`、写 `_blade_routes.repaired.json`;本机硬阻断;`MODE=repair` | + +### 34.6 布线 / 铺铜 / DRC 结果(2026-09-11 晚,板上现状) + +板上 = 服务器第六轮 `r6-v2`(缓存 `_blade_routes.r6-v2.json`,`router_check` 精确净距 0)+ 斜切 + 缝合孔 + 铺铜: + +| 项 | 数 | +|---|---| +| 铜 | L1 728 + L4 479 = **1207 段**(斜切 3 轮 241 个直角)/ 过孔 **359**(布线 281,其中 GND 23 = 金手指地指母线;缝合 78)| +| D± | USB_DP / DM **42.0 / 40.5 mm、每根 1 孔**;DPJ / DMJ 2.4 mm | +| +12V | 144 mm,**1.19 宽**(FIRST_NETS 那条路按「本网最小焊盘边」取宽,F1 1206 盘 ⇒ 1.19;比规则 0.8 宽,电气无害,DRC 不报)| +| 铺铜 | **25 / 25 块全填** | +| `board_check` | **51 / 57 网全通**;没通 = 下面 5 个网 + GND(它读不了铺铜)| +| DRC 间距 | **4 条 = PCIe 缺口到 A11/A12/B11/B12 指 7.9 mil**(§27.8 老问题,几何定死,待用户拍板)| +| DRC 连接性 | **39 条** = 5 个信号网 12 条 + **GND 27 条(铺铜够不着的细间距焊盘)** | + +**还没接上的 5 个信号网**(作业单 `.claude/r2/HANDROUTE-90x68.md`):`$1N147`(U2.15)、`EFUSE_PG`(U2.2)、 +`INA_ALERT`(U4.15↔U3.3)、`SDA`(U4.23 / R40.1 / U3.4)、`$5N71`(U5.4↔C68.2)。 +结构原因:+12V 在 L4 上 x≈42.5 从 y 13 竖到 y 61,和 L1 上的 D± 墙(x 44~45.4,y 4~35.7)并排只剩 ~1 mm, +⇒ **y 13~35.7 东西向两层都过不去**,左下角 U4 去东边的网只能爬到手机底下横过去。服务器定点补线(`MODE=repair`)也接不上。 + +**铺铜够不着的 27 个 GND 焊盘**(DRC 连接性原文):J4(BM24 0.35 节距)1/2/8/12/16/19/23/24/29/37/41/47 + 大地盘; +U2 1/16/21(EP);U3 1/2/7;U1 2/3;U4 20/21;Q4.2、K4.1、C13.2;一个 GND 孔。 +刀片布线器一直 `SKIP = ('GND',)` 靠铺铜,而 0.35 / 0.5 节距的盘之间铺铜进不去 —— 要给这些盘各打**引出线 + 过孔下 L2** +(U2 的 EP 用盘中孔),流程里还没有这一步(底板 route_base 有「GND 打孔」)。M7 大概率同样存在,只是当时没数连接性。 + +**收尾时又抓到两个工具毛病**(都已修): +- `pcb_route.stitch()` 下发前「删掉板上所有 GND 孔」—— 会连布线器的 23 个地指母线孔一起删(地指下到 L2 的唯一通路)。改成只删不在布线缓存里的。 + 另:它第一次重写时字符串拼接和 `%` 格式化的优先级写错,下发直接抛异常 —— 而收尾链用 `| tail` 接管道,**退出码被 tail 吃掉,链子没停**, + 一路跑到了斜切 / 重载。以后链子一律 `set -o pipefail`。 +- `miter.py` 的「只去铜不加铜」只对拐角外侧成立,斜边凹侧会加铜(见其模块头更正):1.19 宽的 +12V 拐角斜切后压上凹侧一个 `$3N30` 孔 + (DRC 导线 / 钻孔到过孔 0 mil)。板上那个角已恢复成直角(DRC 间距 7 → 4);脚本加了新斜边的精确净距校核。 + +## 35. 主板转 180°、两条排线槽到顶部、U4 到右侧(2026-09-11 晚 用户拍板) + +**用户**:「重新优化刀片板布局」→「将排线插槽和排线移到顶部,主板不旋转」。核账:**电池排线 38 mm 够不到顶边** +(J600 在 v 4.6,光跨主板就要 40.05 —— R1 §25.16 v3b 早核过同一件事),尾插 55 mm 余约 4 mm。 +摆给用户三条路之后,用户改为 **「都挪,主板跟着旋转」**,随后又补一条 **「U4 移到右侧」**。板框仍是 90 × 68。 + +### 35.1 几何(事实来源 `pcb_blade.py`:`PHONE_ROT = 180` + `phone_xy(u, v)` 唯一实现旋转) + +| 项 | §34(90×68 第一版)| 新 | +|---|---|---| +| 主板 | 接口边朝下,原点 (1.5, 22.34) | **转 180°,接口边朝上**;投影 x 1.5~68.59 / **y 11.0~55.66**(远端边贴金手指区上沿)| +| 服务带 | 底部 11.34(金手指区之上)| **顶部 12.34**(接口边 55.66 → 板顶 68)| +| 两条槽 | y 18.14~21.14 | **y 56.86~59.86**;尾插槽 x 5.01~25.01(左)、电池槽 x 38.82~50.82(中)| +| 排线在 B 面 | 穿槽后往 +y 到 J5/J4 | 穿槽后往 **−y**;J5 (44.82, 52.66) / J4 (15.01, 51.66) **底层 rot 180** | +| C60 | (38.175, 16.5),贴金手指区 | **(31.915, 61.5)**,两槽之间;H4 螺钉头圈 2.2 定下沿 56.0,上沿离板边 1.0 | +| J3 | 服务带尾插槽东头 rot 270 | **尾插槽正北** (20.3, 63.3) rot 0,信号盘朝南对槽口 | +| 七个孔 | — | H1 (67.19,45.76) H2 (67.89,28.36) H3 (66.89,16.96) H4 (26.69,53.76) H5 (11.19,14.46) H6 (3.99,27.56) H7 (3.79,23.26) | +| 侧键 K1~K4 | 左下 | **右上** (64~67, 49~52),紧挨功率列 | + +⚠ 机械上要确认:SIM 卡托(u 大的那一端)转过来在**左边**,装着卡托会伸出板左沿 ~1.8 mm;C60 上沿离板顶 1.0(顶边导轨只能咬 ≤ 1 mm,同原来手机顶那条)。 + +### 35.2 为什么功率链也整块转 180° + +12V 从金手指(底部 x 28.5~30.5)进,VO_P 要去 J5 / C60(现在都在顶部)⇒ 功率链改成 **F1 在底、U3 在顶**。 +做法:`STACK_UP/DN` / `HAND` 仍按「F1 在顶」的旧锚 (81, 50.9) 算,再 `flip_pwr()` 刚体转到新锚 **(80, 27.5)**, +§7.2 四条回路一个相对数都不动(F1 例外保留 rot 90,让 +12V 脚朝南)。顺带的好处: +- U2 刚体转成 rot 0 之后,**全部信号脚(p2/p3/p14/p15/p17~p20)朝西**(朝手机、朝 U4),外围 EFUSE_E / EFUSE_AUX 和脚在同一侧 + —— 原来 EFUSE_AUX 摆在西边、p2/p15 却在东半边,`U2.2 / U2.15` 从 M6 起就出不来; +- U1 的 FB/COMP 转到西边(贴手机那一侧),正好是 §3.1「内条放最怕吵的」;L1 离手机右沿 ~8 mm(原 8.6)。 + +### 35.3 L3 两个岛上下对调,+12V 不再走线 + +- `VO_P` 岛(`pcb_pour.VO_RECTS`):上半 x 26~89.5 / y 38~56.3,加两个上叶夹着电池槽(C60 / Rs1·U3),U 形单环。 +- `+12V` 岛:**x 27~84 / y 9~20**,金手指 12V 三指 → F1。+12V 从此是「每个焊盘打孔进岛」(`router.PLANE_VIA_NETS`), + **L1 / L4 上不再有 12V 走线** —— §34 那根 L4 x≈42.5 的竖线就是把板子东西切两半、5 个网布不通的主因。§7.1 本来就写 L3 = 12V + VO 灌铜。 + 金手指这头:B1(对排 A1 = PRSNT#,不能打孔)在 L1 上横接到 B2 的孔;B2/B3 各两个孔(y 11.75 / 10.5)。 +- 大电流焊盘多打孔(`VIAS_PER_PAD`):J5 / Rs1 各 3、C60 / F1 各 2。⚠ 顺带查出的老问题:§34 那版 **Rs1.1 的 4 A 只靠 Kelvin 线上那一个 Ø0.3 孔进岛** + (Kelvin 焊盘被整个排除在平面孔之外)。现在只排除 U3 那头的取样脚(`KELVIN_SENSE`)。 + +### 35.4 D±(`router.dp_blade()`) + +U7 跟 J4 一起转 180° ⇒ 在 J4 **正南**,下排 3(DP 西)/1(DM 东) 直接朝着金手指。走法:金手指直上 → 并拢 → y 13 起 45° 往西北 → +直上进 U7 下排,每根 1 个孔。**USB_DP / USB_DM 53.07 / 53.07 mm**(§34 是 42.0 / 40.5,差 1.5);DPJ/DMJ 2.48 / 2.54。 +手性零交叉(先左转再右转,DP 一直在左手边;两个转角内外侧长度抵掉)。静态最紧 0.17(进 J4 那段,节距定死)。 + +### 35.5 离线试布线:先合成焊盘、服务器比变体,再下发 + +板上还是 §34 的旧摆位 + 旧铜,所以试布线不碰板:`synth_pads.py` 把改摆位前抓的焊盘表(`r2/archive_blade_prerot_0911/`) +按新摆位刚体变换(底层 90° 按 §25.3 实测的「先镜像再逆时针」);`remote_blade.sh` 加 `NOSNAP=1` 跳过抓板,过孔快照写 `[]`。 +**下发后必须 `pcb_route.py --dump` 重抓、`pads_diff.py` 和合成表逐脚对账,不过不许下铜。** + +服务器几轮(每轮 4 组,PyPy 各 ~30 s)按铜判断(`blade_conn.py`): + +| 轮 | 改了什么 | 断开的信号网 | +|---|---|---| +| 1 | 新布局第一版 | 4:U2.2 / U2.15 / U2.20 出不来 + SDA(U4.23) | +| 2 | 调 FIRST_NETS 顺序 | 4~5:**换顺序 = 换一批 U2 的脚断**(p2/p15/p20 ↔ p3/p14/p18)| +| 3 | 细间距芯片「禁换层圈」`VIA_KEEP_M` 0.9 / 1.2;`--gndvia` 先打孔 | 4;`--gndvia` 放在信号前面 ⇒ 9~10(GND 孔抢出口)| +| 4 | U2 对格(U1_Y 27.5 → 27.6);`--gndvia` 挪到信号之后 | 4(U2.2 / U2.15 仍出不来);`--gndvia` 不再伤信号 | +| 5 | 排布器按「芯片脚→外围件连线不交叉」换位;上拉不按 +3V3 找去向 | 5~6:U2 西北 / 西南角的对端顺序顺了,**U2.2 / U2.15 仍出不来** | +| 6 | U2 角上四只脚**预扇出**(`router.QFN_FAN`,`--nofan` 对照)| 带禁换层圈 6(扇出端点被逼在 L4 上挤不出去);**关禁换层圈 2**(U2.17 + U4.7)⇒ `VIA_KEEP_M` 默认改 0 | +| 7 | 同上,四组都关禁换层圈 | 2;`--gndvia`(放在最后)也是 2 ⇒ GND 打孔不再伤信号 | +| 8 | U2 西列 p17~p20 也预扇出 | 2:EDL_EN(U4.7) + EFUSE_FLT(U2.20) | +| 9 | U4 北排 p7/p8 扇出后**就地落孔换 L1**(拓扑交叉:它们往西、西边的 KEY 往东北)| 1:$1N156(U2.17);定点补线补上后 `router_check` 查出 8 条:GND 引出脚压 USB_THERM(`--gndvia` 只核落点没核引出脚)、$1N158 从扇出端点斜着压 C14.2(虚拟焊盘名 `fan:` 被当成金手指落点、不查邻盘)⇒ 两处都修 | +| 10 | 同上修完 | 1:$1N158(U2.18),补线补不上 —— C14 的 GND 盘朝着 U2、信号盘在远端 | +| 11 | 排布器 `flip_2pin()`:两脚件在 rot 0/180 之间挑「接芯片的盘朝芯片」 | **0**(v0 `--gndvia --first EFUSE_FLT,EDL_EN` 与 v2 `--first EFUSE_FLT` 都是 0);`router_check` 精确净距 **0 条** | + +**结果**(第十一轮 v0,缓存 `_blade_routes.r11new-v0.json`):678 段 / 275 孔(GND 51,其中 `--gndvia` 打的细间距地脚孔)/ 总长 2012 mm; +信号网按铜全通;D± 53.07 / 53.07。没打上孔的 GND 脚 16 只(多是 QFN 散热盘分瓣、SOT-23 地脚),等铺铜后按 DRC 连接性核。 +§34 那版:断 5 个网 + 27 只 GND 脚铺铜够不着。 + +### 35.6 下发与板上结果(2026-09-11 晚,用户确认) + +⚠ 下发前抓板发现:板上**铜层 0 段 / 0 孔**(§34 那版的铜已经不在了)、**15 件被用户在客户端里挪过**(U4 放右侧那一类尝试)—— +与交接记录不符,问过用户后覆盖;下发前整板快照 `_blade_board_prerot_0911.json`。 + +| 步骤 | 结果 | +|---|---| +| 槽 / 孔重画 | 两条槽 y 56.86~59.86、七个孔,`pcb_blade --verify` 过 | +| 摆位 | 82 件读回全对;`pads_diff.py` **359 块焊盘和合成表逐块一致**(J4/J5 底层 rot 180、C40/R40/R41 转 90° 都对)| +| 铜 | 678 段 / 275 孔 + 缝合 72(服务器算;`NOSNAP=1` + 由缓存生成的导线快照,**布线孔当零长度导线**一起避让 —— `stitch_points()` 本身只避焊盘和导线)| +| 斜切 / 铺铜 | 4 轮到 0 直角;重载逐项相等;铺铜 **25/25** | +| `board_check` | 信号 **56/56 全通** | +| DRC | 第一遍 10 = 缺口 4 + GND 6(U1.2/3 离散热盘 0.3 没接、U3.2、J4.12 的「斜线→桥线→孔」DRC 不认、J4.16 头顶被 USB_THERM 孔堵);补 6 段 + 1 孔(先进缓存、`router_check` 0 条再下板)⇒ **4 条,全是 PCIe 缺口 0.2 mm(§27.8)** | + +最终快照 `_blade_board_rot180_final_0911.json`。还欠用户:SIM 卡托 / 顶边导轨 / 排线实物走位这三条机械确认。 + +### 35.7 PCIe 缺口 1.9 → 1.6(用户拍板,§27.8 结案) + +`fp_edge.NOTCH_W = 1.6`(CEM 值;1.9 是 KiCad 封装值)⇒ 口部断点 38.70 / 41.30,缺口边到 11/12 号指铜边 **0.35**(原 0.2)。 +**PCB 上元件的封装是工程库副本,不是个人库原件**:J1 `getState_Footprint()` = `a1ad3deadadbf758 @ 05a65c22…`。 +API 没有「更新封装」(`IPCB_PrimitiveComponent` 只有位号 / 位置 / uniqueId 这些 setter),但**直接改工程库那份副本 + 重载 PCB,实例就跟着变**: +`fp_edge.py --notch` 只删 / 重画两份封装的板框层 16 段(焊盘不碰)→ 重载后 J1 内部缺口读回 38.70~41.30、64 只焊盘网名全不变 → +`pcb_blade --outline`(板框折线里的缺口同源)→ 铺铜 25/25 → **DRC 0 条**(间距 0 / 连接性 0)。 +⚠ `lib_Footprint.search` 在这台客户端上抛 `o[r].match is not a function`,所以 `--notch` 按 `FP_COPIES` 里的 uuid 直接开编辑器。 + +第五轮放大看才看清 U2.2 的真实卡法:对端顺序已经顺了,但 A* 一次只看一根 —— +$1N164(p3) 出脚后斜到 x 79.0 往北走,压住 U2.2 头顶那一列;反过来让 EFUSE_PG 先布,它又在 U2.2 正北落孔,孔挡住 p3 那一列。 +两只 0.5 节距的脚同时往西北出**是走得通的**(西边那只先拐、东边那只多直走半格再拐,两条 45° 平行线相距 0.707), +贪心 A* 找不到这种配合 ⇒ 和 D± 一样改成**构造**:p2/p3、p15/p14 各画「直走 1.0 / 1.5 + 45° 0.75」,端点在格点上、 +落在禁换层圈外,A* 从端点起步。静态校核离相邻异网焊盘最近 0.275。 + +这几轮顺带抓出来、已经修掉的: +- `ctrl_hand` 的 I²C 上拉:**位号写反**(R41→SDA、R40→SCL,实际 R40 是 SDA 上拉)+ 排到 U4 南边时 +3V3 那只盘朝着芯片 ⇒ 改成按网名反查、pad1 朝 U4(南边 rot 270)。 +- **U2 不在 0.25 格点上**:刚体转之后 U2 中心 = U1_Y + 21.9,取 27.5 时西列 p17~p20 落在 x.15 / x.65,出线挤到 0.25 以下。 + U1 两短边的 EN/PG/FB/COMP 和 U2 没法同时对格(相对距 21.9 不是 0.25 的倍数),旧版也一样,保 U2。 +- **U2 角上出不来的真因是摆位交叉**:只按「离对端最近」排,EFUSE_PG(p2) 的上拉 R15 被 +3V3 的最近焊盘(U3.6)拽到东北, + 而 $1N164(p3) 的分压 R16/R17 在西边 ⇒ 两根一出脚就交叉,先布的那根横在另一只脚头上。 + ⇒ `target_point()` 对「还挂着别的信号网」的件不再按 +3V3 找去向;`reassign()` 的代价加「芯片脚 → 外围件连线」交叉数 × 6 mm。 + +--- + +## 36. D16:底板电源入口改 USB-C PD 取电(2026-09-11 用户拍板「走方案 B」) + +### 36.1 决定与理由 + +用户要求改成「用 Type-C 从 120W 氮化镓充电器取电,并兼容各手机厂商的充电器」。可行性结论(会话里给过用户): + +- **各家 120W 标称都是私有协议**(小米 / vivo 20V 6A、华为超级快充、OPPO SUPERVOOC),要手机端鉴权,取电芯片拿不到。 + **唯一的公约数是 USB PD**:小米 120W / 华为 100W 的 C 口 PD 只到 **65W**(20V 3.25A),vivo 120W / Anker 这类 100W。 + UFCS 互通只有 40~44W,而且 CH224A 不支持 UFCS。 +- **单口上限 20V × 5A = 100W**(5A 要 e-marker 线;普通 3A 线 60W)⇒ 降压后 12V 侧 **约 95W / 7.9A**, + 低于 R1 §22.6 的最坏 9.99A(≈108W)。整板常态 10~25W,任何一档都够;**最坏工况靠固件限功率**(R1 §8.3 早就规划了「读输入侧 INA226 按优先级降载」)。 +- **20V 不能直接进 12V 母线**:U29 泄放 13.2V 导通(10Ω 上压 40W)、两块板的 SMBJ13A 14.4V 击穿、刀片 TPS54622 VIN 上限 17V。 + ⇒ 板上加一级 **20V → 12V 降压**,12V 母线及以下(A1 的储能 / 检流 / 泄放、五片刀片)**一个字不改**。 +- 顺带消掉决策 #20 的已知风险:DC-005 家族额定 2~5A 却要走 10A;USB-C 在 20V 下只走 5A。 + +### 36.2 电路(新页 `A1B-PD`,脚本 `r2/a1b_pd.py`) + +`J1` USB-C(TYPE-C-31-M-12,C165948,**与 J23 同料**,额定 5A/20V)→ `F1` 12A → `VIN_FUSED`(20V,≤5A) +→ `D3` SMBJ22A + `C21~C24` 10µ/50V + `C19/C20` 100n/50V → `U37` **LM61495QRPHRQ1**(C3188410,10A,3~36V)→ `L4` → **`VIN_SW`**(12V)→ A1-INPUT 的 Rs6。 + +| 件 | 取值 | 依据 | +|---|---|---| +| `U36` CH224A(C42459160)| 单电阻 `R7` 120k ⇒ **只请求 20V** | 各家 PD 都有 20V;12V 不是每家都有(小米没有);28V EPR 手机充电器不给 | +| `D3` | SMBJ22A(C151920)| VRWM 22V > PD 20V 档上限 21V。⚠ **固件不许让 CH224 请求 28V**(寄存器 0x0A=5) | +| `R8` RT | 22.1k ⇒ **720 kHz** | `RT = 16.4/fsw − 0.633`;电感下限 `L > Vout/(fsw·0.6·10A)` = 2.8µH。400 kHz 要 ≥5µH,SRP1265A-6R8M 立创查不到料号,故提频率 | +| `L4` | SRP1265A-4R7M(C780205)| Isat 28A / Irms 13.5A / 8.4mΩ;纹波 1.42A(14%)| +| FB | `R10` 110k / `R11` 10k | VFB 1.0V ⇒ **12.0V** | +| EN | `R12` 100k / `R13` 10k | 1.263V × 11 = **13.9V** 才启动(12.8~15.0)⇒ PD 协商到 20V 之前(5V / 9V)不启动,母线大电容不会在 5V 下拽充电器;也挡住插错口(PC 只给 5V)| +| SPSP / SYNC / BIAS | VCC / GND / GND | 扩频开;轻载自动 PFM;BIAS 按手册「输出不低于 12V 就接地」(BIAS 绝对最大 16V)| +| `C14~C17` | 22µ/25V | 输出侧另有 A1 的 C2/C3 470µF + C4/C5 10µF | +| I²C | CFG2/CFG3 → TCA9548A **通道 5**(`SDA6`/`SCL6`)| 寄存器 **0x50 = 当前档位最大电流 ×50mA** ⇒ 固件按它定整板功率上限(60 / 65 / 100W)。CH224A 自带 10k 上拉 | + +删掉的(原 A1-INPUT):`J1` DC-005、`Q1` AO4407 反接保护、`DZ1`/`R1`/`C1` 栅极缓启动(USB-C 不会插反;缓启动由降压软启动 + EN 门限代替)。 +`F1` 位号保留、搬到 A1B-PD。DP/DM、PG、RESET# 都不用;SBU / D± 不接(只取电)。 + +### 36.3 原理图改动 + +| 页 | 改动 | +|---|---| +| **A1B-PD**(新)| 25 件 / 90 段 / 21 旗 / 21 端口。U37 两侧 10 间距的脚挂不下旗,功能块间一律用端口(`SW12` `BST12` `VCC12` `RT12` `EN12` `FB12`)| +| **A1-INPUT** | `a1_input.py` 加 `D16_DROP` / `D16_SEGS`:旧入口 6 件和挂在它们上的导线组整组删,`VIN_SW` 组只摘掉 Q1 漏极那五段;删完断言没有导线端点压在被删件的引脚上 | +| **A3-CTRL** | TCA9548A 脚 15/16(通道 5)引出 `SDA6`/`SCL6`(x 545,和 SDA5/SCL5 同列;名字只能 4 个字,右边 x≈620 起是 DAC 那一列的标签);A2 的地旗从 (585,270) 挪到 (530,290),让开新标签 | + +改前两页的现状快照:`r2/_a1_a3_pre_d16.json`(A1 页上当时有 104 条文字,脚本只生成 16 条 —— 历次重画残留的)。 + +### 36.4 还没做的 + +- ⬜ 用户截图确认三页方向与排版(CLAUDE.md 规矩)。 +- 🔶 PCB:导入 / 摆位 / 脚本已完成,布线进行中 —— 见 §36.5。 +- ⬜ 固件:CH224A 驱动(TCA9548A 选通道 5,读 0x09 / 0x50)+ 整板功率上限按 0x50 取;禁止写 0x0A=5。 +- ⬜ 丝印:J1 旁标「PWR 20V」,J23 标「USB」。两颗同料的 C 座插错不会坏(见 A1B-PD 页【C】),但要标。 + +### 36.5 PCB(2026-09-11 深夜 ~ 09-12) + +**导入** +- 上次推三页时存了盘,但 A1-INPUT / A3-CTRL / A1B-PD **74 件的原理图 uniqueId 全是空的**(存盘、重开工程都不给分配;A4-HUB 那次是给了的)。 + 空着导入 ⇒ 板上已摆好布好的 A1 / A3 49 件会被当成「移除 + 增加」。⇒ **原理图侧 `setState_UniqueId()` 可用**: + 保留件写 PCB 现有的 ggeNNN,23 颗新件写 `d16_<位号>`;存盘、重开工程读回 74/74。之后 `uid_sync_base` 0 / 141 不一致。 +- 对话框是虚拟表格,按行读会超 30 s;改从表格的 React props 里直接取 `rows`(185 行 / 107 条明细): + 移除 4(C1 DZ1 Q1 R1)/ 增加 23 / J1 换封装 / 改网络 29(U35.15/16 → SDA6/SCL6 + 11 组自动网名整组换号)/ 通道ID 50。 + 应用时取消「包含设计规则」「同时更新导线的网络」—— **换号那 11 组板上 51 段 / 10 孔照样被改了名**(两个勾都没勾)。 +- 验收:164 件位号 + 封装逐件对上;**导入前后全板焊盘网名逐脚比对,差异 = 对话框清单,一条不多**;铜一处未动(仅两段共线 VIN_SW 被并)。 + 快照:`_base_board_pre_d16_0911.json` / `_base_padnets_pre_d16.json`(导入前)、`_base_board_post_import_d16.json`。 + +**摆位(`place_base.PD_HAND`,27 件逐件手排,`--only-pd` 只下发这一窝)** —— 图 `M18`(会话里给过用户 v4) +- J1 C 座底层 rot 180 口朝南 (12.5, 5.25);F1 在 J1 正北(两组 VBUS 在 F1 南合流);U36 CH224A 在 J1 东(CC 列朝西、I²C 列朝东进槽下走廊)。 +- **U37 底层 rot 270:SW 边朝西接横放的 L4(rot 180,SW 端朝东),信号边(FB/RT/VCC/EN)朝东**。 + 这样转的理由:U37 两侧 VIN 要连通(见下),信号边朝东时 FB 采样线能沿东侧空带北上回 VIN_SW,不用跨 VIN; + L4 的输出端正好落在西北角挨着 C2 / C5;L1 小岛变成南北向一长条,与 12V 电流方向平行。 +- 两颗 100n(C19/C20)贴 U37 南北两侧 VIN/PGND(中心距 1.5);南侧大电容 C21/C22,北侧 C23/C24(经 L1 小岛); + BOOT C18 在西北角落 L4.1 上沿;东侧一列 R8 / R11 / R10 / C13;EN 分压东南;输出电容 C14~C17 在 L4 北沿一行; + **RT602 改贴 U37 东侧测降压**(用户选;原来测 DC-005 接触热)。 +- 留空区 `PD_FREE`:J1 两组 VBUS 之间(CC 换层 + VIN_RAW 合流)/ BST 出路 / EN·SYNC·SPSP 出口 / SW 连接段。 +- 读回:位姿逐件对上、朝向断言(J1/J23 口朝南、U37 SW 在西、L4 SW 端朝东)过。 + ⚠ `verify()` 原来按焊盘块中心比,U37 这类多边形焊盘抓回来按板上水平条带拆,转 90° 后拆法不同 ⇒ 报了假的 0.375 mm; + 改成**逐脚比所有块合起来的外框**(27 件最大差 0.002)。泄放链 Q3 漏极网名原来写死 `$1N114`(导入后是 `$1N213`)⇒ 改按 5 脚现取。 + +**两处单层走不通 → 用户选的换层方案(`pcb_base.PD_L1`)** +1. **CC 夹在两组 VBUS 之间**(USB-C 脚序决定:GND VBUS CC2 … CC1 VBUS GND),VIN_RAW 一合流 CC 就被围住 ⇒ + CC 在两组 VBUS 之间打孔上 **L1**,在 12V 大铜里各开一条窄走廊东去 U36 再下来(CC2 南、CC1 北,不交叉)。 + ⛔ 没选「壳体底下走 L4」:20V / CC 压在接地金属壳下只隔一层阻焊。 +2. **LM61495 两侧 VIN 连通**(VIN1/VIN2 分两侧、中间夹 SW,TI 做法是 VIN 走另一层)⇒ U37 正上方 L1 挖一块 **VIN_FUSED 小岛** + (18.9~22.9, 13.4~29.2);L1 12V 主块在这一段还剩 18 mm。 +- 实现:`route_base._build` 先把窗口从 12V 挡线图里扣掉、再按各自的网封(⚠ router `_mark` 在别的网已占的格子上写会变 255,不能叠加); + `pour_base` 12V 大铜绕开小岛(外扩 0.5),小岛自己铺 VIN_FUSED。 + +**脚本改动** +- `pour_base`:入口铜块不再按「本网焊盘外框」自动撑(新件东一颗西一颗,一撑就把 U37 包进去)⇒ 手画矩形 `PD_POUR` + (VIN_RAW 1 / VIN_FUSED L4 3 + L1 小岛 / SW12 / VIN_SW 3);Q1 栅极缺口删除。离线断面:J1→F1 6.60(要 3,不强制)/ + L4→储能→Rs6 7.95(要 6.5)/ L1 12V 主块 13.20(要 8)。 +- `rules_base`:加 SW12(PWR9A、铺铜全连接);`_base_npth.json` 补 J1 两颗定位孔(按 J23 同料平移)。 +- 新脚本:`d16_route.py`(服务器:固定构造 → 早段地孔 → 逐网补线 → 晚段地孔)、`remote_d16.sh`(上传 / 拉回,`MODE=reach` 跑 + `d16_reach.py` 泛洪诊断)、`d16_check.py`(本机四层精确净距 + L1 窗口 + 连通)、`d16_push.py`(下发 + 读回按几何逐条核)。 + +**板上删旧铜**:VIN_RAW / VIN_FUSED / GATE 整网 + 角内 VIN_SW / NTC2 + 压新件焊盘的 GND ⇒ 线 36 / 孔 2,按几何匹配删。 +⚠ **删完线数只少 34**:EasyEDA 删除过程中把残段合成了**两条新线**(新 ID、新几何,导入后的快照里没有),按几何再删一次才干净 +(`_base_board_post_del_d16.json`,1787 段 / 580 孔)。⇒ 删铜后一律「期望 = 旧快照 − 删除清单」与读回逐条比。 + +**服务器补线(`d16_route.py`,每轮 ~15~25 s)** +- 第一轮:SPSP(南侧)→ VCC(东北角)在 L4 上只能绕东侧,一根线把 FB / RT / EN 的出路全封了;0805 / 1206 的 GND 盘被当成散热盘打了盘中孔; + VIN_RAW 0.5 落不进 C 座 VBUS 0.3 宽的焊盘条;VIN_SW 报 `C2.1#t` 出不来是通孔的 L1 障碍副本被当成了焊盘(假的)。 +- ⇒ 固定构造(本机 `d16_check` 四层精确净距 0 条后才上服务器): + SW12 U37.16↔L4.1(1.0 宽,夹在两只 PGND 角脚之间)/ **SPSP→VCC 走 U37 肚子底下**(0.15 宽,从 SW 焊盘和东侧那排脚之间穿过, + 离 FB 0.186、BIAS 0.165)/ U37 PGND×2、BIAS、SYNC、AGND 的「短线 + 孔」(AGND 从 R8 与 R11 中间往东引出)/ J1 两只贴片 GND 脚接旁边外壳通孔脚 / + C18.SW → L4.1 / VCC 6 脚 → C13 / VIN_RAW 两组 VBUS 各一根竖线进 F1.1。盘中打孔阵只给 U36 散热盘。 +- 第二轮:GND 地孔全打上;FB / RT / EN / VIN_FUSED / VIN_SW / NTC2 通;剩 BST12(被 SW12 的绕线封了)、VCC 6 脚、VIN_RAW ⇒ 上面最后三条固定线。 +- 第四轮:除 SDA6/SCL6 外全通(197 段 / 49 孔,本机 0 条)⇒ **已下发存盘**(`_base_board_post_push_d16.json`)。 + 读回时两段同网 VIN_FUSED 被 EasyEDA 拼成一根(0.4 的短线挪了 0.05 mm),按实际坐标核过:铜覆盖原两段、离 C18 0.276。 + +**I²C:CH224A 改挂主总线(用户 2026-09-12)** +- SDA6 / SCL6(→ U35 通道 5)连着两轮「没布通」。`d16_reach.py` 在布线网格上泛洪:U35.15/16 能到的范围被整个圈在北半边 + (y ≥ 46.9、x ≤ 72.6),南边 U36 能走遍全板但碰不上 —— 圈住它的是 J36 槽一带的原有布线(GND / +3V3 / L1 +12V、+5V / 风扇测速, + 内层残留线挡孔),不是新入口造成的。A* 没有搜索上限,「没布通」= 真没有路。 +- 用户选**改挂主 I²C**:0x22/0x23 与主总线上 U13 0x43 / U6 0x4A / U7 0x4B / U35 0x70 不冲突。 + `a1b_pd.py` U36.2/3 → SCL/SDA;`a3_ctrl.py` U35.15/16 回 NC。推送、verify_sch 两页 PASS、xpage 0; + uniqueId 同样被整页重画清空 → 再写回;导入 20 条改网(含 7 组自动网名换号:DAC 6 组 + CFG1 `$9N85 → $9N145`),焊盘网名比对 0 意外。 + ⚠ 导入后要 `place_base --dump` 重抓焊盘表,否则 route_nets 拿旧网名判「已连通」。 +- SCL 能接(落在 U13.5 往东那根上),**SDA 接不进**:南边唯一的 SDA 是 U13.4,东边 INA_ALERT / SDA / SCL 0.5 mm 并排出束、 + 西边本体底下有一段 SCL 把 2、5 脚连起来 ⇒ 四面被围,这束一直夹着进北边,中间放不下一个孔(`d16_tap` 30 个落点全不通)。 +- 用户选**拆 U13 这一束重布**(`d16_rip.py`,只改数据不动板;拆除区 (15,38)~(40,58) 内三网外层铜,U13 本体底下的 2—5 脚 SCL 连线留着): + - 12 组(先后 × 线宽 0.2/0.15)全都至少断 1 块 —— 南北之间能穿墙的路只有两条(那条走廊 + 经 L1 绕行的一条),却有三根线; + - 实验:候选落点 30 → 100,INA → SDA → SCL 三网都能回北边,但 U13 的 SCL 新路从南边兜过 U36,把 U36.3 和 SDA 隔开; + INA_ALERT 不接回的话,U13 的 SCL 反而回不去(这条路不成立); + - ⇒ 逐步排序 `--steps`:**INA:1 → SDA:1 → SDA:2 → SCL:1 → SCL:2**(线宽 0.15、候选 100)**0 块断开**,本机净距 0 条。 + 代价:新 132 段 / 21 孔、~303 mm(U13 的 SCL 从北侧 2 脚绕了 44 段 / 13 孔,INA_ALERT 36 段 / 5 孔)—— I²C 100~400 kHz 下长线电容仍在允许范围内。 + - 同批下发:C18 → L4.1 那段终点伸进焊盘(`board_check` 把 3.5×5 的 L4.1 读成 5×3.5,报 SW12 两块)。 + +--- + +## 37. 底板顶面件:C2 / C3 / J26 / J27 / J33(2026-09-12 用户要求) + +用户:「将风扇座,C2,C11,J33 移到顶面」——追问时澄清 **C11 是指 C3**(`C11` 是 0402 的 3V3 去耦, +翻面等于把铜从 L4 挪到 L1、还要在 12V 大铜里挖窗,去耦电容又跑到芯片另一面,已排除)。 + +### 37.1 为什么这五件翻面是「零代价」,而别的件不是 + +名单在 **`pcb_base.TOP_EXTRA`**,`side_of()` 按它判层。判据只有一条: +**焊盘全在封装 y = 0 那一排**。`place_base.pad_off()` 翻面只把原生偏移的 **y 取反**, +所以 y=0 的脚翻面之后孔位、针序、铜**一根都不变** —— 纯粹是装配面 + 丝印换面。 + +⛔ 焊盘不在一条线上的件(贴片、双排针)不成立:那种翻面会把铜整个挪到另一层,要重新布线。 + +### 37.2 顶面的限高不归 `H_BOTTOM` 管 + +插槽把刀片底边抬到板上约 **11 mm**(§6.6),刀片自己 y 0~11 又是金手指禁布区(两面无件) +⇒ 顶面件(12 mm 的电解、11.5 mm 的排针)**高度不受限**,只有**横向**约束: + +| 约束 | 判据 | +|---|---| +| 刀片板面 | 竖在 `y = 槽心 ±0.8`(板厚 1.6),顶面件本体离它 ≥ `CARD_CLR` 0.5 | +| 槽体 | `slot_body(i)`,x 28~70 | +| 背面 | 通孔件在背面**只占焊盘**(±4.61 × ±0.8),不是 5 mm 深的本体 —— 所以能塞进背面件的缝里 | + +`place_base.selfcheck` 已加这一支。**J27 原位 (13.5, 88.0) 的本体 y 85.5~90.5 正好穿过 J34 那片刀片** +(89.64)⇒ 必须挪;而 x=13.5 往南焊盘先压 C738 再压 R754 ⇒ 只能往西,定在 **(9.0, 85.5, rot180)**。 +rot180 是扫出来的:针序反转把 12V 脚换到靠 C738 那侧,未完成从 6 条降到 2 条。 + +### 37.3 ⛔ A6 西北角是「单层布线区」—— 这一轮最贵的一课 + +`l1_12v_rects()` 的 12V 主块是 **x 0.5~27.8 / y 0.5~97.5 的一整块**,把整个 A6 区的 L1 占死 +⇒ 过孔上得去但走不动,那一带等于**单层**,而 L4 早被风扇驱动那一窝件占满。 + +于是「几何上放得下」≠「线接得上」:按用户先选的「两只座都南移进走廊」, +**扫了 800 个候选落位**(`fan_scan.py`,PyPy 上单轮补线 ~1.2 s)、压线宽、拆线重布、 +修了通孔盘放大量,**始终有 3~4 条布不通**。 + +**解法**:给 `FAN_PWM_L` 在 `pcb_base.PD_L1` 里开一条 **L1 走廊 `(4.0, 86.0, 21.0, 89.0)`**。 +它只挡**导线图**(`route_base._build` 先从 12V 里扣掉窗、再按窗的网名封), +**铺铜那边不用开窗** —— L1 的 12V 铺铜本来就会绕开异网导线,D16 的 CC 两根走的就是这个路子。 + +- 断面账:主块宽 27.30,被一根 0.15 的线占掉约 0.5 ⇒ 仍 **≈26.8 mm ≫ §6.4 要的 8 mm**。 +- y 86~89 **不碰任何一槽的 12V 指头**(槽 5 南指 y≈83.04 / 北帽 y≈96.24)。 +- 结果:四个风扇网**全通**,补 60 段 / 3 孔 / 87.5 mm,其中 PWM 借 L1 走 13.9 mm。 + +### 37.4 `TH_GROW`:通孔盘被统一放大 0.6,把排针的中间几只脚封死了 + +`route_base.TH_GROW = 0.6` 本是为 **J1 / J23 的长槽孔**加的(槽比焊盘大),却对所有通孔盘生效: +2.54 间距的风扇座(圆盘 1.6)在占用图里变成 **2.2 × 2.2**,相邻两脚之间只剩 0.34, +而出口要「半盘 1.10 + 线半宽 + 净距 = **1.33**」才落得下第一格 ⇒ **中间那几只脚一根铜都出不来**。 + +症状是布线器报「`J26.3` 没布通 / 一根铜都没有」,看着像没地方走,其实是被自己虚胖的邻盘封死; +压线宽、拆线重布、换落位全都救不回来。已改成按件区分(`th_grow()`,只有 `TH_GROW_REFS` 放大)。 + +### 37.5 两条方法论 + +1. **能不动的件就别动**。J26 原地翻面 = 零布线代价;它一旦挪窝,那三条线就得在单层区重布, + 而**布线器布不出来的路,不等于板上原来没有** —— 拆之前先备份几何,走不通就原样画回去 + (`ripped_backup.json` → `restore_ripped.py`,这一轮真用上了)。 +2. **搜索的判据缺一条,就会被精准地钻这个空子**。`fan_scan` 起初没查「两只座本体不许重叠」, + 扫出来的「最优」是两只座**摞在一起**(J26=(13.5,94.5) / J27=(12.0,94.5))—— 布线代价当然最低。 +- ⬜ NTC2 绕了 108 mm / 12 孔(RT602 新位置 → 东边的老线),通,不好看。 + +**收尾(修正 3)与最终状态** +- DRC 第一遍:间距 3(全是「钻孔到钻孔」:服务器扇出的 VIN_FUSED / GND 孔紧挨着固定孔,0 / 0 / 8.5 mil)+ 物理 4(R10 采样线 0.2 < PWR9A 下限 0.3) + + 连接性 4(J36.1 / J36.4 / Q6.2 GND —— 新线切了铺铜 / 铺铜分块变了)。 + ⇒ 删 3 个服务器孔(留固定孔,C19/C20 的地仍经各自引出线接到固定孔)、采样线加宽 0.3、J36.4 / Q6.2 各补 GND 孔(`d16_gndfix.py`, + J36.1 找不到落孔点,靠与 J36.4 相连的那根 L1 GND 线)。`d16_check` 补了**同网钻孔间距**(原来只查异网)。 +- **最终**:快照 `_base_board_final_d16.json`(2104 段 / 648 孔),图 `M18-d16-routed.png`;重铺 147 块填 135(功率铜面全填); + **DRC 间距 0 / 连接性 0**,只剩插槽封装自带 5 条(§27.8 起的老问题);`board_check` 118 / 121(GND 6 只通孔 / 铺铜脚、XTAL1/2 圆弧 —— 老误报); + 断面 L4→储能→Rs6 7.95 mm、L1 12V 主块 13.20 mm。 +- ⚠ `reload_base` 重载前会 save():一次 `d16_push … | tail && reload_base` 把读回差 1 段(被同网宽线整段覆盖的碎段)的版本存了进去, + 无害;链条一律 `set -o pipefail`。 +- ⚠ **2026-09-12 复核板面**(用户问「板上是不是最后那版」):与 `_base_board_final_d16.json` 逐项比,**少了 16 块铺铜、全是内层地** + (GND-L2-0~7 / GND-L3-0~7,L2/L3 各 13 → 5;L1 55 / L4 66 一块没少),线 / 孔 / 弧 / 填充 / 164 件位姿全同 —— + 也就是说**内层地平面被删掉一多半,而 DRC / board_check 都不会直接指出来**(一个不读铺铜,一个把它算成「靠铜面成网」)。 + 同时 USB2 差分对有 5 段直角改成了 45° 斜切(三个角),四层精确净距重算 0 条 ⇒ 改好不是改坏,**保留**。 + ⇒ 只 `pour_base --push` 重建 147 块 / 填 135(L2、L3 各回 13),重铺前后线 0 变、孔 0 变、元件位姿 0 变; + 恢复前存档 `_base_board_before_repour_0912.json`,此后基准 `_base_board_d16_restored_0912.json`。 + **教训:交接 / 收尾前按快照逐项比,铺铜要按「层 + 网 + 名字」逐块比,光看总块数看不出内层被删。** + +## 38. 底板风扇窗口按用户新布局重布 + L1 走廊重开(2026-09-12 用户要求) + +用户:「将底板按照现在我的布局重新布线」→ 选「**风扇窗口整体重布**(拆掉自己手布的 43 段重来)」+「GND 回流孔一起补」。 + +### 38.1 ⛔ 走廊是跟着**摆位**走的,摆位一变走廊就作废 + +§37.3 给 `FAN_PWM_L` 开 L1 走廊解决了「A6 是单层布线区」,后来又按当时的摆位加了三条 +(`FAN_TACH_OUT` 贴东缘竖带 / `FAN_EN` / `FAN_PWM` 短横带)。这一轮发现: + +**用户重摆之后,那四条走廊注释里写的坐标全是旧的** —— `R748.1` 从 (18.2,91.0) 跑到 **(5.13,73.91)**、 +`R757.2` 从 (27.2,93.0) 跑到 **(18.11,83.57)**。走廊还在原地,等于没开 +⇒ 四条长途网(`FAN_EN` / 两路 `TACH` / `FAN_PWM_L`)必然布不通,**与布线器参数无关**。 + +⇒ 走廊必须**和摆位一起维护**。为此把走廊做成可配置(`_base_window.json` 的 `pd_l1_extra`, +`repair_window.py` 运行时替换 `B.PD_L1` 里的 `FAN_*`),服务器单轮 1.5 s,试一组不用改源码; +定稿后再固化回 `pcb_base.PD_L1`。 + +### 38.2 走廊必须**盖住焊盘正上方**,不能只盖沿途 + +只盖沿途的话,那只脚得先在 L4 挪到走廊下方才打得了孔 —— 实测 `J27.4` / `Q10.3` 就是这么卡住的: + +| 版本 | 走廊 | 未完成 | +|---|---|---| +| 无走廊(旧的四条按旧摆位) | — | 4 | +| v1:只盖沿途 | 4 条 | 3(`FAN_EN` 0 段 → 11 段并布通) | +| **v2:盖住焊盘(定稿)** | **6 条** | **2** | +| v3:把 `FAN_TACH_IN` 竖带再放大 | 6 条 | 2(**换了人**:TACH_IN 通了、`FAN_EN` 掉了) | +| v4 = v3 + 把 `FAN_EN` 顶到 priority 最前 | 6 条 | 2(还是换人,总数不变) | + +⇒ 再次印证「priority 是按下葫芦浮起瓢」(§36 同结论)。**别再调**。 + +### 38.3 定稿的六条走廊与断面账 + +``` +FAN_EN (12.00, 76.10, 27.50, 77.10) R748.1 西段走 L4、东段借 L1 到窗缘 +FAN_TACH_IN (16.00, 75.15, 27.50, 76.05) 主干端点 (26.00,75.62) 在窗缘 +FAN_TACH_IN (13.70, 76.05, 16.20, 90.40) 竖带盖住 Q9.3 / R753.2 +FAN_TACH_OUT (17.40, 80.70, 27.50, 81.70) 盖住 Q10.3 +FAN_TACH_OUT (17.40, 81.70, 18.80, 84.10) 竖段接 R757.2 +FAN_PWM_L (10.30, 83.90, 22.50, 87.30) 盖住 J27.4 与 Q6.3 +``` + +- 判据(§6.4 ≥ 8.0 mm):主块宽 27.30,**逐 y 水平断面**上扣掉走廊的 x 跨度 ⇒ 新工具 `l1_section.py`。 + 纯几何算 **11.80 mm**;铺铜之后 `pour_base` 的实测断面(还要扣掉线和孔)**9.82 mm**,仍达标。 +- **横带很贵、竖带几乎免费**:横带按它的 x 跨度整段扣,竖带只扣 1~3 mm。 +- 走廊 x 一律 ≤ 27.5,而槽指头在 x ≥ 27.5 ⇒ **不碰任何一槽的供电路径**。 +- 只挡**导线图**,铺铜不用开窗(同 §37.3)。 + +### 38.4 「布不通」这次不是拥塞 + +- L4 沿四条路径**逐 x 扫过纵向空隙:没有一条彻底堵死**(最窄 0.9 mm)。 +- L1 上按 0.25 网格泛洪:`J27.4` → 已布 L1 段 **686 个格点可达**;`R753.2` → 窗缘 **757 个可达**。 +- 换层孔在 `J27.4` 旁 **0.25 mm** 处就落得下。 +⇒ 三项都排除之后,`FAN_PWM_L: J27.4` 仍 0 段,**剩下的怀疑对象是 A\* 自身**(同 §36 的 `$6N64`)。 + +### 38.5 板上结果 + +拆 43 段 → 补 **139 段 / 7 孔** → GND 回流孔 **10 个** → 缝合孔 **25 个**; +板上 外层 1960 / 内层 116(用户手布,一段没动)/ 过孔 669;铺铜 147 块建齐、填出 132(空的 15 块全是 GND 小瓦片)。 +`fan_check` 对**板上真实快照**逐项净距达标(含「新孔 vs 内层线」);669 个孔 vs 新线异网净距 0 处不足。 + +**遗留**:① `FAN_PWM_L: J27.4` 没接上;② `FAN_EN` / `FAN_TACH_IN` / `FAN_TACH_OUT` 到 U20 的**窗外段** +(缺口 15.6 / 17.7 / 16.6 mm,中间是槽体 x 28~70 的手焊 1 mm 针排,按设计不许穿 —— **拆线前也没通**); +③ `DZ3.1`(+12V) 被挪走后离开了原来的换层孔,最近同网铜 9.1 mm(L4 上那一带没有 12V 铜,要靠孔上 L1) +—— **拆线前就是这样**,已在本轮顺手补一个 +12V 过孔(落点就在焊盘中心)。 + +⚠ 与拆线前逐网对比(同一套并查集判据):`GND` 未接 58 → **48**、`+3V3` 未接 2 → **0**、 +两路 `TACH` 未接 2/1 → **0**、`+12V` **一字不差**、`XTAL1/2` 不变(老误报) +⇒ 本轮**没有引入任何新的连通性问题**。 + +### 38.6 两条操作上的坑 + +- **EasyEDA 会合并线段**:拆线点名 43 段、外层实际只少 42(`FAN_PWM` 主干被延长);下发 139 段、 + 板上净增 142,其中 8 段"按坐标找不到" —— 逐段核过**全部被同网同层铜覆盖,真缺失 0**。 + ⇒ 拆 / 发之后要按「几何是否被覆盖」判,不能只按坐标比对。 +- **EasyEDA 的 PCB API 回的是 mil**。抓板脚本漏了 ×0.0254 时,连通性判据会把**每一只脚**都报成"未接", + 而数值上看着完全正常。 + +## 39. 底板位号丝印重排(2026-09-12 用户要求「按当前 EDA 中底板状态定版,优化丝印放置」) + +板上布线以**用户自己布好的那一版为准**(定版,不再动铜);这一节只改丝印。 + +### 39.1 现状体检 + +板上 **164 个位号**(`pcb_PrimitiveAttribute`,`key=='Designator'`),字高统一 1.143 mm、 +居中对齐、不镜像;顶层丝印(layer 3)10 个、底层(layer 4)153 个可见,`C743` 不可见。 +**板上没有任何元件外框丝印**(丝印层 0 线 0 弧)—— 装配时只有位号可依。 + +| 判据 | 改前 | 改后 | +|---|---|---| +| 压同面焊盘 | **128** | **4** | +| 压过孔 | 48 | 8 | +| 越板框(留 0.5) | 8 | 3 | +| 位号互相重叠 | 34 对 | **0** | + +重排 150 个(理想位 143 / 允许压过孔 4 / 允许压焊盘 3),白名单保留 13 个; +位号离本体中心平均 2.19 mm、最远 6.97 mm(`L4`,本体 15×12.5,位号贴在本体外 0.5 mm)。 + +### 39.2 ⛔ 三条判据上的坑 + +1. **`rotation` 字段是「度」且不归一化**:`900` 表示 180°、`720` 表示 0°。 + 按 ×10 解读会得到「9° / 18° / 27°…」这种**看着像真的却完全错误**的朝向分布。读回一律 `% 360`。 +2. **不能用「本体 ≥ 5 mm」当保留白名单**。第一版这么写,把 `R9A`(7.4×3.5) / `D3`(6.8×2.2) / + `U13`(2.3×5.8) 这些**该重排**的中等件一起豁免了 —— 改后残留 25 个里 **18 个**是这么来的。 + ⇒ 改成**显式名单** `silk_base.KEEP`:五个插槽(位号故意放槽体西侧 x=28,离本体 21 mm)、 + `U20`(让开天线净空)、顶面件 `J26/J27/J33/C2/C3`、板边 USB-C `J1/J23`。收紧后残留 25 → 12。 +3. **必须给「离本体」设硬上限**(`MAXD = 2.2` mm,量到本体外框)。 + 不设的话贪心会把位号甩到十几毫米外的空地上 —— 实测平均 3.28 / 最远 22.2 mm, + 那样的位号对装配没有指向性。够不着就**降级**:理想位 → 允许压过孔 → 允许压焊盘 → 保留原位。 + +### 39.3 可行性先算过再动手 + +按现字高 1.143 mm 扫一遍:163 个可见位号里 **161 个有解**(无解只有 `R13` / `C745`); +缩到 0.9 mm 则全部有解。⇒ **不用缩字号**,保持 1.143 mm 可读性。 + +### 39.4 残留(都已定位,不是漏查) + +- 白名单 5 个:`J23` 压过孔、`J26`/`J33`/`U20` 越框、`J1` 压 `U36.11` —— 都是原本就如此的设计位。 +- 重排后 7 个降级:`C731`/`C744`/`C749`/`R603` 压过孔,`C745`/`R12`/`R13` 压焊盘 + 过孔 + (都在最密的 0402 群里,周围 2.2 mm 内没有干净落点)。 + +工具:**`silk_base.py`**(`--push` 走 `pcb_PrimitiveAttribute.modify(id, {x, y, rotation})`, +下发后读回逐个核对),快照 `_base_silk.json`、方案 `_base_silk_plan.json`。