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

docs/checks/commissioning-profiles.json

{
  "checked_at": "2026-11-06T05:30:11.180Z",
  "architecture": "RP2040 + DRV8262DDVR + MCP4822",
  "scope": "Real ARM compile and software file-comparison tests using explicitly synthetic prerequisite/readback fixtures. No hardware flashed or measured.",
  "hardware_programmed": false,
  "hardware_tests_performed": false,
  "profiles": [
    {
      "profile": "power-test",
      "image_bytes": 90920,
      "sha256": "2c9dc7b0465c701a44b1fbaa19d00424a674cd2f92a95a29dac62b4203d285b5",
      "motion_enabled": false,
      "arm_build": "pass",
      "source_hashes": {
        "firmware/platformio.ini": "e51ed2bef8bdff2fa637f331d8cf99a1555318a983f86e7a43336ff1df33aa3b",
        "firmware/README.md": "45da1952c7e80fd1a0f1f75034af6878db553e01709fa355ed0ce746840098e2",
        "docs/commissioning.md": "60be8c8ce9ac29eb1a3abf8b24ff69daa53b41316b3ecdd1737a4a5f56eb4242",
        "engineering/commissioning-record.template.json": "92e9d9fb6b44b3d715057eaae2e3663fd21c8aadaddae10d81910622500c8b4e",
        "docs/firmware-pinmap.json": "75b8338ebf536ebf7277fadb87bdfa7b1fabb1a9d5373b44d40aa1962ff28d89",
        "scripts/build-firmware.mjs": "c4681948196a0f1ba1b64a05c22eafb5f45b73a6977378409da8cd20a4a8b055",
        "scripts/commissioning-profile.mjs": "0e814f4df263a850f1b36fa092935312f4326d10a960587000e325a5f8babe43",
        "scripts/verify-programming.mjs": "34659d9dcc821404c996ba0c7eb7c03efc594c94abe6a1c413f18c673bdc52ad",
        "firmware/src/as5600.c": "657aa35d5ccf4aa61891233a7c1ec5a228aa47a0c29c78d5066ffb6a29adf071",
        "firmware/src/brake_preflight.c": "3daade4d862f022ee6148bec76a34be6d2b4f89b1bf549d42f33196ca1a8cf8e",
        "firmware/src/control.c": "68242927b3939baf4ca4b59ecd0498b358751cec1abdb3319f93fe1d2a5c8437",
        "firmware/src/drv8262.c": "201372385af1e15b6bd8de814a3b4b8ec095528375282f1bfe235fb4b775887c",
        "firmware/src/main.c": "6ac87b47e61cd770ae3e8830c29925d7138ac57ffc2fe9b24ec8f6ea9a7f7582",
        "firmware/src/pd_contract.c": "81070c895f2190e477e773e1edc85cc82e26030bd028f23f04f55e57af240687",
        "firmware/src/pd_voltage.c": "e0cf7f64968b7eaa2bed0cb10e33633c87166136fbcdbfe47a56aa6fec3c3ce7",
        "firmware/src/power_domain.c": "822636abd381125de2fba698c57efb3b940903f089052e4f10ec5704c8d62d65",
        "firmware/src/step_motion.c": "b97c36f9a51c21a3e1fbeb974e51999abd0aa79581e50aac90219c50dfe04c7c",
        "firmware/src/telemetry.c": "1d07229dd0dc730ea0f0fb27e85bf398b792c90b8756f8f5f48bae44d0540bce",
        "firmware/include/as5600.h": "9b382063cf93da05740081ce37823cf41aa182dffd07a86d6eae2f28e3232e0e",
        "firmware/include/board_pins.h": "ffae19db0968f8038826bab30b8eb3f4abd65afe6de64a966426ac034659f917",
        "firmware/include/brake_preflight.h": "df8c4b5ecd98a2b1032aedc0f2db6e5b4e49363df61baa3b6316d67895eb054d",
        "firmware/include/control.h": "3fbe83a2dd9f25e2411fad4499c6370a1b370fcabcc0cd1fee2d62291889419f",
        "firmware/include/drv8262.h": "d7d1719cd7cd5629a4f269d4812c55fddf3d601f3e26949148c2fec3189cbe0f",
        "firmware/include/pd_contract.h": "d1c5ba4b42105e73d7ab7e775e558c27e9c7a5439d83cf537f0abb4ec5b61fc8",
        "firmware/include/pd_voltage.h": "28d750392e99b9e4153882b89f3d9d6b099a9305f713d155f0fece0a74447d11",
        "firmware/include/power_domain.h": "48b919d38c62e10dcf50e554181abb9204c812bde463ae3d4b0f2f390db5afa3",
        "firmware/include/step_motion.h": "0d681cf56e318c6ff17448141592f36f49ae6f9a1dc2425dcc1be1ff03ea6b85",
        "firmware/include/telemetry.h": "5b78411c0d1d8675561b58875f426f4c4e8fdff7db67b5b6b75990bab0eb1303",
        "firmware/include/test_profile.h": "8a32284fb4f18510bca5bed0d2032016e9111070d301ea9db1dedb2be7e27e20",
        "firmware/target/main.cpp": "1d1729f427322a786d68496fbec84d4ebaae30baeea1793d4103692dca502996",
        "firmware/target/usb_suspend.cpp": "68fd42dab625cf366b5a970942a2522b831924d8de9189184deedecec3e3de2d",
        "firmware/target/usb_suspend.h": "4fd6727fd3334c08fea9d7365f20bf9d523955220c45b3bdb3ea3195f526a562",
        "firmware/boards/README.md": "eece177f4f738f3903fe1fe5e6ba8d1f5125d3d5fb5c0bfffb454bb1a1e3ce19"
      },
      "synthetic_record_hash_present_in_binary": true,
      "synthetic_readback_file_comparison": "pass",
      "readback_bytes": 4194304,
      "compared_image_bytes": 90920,
      "limits": {
        "rms_request_ma": 800,
        "rpm": 10,
        "run_ms": 10000,
        "stationary_power_ms": 30000
      }
    },
    {
      "profile": "bench-test",
      "image_bytes": 91552,
      "sha256": "7483fed87aec60cc8b35d3844b9d188e9cb16a76650279022a619b752527cf6a",
      "motion_enabled": true,
      "arm_build": "pass",
      "source_hashes": {
        "firmware/platformio.ini": "e51ed2bef8bdff2fa637f331d8cf99a1555318a983f86e7a43336ff1df33aa3b",
        "firmware/README.md": "45da1952c7e80fd1a0f1f75034af6878db553e01709fa355ed0ce746840098e2",
        "docs/commissioning.md": "60be8c8ce9ac29eb1a3abf8b24ff69daa53b41316b3ecdd1737a4a5f56eb4242",
        "engineering/commissioning-record.template.json": "92e9d9fb6b44b3d715057eaae2e3663fd21c8aadaddae10d81910622500c8b4e",
        "docs/firmware-pinmap.json": "75b8338ebf536ebf7277fadb87bdfa7b1fabb1a9d5373b44d40aa1962ff28d89",
        "scripts/build-firmware.mjs": "c4681948196a0f1ba1b64a05c22eafb5f45b73a6977378409da8cd20a4a8b055",
        "scripts/commissioning-profile.mjs": "0e814f4df263a850f1b36fa092935312f4326d10a960587000e325a5f8babe43",
        "scripts/verify-programming.mjs": "34659d9dcc821404c996ba0c7eb7c03efc594c94abe6a1c413f18c673bdc52ad",
        "firmware/src/as5600.c": "657aa35d5ccf4aa61891233a7c1ec5a228aa47a0c29c78d5066ffb6a29adf071",
        "firmware/src/brake_preflight.c": "3daade4d862f022ee6148bec76a34be6d2b4f89b1bf549d42f33196ca1a8cf8e",
        "firmware/src/control.c": "68242927b3939baf4ca4b59ecd0498b358751cec1abdb3319f93fe1d2a5c8437",
        "firmware/src/drv8262.c": "201372385af1e15b6bd8de814a3b4b8ec095528375282f1bfe235fb4b775887c",
        "firmware/src/main.c": "6ac87b47e61cd770ae3e8830c29925d7138ac57ffc2fe9b24ec8f6ea9a7f7582",
        "firmware/src/pd_contract.c": "81070c895f2190e477e773e1edc85cc82e26030bd028f23f04f55e57af240687",
        "firmware/src/pd_voltage.c": "e0cf7f64968b7eaa2bed0cb10e33633c87166136fbcdbfe47a56aa6fec3c3ce7",
        "firmware/src/power_domain.c": "822636abd381125de2fba698c57efb3b940903f089052e4f10ec5704c8d62d65",
        "firmware/src/step_motion.c": "b97c36f9a51c21a3e1fbeb974e51999abd0aa79581e50aac90219c50dfe04c7c",
        "firmware/src/telemetry.c": "1d07229dd0dc730ea0f0fb27e85bf398b792c90b8756f8f5f48bae44d0540bce",
        "firmware/include/as5600.h": "9b382063cf93da05740081ce37823cf41aa182dffd07a86d6eae2f28e3232e0e",
        "firmware/include/board_pins.h": "ffae19db0968f8038826bab30b8eb3f4abd65afe6de64a966426ac034659f917",
        "firmware/include/brake_preflight.h": "df8c4b5ecd98a2b1032aedc0f2db6e5b4e49363df61baa3b6316d67895eb054d",
        "firmware/include/control.h": "3fbe83a2dd9f25e2411fad4499c6370a1b370fcabcc0cd1fee2d62291889419f",
        "firmware/include/drv8262.h": "d7d1719cd7cd5629a4f269d4812c55fddf3d601f3e26949148c2fec3189cbe0f",
        "firmware/include/pd_contract.h": "d1c5ba4b42105e73d7ab7e775e558c27e9c7a5439d83cf537f0abb4ec5b61fc8",
        "firmware/include/pd_voltage.h": "28d750392e99b9e4153882b89f3d9d6b099a9305f713d155f0fece0a74447d11",
        "firmware/include/power_domain.h": "48b919d38c62e10dcf50e554181abb9204c812bde463ae3d4b0f2f390db5afa3",
        "firmware/include/step_motion.h": "0d681cf56e318c6ff17448141592f36f49ae6f9a1dc2425dcc1be1ff03ea6b85",
        "firmware/include/telemetry.h": "5b78411c0d1d8675561b58875f426f4c4e8fdff7db67b5b6b75990bab0eb1303",
        "firmware/include/test_profile.h": "8a32284fb4f18510bca5bed0d2032016e9111070d301ea9db1dedb2be7e27e20",
        "firmware/target/main.cpp": "1d1729f427322a786d68496fbec84d4ebaae30baeea1793d4103692dca502996",
        "firmware/target/usb_suspend.cpp": "68fd42dab625cf366b5a970942a2522b831924d8de9189184deedecec3e3de2d",
        "firmware/target/usb_suspend.h": "4fd6727fd3334c08fea9d7365f20bf9d523955220c45b3bdb3ea3195f526a562",
        "firmware/boards/README.md": "eece177f4f738f3903fe1fe5e6ba8d1f5125d3d5fb5c0bfffb454bb1a1e3ce19"
      },
      "synthetic_record_hash_present_in_binary": true,
      "synthetic_readback_file_comparison": "pass",
      "readback_bytes": 4194304,
      "compared_image_bytes": 91552,
      "limits": {
        "rms_request_ma": 800,
        "rpm": 10,
        "run_ms": 10000,
        "stationary_power_ms": 30000
      }
    }
  ],
  "fresh_native_drc": {
    "pcb_sha256": "000495f20437bd5cbef3d1ed4b5b1eb64360de8e61818af3300d16093b128255",
    "refill_zones": true,
    "unconnected": 0,
    "schematic_parity": 0,
    "retained_usb_hole_errors": 8,
    "other_errors": 0,
    "warnings": 488,
    "erc_violations": 0
  }
}