feat(hardware): route the 48V sub-board PCB
CI / firmware-native (push) Successful in 56s
qa-cicd-environments / qa-kxkm-s3-memory-budget (push) Successful in 10m44s
qa-cicd-environments / qa-kxkm-s3-build (push) Successful in 12m38s
qa-cicd-environments / qa-sim-host (push) Successful in 1m34s

Context: the 48V sub-board schematic added R6/R7 (series gate
resistors) and D1/D2 (VGS zener clamps) that were not yet on the
PCB; the netlist also splits the two gate nets.

Approach: scripted pcbnew edit — create the three new nets, reassign
gate pads/tracks/vias, cut the two collector-to-gate-bus tracks and
place the series resistors inline on them, place the zeners at the
shortest reach of the gate/source rails, refill zones. Iterated
against DRC: R6/R7 moved to 0402 to satisfy the 0.5 mm board-edge
rule inside the screw-keepout corridor.

Changes:
- R6 inline on the x=162 gate column, R7 inline on the x=126 column
  (both 0402, schematic footprints synced)
- D1/D2 SOD-123 with short stubs to the gate columns and to R2.2/
  R5.2 (+BATT rails)
- Gate pads, tracks and vias reassigned to Net-(D1-A)/Net-(D2-A);
  Q11 collector on Net-(Q11-C)
- DRC: identical to the 30V baseline (12 keepout + 560 mask-bridge
  legacy items), 0 unconnected pads; title block rev 0.2-draft
- Design note and presentation deck updated (routed PCB render)

Impact: the 48V sub-board is now fully designed - schematic and
routed layout - ready for bench validation with IRF5210s.
This commit is contained in:
L'électron rare
2026-07-05 20:14:41 +02:00
parent d82ddb9247
commit b5a13c23c9
6 changed files with 11558 additions and 2355 deletions
File diff suppressed because one or more lines are too long
Binary file not shown.
@@ -118,7 +118,7 @@ Trois points durs identifiés dans le code + deux calibrations :
| Lot | Contenu | Ampleur |
|---|---|---|
| Sous-carte 48 V | respin 2 couches, même contour/connectique | petit (schéma 1 feuille, ~20 composants) |
| Sous-carte 48 V | ✅ **fait** (2026-07-05) : `hardware/pcb-bmu-v2/BMU_switch_mosfet_48v/` — schéma (ERC = baseline) + PCB routé (DRC = baseline, 0 pad non connecté) ; R6/R7 en 0402 | livré en draft 0.2 |
| Carte mère v2.1 | buck 100 V + condos + DRC | petit |
| Firmware | variante Kconfig + 3 fichiers + profils SOC | petit |
| Banc | protocole §6, dont caractérisation BMS packs | **le vrai travail** |
File diff suppressed because it is too large Load Diff
@@ -3,6 +3,8 @@
"3dviewports": [],
"design_settings": {
"defaults": {
"apply_defaults_to_fp_barcodes": false,
"apply_defaults_to_fp_dimensions": false,
"apply_defaults_to_fp_fields": false,
"apply_defaults_to_fp_shapes": false,
"apply_defaults_to_fp_text": false,
@@ -48,7 +50,23 @@
"silk_text_thickness": 0.1,
"silk_text_upright": false,
"zones": {
"min_clearance": 0.0
"border_display_style": 2,
"border_hatch_pitch": 0.5,
"corner_radius": 0.0,
"corner_smoothing": 0,
"fill_mode": 0,
"hatch_gap": 1.5,
"hatch_orientation": 0.0,
"hatch_smoothing_level": 0,
"hatch_smoothing_value": 0.1,
"hatch_thickness": 1.0,
"min_clearance": 0.0,
"min_island_area": 10.0,
"min_thickness": 0.25,
"pad_connection": 1,
"remove_islands": 0,
"thermal_relief_gap": 0.5,
"thermal_relief_spoke_width": 0.5
}
},
"diff_pair_dimensions": [],
@@ -63,16 +81,20 @@
"copper_edge_clearance": "error",
"copper_sliver": "warning",
"courtyards_overlap": "error",
"creepage": "error",
"diff_pair_gap_out_of_range": "error",
"diff_pair_uncoupled_length_too_long": "error",
"drill_out_of_range": "error",
"duplicate_footprints": "warning",
"extra_footprint": "warning",
"footprint": "error",
"footprint_filters_mismatch": "ignore",
"footprint_symbol_field_mismatch": "warning",
"footprint_symbol_mismatch": "warning",
"footprint_type_mismatch": "ignore",
"hole_clearance": "error",
"hole_near_hole": "error",
"hole_to_hole": "error",
"holes_co_located": "warning",
"invalid_outline": "error",
"isolated_copper": "warning",
@@ -83,9 +105,12 @@
"lib_footprint_mismatch": "ignore",
"malformed_courtyard": "error",
"microvia_drill_out_of_range": "error",
"mirrored_text_on_front_layer": "warning",
"missing_courtyard": "ignore",
"missing_footprint": "warning",
"missing_tuning_profile": "warning",
"net_conflict": "warning",
"nonmirrored_text_on_back_layer": "warning",
"npth_inside_courtyard": "ignore",
"padstack": "warning",
"pth_inside_courtyard": "ignore",
@@ -97,12 +122,18 @@
"solder_mask_bridge": "error",
"starved_thermal": "error",
"text_height": "warning",
"text_on_edge_cuts": "error",
"text_thickness": "warning",
"through_hole_pad_without_hole": "error",
"too_many_vias": "error",
"track_angle": "error",
"track_dangling": "warning",
"track_not_centered_on_via": "ignore",
"track_on_post_machined_layer": "error",
"track_segment_length": "error",
"track_width": "error",
"tracks_crossing": "error",
"tuning_profile_track_geometries": "ignore",
"unconnected_items": "error",
"unresolved_variable": "error",
"via_dangling": "warning",
@@ -113,6 +144,7 @@
"min_clearance": 0.0,
"min_connection": 0.0,
"min_copper_edge_clearance": 0.5,
"min_groove_width": 0.0,
"min_hole_clearance": 0.25,
"min_hole_to_hole": 0.25,
"min_microvia_diameter": 0.2,
@@ -130,10 +162,11 @@
},
"teardrop_options": [
{
"td_onpadsmd": true,
"td_onpthpad": true,
"td_onroundshapesonly": false,
"td_onsmdpad": true,
"td_ontrackend": false,
"td_onviapad": true
"td_onvia": true
}
],
"teardrop_parameters": [
@@ -202,16 +235,28 @@
"zones_allow_external_fillets": false
},
"ipc2581": {
"bom_rev": "",
"dist": "",
"distpn": "",
"internal_id": "",
"mfg": "",
"mpn": ""
"mpn": "",
"sch_revision": ""
},
"layer_pairs": [],
"layer_presets": [],
"viewports": []
},
"boards": [],
"component_class_settings": {
"assignments": [],
"meta": {
"version": 0
},
"sheet_component_classes": {
"enabled": false
}
},
"cvpcb": {
"equivalence_files": []
},
@@ -432,7 +477,7 @@
},
"meta": {
"filename": "BMU_switch_mosfet_48v.kicad_pro",
"version": 1
"version": 3
},
"net_settings": {
"classes": [
@@ -447,15 +492,17 @@
"microvia_drill": 0.1,
"name": "Default",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"priority": 2147483647,
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.2,
"tuning_profile": "",
"via_diameter": 0.6,
"via_drill": 0.3,
"wire_width": 6
}
],
"meta": {
"version": 3
"version": 5
},
"net_colors": null,
"netclass_assignments": null,
@@ -535,6 +582,7 @@
"sort_asc": true,
"sort_field": "Référence"
},
"bus_aliases": {},
"connection_grid_size": 50.0,
"drawing": {
"dashed_lines_dash_length_ratio": 12.0,
@@ -572,7 +620,14 @@
"spice_save_all_dissipations": false,
"spice_save_all_voltages": false,
"subpart_first_id": 65,
"subpart_id_separator": 0
"subpart_id_separator": 0,
"top_level_sheets": [
{
"filename": "BMU_switch_mosfet_48v.kicad_sch",
"name": "BMU_switch_mosfet_48v",
"uuid": "00000000-0000-0000-0000-000000000000"
}
]
},
"sheets": [
[
@@ -580,5 +635,11 @@
"Root"
]
],
"text_variables": {}
"text_variables": {},
"tuning_profiles": {
"meta": {
"version": 0
},
"tuning_profiles_impedance_geometric": []
}
}
@@ -7,9 +7,9 @@
(title_block
(title "BMU switch MOSFET - variante 48 V (13s)")
(date "2026-07-05")
(rev "0.1-draft")
(rev "0.2-draft")
(comment 1 "IRF5210 (100 V) + clamp VGS zener 12 V + R serie 15k + MMBTA42")
(comment 2 "Derive de BMU_switch_mosfet (30 V) - PCB a re-router pour D1/D2/R6/R7")
(comment 2 "Derive de BMU_switch_mosfet (30 V) - PCB route, DRC = baseline, 0 pad non connecte")
)
(lib_symbols
(symbol "Device:R_Small"
@@ -2475,7 +2475,7 @@
)
)
)
(property "Footprint" "Resistor_SMD:R_0603_1608Metric"
(property "Footprint" "Resistor_SMD:R_0402_1005Metric"
(at 68.58 115.57 0)
(effects
(font
@@ -3101,7 +3101,7 @@
)
)
)
(property "Footprint" "Resistor_SMD:R_0603_1608Metric"
(property "Footprint" "Resistor_SMD:R_0402_1005Metric"
(at 77.47 95.25 0)
(effects
(font
@@ -3250,7 +3250,7 @@
)
)
)
(property "Footprint" "Resistor_SMD:R_0603_1608Metric"
(property "Footprint" "Resistor_SMD:R_0402_1005Metric"
(at 77.47 107.95 0)
(effects
(font
@@ -3399,7 +3399,7 @@
)
)
)
(property "Footprint" "Resistor_SMD:R_0603_1608Metric"
(property "Footprint" "Resistor_SMD:R_0402_1005Metric"
(at 106.68 107.95 0)
(effects
(font
@@ -3715,7 +3715,7 @@
)
)
)
(property "Footprint" "Resistor_SMD:R_0603_1608Metric"
(property "Footprint" "Resistor_SMD:R_0402_1005Metric"
(at 130.81 95.25 0)
(effects
(font
@@ -4151,7 +4151,7 @@
)
)
)
(property "Footprint" "Resistor_SMD:R_0603_1608Metric"
(property "Footprint" "Resistor_SMD:R_0402_1005Metric"
(at 87.63 100.33 0)
(effects
(font
@@ -4218,7 +4218,7 @@
)
)
)
(property "Footprint" "Resistor_SMD:R_0603_1608Metric"
(property "Footprint" "Resistor_SMD:R_0402_1005Metric"
(at 116.84 100.33 0)
(effects
(font