techmannih/nema34-mounted-stepper-controller
A USB-C PD-powered RP2040 motor controller with protected 48 V power, DRV8262 dual-bridge drive for a NEMA34 motor, regenerative-braking resistor, isolated sensing, hardware interlocks, and telemetry/status interfaces.
- Version
- 0.3.113
- License
- unset
- Stars
- 1
engineering/source-design-rule-eco.json
{
"baseline_commit": "a58e277bcf781e29a529ddc8c464220ce60a4050",
"baseline_board_sha256": "55af343cea51bb0e6ccadbc54a40c706b5c0c1b672352221a93bd8b64a68eb69",
"baseline_project_sha256": "4f20c4b0e4d49fa3f6f831b15a39fbb8509040298a5f9863efbfe6823eef0500",
"board_sha256": "2880cf5c42f62f26465c4ceb164357e5228ccf19ff86d115c116c3b1ec52891e",
"canonical_unfilled_sha256": "e1bd57a40a87bba5e744d279dc2688a85d88b3fa35615711d74e491fa6d71453",
"project": {
"board": {
"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,
"board_outline_line_width": 0.05,
"copper_line_width": 0.2,
"copper_text_italic": false,
"copper_text_size_h": 1.5,
"copper_text_size_v": 1.5,
"copper_text_thickness": 0.3,
"copper_text_upright": false,
"courtyard_line_width": 0.05,
"dimension_precision": 4,
"dimension_units": 3,
"dimensions": {
"arrow_length": 1270000,
"extension_offset": 500000,
"keep_text_aligned": true,
"suppress_zeroes": true,
"text_position": 0,
"units_format": 0
},
"fab_line_width": 0.1,
"fab_text_italic": false,
"fab_text_size_h": 1,
"fab_text_size_v": 1,
"fab_text_thickness": 0.15,
"fab_text_upright": false,
"other_line_width": 0.1,
"other_text_italic": false,
"other_text_size_h": 1,
"other_text_size_v": 1,
"other_text_thickness": 0.15,
"other_text_upright": false,
"pads": {
"drill": 0.8,
"height": 1.27,
"width": 1.27
},
"silk_line_width": 0.1,
"silk_text_italic": false,
"silk_text_size_h": 1,
"silk_text_size_v": 1,
"silk_text_thickness": 0.1,
"silk_text_upright": false,
"zones": {
"border_display_style": 2,
"border_hatch_pitch": 0.5,
"corner_radius": 0,
"corner_smoothing": 0,
"fill_mode": 0,
"hatch_gap": 1.5,
"hatch_orientation": 0,
"hatch_smoothing_level": 0,
"hatch_smoothing_value": 0.1,
"hatch_thickness": 1,
"min_clearance": 0.16,
"min_island_area": 10,
"min_thickness": 0.15,
"pad_connection": 1,
"remove_islands": 0,
"thermal_relief_gap": 0.25,
"thermal_relief_spoke_width": 0.3
}
},
"diff_pair_dimensions": [],
"drc_exclusions": [],
"meta": {
"version": 2
},
"rule_severities": {
"annular_width": "error",
"clearance": "error",
"connection_width": "warning",
"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_to_hole": "warning",
"holes_co_located": "warning",
"invalid_outline": "error",
"isolated_copper": "warning",
"item_on_disabled_layer": "error",
"items_not_allowed": "error",
"length_out_of_range": "error",
"lib_footprint_issues": "warning",
"lib_footprint_mismatch": "warning",
"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": "error",
"padstack": "warning",
"pth_inside_courtyard": "error",
"shorting_items": "error",
"silk_edge_clearance": "warning",
"silk_over_copper": "warning",
"silk_overlap": "warning",
"skew_out_of_range": "error",
"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",
"zones_intersect": "error"
},
"rules": {
"max_error": 0.005,
"min_clearance": 0,
"min_connection": 0.09,
"min_copper_edge_clearance": 0.2,
"min_groove_width": 0.09,
"min_hole_clearance": 0.13,
"min_hole_to_hole": 0.25,
"min_microvia_diameter": 0.2,
"min_microvia_drill": 0.1,
"min_resolved_spokes": 2,
"min_silk_clearance": 0,
"min_text_height": 0.8,
"min_text_thickness": 0.08,
"min_through_hole_diameter": 0.3,
"min_track_width": 0.15,
"min_via_annular_width": 0.1,
"min_via_diameter": 0.5,
"solder_mask_to_copper_clearance": 0,
"use_height_for_length_calcs": true
},
"teardrop_options": [
{
"td_onpthpad": true,
"td_onroundshapesonly": false,
"td_onsmdpad": true,
"td_ontrackend": false,
"td_onvia": true
}
],
"teardrop_parameters": [
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1,
"td_length_ratio": 0.5,
"td_maxheight": 2,
"td_maxlen": 1,
"td_on_pad_in_zone": false,
"td_target_name": "td_round_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1,
"td_length_ratio": 0.5,
"td_maxheight": 2,
"td_maxlen": 1,
"td_on_pad_in_zone": false,
"td_target_name": "td_rect_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1,
"td_length_ratio": 0.5,
"td_maxheight": 2,
"td_maxlen": 1,
"td_on_pad_in_zone": false,
"td_target_name": "td_track_end",
"td_width_to_size_filter_ratio": 0.9
}
],
"track_widths": [],
"tuning_pattern_settings": {
"diff_pair_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 1
},
"diff_pair_skew_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
},
"single_track_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
}
},
"via_dimensions": [],
"zones_allow_external_fillets": false
},
"ipc2581": {
"bom_rev": "",
"dist": "",
"distpn": "",
"internal_id": "",
"mfg": "",
"mpn": "",
"sch_revision": ""
},
"last_opened_board": "pd1180-epr-r0.3.kicad_pcb",
"layer_pairs": [],
"layer_presets": [],
"meta": {
"version": 1
},
"viewports": []
},
"boards": [],
"component_class_settings": {
"assignments": [],
"meta": {
"version": 0
},
"sheet_component_classes": {
"enabled": false
}
},
"cvpcb": {
"equivalence_files": [],
"meta": {
"version": 0
}
},
"erc": {
"erc_exclusions": [],
"meta": {
"version": 0
},
"rule_severities": {
"footprint_link_issues": "ignore",
"lib_symbol_issues": "ignore"
}
},
"head": {
"created": "2026-10-27T04:00:21.978Z",
"generator": "circuit-json-to-kicad",
"generator_version": "0.0.1",
"modified": "2026-10-27T04:00:21.978Z",
"project_name": "pd1180-epr-r0.3"
},
"libraries": {
"pinned_footprint_libs": [],
"pinned_symbol_libs": []
},
"meta": {
"filename": "pd1180-epr-r0.3.kicad_pro",
"version": 3
},
"net_settings": {
"classes": [
{
"clearance": 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.15,
"tuning_profile": "",
"via_diameter": 0.5,
"via_drill": 0.3
}
],
"last_net_id": 0,
"meta": {
"version": 5
},
"net_colors": null,
"netclass_assignments": null,
"netclass_patterns": []
},
"pcbnew": {
"last_paths": {
"idf": "",
"netlist": "",
"plot": "",
"specctra_dsn": "",
"step": "",
"vrml": ""
},
"page_layout_descr_file": ""
},
"schematic": {
"bus_aliases": {},
"last_opened_files": [
"index.kicad_sch"
],
"legacy_lib_dir": "",
"legacy_lib_list": [],
"meta": {
"version": 1
},
"page_layout_descr_file": "",
"top_level_sheets": [
{
"filename": "pd1180-epr-r0.3.kicad_sch",
"name": "pd1180-epr-r0.3",
"uuid": "00000000-0000-0000-0000-000000000000"
}
]
},
"sheets": [
[
"01f8306b-f459-4b8f-baa3-051cf4d85fe9",
"Root"
],
[
"d16ecabe-6140-4986-ab90-d55e6b958903",
"USB-C PD POWER"
],
[
"998bc724-237e-4eef-a6cf-77a9710ab953",
"PD Controller and EEPROM"
],
[
"0d53a0e8-e905-4072-b8c4-42bf5d72f530",
"PD Backup Supply"
],
[
"39476a8d-a00a-433f-86d1-e820c17303dd",
"Motor Backup Supply"
],
[
"39becfb3-eb49-449b-bfda-58288a1e47e0",
"Logic Supply Selection and Power Permit"
],
[
"42b298fd-1245-418b-9410-ed4eca2fe09f",
"Protected 48 V Motor Bus"
],
[
"c118eb67-6068-441e-9d81-252655f56fab",
"Motion Controller"
],
[
"4d5302e4-619f-444a-9419-8821a37a7825",
"Onboard Motion and Hardware Enable"
],
[
"a291e20d-22fd-4298-a180-8f6d2b3cc900",
"Motor Phase A Power Bridge"
],
[
"4f7a7528-001f-4aaf-bb49-39f2c7454615",
"Motor Phase B Power Bridge"
],
[
"21a4a9f2-1dc1-4587-96fa-175eb77fc371",
"Brake Reference and Turn-on Threshold"
],
[
"b906c162-2837-4b03-a4c1-7c7126b09719",
"Overvoltage Inhibit and Brake Driver"
],
[
"9c8ece67-6314-4d21-8fbc-7e6df8f202b2",
"MCU Clock Memory and Debug"
],
[
"214ed9bf-87c5-40f6-9e32-20be73f9db65",
"Optional Shaft Encoder"
],
[
"f89f0fb2-7ca5-472c-8050-91f485f28d09",
"USB DATA and Attach Sense"
],
[
"982ad937-5399-4c2a-bb35-4daf4af00282",
"Local Start and Stop"
],
[
"45d0c212-7a32-44e0-82ad-df34ca550dca",
"USB Logic Power"
],
[
"757667e2-f608-4ea2-b342-bb62bcf9539d",
"Temperature and Bus Diagnostics"
],
[
"ba6589ba-f987-4a92-911d-e6dab1462fa2",
"Phase Current Diagnostics"
],
[
"4745ff2b-95a8-459a-8723-0831583c1823",
"Regulated Driver Supply"
],
[
"518ec986-383f-46c1-a3c7-3db855c237de",
"Status and Independent Power Indication"
],
[
"766524d8-beaa-4c75-836d-5413502cac4a",
"Audible Fault Alarm"
],
[
"f3167a78-e61f-4240-9799-09aa33a48015",
"PD Programming and Power Probes"
],
[
"c35fc779-dce4-461b-95a8-8de0cede3cc6",
"Brake Continuity Preflight"
]
],
"text_variables": {},
"tuning_profiles": {
"meta": {
"version": 0
},
"tuning_profiles_impedance_geometric": []
},
"version": 1
},
"delta_sha256": "201b59ff849b9bb42220252c770b7f5bd3d9a89f37aaa6afbdbc983e530b5af6",
"modified": {
"segment": 2237,
"via": 222,
"zone": 2
},
"added": {
"segment": 11
},
"removed": {
"segment": 155,
"via": 1
},
"footprints_unchanged": 281,
"non_copper_native_records_sha256": "0d29474c423879782a1a8e8adb3d708e03ae3984ef2944a223fcc5e1eea418b4",
"protected_projection_sha256": "0b9cba1d70c18df296d03f98dce6854741653491a6a29c37c9252949b6dc3ca8",
"reason": "2026-10-27: enforce existing source 0.15 mm track width and 0.30/0.50 mm GND pour rules; preserve footprints, schematic and holes; local oscillator/USB return-path reroutes.",
"fresh_export_validation": {
"minimum_actual_track_width_mm": 0.15,
"track_count": 516,
"thin_track_uuids": [],
"ground_zones": [
{
"uuid": "5647a1aa-3262-fbb6-44f2-66ea43b83676",
"layer": "In1.Cu",
"name": "GND_PLANE",
"clearance_mm": 0.3,
"outline_outside_required_inset_mm2": 0.0
}
],
"errors": [],
"board_sha256": "3d5efe4781c530d8d92a0e69a4f6b9a72f05979ff22ab75b29401ea09b5e4b91",
"standards_sha256": "f55a3ab1a3cff11bf75798eaa66d23dba920be2af722588e8f0b98044a717b92",
"checker_sha256": "efb6a8c5d9d64b3b93596b7b7f0be617d149869f2c0befb4831481d039949660"
},
"reproduction_validation": {
"kicad_version": "10.0.5",
"canonical_filled_board_sha256": "b8d5e1fd45f43d73e42989f74e2b0cf55ccca616add5ef3612ba369a4cc76d0f",
"matches_delivered_board": true,
"errors": 0,
"unconnected": 0,
"existing_cosmetic_warnings": 401
},
"delta_archive": "engineering/source-design-rule-delta.zip",
"delta_entry": "delta.json",
"delta_archive_sha256": "04970f4780909a6ddb7bbd344f34f7871beaa8ae107690b83bb11e138aee5192"
}