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"
}