{
  "schema_version": 1,
  "generator": "scripts/render_hardware_assets.py",
  "renderer": "PyMuPDF 1.27.2.3",
  "coordinate_system": "PDF points, origin top-left, page_number is one-based",
  "board_side_convention": {
    "top": "PDF page 4, identified as the populated/component side from pad and component outlines",
    "bottom": "PDF page 5, opposite side; preserve the source PDF's view",
    "qualification": "PDF pages do not print layer names. These are composite views, not individual Gerber layers."
  },
  "assets": [
    {
      "file": "linear-pcb-top.png",
      "kind": "pcb-component-side",
      "description": "Component-side composite: pads, traces, copper and component outlines; PDF page 4",
      "source_pdf": "hardware/pcb/PCB_HallPos.pdf",
      "source_sha256": "3cb6f2bf18b1e7e757e876b0b5c2576b026c15cbb113f1de5090000d844b11cf",
      "page_number": 4,
      "page_rect_points": [
        0.0,
        0.0,
        83.66,
        98.54
      ],
      "crop_rect_points": [
        9.875,
        10.625,
        71.0,
        85.875
      ],
      "crop_method": "8x raster luminance < 220, enclosing bounds + 2 pt padding",
      "render_scale": 26.17586912,
      "pixel_size": [
        1601,
        1970
      ],
      "orientation": "as exported in source PDF; no mirror or rotation"
    },
    {
      "file": "linear-pcb-bottom.png",
      "kind": "pcb-reverse-side",
      "description": "Reverse-side composite: traces, copper, vias and original markings; PDF page 5",
      "source_pdf": "hardware/pcb/PCB_HallPos.pdf",
      "source_sha256": "3cb6f2bf18b1e7e757e876b0b5c2576b026c15cbb113f1de5090000d844b11cf",
      "page_number": 5,
      "page_rect_points": [
        0.0,
        0.0,
        83.66,
        98.54
      ],
      "crop_rect_points": [
        12.625,
        10.625,
        73.75,
        85.875
      ],
      "crop_method": "8x raster luminance < 220, enclosing bounds + 2 pt padding",
      "render_scale": 26.17586912,
      "pixel_size": [
        1601,
        1970
      ],
      "orientation": "as exported in source PDF; no mirror or rotation"
    },
    {
      "file": "linear-placement.png",
      "kind": "reference-designator-locator",
      "description": "Supplementary component locator from PDF page 1; not a copper-layer drawing",
      "source_pdf": "hardware/pcb/PCB_HallPos.pdf",
      "source_sha256": "3cb6f2bf18b1e7e757e876b0b5c2576b026c15cbb113f1de5090000d844b11cf",
      "page_number": 1,
      "page_rect_points": [
        0.0,
        0.0,
        83.66,
        98.54
      ],
      "crop_rect_points": [
        9.875,
        10.75,
        71.0,
        85.875
      ],
      "crop_method": "8x raster luminance < 220, enclosing bounds + 2 pt padding",
      "render_scale": 21.26789366,
      "pixel_size": [
        1301,
        1599
      ],
      "orientation": "as exported in source PDF; no mirror or rotation"
    },
    {
      "file": "encoder-pcb-top.png",
      "kind": "pcb-component-side",
      "description": "Component-side composite: pads, traces, copper and component outlines; PDF page 4",
      "source_pdf": "hardware/pcb/PCB_Encoder.pdf",
      "source_sha256": "23e2374356800359a051ee0187cc3924c8f7420097ef4ec539c53f85be977ff7",
      "page_number": 4,
      "page_rect_points": [
        0.0,
        0.0,
        93.69,
        90.09
      ],
      "crop_rect_points": [
        7.375,
        6.625,
        79.25,
        77.375
      ],
      "crop_method": "8x raster luminance < 220, enclosing bounds + 2 pt padding",
      "render_scale": 22.26086957,
      "pixel_size": [
        1601,
        1576
      ],
      "orientation": "as exported in source PDF; no mirror or rotation"
    },
    {
      "file": "encoder-pcb-bottom.png",
      "kind": "pcb-reverse-side",
      "description": "Reverse-side composite: traces, copper, vias and original markings; PDF page 5",
      "source_pdf": "hardware/pcb/PCB_Encoder.pdf",
      "source_sha256": "23e2374356800359a051ee0187cc3924c8f7420097ef4ec539c53f85be977ff7",
      "page_number": 5,
      "page_rect_points": [
        0.0,
        0.0,
        93.69,
        90.09
      ],
      "crop_rect_points": [
        14.5,
        6.625,
        86.375,
        77.375
      ],
      "crop_method": "8x raster luminance < 220, enclosing bounds + 2 pt padding",
      "render_scale": 22.26086957,
      "pixel_size": [
        1601,
        1576
      ],
      "orientation": "as exported in source PDF; no mirror or rotation"
    },
    {
      "file": "encoder-placement.png",
      "kind": "reference-designator-locator",
      "description": "Supplementary component locator from PDF page 1; not a copper-layer drawing",
      "source_pdf": "hardware/pcb/PCB_Encoder.pdf",
      "source_sha256": "23e2374356800359a051ee0187cc3924c8f7420097ef4ec539c53f85be977ff7",
      "page_number": 1,
      "page_rect_points": [
        0.0,
        0.0,
        93.69,
        90.09
      ],
      "crop_rect_points": [
        7.375,
        6.625,
        79.25,
        77.375
      ],
      "crop_method": "8x raster luminance < 220, enclosing bounds + 2 pt padding",
      "render_scale": 18.08695652,
      "pixel_size": [
        1301,
        1281
      ],
      "orientation": "as exported in source PDF; no mirror or rotation"
    },
    {
      "file": "linear-schematic.png",
      "kind": "full-schematic",
      "description": "Complete schematic, including source title block",
      "source_pdf": "hardware/schematics/SCH_HallPos.pdf",
      "source_sha256": "b8c0260d2461bf1e1f64af7ab5a77b7c4aa2e90c44671113a33094173cbe952f",
      "page_number": 1,
      "page_rect_points": [
        0.0,
        0.0,
        848.88,
        601.67
      ],
      "crop_rect_points": [
        0.0,
        0.0,
        848.88,
        601.67
      ],
      "crop_method": "full page",
      "render_scale": 2.82725472,
      "pixel_size": [
        2400,
        1702
      ],
      "orientation": "as exported in source PDF; no mirror or rotation"
    },
    {
      "file": "encoder-schematic.png",
      "kind": "full-schematic",
      "description": "Complete schematic, including source title block",
      "source_pdf": "hardware/schematics/SCH_Encoder.pdf",
      "source_sha256": "73e6239421a48f2f49e87980e88076c8184fdaa7117b37f26010209f1ab9d244",
      "page_number": 1,
      "page_rect_points": [
        0.0,
        0.0,
        848.88,
        601.67
      ],
      "crop_rect_points": [
        0.0,
        0.0,
        848.88,
        601.67
      ],
      "crop_method": "full page",
      "render_scale": 2.82725472,
      "pixel_size": [
        2400,
        1702
      ],
      "orientation": "as exported in source PDF; no mirror or rotation"
    },
    {
      "file": "linear-power.png",
      "kind": "schematic-detail",
      "description": "U5 input, U7 regulator, C7/C8/C9, D1 and NC1",
      "source_pdf": "hardware/schematics/SCH_HallPos.pdf",
      "source_sha256": "b8c0260d2461bf1e1f64af7ab5a77b7c4aa2e90c44671113a33094173cbe952f",
      "page_number": 1,
      "page_rect_points": [
        0.0,
        0.0,
        848.88,
        601.67
      ],
      "crop_rect_points": [
        45.0,
        265.0,
        402.0,
        440.0
      ],
      "crop_method": "reviewed fixed region",
      "render_scale": 5.04201681,
      "pixel_size": [
        1801,
        883
      ],
      "orientation": "as exported in source PDF; no mirror or rotation"
    },
    {
      "file": "linear-hall.png",
      "kind": "schematic-detail",
      "description": "U1/U2/U4 Hall sensors, C3/C4/C5, ADC1/ADC2/ADC3",
      "source_pdf": "hardware/schematics/SCH_HallPos.pdf",
      "source_sha256": "b8c0260d2461bf1e1f64af7ab5a77b7c4aa2e90c44671113a33094173cbe952f",
      "page_number": 1,
      "page_rect_points": [
        0.0,
        0.0,
        848.88,
        601.67
      ],
      "crop_rect_points": [
        354.0,
        48.0,
        558.0,
        216.0
      ],
      "crop_method": "reviewed fixed region",
      "render_scale": 6.8627451,
      "pixel_size": [
        1401,
        1154
      ],
      "orientation": "as exported in source PDF; no mirror or rotation"
    },
    {
      "file": "linear-mcu.png",
      "kind": "schematic-detail",
      "description": "U3 MCU, C1/C2, BOOT0/NRST, all used net labels",
      "source_pdf": "hardware/schematics/SCH_HallPos.pdf",
      "source_sha256": "b8c0260d2461bf1e1f64af7ab5a77b7c4aa2e90c44671113a33094173cbe952f",
      "page_number": 1,
      "page_rect_points": [
        0.0,
        0.0,
        848.88,
        601.67
      ],
      "crop_rect_points": [
        45.0,
        15.0,
        314.0,
        260.0
      ],
      "crop_method": "reviewed fixed region",
      "render_scale": 5.20446097,
      "pixel_size": [
        1401,
        1276
      ],
      "orientation": "as exported in source PDF; no mirror or rotation"
    },
    {
      "file": "linear-rs485.png",
      "kind": "schematic-detail",
      "description": "U6 transceiver, R4/R5, C6, TP2/TP3/TP4, all net labels",
      "source_pdf": "hardware/schematics/SCH_HallPos.pdf",
      "source_sha256": "b8c0260d2461bf1e1f64af7ab5a77b7c4aa2e90c44671113a33094173cbe952f",
      "page_number": 1,
      "page_rect_points": [
        0.0,
        0.0,
        848.88,
        601.67
      ],
      "crop_rect_points": [
        454.0,
        249.0,
        638.0,
        392.0
      ],
      "crop_method": "reviewed fixed region",
      "render_scale": 7.60869565,
      "pixel_size": [
        1401,
        1089
      ],
      "orientation": "as exported in source PDF; no mirror or rotation"
    },
    {
      "file": "linear-swd.png",
      "kind": "schematic-detail",
      "description": "CN1 SWD connector including power and grounded fixing pads",
      "source_pdf": "hardware/schematics/SCH_HallPos.pdf",
      "source_sha256": "b8c0260d2461bf1e1f64af7ab5a77b7c4aa2e90c44671113a33094173cbe952f",
      "page_number": 1,
      "page_rect_points": [
        0.0,
        0.0,
        848.88,
        601.67
      ],
      "crop_rect_points": [
        675.0,
        270.0,
        828.0,
        386.0
      ],
      "crop_method": "reviewed fixed region",
      "render_scale": 9.1503268,
      "pixel_size": [
        1401,
        1063
      ],
      "orientation": "as exported in source PDF; no mirror or rotation"
    },
    {
      "file": "linear-bus-connector.png",
      "kind": "schematic-detail",
      "description": "U5 power/RS485 connector, NC1 termination and D1 input protection",
      "source_pdf": "hardware/schematics/SCH_HallPos.pdf",
      "source_sha256": "b8c0260d2461bf1e1f64af7ab5a77b7c4aa2e90c44671113a33094173cbe952f",
      "page_number": 1,
      "page_rect_points": [
        0.0,
        0.0,
        848.88,
        601.67
      ],
      "crop_rect_points": [
        45.0,
        265.0,
        205.0,
        440.0
      ],
      "crop_method": "reviewed fixed region",
      "render_scale": 8.75,
      "pixel_size": [
        1401,
        1532
      ],
      "orientation": "as exported in source PDF; no mirror or rotation"
    },
    {
      "file": "linear-led.png",
      "kind": "schematic-detail",
      "description": "LED1/R1, VCC_5V and LED_STA",
      "source_pdf": "hardware/schematics/SCH_HallPos.pdf",
      "source_sha256": "b8c0260d2461bf1e1f64af7ab5a77b7c4aa2e90c44671113a33094173cbe952f",
      "page_number": 1,
      "page_rect_points": [
        0.0,
        0.0,
        848.88,
        601.67
      ],
      "crop_rect_points": [
        636.0,
        63.0,
        716.0,
        184.0
      ],
      "crop_method": "reviewed fixed region",
      "render_scale": 17.5,
      "pixel_size": [
        1400,
        2118
      ],
      "orientation": "as exported in source PDF; no mirror or rotation"
    }
  ]
}
