)]}'
{
  "commit": "b0d3e6ce043e009d5e13b7941b9d3c3327c126f4",
  "tree": "a70a2cbd0368be7ec695d684d2d1f115a02cf335",
  "parents": [
    "74f6ffd99f1f35ba519a2346973a835ea2127d1d"
  ],
  "author": {
    "name": "Ha Thach",
    "email": "thach@tinyusb.org",
    "time": "Mon Oct 05 15:40:31 2026 +0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Oct 05 15:40:31 2026 +0700"
  },
  "message": "HIL: add a pyocd flasher, flash lpcxpresso55s28 over CMSIS-DAP (#4094)\n\npyocd has no VID/PID probe filter, so test/hil/pyocd/run_pyocd.py restricts pyusb discovery to the roster\u0027s vid_pid; user_script.py does an LPC55 debug-mailbox reset before pyocd\u0027s reset catch, whose flash blank check fails above 100 MHz (UM11126 5.3).",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c6cf505f376a32b23aa2a443638b2812952e1e98",
      "old_mode": 33188,
      "old_path": ".claude/skills/hil/scripts/hil_remote.py",
      "new_id": "41e6d9db631ac451f088ec84bef9af0678b2763c",
      "new_mode": 33188,
      "new_path": ".claude/skills/hil/scripts/hil_remote.py"
    },
    {
      "type": "modify",
      "old_id": "8f5a47c35b00f78d5c1f5392f542c951a0b69f51",
      "old_mode": 33188,
      "old_path": "docs/reference/hardware-in-the-loop.md",
      "new_id": "7cdcaa5a63438ee4da166b22468abf85db38562d",
      "new_mode": 33188,
      "new_path": "docs/reference/hardware-in-the-loop.md"
    },
    {
      "type": "modify",
      "old_id": "48f58e11aad2b28c59bbfe5e24d8a8c4075f5027",
      "old_mode": 33188,
      "old_path": "docs/reference/hil_boards.md",
      "new_id": "39d654f34cd6d9f95d53cbd833ed792d1c835230",
      "new_mode": 33188,
      "new_path": "docs/reference/hil_boards.md"
    },
    {
      "type": "modify",
      "old_id": "1b9e91411194359d6520547013772fb86cc1dfc1",
      "old_mode": 33261,
      "old_path": "test/hil/hil_flash.py",
      "new_id": "7583d3a34d0c3719a4b28f8e0a134f777cb05202",
      "new_mode": 33261,
      "new_path": "test/hil/hil_flash.py"
    },
    {
      "type": "modify",
      "old_id": "ee517191c3ddd6f4fab0fca03009c31cada25917",
      "old_mode": 33261,
      "old_path": "test/hil/hil_test.py",
      "new_id": "0f54fe349bd31c892b2f02aec65a4b712c62836f",
      "new_mode": 33261,
      "new_path": "test/hil/hil_test.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "db6b5829815f9cd0a400e2e769a987fe8f969294",
      "new_mode": 33188,
      "new_path": "test/hil/pyocd/run_pyocd.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "db1d9c107956dd2ff970835e79837f748e88c03a",
      "new_mode": 33188,
      "new_path": "test/hil/pyocd/user_script.py"
    },
    {
      "type": "modify",
      "old_id": "35e7a8e59eafca2c9e7273c543cb0b9f73c61cc6",
      "old_mode": 33188,
      "old_path": "test/hil/test/test_ci_select.py",
      "new_id": "9055eec3b16408ad7348d90416e619067d4d8fd7",
      "new_mode": 33188,
      "new_path": "test/hil/test/test_ci_select.py"
    },
    {
      "type": "modify",
      "old_id": "e4dc568722e659e3187a759bed5b1089862f74f3",
      "old_mode": 33188,
      "old_path": "test/hil/test/test_hil_bounded.py",
      "new_id": "ab06b9ac76230a4a9ad844686c84e5f038f3ffea",
      "new_mode": 33188,
      "new_path": "test/hil/test/test_hil_bounded.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fbe5b3e531c994a85766337a0f836422782630a5",
      "new_mode": 33188,
      "new_path": "test/hil/test/test_hil_pyocd.py"
    },
    {
      "type": "modify",
      "old_id": "edbaa733199edebb5974520510a0e2da0c742703",
      "old_mode": 33188,
      "old_path": "test/hil/tinyusb.json",
      "new_id": "137e397f1f062da43aea8945663dffcecbfda7ba",
      "new_mode": 33188,
      "new_path": "test/hil/tinyusb.json"
    }
  ]
}
