{
  "version": "2.7.0",
  "generated": "2026-04-29T18:00:00Z",
  "source": "https://github.com/sunnyday-technologies/M3-CRETE",
  "parts": [
    {
      "id": 5,
      "category": "Frame Hardware & Brackets",
      "name": "Straight Line Internal Connectors (20-Series)",
      "description": "In-slot connector bars for modular X-direction 2m members. M3-2 uses 3 butt joints x 4 connector bars per joint = 12 total. Bars fit inside the top and bottom V-slots across each joint and clamp with two set screws on either side. These are alignment aids, not the primary stiffness or centering method: SN 001 can flex this joint under gravity with connector bars alone. Each 2m X-direction splice is therefore centered and reinforced by a 1000mm 2040 insert friction-fit inside the 4080 C-Beam and held with printed retainers (id 65/id 85). The 2040 insert also avoids relying on steel set screws as the primary centering feature, reducing galvanic-corrosion concern at the joint. Stagger splice locations across parallel rails to avoid aligned weak planes. For M3-1: qty 0.",
      "qty": 12,
      "unit": "pieces",
      "mfg_type": "buy",
      "sort_order": 15,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": true,
      "suppliers": [
        {
          "id": 14,
          "supplier_name": "Amazon",
          "product_url": "https://amazon.com",
          "notes": "20-series straight line connector bar, 100mm, with M5 set screws. Alignment aid only; 2040 insert provides primary centering/stiffness.",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 15,
          "supplier_name": "Amazon",
          "product_url": "https://amazon.com",
          "notes": "2020/20-series straight connector bar. Use 4 per 2m X-direction joint.",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 16,
          "supplier_name": "Bulkman3D",
          "product_url": "https://bulkman3d.com/",
          "notes": "20-series internal connector bar. Use 4 per 2m X-direction joint.",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 1300,
          "supplier_name": "MakerStore USA",
          "product_url": "https://makerstore.cc/product/joining-strip/",
          "notes": "Internal connector bars, 20-series compatible. Use 4 per 2m X-direction joint.",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 6,
      "category": "Frame Hardware & Brackets",
      "name": "T-Slot Drop-In Nuts M5 (20-Series)",
      "description": "300 total — M5 is the standard fastener for 4080 C-beam (20-series compatible 6mm slot width). Spring-loaded drop-in style recommended for easier assembly. NOT M6 — M6 is for 40-series only.",
      "qty": 3,
      "unit": "packs of 100",
      "mfg_type": "buy",
      "sort_order": 20,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 17,
          "supplier_name": "Bulkman3D",
          "product_url": "https://bulkman3d.com/",
          "notes": "M5 spring-loaded T-nut 20-series",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 18,
          "supplier_name": "ZYLtech",
          "product_url": "https://www.zyltech.com/",
          "notes": "M5 T-nut for 2020/2040/2080",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 19,
          "supplier_name": "McMaster-Carr",
          "product_url": "https://mcmaster.com",
          "notes": "M5 drop-in nut for 20mm T-slot",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 20,
          "supplier_name": "Amazon",
          "product_url": "https://amazon.com",
          "notes": "M5 T-nut 100-pack (20-series 6mm slot)",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 1301,
          "supplier_name": "MakerStore USA",
          "product_url": "https://makerstore.cc/product/tee-nuts/",
          "notes": "M5 drop-in T-nuts, 20-series",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 1304,
          "supplier_name": "JLCMC",
          "product_url": "https://jlcmc.com/product/s/T02/TPAA/m3-m4-m5-t-nut-20-series-aluminum-profile-fasteners",
          "notes": "M3/M4/M5 T-nut for 20-series aluminum profile (6mm slot) — same SKU family covers M3 and M4 as well",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 7,
      "category": "Frame Hardware & Brackets",
      "name": "Eccentric Spacers (V-Slot)",
      "description": "One per wheel, all 32 positions (2026-04-23: eccentric on every wheel for maximum preload adjustability on prototype). 6mm tall, 10mm OD, 6mm bore, off-center. Adds 6mm of axial offset along the bolt axis only — zero protrusion in the travel direction. Stack per wheel: M5 bolt -> plate -> eccentric spacer (6mm) -> V-wheel -> 6mm plain spacer (id 83) -> washer -> lock nut. NOTE: check all wheels for inner bearing spacer between the two 625ZZ races — missing inner spacer causes axial wheel slop.",
      "qty": 32,
      "unit": "pieces",
      "mfg_type": "buy",
      "sort_order": 25,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 21,
          "supplier_name": "Bulkman3D",
          "product_url": "https://bulkman3d.com/",
          "notes": "Eccentric spacer for V-Slot (6mm bore, 10mm OD)",
          "sku": null,
          "step_url": "https://github.com/sunnyday-technologies/M3-CRETE/raw/main/CAD/Components/Hardware/Eccentric Spacer 6mm.step",
          "approved": true
        },
        {
          "id": 22,
          "supplier_name": "MakerStore USA",
          "product_url": "https://makerstore.cc/",
          "notes": "Eccentric spacer — precision ground",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 23,
          "supplier_name": "Amazon",
          "product_url": "https://www.amazon.com/Eccentric-Spacers-Full-Size-Wheels/dp/B01D2FAV44",
          "notes": "V-Slot eccentric spacer 10-pack",
          "sku": "B01D2FAV44",
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 8,
      "category": "Frame Hardware & Brackets",
      "name": "Adjustable Leveling Feet M16",
      "description": "Critical for leveling on uneven job-site floors. 1000lb-rated per foot. NOTE: M16 thread will not fit directly into 4080 C-beam slot — requires printed or CNC base plates to interface with frame.",
      "qty": 4,
      "unit": "pieces",
      "mfg_type": "buy",
      "sort_order": 30,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 24,
          "supplier_name": "McMaster-Carr",
          "product_url": "https://mcmaster.com",
          "notes": "Heavy duty 1000lb swivel leveling foot",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 25,
          "supplier_name": "Grainger",
          "product_url": "https://grainger.com",
          "notes": "Vibration dampening leveling mount",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 26,
          "supplier_name": "Amazon",
          "product_url": "https://amazon.com",
          "notes": "Standard M16 leveling foot",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 9,
      "category": "X-Axis Motion System",
      "name": "NEMA23 Stepper Motor (X-axis, 8mm shaft)",
      "description": "MUST be 8mm shaft variant to match pulleys and couplers. TMC5160 StallGuard for sensorless homing. 3Nm minimum torque recommended.",
      "qty": 1,
      "unit": "motor",
      "mfg_type": "buy",
      "sort_order": 10,
      "mpn": "23HS45-4204S1",
      "substitute_ok": false,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 28,
          "supplier_name": "StepperOnline US",
          "product_url": "https://www.omc-stepperonline.com",
          "notes": "NEMA23 4.5Nm High Torque 8mm shaft",
          "sku": null,
          "step_url": "https://www.omc-stepperonline.com/download",
          "approved": true
        },
        {
          "id": 29,
          "supplier_name": "AutomationDirect",
          "product_url": "https://automationdirect.com",
          "notes": "NEMA23 3Nm — verify 8mm shaft",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 27,
          "supplier_name": "StepperOnline US",
          "product_url": "https://www.omc-stepperonline.com/nema-23-bipolar-3nm-425oz-in-8mm-diameter-4-2a-57x57x113mm-4-wires-stepper-motor-23hs45-4204s1",
          "notes": "NEMA23 3Nm 8mm shaft",
          "sku": "23HS45-4204S1",
          "step_url": "https://www.omc-stepperonline.com/download",
          "approved": true
        },
        {
          "id": 191,
          "supplier_name": "Amazon",
          "product_url": "https://www.amazon.com/STEPPERONLINE-Stepper-Bipolar-57x57x113mm-Engraving/dp/B0CG58KY17",
          "notes": "STEPPERONLINE 23HS45-4204S1 3Nm 4.2A 8mm shaft",
          "sku": "B0CG58KY17",
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 10,
      "category": "X-Axis Motion System",
      "name": "GT2 Timing Belt 10mm (Y-axis, 2x ~2.5m loops)",
      "description": "Y-axis motion belts, 10mm reinforced GT2",
      "qty": 2,
      "unit": "meters",
      "mfg_type": "buy",
      "sort_order": 20,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 30,
          "supplier_name": "McMaster-Carr",
          "product_url": "https://mcmaster.com",
          "notes": "Gates PowerGrip GT2 10mm",
          "sku": null,
          "step_url": "https://www.gates.com/us/en",
          "approved": true
        },
        {
          "id": 31,
          "supplier_name": "Amazon",
          "product_url": "https://amazon.com",
          "notes": "Fiberglass core GT2 10mm",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 32,
          "supplier_name": "StepperOnline US",
          "product_url": "https://www.omc-stepperonline.com",
          "notes": "Standard rubber GT2 10mm",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 11,
      "category": "X-Axis Motion System",
      "name": "GT2 Pulley 20-Tooth (8mm Bore, all axes)",
      "description": "Drive and idler pulleys — MUST match motor shaft diameter (8mm). Metal recommended for belt tooth engagement under load. Aluminum or steel.",
      "qty": 7,
      "unit": "pulleys",
      "mfg_type": "buy",
      "sort_order": 30,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 33,
          "supplier_name": "StepperOnline US",
          "product_url": "https://www.omc-stepperonline.com",
          "notes": "Aluminum 20T 8mm bore GT2",
          "sku": null,
          "step_url": "https://github.com/sunnyday-technologies/M3-CRETE/raw/main/CAD/Components/Pulleys/GT2 Timing Pulley 20 Tooth.step",
          "approved": true
        },
        {
          "id": 34,
          "supplier_name": "McMaster-Carr",
          "product_url": "https://mcmaster.com",
          "notes": "Steel 20T 8mm bore GT2",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 35,
          "supplier_name": "ZYLtech",
          "product_url": "https://www.zyltech.com/",
          "notes": "GT2 20T pulley — 5mm/6.35mm/8mm bore options",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 187,
          "supplier_name": "Amazon",
          "product_url": "https://www.amazon.com/BEMONOC-2GT-Timing-Pulley-printer/dp/B01CL24CAI",
          "notes": "BEMONOC 5-pack GT2 20T 8mm bore 10mm width",
          "sku": "B01CL24CAI",
          "step_url": null,
          "approved": true
        },
        {
          "id": 1302,
          "supplier_name": "MakerStore USA",
          "product_url": "https://makerstore.cc/product/gt2-pulley/",
          "notes": "GT2 20-tooth pulley, 8mm bore",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 13,
      "category": "X-Axis Motion System",
      "name": "X-Axis Carriage Plate Assembly",
      "description": "Carries the 1.5kg printhead. Print saves $70+ with CF-Nylon/ABS. Must be compatible with 4080 C-beam rail width. Hose is counter-weighted to reduce gantry loading.",
      "qty": 1,
      "unit": "assembly",
      "mfg_type": "print",
      "sort_order": 50,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 39,
          "supplier_name": "Local CNC Shop",
          "product_url": "",
          "notes": "CNC Aluminum 6061 6mm",
          "sku": null,
          "step_url": "https://github.com/sunnyday-technologies/M3-CRETE/raw/main/CAD/Components/Plates/V-Slot Gantry Plate 20-80mm.step",
          "approved": true
        },
        {
          "id": 40,
          "supplier_name": "Self-Manufacture",
          "product_url": "",
          "notes": "3D Printed Carbon Fiber Nylon",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 194,
          "supplier_name": "Bulkman3D",
          "product_url": "https://bulkman3d.com/product/vs80-1/",
          "notes": "V-Slot Gantry Bundle Universal 20-80mm",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 195,
          "supplier_name": "MakerStore USA",
          "product_url": "https://makerstore.cc/product/v-slot-gantry-bundle-2/",
          "notes": "V-Slot Gantry Bundle - ships from US warehouse",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 14,
      "category": "Dual Y-Axis Motion System",
      "name": "NEMA23 Stepper Motor (Y-axis, 8mm shaft)",
      "description": "Dual motors for anti-racking — TMC5160 StallGuard compatible. MUST be 8mm shaft variant. Both Y motors must be identical model for matched steps/mm.",
      "qty": 2,
      "unit": "motors",
      "mfg_type": "buy",
      "sort_order": 10,
      "mpn": "23HS45-4204S1",
      "substitute_ok": false,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 43,
          "supplier_name": "StepperOnline US",
          "product_url": "https://www.omc-stepperonline.com",
          "notes": "NEMA23 4.5Nm High Torque 8mm shaft",
          "sku": null,
          "step_url": "https://www.omc-stepperonline.com/download",
          "approved": true
        },
        {
          "id": 44,
          "supplier_name": "AutomationDirect",
          "product_url": "https://automationdirect.com",
          "notes": "NEMA23 3Nm — verify 8mm shaft",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 42,
          "supplier_name": "StepperOnline US",
          "product_url": "https://www.omc-stepperonline.com/nema-23-bipolar-3nm-425oz-in-8mm-diameter-4-2a-57x57x113mm-4-wires-stepper-motor-23hs45-4204s1",
          "notes": "NEMA23 3Nm 8mm shaft",
          "sku": "23HS45-4204S1",
          "step_url": "https://www.omc-stepperonline.com/download",
          "approved": true
        },
        {
          "id": 192,
          "supplier_name": "Amazon",
          "product_url": "https://www.amazon.com/STEPPERONLINE-Stepper-Bipolar-57x57x113mm-Engraving/dp/B0CG58KY17",
          "notes": "STEPPERONLINE 23HS45-4204S1 3Nm 4.2A 8mm shaft",
          "sku": "B0CG58KY17",
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 15,
      "category": "X-Axis Motion System",
      "name": "GT2 Timing Belt 6mm (X-axis, 1x ~2.4m fixed strand)",
      "description": "X-axis belt-pinion drive. Uses 6mm GT2 because the X belt must fit inside the gantry slot; do not substitute the 10mm belt used on Y/Z here.",
      "qty": 1,
      "unit": "meters",
      "mfg_type": "buy",
      "sort_order": 20,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 45,
          "supplier_name": "McMaster-Carr",
          "product_url": "https://mcmaster.com",
          "notes": "Source 6mm GT2 for X-axis only; 10mm stock is for Y/Z belts.",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 46,
          "supplier_name": "Amazon",
          "product_url": "https://amazon.com",
          "notes": "Source 6mm GT2 for X-axis only; 10mm stock is for Y/Z belts.",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 47,
          "supplier_name": "StepperOnline US",
          "product_url": "https://www.omc-stepperonline.com",
          "notes": "Source 6mm GT2 for X-axis only; 10mm stock is for Y/Z belts.",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 17,
      "category": "Dual Y-Axis Motion System",
      "name": "V-Groove Wheels (Polycarbonate)",
      "description": "32 total confirmed from SN 001 physical assembly (2026-04-23). Breakdown: Z 4x4=16 + Y 2x4=8 + X double-plate 2x4=8. Polycarbonate (Xtreme/Solid) for heavy gantry loads.",
      "qty": 32,
      "unit": "wheels",
      "mfg_type": "buy",
      "sort_order": 40,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 52,
          "supplier_name": "MakerStore USA",
          "product_url": "https://makerstore.cc/",
          "notes": "Solid V-Wheel polycarbonate",
          "sku": null,
          "step_url": "https://github.com/sunnyday-technologies/M3-CRETE/raw/main/CAD/Components/Wheels/Xtreme Solid V Wheel.step",
          "approved": true
        },
        {
          "id": 53,
          "supplier_name": "Amazon",
          "product_url": "https://amazon.com",
          "notes": "V-Slot V-Wheel kit with bearings",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 51,
          "supplier_name": "Bulkman3D",
          "product_url": "https://bulkman3d.com/product/vk0012/",
          "notes": "Xtreme Solid V-Wheel",
          "sku": "VW02-RS",
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 18,
      "category": "Dual Y-Axis Motion System",
      "name": "Y-Axis Gantry Plates",
      "description": "Connects gantry beam to Y-rail carriages. Current design target is the same 125x125mm C-Beam gantry plate geometry used across Y/Z/X where practical; 3D-print prototype allowed. Common plate standard reduces SKU count and supports component swaps.",
      "qty": 2,
      "unit": "plates",
      "mfg_type": "print",
      "sort_order": 50,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 54,
          "supplier_name": "Local CNC Shop",
          "product_url": "",
          "notes": "CNC Aluminum 8mm",
          "sku": null,
          "step_url": "https://github.com/sunnyday-technologies/M3-CRETE/raw/main/CAD/Components/Plates/V-Slot Gantry Plate 20-80mm.step",
          "approved": true
        },
        {
          "id": 55,
          "supplier_name": "Self-Manufacture",
          "product_url": "",
          "notes": "3D Printed CF-Nylon Reinforced",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 196,
          "supplier_name": "Bulkman3D",
          "product_url": "https://bulkman3d.com/product/vs80-1/",
          "notes": "V-Slot Gantry Bundle Universal 20-80mm",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 197,
          "supplier_name": "MakerStore USA",
          "product_url": "https://makerstore.cc/product/v-slot-gantry-bundle-2/",
          "notes": "V-Slot Gantry Bundle - ships from US warehouse",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 19,
      "category": "Quad Z-Axis System (Self-Tramming)",
      "name": "NEMA23 Stepper Motor (Z-axis, 8mm shaft)",
      "description": "Four independent motors for auto-tramming via Klipper Z_TILT_ADJUST. 8mm shaft to match pulleys. Belt-driven Z — same motor type as X/Y for full parts commonality.",
      "qty": 4,
      "unit": "motors",
      "mfg_type": "buy",
      "sort_order": 10,
      "mpn": "23HS45-4204S1",
      "substitute_ok": false,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 58,
          "supplier_name": "StepperOnline US",
          "product_url": "https://www.omc-stepperonline.com",
          "notes": "NEMA23 4.5Nm High Torque 8mm shaft",
          "sku": null,
          "step_url": "https://www.omc-stepperonline.com/download",
          "approved": true
        },
        {
          "id": 59,
          "supplier_name": "AutomationDirect",
          "product_url": "https://automationdirect.com",
          "notes": "NEMA23 3Nm — verify 8mm shaft",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 57,
          "supplier_name": "StepperOnline US",
          "product_url": "https://www.omc-stepperonline.com/nema-23-bipolar-3nm-425oz-in-8mm-diameter-4-2a-57x57x113mm-4-wires-stepper-motor-23hs45-4204s1",
          "notes": "NEMA23 3Nm 8mm shaft",
          "sku": "23HS45-4204S1",
          "step_url": "https://www.omc-stepperonline.com/download",
          "approved": true
        },
        {
          "id": 193,
          "supplier_name": "Amazon",
          "product_url": "https://www.amazon.com/STEPPERONLINE-Stepper-Bipolar-57x57x113mm-Engraving/dp/B0CG58KY17",
          "notes": "STEPPERONLINE 23HS45-4204S1 3Nm 4.2A 8mm shaft",
          "sku": "B0CG58KY17",
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 20,
      "category": "Quad Z-Axis System (Self-Tramming)",
      "name": "GT2 Timing Belt 10mm (Z-axis, 4x ~2.5m loops)",
      "description": "Belt-driven Z - same GT2 10mm belt as Y-axis; X-axis remains 6mm to fit the gantry slot. ~3m per Z corner (up + down run + tensioner), 12m total for 4 independent Z drives. Belts shed concrete splatters unlike lead screw threads.",
      "qty": 4,
      "unit": "meters",
      "mfg_type": "buy",
      "sort_order": 20,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 60,
          "supplier_name": "McMaster-Carr",
          "product_url": "https://mcmaster.com",
          "notes": "Gates PowerGrip GT2 10mm - same as Y; X uses 6mm.",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 61,
          "supplier_name": "Amazon",
          "product_url": "https://amazon.com",
          "notes": "Fiberglass core GT2 10mm",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 62,
          "supplier_name": "StepperOnline US",
          "product_url": "https://www.omc-stepperonline.com",
          "notes": "Standard rubber GT2 10mm",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 23,
      "category": "Quad Z-Axis System (Self-Tramming)",
      "name": "Z-Axis Carriage Plates",
      "description": "Connects gantry frame to V-wheel carriages on vertical posts. 4 plates (one per corner). Current design target is the same 125x125mm C-Beam gantry plate geometry used across Y/Z/X where practical; must mount V-wheels + belt clamp.",
      "qty": 4,
      "unit": "plates",
      "mfg_type": "print",
      "sort_order": 50,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 69,
          "supplier_name": "Local CNC Shop",
          "product_url": "",
          "notes": "CNC Aluminum 6mm",
          "sku": null,
          "step_url": "https://github.com/sunnyday-technologies/M3-CRETE/raw/main/CAD/Components/Plates/V-Slot Gantry Plate 20-80mm.step",
          "approved": true
        },
        {
          "id": 70,
          "supplier_name": "Self-Manufacture",
          "product_url": "",
          "notes": "3D Printed CF-Nylon Reinforced",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 198,
          "supplier_name": "Bulkman3D",
          "product_url": "https://bulkman3d.com/product/vs80-1/",
          "notes": "V-Slot Gantry Bundle Universal 20-80mm",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 199,
          "supplier_name": "MakerStore USA",
          "product_url": "https://makerstore.cc/product/v-slot-gantry-bundle-2/",
          "notes": "V-Slot Gantry Bundle - ships from US warehouse",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 24,
      "category": "Quad Z-Axis System (Self-Tramming)",
      "name": "Z-Axis Motor Mounts (integrated 3D-printed corner brackets)",
      "description": "No purchased Z motor brackets in the current reference design. Z motor mounting is integrated into the printed combined corner bracket/post cap/spacer with belt clearance (see id 75). Print in PETG for prototype or CCF for production.",
      "qty": 4,
      "unit": "mounts",
      "mfg_type": "print",
      "sort_order": 60,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 72,
          "supplier_name": "Self-Manufacture",
          "product_url": null,
          "notes": "Print as part of the combined corner bracket. Do not purchase metal NEMA23 L-brackets for SN 001.",
          "sku": null,
          "step_url": "https://github.com/sunnyday-technologies/M3-CRETE/raw/main/CAD/Custom/Corner_Bracket_Combined.step",
          "approved": true
        },
        {
          "id": 73,
          "supplier_name": "Amazon",
          "product_url": "https://www.amazon.com/s?k=NEMA+23+L+bracket+stepper",
          "notes": "Legacy reference only; current design prints the mounts.",
          "sku": null,
          "step_url": null,
          "approved": false
        },
        {
          "id": 1303,
          "supplier_name": "MakerStore USA",
          "product_url": "https://makerstore.cc/product/nema23-bracket/",
          "notes": "Legacy reference only; current design prints the mounts.",
          "sku": null,
          "step_url": null,
          "approved": false
        }
      ]
    },
    {
      "id": 25,
      "category": "Electronics & Control System",
      "name": "BTT Kraken Mainboard",
      "description": "8 stepper drivers (TMC5160) — perfect for this build: X + 2×Y + 4×Z + Extruder. StallGuard sensorless homing on all axes.",
      "qty": 1,
      "unit": "board",
      "mfg_type": "buy",
      "sort_order": 10,
      "mpn": null,
      "substitute_ok": false,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 75,
          "supplier_name": "Filastruder",
          "product_url": "https://www.filastruder.com",
          "notes": "BTT Kraken v1.0",
          "sku": null,
          "step_url": "https://github.com/bigtreetech/Kraken/tree/master/Hardware",
          "approved": true
        },
        {
          "id": 77,
          "supplier_name": "Filastruder",
          "product_url": "https://www.filastruder.com",
          "notes": "BTT Octopus Pro (alt)",
          "sku": null,
          "step_url": "https://github.com/bigtreetech/BIGTREETECH-OCTOPUS-Pro",
          "approved": true
        },
        {
          "id": 76,
          "supplier_name": "Amazon",
          "product_url": "https://www.amazon.com/BIGTREETECH-Control-Onboard-8%C3%97TMC2160-High-Performance/dp/B0CQX9XJ4W",
          "notes": "BTT Kraken",
          "sku": "B0CQX9XJ4W",
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 26,
      "category": "Electronics & Control System",
      "name": "Raspberry Pi 5 (8GB RAM)",
      "description": "Runs Klipper firmware. 8GB recommended for large print files.",
      "qty": 1,
      "unit": "computer",
      "mfg_type": "buy",
      "sort_order": 20,
      "mpn": null,
      "substitute_ok": false,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 78,
          "supplier_name": "Adafruit",
          "product_url": "https://www.adafruit.com",
          "notes": "RPi 5 8GB",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 80,
          "supplier_name": "Adafruit",
          "product_url": "https://www.adafruit.com",
          "notes": "RPi 4 8GB (alt)",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 79,
          "supplier_name": "Amazon - CanaKit",
          "product_url": "https://www.amazon.com/Raspberry-Pi-8GB-SC1112-Quad-core/dp/B0CK2FCG1K",
          "notes": "RPi 5 8GB Kit",
          "sku": "B0CK2FCG1K",
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 27,
      "category": "Electronics & Control System",
      "name": "7-inch Touchscreen Display",
      "description": "User interface for printer control via KlipperScreen.",
      "qty": 1,
      "unit": "display",
      "mfg_type": "buy",
      "sort_order": 30,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 81,
          "supplier_name": "Adafruit",
          "product_url": "https://www.adafruit.com",
          "notes": "Raspberry Pi 7\" Official",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 82,
          "supplier_name": "Amazon",
          "product_url": "https://amazon.com",
          "notes": "Waveshare 7\" HDMI",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 83,
          "supplier_name": "Amazon",
          "product_url": "https://amazon.com",
          "notes": "Generic 7\" capacitive touch",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 28,
      "category": "Electronics & Control System",
      "name": "Power Supply 24V 600W",
      "description": "MeanWell for reliability. 600W handles 7 NEMA23 steppers + accessories. 24V bus for Kraken + peripherals.",
      "qty": 1,
      "unit": "PSU",
      "mfg_type": "buy",
      "sort_order": 40,
      "mpn": "LRS-600-24",
      "substitute_ok": false,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 86,
          "supplier_name": "Amazon",
          "product_url": "https://amazon.com",
          "notes": "Generic 24V 600W",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 85,
          "supplier_name": "Digi-Key",
          "product_url": "https://www.digikey.com/en/products/detail/mean-well-usa-inc/LRS-600-24/16394242",
          "notes": "MeanWell RSP-750-24",
          "sku": "1866-LRS-600-24-ND",
          "step_url": null,
          "approved": true
        },
        {
          "id": 84,
          "supplier_name": "Mouser Electronics",
          "product_url": "https://www.mouser.com/ProductDetail/MEAN-WELL/LRS-600-24",
          "notes": "MeanWell LRS-600-24",
          "sku": "709-LRS-600-24",
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 29,
      "category": "Electronics & Control System",
      "name": "Emergency Stop Button",
      "description": "Critical safety component. NC (normally-closed) contacts — pressing opens the circuit and kills 24V via contactor.",
      "qty": 1,
      "unit": "switch",
      "mfg_type": "buy",
      "sort_order": 50,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 87,
          "supplier_name": "McMaster-Carr",
          "product_url": "https://mcmaster.com",
          "notes": "Mushroom E-stop NC",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 88,
          "supplier_name": "AutomationDirect",
          "product_url": "https://automationdirect.com",
          "notes": "Twist-release E-stop NC",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 89,
          "supplier_name": "Amazon",
          "product_url": "https://amazon.com",
          "notes": "Panel mount E-stop NC",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 30,
      "category": "Electronics & Control System",
      "name": "Cable Drag Chain (Sealed)",
      "description": "Enclosed/sealed type for concrete dust protection. X-axis: 25x50mm ID, 2.5m (M3-2 travel). Y-axis: 25x38mm ID, 1.3m. Open-style chains will clog with concrete dust. igus E2 micro series is ideal for dusty environments.",
      "qty": 4,
      "unit": "meters total (X: 2.5m + Y: 1.3m)",
      "mfg_type": "buy",
      "sort_order": 80,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 90,
          "supplier_name": "igus",
          "product_url": "https://www.igus.com",
          "notes": "E2 micro sealed drag chain — premium, dust-proof",
          "sku": null,
          "step_url": "https://www.igus.com/",
          "approved": true
        },
        {
          "id": 91,
          "supplier_name": "McMaster-Carr",
          "product_url": "https://mcmaster.com",
          "notes": "Heavy duty sealed 35mm cable carrier",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 92,
          "supplier_name": "Self-Manufacture",
          "product_url": "",
          "notes": "3D Printed parametric sealed chain",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 190,
          "supplier_name": "Amazon",
          "product_url": "https://www.amazon.com/uxcell-Plastic-Cable-Carrier-Chain/dp/B01LXNJ7NI",
          "notes": "uxcell R55 25x50mm enclosed drag chain 1M",
          "sku": "B01LXNJ7NI",
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 31,
      "category": "Electronics & Control System",
      "name": "Shielded Motor Cable - Flex-Rated (18AWG 4C)",
      "description": "4-conductor 18AWG, foil shield + drain, silicone jacket, continuous-flex drag-chain-rated. For X, Y, and extruder motors on moving axes. M3-2 X-axis travel requires ~2m more than M3-1. Critical for reliable StallGuard sensorless homing.",
      "qty": 20,
      "unit": "meters (1 spool)",
      "mfg_type": "buy",
      "sort_order": 100,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 93,
          "supplier_name": "igus",
          "product_url": "https://www.igus.com",
          "notes": "chainflex CF211 — premium drag-chain-rated",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 94,
          "supplier_name": "Amazon",
          "product_url": "https://amazon.com",
          "notes": "18AWG 4C shielded silicone flex cable",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 95,
          "supplier_name": "McMaster-Carr",
          "product_url": "https://mcmaster.com",
          "notes": "Continuous-flex shielded cable",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 32,
      "category": "Electronics & Control System",
      "name": "Shielded Motor Cable - Static (18AWG 4C)",
      "description": "4-conductor 18AWG, foil shield + drain, PVC jacket, UL2464. For 4 stationary Z-axis motors. Shield drain connects at controller end only (star ground).",
      "qty": 10,
      "unit": "meters (1 spool)",
      "mfg_type": "buy",
      "sort_order": 110,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 96,
          "supplier_name": "Digi-Key",
          "product_url": "https://digikey.com",
          "notes": "Alpha Wire or Belden UL2464 shielded 4C 18AWG",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 97,
          "supplier_name": "Amazon",
          "product_url": "https://amazon.com",
          "notes": "18AWG 4C foil-shielded cable",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 98,
          "supplier_name": "McMaster-Carr",
          "product_url": "https://mcmaster.com",
          "notes": "Shielded multi-conductor cable",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 33,
      "category": "Electronics & Control System",
      "name": "GX16-4 Aviation Connector Sets",
      "description": "Quick-disconnect for all 8 stepper motors. IP65 when mated — critical for concrete dust protection. Panel-mount female + inline male per set. Apply dielectric grease at assembly.",
      "qty": 10,
      "unit": "sets (8 needed + 2 spare)",
      "mfg_type": "buy",
      "sort_order": 120,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 100,
          "supplier_name": "Digi-Key",
          "product_url": "https://digikey.com",
          "notes": "Amphenol equivalent circular connectors",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 99,
          "supplier_name": "Amazon",
          "product_url": "https://www.amazon.com/Female-Connector-GX16-4-Silver-Aviation/dp/B07174LCGR",
          "notes": "GX16-4 male-inline + female-panel set",
          "sku": "B07174LCGR",
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 34,
      "category": "Electronics & Control System",
      "name": "Power Wire — 12AWG Silicone (Red + Black)",
      "description": "PSU 24V output to BTT Kraken main power input. 12AWG handles 25A max draw at 600W/24V. Also used for E-stop contactor power loop.",
      "qty": 2,
      "unit": "meters each color (4m total)",
      "mfg_type": "buy",
      "sort_order": 130,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 101,
          "supplier_name": "Amazon",
          "product_url": "https://amazon.com",
          "notes": "12AWG silicone stranded wire (red + black)",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 102,
          "supplier_name": "McMaster-Carr",
          "product_url": "https://mcmaster.com",
          "notes": "12AWG stranded hookup wire",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 35,
      "category": "Electronics & Control System",
      "name": "Distribution Wire — 18AWG (Red + Black)",
      "description": "24V branch distribution, accessory power, E-stop signal loop. For internal control panel wiring.",
      "qty": 6,
      "unit": "meters total (3m each color)",
      "mfg_type": "buy",
      "sort_order": 135,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 103,
          "supplier_name": "Amazon",
          "product_url": "https://amazon.com",
          "notes": "18AWG silicone hookup wire assortment",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 104,
          "supplier_name": "McMaster-Carr",
          "product_url": "https://mcmaster.com",
          "notes": "18AWG stranded hookup wire",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 36,
      "category": "Electronics & Control System",
      "name": "Ferrule Crimping Tool + Assortment Kit",
      "description": "Every stranded wire into a screw terminal MUST have a ferrule — critical in high-vibration concrete printer. Expect to use ~100 ferrules.",
      "qty": 1,
      "unit": "kit",
      "mfg_type": "buy",
      "sort_order": 140,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 105,
          "supplier_name": "Amazon",
          "product_url": "https://www.amazon.com/IWISS-Self-Adjusting-AWG23-10-End-Sleeves-Ferrule/dp/B00ODSJGSW",
          "notes": "IWISS or Wirefy ratcheting crimper + ferrule kit",
          "sku": "B00ODSJGSW",
          "step_url": null,
          "approved": true
        },
        {
          "id": 106,
          "supplier_name": "Amazon",
          "product_url": "https://www.amazon.com/IWISS-Crimper-Plier-Self-adjustable-Crimping/dp/B00H950AK4",
          "notes": "Preciva ferrule crimping set",
          "sku": "B00H950AK4",
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 37,
      "category": "Electronics & Control System",
      "name": "IEC C14 Power Inlet w/ EMI Filter & Fuse",
      "description": "Panel-mount AC inlet with integrated EMI filter, fuse holder (6A slow-blow for 120V), and rocker switch. Single mains entry point.",
      "qty": 1,
      "unit": "unit",
      "mfg_type": "buy",
      "sort_order": 150,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 108,
          "supplier_name": "Mouser",
          "product_url": "https://mouser.com",
          "notes": "TE Connectivity Corcom series",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 109,
          "supplier_name": "Amazon",
          "product_url": "https://amazon.com",
          "notes": "IEC C14 inlet fused + filtered",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 107,
          "supplier_name": "Digi-Key",
          "product_url": "https://www.digikey.com/en/product-highlight/s/schaffner/fn9260-series-power-entry-modules",
          "notes": "Schaffner or Qualtek IEC inlet w/ filter",
          "sku": "FN9260-6-06",
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 38,
      "category": "Electronics & Control System",
      "name": "24V Safety Contactor / Relay",
      "description": "E-stop cuts 24V power via this contactor. NC E-stop loop controls the coil. 30A contacts minimum for 600W PSU output.",
      "qty": 1,
      "unit": "unit",
      "mfg_type": "buy",
      "sort_order": 155,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 110,
          "supplier_name": "Digi-Key",
          "product_url": "https://digikey.com",
          "notes": "Omron or Schneider 24VDC coil contactor",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 111,
          "supplier_name": "AutomationDirect",
          "product_url": "https://automationdirect.com",
          "notes": "IDEC or Fuji 24VDC relay",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 112,
          "supplier_name": "Amazon",
          "product_url": "https://amazon.com",
          "notes": "24V DC coil contactor 30A+",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 39,
      "category": "Electronics & Control System",
      "name": "24V-to-5V DC-DC Buck Converter (5A)",
      "description": "Powers Raspberry Pi 5 and touchscreen from the 24V bus. RPi 5 draws up to 5A with peripherals. Use dedicated converter, NOT Kraken 5V output.",
      "qty": 1,
      "unit": "unit",
      "mfg_type": "buy",
      "sort_order": 160,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 113,
          "supplier_name": "Amazon",
          "product_url": "https://amazon.com",
          "notes": "Pololu 5V 5A step-down regulator",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 114,
          "supplier_name": "Digi-Key",
          "product_url": "https://digikey.com",
          "notes": "Mean Well DDR-30G-5 DIN-rail mount",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 115,
          "supplier_name": "Adafruit",
          "product_url": "https://www.adafruit.com",
          "notes": "5V 5A buck converter breakout",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 40,
      "category": "Electronics & Control System",
      "name": "DIN-Rail Terminal Block Kit + Rail",
      "description": "10-position terminal blocks, DIN-rail end clamps (plastic clips that hold terminal blocks in place — NOT motion endstops; M3-CRETE uses TMC5160 StallGuard sensorless homing), jumper bars, and 0.5m 35mm DIN rail. Star-ground bus bar for all shield drain wires.",
      "qty": 1,
      "unit": "kit",
      "mfg_type": "buy",
      "sort_order": 165,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 116,
          "supplier_name": "Digi-Key",
          "product_url": "https://digikey.com",
          "notes": "Phoenix Contact UK series + rail",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 117,
          "supplier_name": "Amazon",
          "product_url": "https://amazon.com",
          "notes": "Dinkle DIN-rail terminal block kit",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 118,
          "supplier_name": "AutomationDirect",
          "product_url": "https://automationdirect.com",
          "notes": "DINnector terminal block set",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 41,
      "category": "Electronics & Control System",
      "name": "Nylon Cable Gland Assortment",
      "description": "IP68 cable glands for every wire entering the control panel. Prevents concrete dust ingress. Mount on bottom/sides only. Sizes: PG7-PG13.5.",
      "qty": 1,
      "unit": "50-pack assorted",
      "mfg_type": "buy",
      "sort_order": 170,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 119,
          "supplier_name": "Amazon",
          "product_url": "https://amazon.com",
          "notes": "Nylon cable gland assortment PG7-PG13.5",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 120,
          "supplier_name": "McMaster-Carr",
          "product_url": "https://mcmaster.com",
          "notes": "Strain relief cable glands",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 42,
      "category": "Electronics & Control System",
      "name": "Snap-On Ferrite Cores (13mm ID)",
      "description": "One per stepper motor cable at the controller end. Suppresses EMI that interferes with StallGuard sensorless homing.",
      "qty": 8,
      "unit": "pieces",
      "mfg_type": "buy",
      "sort_order": 175,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 122,
          "supplier_name": "Digi-Key",
          "product_url": "https://digikey.com",
          "notes": "Fair-Rite or TDK snap ferrite",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 121,
          "supplier_name": "Amazon",
          "product_url": "https://www.amazon.com/Ferrite-Noise-Filter-Cable-3-5mm/dp/B01N0AV746",
          "notes": "Snap-on ferrite cores 13mm (8-pack)",
          "sku": "B01N0AV746",
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 43,
      "category": "Electronics & Control System",
      "name": "Cable Sleeving, Labels & Tie Kit",
      "description": "10m PET braided sleeving (1/2\" + 1/4\"), 100x UV-resistant cable ties, 30x screw-mount bases, self-laminating wire labels. Label both ends: M1-X, M2-YL, M3-YR, M4-Z1..M7-Z4, M8-EXT.",
      "qty": 1,
      "unit": "kit",
      "mfg_type": "buy",
      "sort_order": 180,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 123,
          "supplier_name": "Amazon",
          "product_url": "https://amazon.com",
          "notes": "PET sleeving + cable tie + label bundle",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 124,
          "supplier_name": "McMaster-Carr",
          "product_url": "https://mcmaster.com",
          "notes": "Braided sleeving, nylon ties, markers",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 44,
      "category": "Concrete Extrusion System",
      "name": "Progressive Cavity Pump",
      "description": "REFERENCE ONLY — not included in M3-CRETE motion system kit. The concrete extrusion system operates at high pressure and requires commercial-grade components. Proven options include progressive cavity pump systems from established manufacturers. Contact Sunnyday Technologies for current recommendations.",
      "qty": 1,
      "unit": "pump",
      "mfg_type": "buy",
      "sort_order": 10,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": true,
      "suppliers": [
        {
          "id": 125,
          "supplier_name": "MAI International (Austria)",
          "product_url": "https://mai.at/en/product-range/3d-printing/mai-2pump-pictor-3d/",
          "notes": "MAI 2PUMP PICTOR-3D — 0.7-15.5 L/min, grain up to 2mm, analog 0-10V control. Industry standard for research and startups.",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 126,
          "supplier_name": "M-Tec (Germany)",
          "product_url": "https://m-tec.com/",
          "notes": "M-Tec P20 3DCP — 3-24 L/min, grain up to 4mm, Modbus-RTU control. Higher throughput for large-format printing.",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 127,
          "supplier_name": "StoneFlower 3D (Germany)",
          "product_url": "https://www.stoneflower3d.com/store/concrete-3d-printer/",
          "notes": "Automated concrete pump — up to 10 L/min, 40 bar, aggregates up to 6mm. Includes operator training.",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 128,
          "supplier_name": "Community Interest: US-Sourced Stepper Pump",
          "product_url": "",
          "notes": "INTEREST CHECK — stepper-driven PC pump using NEMA23 + external driver + Kraken stepper signal. Need 10 commitments for a small production batch.",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 46,
      "category": "Concrete Extrusion System",
      "name": "External Stepper Driver — TMC5160 (48V High Current)",
      "description": "Drives geared pump motor via Kraken STEP/DIR/EN signals. External driver recommended: higher current (6A) and 48V for more torque. SPI enables StallGuard for material blockage alarm.",
      "qty": 1,
      "unit": "driver board",
      "mfg_type": "buy",
      "sort_order": 16,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 133,
          "supplier_name": "Amazon",
          "product_url": "https://amazon.com",
          "notes": "BIGTREETECH TMC5160T Pro V1.0 — 48V, SPI/UART.",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 134,
          "supplier_name": "Digi-Key",
          "product_url": "https://digikey.com",
          "notes": "Analog Devices TMC5160-BOB evaluation board.",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 132,
          "supplier_name": "West3D (US)",
          "product_url": "https://west3d.com/products/tmc5160-pro-48v-stepper-motor-driver-drivers-btt",
          "notes": "BTT TMC5160 Pro V1.2 — 48V, external MOSFETs, SPI.",
          "sku": "TMC5160T-Pro-V1.2",
          "step_url": "https://github.com/bigtreetech/TMC5160T-Pro",
          "approved": true
        }
      ]
    },
    {
      "id": 47,
      "category": "Concrete Extrusion System",
      "name": "Progressive Cavity Pump Element (Rotor + Stator)",
      "description": "Core pumping element — chrome-plated SS rotor inside elastomer stator. For mortar/concrete with aggregates up to 2-6mm. Stator: Buna Nitrile (NBR) for concrete, EPDM for alkaline. Expect stator replacement every 200-500 hours.",
      "qty": 1,
      "unit": "rotor + stator set",
      "mfg_type": "buy",
      "sort_order": 17,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 136,
          "supplier_name": "Progressive Cavity Parts (US)",
          "product_url": "https://www.progressivecavityparts.com/",
          "notes": "Aftermarket replacement rotors and stators for Moyno, Seepex, Netzsch, Continental.",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 137,
          "supplier_name": "Seepex (via US distributors)",
          "product_url": "https://www.seepex.com/en-nam/products/pumps/standard-progressive-cavity-pumps/bn-pump-with-block-design/",
          "notes": "BN series — industrial PC pump. US distributors: Tencarva, Edelmann, Cummins-Wagner.",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 138,
          "supplier_name": "Community Interest: Custom Batch",
          "product_url": "",
          "notes": "INTEREST CHECK — small-batch custom rotor+stator. CNC SS rotor + cast NBR stator. Need 10 commitments.",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 135,
          "supplier_name": "Continental Ultra Pumps (Missouri)",
          "product_url": "https://www.continentalultrapumps.com/store/CP22-progressing-cavity-pump.html",
          "notes": "CP22 pump — 0.4-4.9 GPM, 100 PSI, 3/4\" NPT, chrome SS rotor, Buna stator. Smallest US-made PC pump. Call 636-456-6006.",
          "sku": "CP22",
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 48,
      "category": "Concrete Extrusion System",
      "name": "Pump Drive Coupling — Universal Joint + Connecting Rod",
      "description": "Converts motor rotation to rotor orbital motion. PC pump rotors orbit eccentrically — a rigid shaft will break. Use gear-type universal joint or double-cardan joint.",
      "qty": 1,
      "unit": "coupling assembly",
      "mfg_type": "buy",
      "sort_order": 18,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 139,
          "supplier_name": "McMaster-Carr",
          "product_url": "https://mcmaster.com",
          "notes": "Miniature universal joints + flex couplings. Match bore sizes to motor output and rotor drive shaft.",
          "sku": null,
          "step_url": "https://mcmaster.com",
          "approved": true
        },
        {
          "id": 140,
          "supplier_name": "Amazon",
          "product_url": "https://amazon.com",
          "notes": "Stainless steel universal joint couplers (8-14mm bores) + jaw couplings.",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 141,
          "supplier_name": "Self-Manufacture",
          "product_url": "",
          "notes": "CNC or metal SLS custom connecting rod. STL files in repo /cad/pump/ directory.",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 49,
      "category": "Concrete Extrusion System",
      "name": "Pump Housing & Bearing Assembly",
      "description": "Encloses rotor/stator and provides bearing support. Must handle axial thrust. If using Continental CP22, housing is included. For DIY: CNC aluminum + sealed bearings.",
      "qty": 1,
      "unit": "assembly",
      "mfg_type": "cnc",
      "sort_order": 19,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 142,
          "supplier_name": "Continental Ultra Pumps",
          "product_url": "https://www.continentalultrapumps.com/",
          "notes": "CP22 housing included with pump purchase.",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 143,
          "supplier_name": "McMaster-Carr",
          "product_url": "https://mcmaster.com",
          "notes": "DIY: Flanged ball bearings (sealed, SS) + Schedule 40 SS pipe as stator housing.",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 145,
          "supplier_name": "Self-Manufacture",
          "product_url": "",
          "notes": "3D printed PETG prototype housing for testing only — concrete slurry is abrasive.",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 51,
      "category": "Concrete Extrusion System",
      "name": "48V Power Supply for Pump Driver (Optional)",
      "description": "Only needed if running external TMC5160 pump driver at 48V. Mean Well LRS-200-48 provides dedicated 48V for the geared stepper. Not needed if running pump from Kraken onboard driver at 24V.",
      "qty": 1,
      "unit": "PSU",
      "mfg_type": "buy",
      "sort_order": 21,
      "mpn": "LRS-200-48",
      "substitute_ok": false,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 149,
          "supplier_name": "Mouser Electronics",
          "product_url": "https://mouser.com",
          "notes": "Mean Well LRS-200-48 — 48V 200W enclosed",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 150,
          "supplier_name": "Digi-Key",
          "product_url": "https://digikey.com",
          "notes": "Mean Well UHP-200-48 — 48V slim profile",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 151,
          "supplier_name": "Amazon",
          "product_url": "https://amazon.com",
          "notes": "Mean Well 48V PSU — also on Amazon Prime",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 52,
      "category": "Concrete Extrusion System",
      "name": "Material Hopper 20-Liter",
      "description": "Material reservoir above the pump. HDPE or stainless for concrete compatibility. Printable in PETG for testing.",
      "qty": 1,
      "unit": "hopper",
      "mfg_type": "print",
      "sort_order": 30,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 152,
          "supplier_name": "McMaster-Carr",
          "product_url": "https://mcmaster.com",
          "notes": "Stainless steel hopper",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 153,
          "supplier_name": "US Plastic Corp",
          "product_url": "https://usplastic.com",
          "notes": "HDPE funnel 5-gal",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 154,
          "supplier_name": "Self-Manufacture",
          "product_url": "",
          "notes": "3D Printed PETG hopper",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 53,
      "category": "Concrete Extrusion System",
      "name": "Concrete Nozzle Assembly",
      "description": "Critical for print quality. Replaceable-tip design recommended for different layer widths (20-40mm).",
      "qty": 1,
      "unit": "assembly",
      "mfg_type": "cnc",
      "sort_order": 40,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 155,
          "supplier_name": "Local Machine Shop",
          "product_url": "",
          "notes": "Custom machined brass nozzle",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 156,
          "supplier_name": "Local Machine Shop",
          "product_url": "",
          "notes": "Stainless steel nozzle",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 54,
      "category": "Concrete Extrusion System",
      "name": "Tubing & Quick Fittings",
      "description": "Pump to nozzle material flow. Reinforced hose rated for concrete slurry. Counter-weighted to reduce gantry loading.",
      "qty": 1,
      "unit": "kit",
      "mfg_type": "buy",
      "sort_order": 50,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 158,
          "supplier_name": "McMaster-Carr",
          "product_url": "https://mcmaster.com",
          "notes": "Reinforced concrete-rated hose + fittings",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 159,
          "supplier_name": "US Plastic Corp",
          "product_url": "https://usplastic.com",
          "notes": "Food-grade reinforced hose set",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 160,
          "supplier_name": "Grainger",
          "product_url": "https://grainger.com",
          "notes": "Industrial reinforced concrete hose",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 56,
      "category": "Fasteners & Hardware",
      "name": "M5 Socket Head Cap Screws",
      "description": "Primary structural fasteners for 4080 C-beam frame (20-series compatible slots). M5 is the standard for 6mm slot width.",
      "qty": 1,
      "unit": "500pc kit",
      "mfg_type": "buy",
      "sort_order": 10,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 164,
          "supplier_name": "McMaster-Carr",
          "product_url": "https://mcmaster.com",
          "notes": "M5 SHCS assortment 500pc",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 165,
          "supplier_name": "Amazon",
          "product_url": "https://amazon.com",
          "notes": "M5 SHCS basic set 500pc",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 166,
          "supplier_name": "Bolt Depot",
          "product_url": "https://boltdepot.com",
          "notes": "M5 stainless kit 500pc",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 57,
      "category": "Fasteners & Hardware",
      "name": "M3 Socket Head Cap Screws",
      "description": "Electronics mounting and small parts. ~50 needed: Kraken (4), Pi 5 (4), buck converters (12), fans (8), DIN rail (12), misc brackets (10).",
      "qty": 1,
      "unit": "100pc kit",
      "mfg_type": "buy",
      "sort_order": 20,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 167,
          "supplier_name": "McMaster-Carr",
          "product_url": "https://mcmaster.com",
          "notes": "M3 SHCS assortment 100pc",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 168,
          "supplier_name": "Amazon",
          "product_url": "https://amazon.com",
          "notes": "M3 SHCS assortment 100pc",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 169,
          "supplier_name": "Digi-Key",
          "product_url": "https://digikey.com",
          "notes": "M3 electronics kit",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 58,
      "category": "Fasteners & Hardware",
      "name": "Washers & Lock Washers Assorted",
      "description": "Prevent loosening from vibration. Nord-Lock recommended for structural joints.",
      "qty": 1,
      "unit": "kit",
      "mfg_type": "buy",
      "sort_order": 30,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 170,
          "supplier_name": "McMaster-Carr",
          "product_url": "https://mcmaster.com",
          "notes": "Complete M3-M8 kit",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 171,
          "supplier_name": "Amazon",
          "product_url": "https://amazon.com",
          "notes": "Basic washer set",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 172,
          "supplier_name": "Grainger",
          "product_url": "https://grainger.com",
          "notes": "Nord-Lock washers",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 59,
      "category": "Fasteners & Hardware",
      "name": "Heat-Set Inserts M3/M5",
      "description": "Essential for threaded connections in 3D printed parts.",
      "qty": 1,
      "unit": "200pc kit",
      "mfg_type": "buy",
      "sort_order": 40,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 173,
          "supplier_name": "McMaster-Carr",
          "product_url": "https://mcmaster.com",
          "notes": "Brass insert kit M3+M5",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 174,
          "supplier_name": "Amazon",
          "product_url": "https://amazon.com",
          "notes": "Economy inserts M3+M5",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 175,
          "supplier_name": "Amazon",
          "product_url": "https://amazon.com",
          "notes": "Premium knurled (CNC Kitchen style)",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 60,
      "category": "Optional Upgrades",
      "name": "Polycarbonate Enclosure Panels",
      "description": "Dust containment for indoor use. Sized to frame dimensions.",
      "qty": 1,
      "unit": "set",
      "mfg_type": "buy",
      "sort_order": 10,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 176,
          "supplier_name": "TAP Plastics",
          "product_url": "https://tapplastics.com",
          "notes": "Clear polycarbonate sheets — cut to size",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 177,
          "supplier_name": "US Plastic Corp",
          "product_url": "https://usplastic.com",
          "notes": "Corrugated plastic panels",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 61,
      "category": "Optional Upgrades",
      "name": "LED Work Lighting",
      "description": "Work area illumination — 24V LED strips powered from main bus.",
      "qty": 1,
      "unit": "kit",
      "mfg_type": "buy",
      "sort_order": 20,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 178,
          "supplier_name": "Amazon",
          "product_url": "https://amazon.com",
          "notes": "24V LED strip 5m",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 179,
          "supplier_name": "Amazon",
          "product_url": "https://amazon.com",
          "notes": "RGB LED strip 24V",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 62,
      "category": "Optional Upgrades",
      "name": "Camera Module for Monitoring",
      "description": "Remote print monitoring via KlipperScreen or Mainsail.",
      "qty": 1,
      "unit": "camera",
      "mfg_type": "buy",
      "sort_order": 30,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 180,
          "supplier_name": "Adafruit",
          "product_url": "https://www.adafruit.com",
          "notes": "RPi Camera v3",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 181,
          "supplier_name": "Amazon",
          "product_url": "https://amazon.com",
          "notes": "USB Webcam 1080p",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 63,
      "category": "Optional Upgrades",
      "name": "HEPA Air Filtration",
      "description": "Concrete dust particle capture for indoor operation.",
      "qty": 1,
      "unit": "system",
      "mfg_type": "buy",
      "sort_order": 40,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 182,
          "supplier_name": "Grainger",
          "product_url": "https://grainger.com",
          "notes": "HEPA filter box fan unit",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 183,
          "supplier_name": "Amazon",
          "product_url": "https://amazon.com",
          "notes": "DIY HEPA filter + fan",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 65,
      "category": "Frame - Reinforcement",
      "name": "X-Direction Internal Reinforcement (centered 2040 insert)",
      "description": "One 1000mm 2040 V-slot insert is friction-fit inside each 2m 4080 C-Beam X-direction member, centered on the butt joint so it spans 500mm on either side. Printed end retainers hold the insert in place; no adhesive is required for the current SN 001 method. The insert provides the primary centering and stiffness at the splice; the smaller in-slot connector bars (id 5) remain alignment aids only and can flex under gravity by themselves. The 2040 insert doubles the central internal features of the C-Beam at the highest-risk splice zone while preserving exterior carriage clearance and reducing reliance on steel set screws at the joint. Earlier analysis claimed less than 0.5mm flex under a 5kg load; SN 001 physical validation shows actual flex is far below that conservative claim. M3-1: not required. M3-2: qty 3 for the three spliced 2m X-direction members.",
      "qty": 3,
      "unit": "bars (1.0m each)",
      "mfg_type": "buy",
      "sort_order": 15,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 209,
          "supplier_name": "MakerStore USA",
          "product_url": "https://makerstore.cc/",
          "notes": "2040 V-slot aluminum extrusion, 1000mm insert centered across each 2m C-Beam butt joint.",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 210,
          "supplier_name": "Bulkman3D",
          "product_url": "https://bulkman3d.com/",
          "notes": "2040 V-slot, 1000mm insert centered across each 2m C-Beam butt joint.",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 211,
          "supplier_name": "ZYLtech",
          "product_url": "https://www.zyltech.com/",
          "notes": "2040 V-slot, 1000mm insert centered across each 2m C-Beam butt joint.",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 212,
          "supplier_name": "Self-Manufacture",
          "product_url": null,
          "notes": "Printed end retainers hold the friction-fit 2040 insert in position; adhesive is not part of the current method.",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 66,
      "category": "X-Axis Motion System",
      "name": "Idler Pulley Mounting Plate",
      "description": "3D-printed idler plates for belt return/tension points: 4x Z-axis + 2x Y-axis = 6 total. X-axis uses the 6mm gantry belt path and does not use this common idler plate line. Printed design carries the smooth idler pulley mount and tension feature.",
      "qty": 6,
      "unit": "plates",
      "mfg_type": "print",
      "sort_order": 35,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 213,
          "supplier_name": "Bulkman3D",
          "product_url": "https://bulkman3d.com/product/pl0007/",
          "notes": "Reference commercial option only; SN 001 uses 3D-printed idler plates.",
          "sku": "PL0007",
          "step_url": "https://github.com/sunnyday-technologies/M3-CRETE/raw/main/CAD/Components/Plates/Idler Pulley Plate.step",
          "approved": false
        },
        {
          "id": 214,
          "supplier_name": "MakerStore USA",
          "product_url": "https://makerstore.cc/",
          "notes": "Reference commercial option only; SN 001 uses 3D-printed idler plates.",
          "sku": null,
          "step_url": null,
          "approved": false
        },
        {
          "id": 215,
          "supplier_name": "Amazon",
          "product_url": "https://www.amazon.com/s?k=V-slot+idler+pulley+plate",
          "notes": "Reference commercial option only; SN 001 uses 3D-printed idler plates.",
          "sku": null,
          "step_url": null,
          "approved": false
        },
        {
          "id": 216,
          "supplier_name": "Self-Manufacture",
          "product_url": null,
          "notes": "SN 001 source of truth: print 6 total plates in PETG/CF-Nylon.",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 67,
      "category": "Frame - Extrusions",
      "name": "C-beam 40×80 × 1000 mm — Frame Member (SDT Standard)",
      "description": "The M3-CRETE reference frame is a single primary extrusion SKU: C-Beam 40x80 aluminum extrusion cut to 1000mm, quantity 17 reference pieces plus 1 spare for a total order of 18. This is the SDT (Sunnyday Technologies) standard: all primary frame members use 4080 C-Beam, no mixed frame extrusion profiles, no 1200mm stock, no 1500mm stock. The 1000mm length is the longest extrusion that fits a standard UPS/FedEx 42-inch parcel box, which gates whether a kit can ship ground or requires pallet freight. The 17 reference pieces make up: 4 Z-posts, 3 top Y-rails, 2 bottom Y-skids, 2 mid-height Y-gantry rails, 4 top X-rails spliced at center for the 2000mm X-direction spans, and 2 mid X cross-braces spliced at center. Spliced 2m X-direction members use the centered 2040 internal reinforcement insert and printed retainers (id 65/id 85). See https://m3-crete.com/blog/m3-2-full-cad-release/ for the full design rationale.",
      "qty": 18,
      "unit": "pieces",
      "mfg_type": "buy",
      "sort_order": 10,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 1101,
          "supplier_name": "Bulkman3D",
          "product_url": "https://bulkman3d.com/product/v-slot-4080/",
          "notes": "Factory-direct from China, DDP sea freight 30-35 days. Stocks 100-1500 mm in 50 mm increments. Select 1000 mm at checkout.",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 1102,
          "supplier_name": "MakerStore USA",
          "product_url": "https://makerstore.cc/product/c-beam/",
          "notes": "US domestic warehouse, Atoka OK. UPS Ground ~3 days. Stocks 1000 mm, 1500 mm, and 2400 mm (2400 mm requires freight quote). Select 1000 mm Black C-Beam at checkout.",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 1112,
          "supplier_name": "ZYLtech Engineering",
          "product_url": "https://www.zyltech.com/zyltech-4080c-v-groove-aluminum-extrusion-pre-cut-sizes-1000mm-and-1200mm/",
          "notes": "Houston TX warehouse, US domestic ground ship. Stocks 1000 mm and 1200 mm pre-cut lengths. Select 1000 mm at checkout.",
          "sku": "4080C-1000",
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 69,
      "category": "Motion - Plates",
      "name": "Common 125x125 C-Beam Gantry Plate (Y/Z candidate)",
      "description": "Y/Z carriage plate candidate using the same 125x125mm C-Beam gantry plate geometry across the machine where practical. 4x Z-corner + 2x Y-gantry = 6 total. This replaces the previous smaller-standard-vs-XLarge split and is intended to reduce total part count while allowing component swaps. Fit-check on SN 001 before freezing.",
      "qty": 6,
      "unit": "pc",
      "mfg_type": "buy",
      "sort_order": 10,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 1107,
          "supplier_name": "Bulkman3D",
          "product_url": "https://bulkman3d.com/",
          "notes": "Common 125x125mm C-Beam gantry plate candidate; avoid 125x170 XLarge unless explicitly re-approved.",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 1108,
          "supplier_name": "MakerStore USA",
          "product_url": "https://makerstore.cc/",
          "notes": "Common 125x125mm C-Beam gantry plate candidate; verify wheel pattern before purchase.",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 84,
      "category": "Motion - Plates",
      "name": "Common 125x125 C-Beam Gantry Plate (X-axis pair)",
      "description": "X-axis double-plate carriage pair using the same 125x125mm C-Beam gantry plate geometry targeted across Y/Z/X. 2 plates total (double-plate sandwich on the 2m gantry beam, 4 wheels each = 8 X-axis wheels). Do not use the 125x170mm XLarge plate path unless explicitly re-approved; the common plate strategy reduces total part count and supports component swaps.",
      "qty": 2,
      "unit": "pc",
      "mfg_type": "buy",
      "sort_order": 11,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 1288,
          "supplier_name": "Bulkman3D",
          "product_url": "https://bulkman3d.com/",
          "notes": "125x125mm C-Beam gantry plate; avoid 125x170mm XLarge unless explicitly re-approved.",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 1289,
          "supplier_name": "MakerStore USA",
          "product_url": "https://makerstore.cc/",
          "notes": "125x125mm C-Beam gantry plate equivalent; verify dimensions before purchase.",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 75,
      "category": "3D-Printed Structural",
      "name": "Z Motor Mount / Y-Spacer Plate (3D printed)",
      "description": "Simple printed plate at each Y-motor position (2 total): 80x107x4mm NEMA23 motor mount/spacer that holds the rotated motor flange ~45 deg about its shaft so the 4 NEMA23 mounting holes align with the V-slot centerlines for direct T-nut mounting. As of M3-2_V1.0 design, Z-motors use bot_spacer_idler (id 79) at the top corners instead of this plate.",
      "qty": 2,
      "unit": "pieces",
      "mfg_type": "print",
      "sort_order": 35,
      "mpn": null,
      "substitute_ok": false,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 1275,
          "supplier_name": "Self-Manufacture",
          "product_url": null,
          "notes": "3D print in PETG (8mm walls, prototype) or CCF (3-4mm, production). STL generated from CadQuery script.",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 77,
      "category": "3D-Printed Structural",
      "name": "Expanded Center T-Bracket (spreader junction, 3D printed)",
      "description": "Large T-bracket at center Y-spreader / X-rail junctions. 280x160x4mm, 17 M5 holes aligned to C-beam slot centerlines. Grabs both the spreader end and the adjacent X-rail sections for full junction rigidity. CAD: CAD/Custom/Center_T_Bracket_Expanded.step",
      "qty": 2,
      "unit": "pieces",
      "mfg_type": "print",
      "sort_order": 37,
      "mpn": null,
      "substitute_ok": false,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 1277,
          "supplier_name": "Self-Manufacture",
          "product_url": null,
          "notes": "3D print in PETG (8mm walls, prototype) or CCF (3-4mm, production). STL generated from CadQuery script.",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 79,
      "category": "3D-Printed Structural",
      "name": "Bottom Spacer/Idler Mount (4mm, combined, 3D printed)",
      "description": "Combined bottom-spacer/idler-mount printed plate (4mm). 8 total: 2 per Z-corner (top + bottom). The TOP variant doubles as the Z-motor mount in the V1.0 design, holding the NEMA23 against the C-beam top. The BOTTOM variant carries the lower idler axle for the Z-belt loop. Identical geometry, different role per position.",
      "qty": 8,
      "unit": "pieces",
      "mfg_type": "print",
      "sort_order": 38,
      "mpn": null,
      "substitute_ok": false,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 1279,
          "supplier_name": "Self-Manufacture",
          "product_url": null,
          "notes": "3D print in PETG (8mm walls, prototype) or CCF (3-4mm, production). STL generated from CadQuery script.",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 81,
      "category": "3D-Printed Structural",
      "name": "Y-Motor 4mm Spacer (3D printed)",
      "description": "DEPRECATED in M3-2_V1.0 (2026-04-29). The Y-motor 4mm spacer role is now subsumed by the unified z_motor_mount plate (id 75, qty 2). Kept here for changelog continuity; do not order. 4mm spacer plate between Y-axis NEMA23 motor flange and C-beam 80mm face. Motor is rotated ~45 degrees about its shaft axis so the 4 mounting bolts align with the V-slot centerlines, allowing direct T-nut mounting into the extrusion. The spacer prevents the motor body from intruding into the C-beam channel. Geometry TBD (small NEMA23 mounting footprint with bolt pattern). PETG or CCF.",
      "qty": 0,
      "unit": "pieces",
      "mfg_type": "print",
      "sort_order": 40,
      "mpn": null,
      "substitute_ok": false,
      "exclude_from_kit": true,
      "suppliers": [
        {
          "id": 1281,
          "supplier_name": "Self-Manufacture",
          "product_url": null,
          "notes": "3D print in PETG or CCF.",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 82,
      "category": "Frame - Reinforcement",
      "name": "Legacy Frame Splice Backup Plate (6mm aluminum, optional)",
      "description": "DEPRECATED in M3-2_V1.0 (2026-04-29). Internal 2040 V-slot reinforcement (id 65, qty 3) replaces this plate; per design the 2040 stiffness is far beyond needs and no external plate is required. Legacy optional external backup plate for a 2m X-direction splice. Current SN 001 method uses the centered 2040 friction-fit internal insert with printed retainers (id 65/id 85), so this exterior plate is not part of the reference kit unless a later load case explicitly requires it.",
      "qty": 0,
      "unit": "plates",
      "mfg_type": "buy",
      "sort_order": 16,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": true,
      "suppliers": [
        {
          "id": 1282,
          "supplier_name": "McMaster-Carr",
          "product_url": "https://www.mcmaster.com/products/aluminum-sheets/thickness~6-mm/",
          "notes": "6mm aluminum flat stock 6061-T6, cut to ~200x80mm",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 1283,
          "supplier_name": "Metals Depot",
          "product_url": "https://www.metalsdepot.com/",
          "notes": "6mm (1/4 in nominal) aluminum flat bar, cut to length, ships from Kentucky",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 1284,
          "supplier_name": "Amazon",
          "product_url": "https://www.amazon.com/s?k=6mm+aluminum+flat+plate+6061",
          "notes": "6061-T6 aluminum flat plate, various stock sizes",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 83,
      "category": "Frame Hardware & Brackets",
      "name": "V-Wheel Axle Spacers 6mm (plain cylindrical)",
      "description": "One per wheel, outboard of wheel between wheel face and washer/lock nut. 6mm tall, ~10mm OD, 5.1mm bore (M5 clearance). Measured on SN 001 assembly 2026-04-23: 5mm to reach track + 1mm running gap = 6mm required. Full wheel stack: M5 bolt -> plate -> eccentric spacer (id 7, 6mm) -> V-wheel -> THIS spacer (6mm) -> washer -> lock nut. All 32 wheel positions. 60 ordered for SN 001 (surplus covers spares and inner bearing spacers if needed).",
      "qty": 32,
      "unit": "pieces",
      "mfg_type": "buy",
      "sort_order": 26,
      "mpn": null,
      "substitute_ok": true,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 1285,
          "supplier_name": "Bulkman3D",
          "product_url": "https://bulkman3d.com/",
          "notes": "V-Slot standard spacer 6mm, M5 bore — matches eccentric spacer OD",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 1286,
          "supplier_name": "MakerStore USA",
          "product_url": "https://makerstore.cc/",
          "notes": "Standard 6mm spacer, M5 bore, matches V-wheel assembly kit",
          "sku": null,
          "step_url": null,
          "approved": true
        },
        {
          "id": 1287,
          "supplier_name": "Amazon",
          "product_url": "https://www.amazon.com/s?k=M5+aluminum+spacer+6mm+V-slot",
          "notes": "M5 bore aluminum standoff spacer 6mm length — verify 10mm OD to match wheel assembly",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    },
    {
      "id": 85,
      "category": "3D-Printed Structural",
      "name": "2040 Insert End Retainers (3D printed)",
      "description": "Printed end retainers for the centered 2040 reinforcement inserts used inside 2m 4080 C-Beam X-direction members. The 2040 insert friction-fits with light pressure; retainers prevent migration without adhesive and keep the reinforcement method field-serviceable.",
      "qty": 6,
      "unit": "pieces",
      "mfg_type": "print",
      "sort_order": 39,
      "mpn": null,
      "substitute_ok": false,
      "exclude_from_kit": false,
      "suppliers": [
        {
          "id": 1290,
          "supplier_name": "Self-Manufacture",
          "product_url": null,
          "notes": "Print two retainers per reinforced 2m X-direction member; qty assumes 3 reinforced members for M3-2 and should track final spliced-member count.",
          "sku": null,
          "step_url": null,
          "approved": true
        }
      ]
    }
  ],
  "notes": "v2.7 (M3-2 V1.0 freeze, 2026-04-29): unified mount-plate design — id 75 (qty 2) covers Y-motors only; id 79 (qty 8) bot_spacer_idler doubles as Z-motor mount at top corners; id 65 (qty 3) internal 2040 V-slot inserts replace external splice plates. Deprecated: id 81 (Y-spacer merged into id 75) and id 82 (Frame Splice Backup Plate, replaced by 2040 inserts). Earlier basis (kept for context): all primary frame members are 4080 C-Beam at 1000mm; X-direction 2m members use centered 2040 friction-fit inserts; belt width 6mm on X-axis, 10mm on Y/Z; quad-Z self-tramming; NEMA23 8mm-shaft motors with StallGuard4 sensorless homing."
}