[
 {
  "id": "dji-robomaster-snail-2305",
  "category": "turret",
  "vendor": "DJI RoboMaster",
  "model": "Snail 2305 friction-wheel motor (+ C615 ESC)",
  "price_usd": 40.0,
  "price_note": "aifitlab: motor $40; C615 ESC $60; motor + C615 $100; motor + 420S ESC $80",
  "price_checked": "2026-10-25",
  "buy": [
   {
    "seller": "aifitlab",
    "url": "https://aifitlab.com/products/dji-robomaster-snail-2305-motor-c615-speed-controller",
    "in_stock": true,
    "ships_from": null
   }
  ],
  "specs": {
   "mass_g": 27.8,
   "diameter_mm": 29,
   "stator_mm": "23 x 5",
   "shaft_diameter_mm": 2.95,
   "kv_rpm_per_v": 875,
   "no_load_speed_rpm": 21000,
   "no_load_current_a": 0.4,
   "kt_nm_per_a": 0.0109,
   "rotor_inertia_kg_mm2": 1.84,
   "voltage_nominal_v": 24,
   "esc_c615_max_voltage_v": 26,
   "esc_c615_continuous_a": 15,
   "esc_c615_peak_a_3s": 20,
   "esc_c615_mass_g": 9.7,
   "esc_signal": "PWM up to 500 Hz",
   "interface": "C615 ESC, PWM",
   "ip_rating": null
  },
  "cad": {
   "step_url": "https://aifitlab.com/products/dji-robomaster-snail-2305-motor-c615-speed-controller",
   "available": true
  },
  "sources": [
   "https://aifitlab.com/products/dji-robomaster-snail-2305-motor-c615-speed-controller"
  ],
  "confidence": "seller listing",
  "notes": "RoboMaster's 17 mm friction-wheel launcher motor. The listing gives KV both as 2400 and as 875 rpm/V; 21000 rpm at 24 V matches 875. Listing links STEP files and user guides. C615 max 26 V is below a 7S pack's 29.4 V full charge, so it needs a regulated rail. Not a foam-dart part: flywheels and cage would be custom (2.95 mm shaft). Replaced in v0 by the SunnySky X2216 880KV V3 (D42): delisted, backorder only.",
  "key": "dji-robomaster-snail-2305"
 },
 {
  "id": "worker-cheetah-rival-rounds-100",
  "category": "turret",
  "vendor": "Worker",
  "model": "Cheetah Rival-compatible rounds, 100-pack",
  "price_usd": 14.99,
  "price_note": "Out of Darts, 100 rounds",
  "price_checked": "2026-10-25",
  "buy": [
   {
    "seller": "Out of Darts",
    "url": "https://outofdarts.com/products/worker-cheetah-rounds-rival-compatible-ammo-100-pack",
    "in_stock": true,
    "ships_from": "US"
   }
  ],
  "specs": {
   "mass_g": 1.75,
   "diameter_mm": 22.7,
   "material": "EVA foam",
   "pack_count": 100,
   "ip_rating": null
  },
  "cad": {
   "step_url": null,
   "available": false
  },
  "sources": [
   "https://outofdarts.com/products/worker-cheetah-rounds-rival-compatible-ammo-100-pack"
  ],
  "confidence": "product page",
  "notes": "mass_g is per round. 75% heavier than a short dart, so more energy at the same speed; Hasbro sells Rival as 14+ with eyewear recommended. Not recommended for a kids' game.",
  "key": "worker-cheetah-rival-rounds-100"
 },
 {
  "id": "feetech-sts3215-c018-12v",
  "category": "turret",
  "vendor": "Feetech (Waveshare ST3215)",
  "model": "STS3215 / ST3215 12 V 30 kg-cm serial bus servo",
  "preferred": true,
  "price_usd": 21.99,
  "price_note": "Waveshare SKU 22414 $21.99 (2: $21.19, 3: $20.79, 4+: $20.63), InStock; ships in ~3 business days, UPS 3-7 / DHL 3-8 working days to the US, duties paid by the buyer (page 2026-10-27). Amazon B0CFY52HVV $30.99; Feetech's own Amazon 2-pack B0FMXVR77Y $48.99 (Nov 5-8)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Waveshare",
    "url": "https://www.waveshare.com/st3215-servo.htm?sku=22414",
    "in_stock": true,
    "ships_from": null,
    "seller_pn": "22414",
    "price_usd": 21.99,
    "pack_qty": 1,
    "stock": "schema.org availability InStock; SKU 22414 'unsaleable': false (no count shown)",
    "read_on": "2026-10-27",
    "how_read": "page"
   },
   {
    "seller": "Amazon",
    "url": "https://www.amazon.com/dp/B0CFY52HVV",
    "in_stock": true,
    "ships_from": null,
    "seller_pn": "ASIN B0CFY52HVV",
    "price_usd": 30.99,
    "pack_qty": 1,
    "stock": "In Stock (quantity selector to 20+)",
    "read_on": "2026-10-27",
    "how_read": "page"
   },
   {
    "seller": "Amazon",
    "url": "https://www.amazon.com/dp/B0B6P9271Q",
    "in_stock": true,
    "ships_from": null,
    "seller_pn": "ASIN B0B6P9271Q",
    "price_usd": 30.9,
    "pack_qty": 1,
    "stock": "Only 1 left in stock - order soon",
    "read_on": "2026-10-27",
    "how_read": "page"
   },
   {
    "seller": "Amazon",
    "url": "https://www.amazon.com/dp/B0FMXVR77Y",
    "in_stock": null,
    "ships_from": null,
    "seller_pn": "ASIN B0FMXVR77Y",
    "price_usd": 48.99,
    "pack_qty": 2,
    "stock": "orderable: Add to Cart with a quantity selector (1-8+); the availability line is blank",
    "read_on": "2026-10-27",
    "how_read": "page"
   }
  ],
  "specs": {
   "mass_g": 89,
   "stall_torque_nm": 2.94,
   "rated_torque_nm": null,
   "no_load_speed_rpm": 45,
   "no_load_speed_deg_per_s": 270,
   "voltage_nominal_v": 12,
   "voltage_range_v": [
    6,
    12.6
   ],
   "interface": "TTL UART half-duplex serial bus, 38400 bps-1 Mbps",
   "encoder": "12-bit magnetic, 4096 counts/turn, 360 deg, no mechanical limit",
   "ip_rating": null
  },
  "cad": {
   "step_url": null,
   "available": false
  },
  "sources": [
   "https://www.waveshare.com/st3215-servo.htm?sku=22414",
   "https://robotshop.com/products/feetech-12v-30kgcm-magnetic-encoding-servo-sts3215"
  ],
  "confidence": "product page",
  "notes": "Stall torque converted from 30 kg-cm at 12 V (7.4 V version: 19.5 kg-cm, 52 rpm). Waveshare lists 89 g; other listings say 55 g. Cheap, light tilt actuator with an absolute encoder, so tilt angle is known at power-up. Needs a 12 V rail (not the 7S bus) and a UART bus adapter. Not PWM controllable.",
  "key": "feetech-sts3215-c018-12v"
 },
 {
  "id": "dji-robomaster-m2006-p36",
  "category": "turret",
  "vendor": "DJI RoboMaster",
  "model": "M2006 P36 geared motor (+ C610 ESC)",
  "price_usd": 95.0,
  "price_note": "aifitlab motor only; C610 ESC V2.0 $250 listed separately",
  "price_checked": "2026-10-25",
  "buy": [
   {
    "seller": "aifitlab",
    "url": "https://aifitlab.com/products/dji-robomaster-m2006-p36-brushless-dc-gear-motor",
    "in_stock": true,
    "ships_from": null
   }
  ],
  "specs": {
   "mass_g": 90,
   "gear_ratio": 36,
   "rated_torque_nm": 1.0,
   "stall_torque_nm": 7,
   "stall_current_a": 27.3,
   "no_load_speed_rpm": 500,
   "rated_speed_rpm": 416,
   "voltage_nominal_v": 24,
   "kt_nm_per_a": 0.18,
   "interface": "C610 ESC (CAN)",
   "ip_rating": null
  },
  "cad": {
   "step_url": "https://aifitlab.com/products/dji-robomaster-m2006-p36-brushless-dc-gear-motor",
   "available": true
  },
  "sources": [
   "https://aifitlab.com/products/dji-robomaster-m2006-p36-brushless-dc-gear-motor"
  ],
  "confidence": "seller listing",
  "notes": "RoboMaster's usual trigger / feed-dial motor (jam detection by watching its speed). Overkill for darts; listed because it is how RoboMaster feeds 17 mm balls. Speeds with C610; Z650 ESC values differ.",
  "key": "dji-robomaster-m2006-p36"
 },
 {
  "id": "repeat-robotics-am32-35a-esc",
  "category": "turret",
  "vendor": "Repeat Robotics (sold by Palm Beach Bots)",
  "model": "AM32 Brushless Drive ESC 35 A (bi-directional)",
  "price_usd": 24.99,
  "price_note": "Palm Beach Bots, single unit",
  "price_checked": "2026-10-25",
  "buy": [
   {
    "seller": "Palm Beach Bots",
    "url": "https://palmbeachbots.com/products/repeat-robotics-am32-brushless-drive-esc-bi-directional",
    "in_stock": true,
    "ships_from": "US"
   }
  ],
  "specs": {
   "mass_g": 5,
   "size_mm": [
    25,
    13,
    5
   ],
   "continuous_current_a": 35,
   "cells_s": [
    3,
    6
   ],
   "voltage_range_v": [
    9.0,
    25.2
   ],
   "firmware": "AM32 (reprogrammable with the AM32 config tool)",
   "interface": "servo PWM / DShot (AM32); RPM telemetry on this board not confirmed",
   "ip_rating": null
  },
  "cad": {
   "step_url": null,
   "available": false
  },
  "sources": [
   "https://palmbeachbots.com/products/repeat-robotics-am32-brushless-drive-esc-bi-directional",
   "https://github.com/am32-firmware/AM32"
  ],
  "confidence": "product page",
  "notes": "6S-capable 5 g ESC, so it runs flywheel motors straight from a regulated 24 V payload rail. Ships with crawler (bi-directional) settings; reflash as uni-directional with RPM telemetry for a closed-loop flywheel. Voltage range is 3-6S LiPo (calc), not a stated rating. Listing shipping weight 15 g.",
  "key": "repeat-robotics-am32-35a-esc"
 },
 {
  "id": "mcmaster-91290a015",
  "key": "turret_screw_m2x8",
  "category": "fastener",
  "vendor": "McMaster-Carr",
  "model": "91290A015",
  "name": "Black-Oxide Alloy Steel Socket Head Screw, US Origin, M2 x 0.4 mm Thread Size, 8 mm Long",
  "price_usd": 0.1916,
  "price_note": "McMaster-Carr: $19.16 per pack of 100 (price_usd is per piece)",
  "price_checked": "2026-10-27",
  "pack_qty": 100,
  "pack_price_usd": 19.16,
  "buy": [
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/91290A015/",
    "in_stock": null,
    "ships_from": "US"
   }
  ],
  "specs": {
   "thread": "M2x0.4",
   "length_mm": 8.0,
   "head_d_mm": 3.8,
   "head_height_mm": 2.0,
   "mass_g": null,
   "mass_basis": "unknown",
   "material": "Black-Oxide Alloy Steel",
   "mcmaster": {
    "raw": {
     "Thread Size": "M2 × 0.4 mm",
     "Thread Spacing": "Coarse",
     "Thread Type": "Metric",
     "Thread Fit": "Metric Class 5g6g",
     "Thread Direction": "Right Hand",
     "Socket Head Profile": "Standard",
     "Fastener Head Type": "Socket",
     "Drive Style": "Hex",
     "Length": "8 mm",
     "Head Diameter": "3.8 mm",
     "Head Height": "2 mm",
     "Threading": "Fully Threaded",
     "Tensile Strength": "170,000 psi",
     "Fastener Strength Grade/Class": "Class 12.9",
     "Drive Size": "1.5 mm",
     "Hardness": "Rockwell C41",
     "Material": "Black-Oxide Alloy Steel",
     "Performance": "High Strength",
     "Specifications Met": "DIN 912, ISO 4762",
     "System of Measurement": "Metric",
     "Tip Type": "Flat",
     "Country of Origin": "United States",
     "DFARS Compliance": "Specialty Metals Compliant (252.225-7009)",
     "Export Control Classification Number (ECCN)": "EAR99",
     "REACH Compliance": "REACH (EC 1907/2006) (02/04/2026, 253 SVHC) Compliant",
     "RoHS Compliance": "RoHS 3 (2015/863/EU) Compliant",
     "Schedule B Number": "731815.9000",
     "U.S.–Mexico–Canada Agreement (USMCA) Qualifying": "Yes"
    },
    "parsed": {
     "Thread Size": {
      "thread": "M2x0.4",
      "d": 2.0,
      "pitch": 0.4,
      "unit": "mm"
     },
     "Length": {
      "value": 8.0,
      "unit": "mm"
     },
     "Head Diameter": {
      "value": 3.8,
      "unit": "mm"
     },
     "Head Height": {
      "value": 2.0,
      "unit": "mm"
     },
     "Tensile Strength": {
      "value": 1172.1092,
      "unit": "MPa"
     },
     "Drive Size": {
      "value": 1.5,
      "unit": "mm"
     }
    }
   }
  },
  "cad": {
   "file": null,
   "kind": "screw",
   "frame": "axis +Z, centred on the axis, head on +z and shank towards -z; z = 0 at the underside of the head (socket, button, pan, hex and flanged heads) or at the top face of a countersunk (flat) head",
   "available": true,
   "step_url": "https://www.mcmaster.com/91290A015/",
   "bbox_mm": null,
   "volume_mm3": null,
   "pending": "STEP not downloaded yet: McMaster-Carr asks for a login before CAD downloads (the product page itself reads without one). Finish with .venv/bin/python tools/mcmaster_cad.py --catalog --file catalog/turret.json --only turret_screw_m2x8 once logged in, or save the STEP from a logged-in browser as references/vendor/mcmaster/91290A015/91290A015.step and run the same command."
  },
  "frame": "axis +Z, centred on the axis, head on +z and shank towards -z; z = 0 at the underside of the head (socket, button, pan, hex and flanged heads) or at the top face of a countersunk (flat) head",
  "sources": [
   "https://www.mcmaster.com/91290A015/"
  ],
  "confidence": "product page",
  "used_for": "the flywheel hubs to the Snails' bells: 3 x M2 x 8 each on Ø10.3, heads 6 mm down in the hub",
  "qty_per_robot": 6
 },
 {
  "id": "mcmaster-91290a017",
  "key": "turret_screw_m2x10",
  "category": "fastener",
  "vendor": "McMaster-Carr",
  "model": "91290A017",
  "name": "Black-Oxide Alloy Steel Socket Head Screw, US Origin, M2 x 0.4 mm Thread Size, 10 mm Long",
  "price_usd": 0.1589,
  "price_note": "McMaster-Carr: $15.89 per pack of 100 (price_usd is per piece)",
  "price_checked": "2026-10-27",
  "pack_qty": 100,
  "pack_price_usd": 15.89,
  "buy": [
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/91290A017/",
    "in_stock": null,
    "ships_from": "US"
   }
  ],
  "specs": {
   "thread": "M2x0.4",
   "length_mm": 10.0,
   "head_d_mm": 3.8,
   "head_height_mm": 2.0,
   "mass_g": null,
   "mass_basis": "unknown",
   "material": "Black-Oxide Alloy Steel",
   "mcmaster": {
    "raw": {
     "Thread Size": "M2 × 0.4 mm",
     "Thread Spacing": "Coarse",
     "Thread Type": "Metric",
     "Thread Fit": "Metric Class 5g6g",
     "Thread Direction": "Right Hand",
     "Socket Head Profile": "Standard",
     "Fastener Head Type": "Socket",
     "Drive Style": "Hex",
     "Length": "10 mm",
     "Head Diameter": "3.8 mm",
     "Head Height": "2 mm",
     "Threading": "Fully Threaded",
     "Tensile Strength": "170,000 psi",
     "Fastener Strength Grade/Class": "Class 12.9",
     "Drive Size": "1.5 mm",
     "Hardness": "Rockwell C41",
     "Material": "Black-Oxide Alloy Steel",
     "Performance": "High Strength",
     "Specifications Met": "DIN 912, ISO 4762",
     "System of Measurement": "Metric",
     "Tip Type": "Flat",
     "Country of Origin": "United States",
     "DFARS Compliance": "Specialty Metals Compliant (252.225-7009)",
     "Export Control Classification Number (ECCN)": "EAR99",
     "REACH Compliance": "Not Compliant",
     "RoHS Compliance": "RoHS 3 (2015/863/EU) Compliant",
     "Schedule B Number": "731815.9000",
     "U.S.–Mexico–Canada Agreement (USMCA) Qualifying": "Yes"
    },
    "parsed": {
     "Thread Size": {
      "thread": "M2x0.4",
      "d": 2.0,
      "pitch": 0.4,
      "unit": "mm"
     },
     "Length": {
      "value": 10.0,
      "unit": "mm"
     },
     "Head Diameter": {
      "value": 3.8,
      "unit": "mm"
     },
     "Head Height": {
      "value": 2.0,
      "unit": "mm"
     },
     "Tensile Strength": {
      "value": 1172.1092,
      "unit": "MPa"
     },
     "Drive Size": {
      "value": 1.5,
      "unit": "mm"
     }
    }
   }
  },
  "cad": {
   "file": null,
   "kind": "screw",
   "frame": "axis +Z, centred on the axis, head on +z and shank towards -z; z = 0 at the underside of the head (socket, button, pan, hex and flanged heads) or at the top face of a countersunk (flat) head",
   "available": true,
   "step_url": "https://www.mcmaster.com/91290A017/",
   "bbox_mm": null,
   "volume_mm3": null,
   "pending": "STEP not downloaded yet: McMaster-Carr asks for a login before CAD downloads (the product page itself reads without one). Finish with .venv/bin/python tools/mcmaster_cad.py --catalog --file catalog/turret.json --only turret_screw_m2x10 once logged in, or save the STEP from a logged-in browser as references/vendor/mcmaster/91290A017/91290A017.step and run the same command."
  },
  "frame": "axis +Z, centred on the axis, head on +z and shank towards -z; z = 0 at the underside of the head (socket, button, pan, hex and flanged heads) or at the top face of a countersunk (flat) head",
  "sources": [
   "https://www.mcmaster.com/91290A017/"
  ],
  "confidence": "product page",
  "used_for": "the tilt servo to the +y yoke arm, from the arm's inner face (heads sunk 2 mm) into its output face",
  "qty_per_robot": 4
 },
 {
  "id": "mcmaster-91290a049",
  "key": "turret_screw_m2x20",
  "category": "fastener",
  "vendor": "McMaster-Carr",
  "model": "91290A049",
  "name": "Black-Oxide Alloy Steel Socket Head Screw, M2 x 0.4 mm Thread Size, 20 mm Long",
  "price_usd": 0.1658,
  "price_note": "McMaster-Carr: $16.58 per pack of 100 (price_usd is per piece)",
  "price_checked": "2026-10-27",
  "pack_qty": 100,
  "pack_price_usd": 16.58,
  "buy": [
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/91290A049/",
    "in_stock": null,
    "ships_from": "US"
   }
  ],
  "specs": {
   "thread": "M2x0.4",
   "length_mm": 20.0,
   "head_d_mm": 3.8,
   "head_height_mm": 2.0,
   "mass_g": null,
   "mass_basis": "unknown",
   "material": "Black-Oxide Alloy Steel",
   "mcmaster": {
    "raw": {
     "Thread Size": "M2 × 0.4 mm",
     "Thread Spacing": "Coarse",
     "Thread Type": "Metric",
     "Thread Fit": "Metric Class 5g6g",
     "Thread Direction": "Right Hand",
     "Socket Head Profile": "Standard",
     "Fastener Head Type": "Socket",
     "Drive Style": "Hex",
     "Length": "20 mm",
     "Head Diameter": "3.8 mm",
     "Head Height": "2 mm",
     "Threading": "Fully Threaded",
     "Tensile Strength": "170,000 psi",
     "Fastener Strength Grade/Class": "Class 12.9",
     "Certificate Form": "Digital",
     "Certificate Type": "Material Certificate with Traceable Lot Number",
     "Drive Size": "1.5 mm",
     "Hardness": "Rockwell C41",
     "Material": "Black-Oxide Alloy Steel",
     "Performance": "High Strength",
     "Specifications Met": "DIN 912, ISO 4762",
     "System of Measurement": "Metric",
     "Tip Type": "Flat",
     "Country of Origin": "United States, Belgium, Canada, China, France, Germany, India, Indonesia, Italy, Japan, Malaysia, Mexico, Philippines, Poland, South Korea, Switzerland, Taiwan, Thailand, Vietnam",
     "DFARS Compliance": "Not Specialty Metals Compliant",
     "Export Control Classification Number (ECCN)": "EAR99",
     "REACH Compliance": "REACH (EC 1907/2006) (02/04/2026, 253 SVHC) Compliant",
     "RoHS Compliance": "RoHS 3 (2015/863/EU) Compliant",
     "Schedule B Number": "731815.9000",
     "U.S.–Mexico–Canada Agreement (USMCA) Qualifying": "No"
    },
    "parsed": {
     "Thread Size": {
      "thread": "M2x0.4",
      "d": 2.0,
      "pitch": 0.4,
      "unit": "mm"
     },
     "Length": {
      "value": 20.0,
      "unit": "mm"
     },
     "Head Diameter": {
      "value": 3.8,
      "unit": "mm"
     },
     "Head Height": {
      "value": 2.0,
      "unit": "mm"
     },
     "Tensile Strength": {
      "value": 1172.1092,
      "unit": "MPa"
     },
     "Drive Size": {
      "value": 1.5,
      "unit": "mm"
     }
    }
   }
  },
  "cad": {
   "file": null,
   "kind": "screw",
   "frame": "axis +Z, centred on the axis, head on +z and shank towards -z; z = 0 at the underside of the head (socket, button, pan, hex and flanged heads) or at the top face of a countersunk (flat) head",
   "available": true,
   "step_url": "https://www.mcmaster.com/91290A049/",
   "bbox_mm": null,
   "volume_mm3": null,
   "pending": "STEP not downloaded yet: McMaster-Carr asks for a login before CAD downloads (the product page itself reads without one). Finish with .venv/bin/python tools/mcmaster_cad.py --catalog --file catalog/turret.json --only turret_screw_m2x20 once logged in, or save the STEP from a logged-in browser as references/vendor/mcmaster/91290A049/91290A049.step and run the same command."
  },
  "frame": "axis +Z, centred on the axis, head on +z and shank towards -z; z = 0 at the underside of the head (socket, button, pan, hex and flanged heads) or at the top face of a countersunk (flat) head",
  "sources": [
   "https://www.mcmaster.com/91290A049/"
  ],
  "confidence": "product page",
  "used_for": "the pan servo: up through the foot and its four posts into its idler face",
  "qty_per_robot": 4
 },
 {
  "id": "mcmaster-91290a102",
  "key": "turret_screw_m2_5x8",
  "category": "fastener",
  "vendor": "McMaster-Carr",
  "model": "91290A102",
  "name": "Black-Oxide Alloy Steel Socket Head Screw, US Origin, M2.5 x 0.45 mm Thread Size, 8 mm Long",
  "price_usd": 0.246,
  "price_note": "McMaster-Carr: $12.30 per pack of 50 (price_usd is per piece)",
  "price_checked": "2026-10-27",
  "pack_qty": 50,
  "pack_price_usd": 12.3,
  "buy": [
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/91290A102/",
    "in_stock": null,
    "ships_from": "US"
   }
  ],
  "specs": {
   "thread": "M2.5x0.45",
   "length_mm": 8.0,
   "head_d_mm": 4.5,
   "head_height_mm": 2.5,
   "mass_g": null,
   "mass_basis": "unknown",
   "material": "Black-Oxide Alloy Steel",
   "mcmaster": {
    "raw": {
     "Thread Size": "M2.5 × 0.45 mm",
     "Thread Spacing": "Coarse",
     "Thread Type": "Metric",
     "Thread Fit": "Metric Class 5g6g",
     "Thread Direction": "Right Hand",
     "Socket Head Profile": "Standard",
     "Fastener Head Type": "Socket",
     "Drive Style": "Hex",
     "Length": "8 mm",
     "Head Diameter": "4.5 mm",
     "Head Height": "2.5 mm",
     "Threading": "Fully Threaded",
     "Tensile Strength": "170,000 psi",
     "Fastener Strength Grade/Class": "Class 12.9",
     "Drive Size": "2 mm",
     "Hardness": "Rockwell C41",
     "Material": "Black-Oxide Alloy Steel",
     "Performance": "High Strength",
     "Specifications Met": "DIN 912, ISO 4762",
     "System of Measurement": "Metric",
     "Tip Type": "Flat",
     "Country of Origin": "United States",
     "DFARS Compliance": "Specialty Metals Compliant (252.225-7009)",
     "Export Control Classification Number (ECCN)": "EAR99",
     "REACH Compliance": "Not Compliant",
     "RoHS Compliance": "RoHS 3 (2015/863/EU) Compliant",
     "Schedule B Number": "731815.9000",
     "U.S.–Mexico–Canada Agreement (USMCA) Qualifying": "Yes"
    },
    "parsed": {
     "Thread Size": {
      "thread": "M2.5x0.45",
      "d": 2.5,
      "pitch": 0.45,
      "unit": "mm"
     },
     "Length": {
      "value": 8.0,
      "unit": "mm"
     },
     "Head Diameter": {
      "value": 4.5,
      "unit": "mm"
     },
     "Head Height": {
      "value": 2.5,
      "unit": "mm"
     },
     "Tensile Strength": {
      "value": 1172.1092,
      "unit": "MPa"
     },
     "Drive Size": {
      "value": 2.0,
      "unit": "mm"
     }
    }
   }
  },
  "cad": {
   "file": null,
   "kind": "screw",
   "frame": "axis +Z, centred on the axis, head on +z and shank towards -z; z = 0 at the underside of the head (socket, button, pan, hex and flanged heads) or at the top face of a countersunk (flat) head",
   "available": true,
   "step_url": "https://www.mcmaster.com/91290A102/",
   "bbox_mm": null,
   "volume_mm3": null,
   "pending": "STEP not downloaded yet: McMaster-Carr asks for a login before CAD downloads (the product page itself reads without one). Finish with .venv/bin/python tools/mcmaster_cad.py --catalog --file catalog/turret.json --only turret_screw_m2_5x8 once logged in, or save the STEP from a logged-in browser as references/vendor/mcmaster/91290A102/91290A102.step and run the same command."
  },
  "frame": "axis +Z, centred on the axis, head on +z and shank towards -z; z = 0 at the underside of the head (socket, button, pan, hex and flanged heads) or at the top face of a countersunk (flat) head",
  "sources": [
   "https://www.mcmaster.com/91290A102/"
  ],
  "confidence": "product page",
  "used_for": "the bench stand's XT60 panel socket",
  "qty_per_robot": 2
 },
 {
  "id": "mcmaster-91290a113",
  "key": "turret_screw_m3x8",
  "category": "fastener",
  "vendor": "McMaster-Carr",
  "model": "91290A113",
  "name": "Black-Oxide Alloy Steel Socket Head Screw, US Origin, M3 x 0.5 mm Thread Size, 8 mm Long",
  "price_usd": 0.1328,
  "price_note": "McMaster-Carr: $13.28 per pack of 100 (price_usd is per piece)",
  "price_checked": "2026-10-27",
  "pack_qty": 100,
  "pack_price_usd": 13.28,
  "buy": [
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/91290A113/",
    "in_stock": null,
    "ships_from": "US"
   }
  ],
  "specs": {
   "thread": "M3x0.5",
   "length_mm": 8.0,
   "head_d_mm": 5.5,
   "head_height_mm": 3.0,
   "mass_g": null,
   "mass_basis": "unknown",
   "material": "Black-Oxide Alloy Steel",
   "mcmaster": {
    "raw": {
     "Thread Size": "M3 × 0.5 mm",
     "Thread Spacing": "Coarse",
     "Thread Type": "Metric",
     "Thread Fit": "Metric Class 5g6g",
     "Thread Direction": "Right Hand",
     "Socket Head Profile": "Standard",
     "Fastener Head Type": "Socket",
     "Drive Style": "Hex",
     "Length": "8 mm",
     "Head Diameter": "5.5 mm",
     "Head Height": "3 mm",
     "Threading": "Fully Threaded",
     "Tensile Strength": "170,000 psi",
     "Fastener Strength Grade/Class": "Class 12.9",
     "Drive Size": "2.5 mm",
     "Hardness": "Rockwell C41",
     "Material": "Black-Oxide Alloy Steel",
     "Performance": "High Strength",
     "Specifications Met": "DIN 912, ISO 4762",
     "System of Measurement": "Metric",
     "Tip Type": "Flat",
     "Country of Origin": "United States",
     "DFARS Compliance": "Specialty Metals Compliant (252.225-7009)",
     "Export Control Classification Number (ECCN)": "EAR99",
     "REACH Compliance": "REACH (EC 1907/2006) (02/04/2026, 253 SVHC) Compliant",
     "RoHS Compliance": "RoHS 3 (2015/863/EU) Compliant",
     "Schedule B Number": "731815.9000",
     "U.S.–Mexico–Canada Agreement (USMCA) Qualifying": "Yes"
    },
    "parsed": {
     "Thread Size": {
      "thread": "M3x0.5",
      "d": 3.0,
      "pitch": 0.5,
      "unit": "mm"
     },
     "Length": {
      "value": 8.0,
      "unit": "mm"
     },
     "Head Diameter": {
      "value": 5.5,
      "unit": "mm"
     },
     "Head Height": {
      "value": 3.0,
      "unit": "mm"
     },
     "Tensile Strength": {
      "value": 1172.1092,
      "unit": "MPa"
     },
     "Drive Size": {
      "value": 2.5,
      "unit": "mm"
     }
    }
   }
  },
  "cad": {
   "file": null,
   "kind": "screw",
   "frame": "axis +Z, centred on the axis, head on +z and shank towards -z; z = 0 at the underside of the head (socket, button, pan, hex and flanged heads) or at the top face of a countersunk (flat) head",
   "available": true,
   "step_url": "https://www.mcmaster.com/91290A113/",
   "bbox_mm": null,
   "volume_mm3": null,
   "pending": "STEP not downloaded yet: McMaster-Carr asks for a login before CAD downloads (the product page itself reads without one). Finish with .venv/bin/python tools/mcmaster_cad.py --catalog --file catalog/turret.json --only turret_screw_m3x8 once logged in, or save the STEP from a logged-in browser as references/vendor/mcmaster/91290A113/91290A113.step and run the same command."
  },
  "frame": "axis +Z, centred on the axis, head on +z and shank towards -z; z = 0 at the underside of the head (socket, button, pan, hex and flanged heads) or at the top face of a countersunk (flat) head",
  "sources": [
   "https://www.mcmaster.com/91290A113/"
  ],
  "confidence": "product page",
  "used_for": "the aluminium pan clamp (5), the slip ring's flange to the carrier with washers (3), the hopper lugs (3), the dial on the M2006 shaft with a washer (1)",
  "qty_per_robot": 12
 },
 {
  "id": "mcmaster-91290a115",
  "key": "turret_screw_m3x10",
  "category": "fastener",
  "vendor": "McMaster-Carr",
  "model": "91290A115",
  "name": "Black-Oxide Alloy Steel Socket Head Screw, US Origin, M3 x 0.5 mm Thread Size, 10 mm Long",
  "price_usd": 0.1323,
  "price_note": "McMaster-Carr: $13.23 per pack of 100 (price_usd is per piece)",
  "price_checked": "2026-10-27",
  "pack_qty": 100,
  "pack_price_usd": 13.23,
  "buy": [
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/91290A115/",
    "in_stock": null,
    "ships_from": "US"
   }
  ],
  "specs": {
   "thread": "M3x0.5",
   "length_mm": 10.0,
   "head_d_mm": 5.5,
   "head_height_mm": 3.0,
   "mass_g": null,
   "mass_basis": "unknown",
   "material": "Black-Oxide Alloy Steel",
   "mcmaster": {
    "raw": {
     "Thread Size": "M3 × 0.5 mm",
     "Thread Spacing": "Coarse",
     "Thread Type": "Metric",
     "Thread Fit": "Metric Class 5g6g",
     "Thread Direction": "Right Hand",
     "Socket Head Profile": "Standard",
     "Fastener Head Type": "Socket",
     "Drive Style": "Hex",
     "Length": "10 mm",
     "Head Diameter": "5.5 mm",
     "Head Height": "3 mm",
     "Threading": "Fully Threaded",
     "Tensile Strength": "170,000 psi",
     "Fastener Strength Grade/Class": "Class 12.9",
     "Drive Size": "2.5 mm",
     "Hardness": "Rockwell C41",
     "Material": "Black-Oxide Alloy Steel",
     "Performance": "High Strength",
     "Specifications Met": "DIN 912, ISO 4762",
     "System of Measurement": "Metric",
     "Tip Type": "Flat",
     "Country of Origin": "United States",
     "DFARS Compliance": "Specialty Metals Compliant (252.225-7009)",
     "Export Control Classification Number (ECCN)": "EAR99",
     "REACH Compliance": "REACH (EC 1907/2006) (02/04/2026, 253 SVHC) Compliant",
     "RoHS Compliance": "RoHS 3 (2015/863/EU) Compliant",
     "Schedule B Number": "731815.9000",
     "U.S.–Mexico–Canada Agreement (USMCA) Qualifying": "Yes"
    },
    "parsed": {
     "Thread Size": {
      "thread": "M3x0.5",
      "d": 3.0,
      "pitch": 0.5,
      "unit": "mm"
     },
     "Length": {
      "value": 10.0,
      "unit": "mm"
     },
     "Head Diameter": {
      "value": 5.5,
      "unit": "mm"
     },
     "Head Height": {
      "value": 3.0,
      "unit": "mm"
     },
     "Tensile Strength": {
      "value": 1172.1092,
      "unit": "MPa"
     },
     "Drive Size": {
      "value": 2.5,
      "unit": "mm"
     }
    }
   }
  },
  "cad": {
   "file": null,
   "kind": "screw",
   "frame": "axis +Z, centred on the axis, head on +z and shank towards -z; z = 0 at the underside of the head (socket, button, pan, hex and flanged heads) or at the top face of a countersunk (flat) head",
   "available": true,
   "step_url": "https://www.mcmaster.com/91290A115/",
   "bbox_mm": null,
   "volume_mm3": null,
   "pending": "STEP not downloaded yet: McMaster-Carr asks for a login before CAD downloads (the product page itself reads without one). Finish with .venv/bin/python tools/mcmaster_cad.py --catalog --file catalog/turret.json --only turret_screw_m3x10 once logged in, or save the STEP from a logged-in browser as references/vendor/mcmaster/91290A115/91290A115.step and run the same command."
  },
  "frame": "axis +Z, centred on the axis, head on +z and shank towards -z; z = 0 at the underside of the head (socket, button, pan, hex and flanged heads) or at the top face of a countersunk (flat) head",
  "sources": [
   "https://www.mcmaster.com/91290A115/"
  ],
  "confidence": "product page",
  "used_for": "the laser mount: up through the cradle's tab into the mount's tapped holes",
  "qty_per_robot": 2
 },
 {
  "id": "mcmaster-91290a117",
  "key": "turret_screw_m3x12",
  "category": "fastener",
  "vendor": "McMaster-Carr",
  "model": "91290A117",
  "name": "Black-Oxide Alloy Steel Socket Head Screw, US Origin, M3 x 0.5 mm Thread Size, 12 mm Long",
  "price_usd": 0.1203,
  "price_note": "McMaster-Carr: $12.03 per pack of 100 (price_usd is per piece)",
  "price_checked": "2026-10-27",
  "pack_qty": 100,
  "pack_price_usd": 12.03,
  "buy": [
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/91290A117/",
    "in_stock": null,
    "ships_from": "US"
   }
  ],
  "specs": {
   "thread": "M3x0.5",
   "length_mm": 12.0,
   "head_d_mm": 5.5,
   "head_height_mm": 3.0,
   "mass_g": null,
   "mass_basis": "unknown",
   "material": "Black-Oxide Alloy Steel",
   "mcmaster": {
    "raw": {
     "Thread Size": "M3 × 0.5 mm",
     "Thread Spacing": "Coarse",
     "Thread Type": "Metric",
     "Thread Fit": "Metric Class 5g6g",
     "Thread Direction": "Right Hand",
     "Socket Head Profile": "Standard",
     "Fastener Head Type": "Socket",
     "Drive Style": "Hex",
     "Length": "12 mm",
     "Head Diameter": "5.5 mm",
     "Head Height": "3 mm",
     "Threading": "Fully Threaded",
     "Tensile Strength": "170,000 psi",
     "Fastener Strength Grade/Class": "Class 12.9",
     "Drive Size": "2.5 mm",
     "Hardness": "Rockwell C41",
     "Material": "Black-Oxide Alloy Steel",
     "Performance": "High Strength",
     "Specifications Met": "DIN 912, ISO 4762",
     "System of Measurement": "Metric",
     "Tip Type": "Flat",
     "Country of Origin": "United States",
     "DFARS Compliance": "Specialty Metals Compliant (252.225-7009)",
     "Export Control Classification Number (ECCN)": "EAR99",
     "REACH Compliance": "Not Compliant",
     "RoHS Compliance": "RoHS 3 (2015/863/EU) Compliant",
     "Schedule B Number": "731815.9000",
     "U.S.–Mexico–Canada Agreement (USMCA) Qualifying": "Yes"
    },
    "parsed": {
     "Thread Size": {
      "thread": "M3x0.5",
      "d": 3.0,
      "pitch": 0.5,
      "unit": "mm"
     },
     "Length": {
      "value": 12.0,
      "unit": "mm"
     },
     "Head Diameter": {
      "value": 5.5,
      "unit": "mm"
     },
     "Head Height": {
      "value": 3.0,
      "unit": "mm"
     },
     "Tensile Strength": {
      "value": 1172.1092,
      "unit": "MPa"
     },
     "Drive Size": {
      "value": 2.5,
      "unit": "mm"
     }
    }
   }
  },
  "cad": {
   "file": null,
   "kind": "screw",
   "frame": "axis +Z, centred on the axis, head on +z and shank towards -z; z = 0 at the underside of the head (socket, button, pan, hex and flanged heads) or at the top face of a countersunk (flat) head",
   "available": true,
   "step_url": "https://www.mcmaster.com/91290A117/",
   "bbox_mm": null,
   "volume_mm3": null,
   "pending": "STEP not downloaded yet: McMaster-Carr asks for a login before CAD downloads (the product page itself reads without one). Finish with .venv/bin/python tools/mcmaster_cad.py --catalog --file catalog/turret.json --only turret_screw_m3x12 once logged in, or save the STEP from a logged-in browser as references/vendor/mcmaster/91290A117/91290A117.step and run the same command."
  },
  "frame": "axis +Z, centred on the axis, head on +z and shank towards -z; z = 0 at the underside of the head (socket, button, pan, hex and flanged heads) or at the top face of a countersunk (flat) head",
  "sources": [
   "https://www.mcmaster.com/91290A117/"
  ],
  "confidence": "product page",
  "used_for": "the cradle's hub to the tilt servo's horn (4 x M3 on Ø14; heads 9.5 mm from the horn)",
  "qty_per_robot": 4
 },
 {
  "id": "mcmaster-91290a120",
  "key": "turret_screw_m3x16",
  "category": "fastener",
  "vendor": "McMaster-Carr",
  "model": "91290A120",
  "name": "Black-Oxide Alloy Steel Socket Head Screw, US Origin, M3 x 0.5 mm Thread Size, 16 mm Long",
  "price_usd": 0.1222,
  "price_note": "McMaster-Carr: $12.22 per pack of 100 (price_usd is per piece)",
  "price_checked": "2026-10-27",
  "pack_qty": 100,
  "pack_price_usd": 12.22,
  "buy": [
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/91290A120/",
    "in_stock": null,
    "ships_from": "US"
   }
  ],
  "specs": {
   "thread": "M3x0.5",
   "length_mm": 16.0,
   "head_d_mm": 5.5,
   "head_height_mm": 3.0,
   "mass_g": null,
   "mass_basis": "unknown",
   "material": "Black-Oxide Alloy Steel",
   "mcmaster": {
    "raw": {
     "Thread Size": "M3 × 0.5 mm",
     "Thread Spacing": "Coarse",
     "Thread Type": "Metric",
     "Thread Fit": "Metric Class 5g6g",
     "Thread Direction": "Right Hand",
     "Socket Head Profile": "Standard",
     "Fastener Head Type": "Socket",
     "Drive Style": "Hex",
     "Length": "16 mm",
     "Head Diameter": "5.5 mm",
     "Head Height": "3 mm",
     "Threading": "Fully Threaded",
     "Tensile Strength": "170,000 psi",
     "Fastener Strength Grade/Class": "Class 12.9",
     "Drive Size": "2.5 mm",
     "Hardness": "Rockwell C41",
     "Material": "Black-Oxide Alloy Steel",
     "Performance": "High Strength",
     "Specifications Met": "DIN 912, ISO 4762",
     "System of Measurement": "Metric",
     "Tip Type": "Flat",
     "Country of Origin": "United States",
     "DFARS Compliance": "Specialty Metals Compliant (252.225-7009)",
     "Export Control Classification Number (ECCN)": "EAR99",
     "REACH Compliance": "REACH (EC 1907/2006) (01/21/2025, 247 SVHC) Compliant",
     "RoHS Compliance": "RoHS 3 (2015/863/EU) Compliant",
     "Schedule B Number": "731815.9000",
     "U.S.–Mexico–Canada Agreement (USMCA) Qualifying": "Yes"
    },
    "parsed": {
     "Thread Size": {
      "thread": "M3x0.5",
      "d": 3.0,
      "pitch": 0.5,
      "unit": "mm"
     },
     "Length": {
      "value": 16.0,
      "unit": "mm"
     },
     "Head Diameter": {
      "value": 5.5,
      "unit": "mm"
     },
     "Head Height": {
      "value": 3.0,
      "unit": "mm"
     },
     "Tensile Strength": {
      "value": 1172.1092,
      "unit": "MPa"
     },
     "Drive Size": {
      "value": 2.5,
      "unit": "mm"
     }
    }
   }
  },
  "cad": {
   "file": null,
   "kind": "screw",
   "frame": "axis +Z, centred on the axis, head on +z and shank towards -z; z = 0 at the underside of the head (socket, button, pan, hex and flanged heads) or at the top face of a countersunk (flat) head",
   "available": true,
   "step_url": "https://www.mcmaster.com/91290A120/",
   "bbox_mm": null,
   "volume_mm3": null,
   "pending": "STEP not downloaded yet: McMaster-Carr asks for a login before CAD downloads (the product page itself reads without one). Finish with .venv/bin/python tools/mcmaster_cad.py --catalog --file catalog/turret.json --only turret_screw_m3x16 once logged in, or save the STEP from a logged-in browser as references/vendor/mcmaster/91290A120/91290A120.step and run the same command."
  },
  "frame": "axis +Z, centred on the axis, head on +z and shank towards -z; z = 0 at the underside of the head (socket, button, pan, hex and flanged heads) or at the top face of a countersunk (flat) head",
  "sources": [
   "https://www.mcmaster.com/91290A120/"
  ],
  "confidence": "product page",
  "used_for": "the pan pinion to the pan servo's horn (4 x M3 on Ø14, heads sunk 3.4 mm; 2.4 mm into the 3 mm horn)",
  "qty_per_robot": 4
 },
 {
  "id": "mcmaster-91290a123",
  "key": "turret_screw_m3x20",
  "category": "fastener",
  "vendor": "McMaster-Carr",
  "model": "91290A123",
  "name": "Black-Oxide Alloy Steel Socket Head Screw, US Origin, M3 x 0.5 mm Thread Size, 20 mm Long",
  "price_usd": 0.1447,
  "price_note": "McMaster-Carr: $14.47 per pack of 100 (price_usd is per piece)",
  "price_checked": "2026-10-27",
  "pack_qty": 100,
  "pack_price_usd": 14.47,
  "buy": [
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/91290A123/",
    "in_stock": null,
    "ships_from": "US"
   }
  ],
  "specs": {
   "thread": "M3x0.5",
   "length_mm": 20.0,
   "head_d_mm": 5.5,
   "head_height_mm": 3.0,
   "mass_g": null,
   "mass_basis": "unknown",
   "material": "Black-Oxide Alloy Steel",
   "mcmaster": {
    "raw": {
     "Thread Size": "M3 × 0.5 mm",
     "Thread Spacing": "Coarse",
     "Thread Type": "Metric",
     "Thread Fit": "Metric Class 5g6g",
     "Thread Direction": "Right Hand",
     "Socket Head Profile": "Standard",
     "Fastener Head Type": "Socket",
     "Drive Style": "Hex",
     "Length": "20 mm",
     "Head Diameter": "5.5 mm",
     "Head Height": "3 mm",
     "Threading": "Fully Threaded",
     "Tensile Strength": "170,000 psi",
     "Fastener Strength Grade/Class": "Class 12.9",
     "Drive Size": "2.5 mm",
     "Hardness": "Rockwell C41",
     "Material": "Black-Oxide Alloy Steel",
     "Performance": "High Strength",
     "Specifications Met": "DIN 912, ISO 4762",
     "System of Measurement": "Metric",
     "Tip Type": "Flat",
     "Country of Origin": "United States",
     "DFARS Compliance": "Specialty Metals Compliant (252.225-7009)",
     "Export Control Classification Number (ECCN)": "EAR99",
     "REACH Compliance": "Not Compliant",
     "RoHS Compliance": "RoHS 3 (2015/863/EU) Compliant",
     "Schedule B Number": "731815.9000",
     "U.S.–Mexico–Canada Agreement (USMCA) Qualifying": "Yes"
    },
    "parsed": {
     "Thread Size": {
      "thread": "M3x0.5",
      "d": 3.0,
      "pitch": 0.5,
      "unit": "mm"
     },
     "Length": {
      "value": 20.0,
      "unit": "mm"
     },
     "Head Diameter": {
      "value": 5.5,
      "unit": "mm"
     },
     "Head Height": {
      "value": 3.0,
      "unit": "mm"
     },
     "Tensile Strength": {
      "value": 1172.1092,
      "unit": "MPa"
     },
     "Drive Size": {
      "value": 2.5,
      "unit": "mm"
     }
    }
   }
  },
  "cad": {
   "file": null,
   "kind": "screw",
   "frame": "axis +Z, centred on the axis, head on +z and shank towards -z; z = 0 at the underside of the head (socket, button, pan, hex and flanged heads) or at the top face of a countersunk (flat) head",
   "available": true,
   "step_url": "https://www.mcmaster.com/91290A123/",
   "bbox_mm": null,
   "volume_mm3": null,
   "pending": "STEP not downloaded yet: McMaster-Carr asks for a login before CAD downloads (the product page itself reads without one). Finish with .venv/bin/python tools/mcmaster_cad.py --catalog --file catalog/turret.json --only turret_screw_m3x20 once logged in, or save the STEP from a logged-in browser as references/vendor/mcmaster/91290A123/91290A123.step and run the same command."
  },
  "frame": "axis +Z, centred on the axis, head on +z and shank towards -z; z = 0 at the underside of the head (socket, button, pan, hex and flanged heads) or at the top face of a countersunk (flat) head",
  "sources": [
   "https://www.mcmaster.com/91290A123/"
  ],
  "confidence": "product page",
  "used_for": "the TPU bumper ring to the pan base's tabs, with the oversized washers",
  "qty_per_robot": 5
 },
 {
  "id": "mcmaster-91290a144",
  "key": "turret_screw_m4x10",
  "category": "fastener",
  "vendor": "McMaster-Carr",
  "model": "91290A144",
  "name": "Black-Oxide Alloy Steel Socket Head Screw, US Origin, M4 x 0.7 mm Thread Size, 10 mm Long",
  "price_usd": 0.1355,
  "price_note": "McMaster-Carr: $13.55 per pack of 100 (price_usd is per piece)",
  "price_checked": "2026-10-27",
  "pack_qty": 100,
  "pack_price_usd": 13.55,
  "buy": [
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/91290A144/",
    "in_stock": null,
    "ships_from": "US"
   }
  ],
  "specs": {
   "thread": "M4x0.7",
   "length_mm": 10.0,
   "head_d_mm": 7.0,
   "head_height_mm": 4.0,
   "mass_g": null,
   "mass_basis": "unknown",
   "material": "Black-Oxide Alloy Steel",
   "mcmaster": {
    "raw": {
     "Thread Size": "M4 × 0.7 mm",
     "Thread Spacing": "Coarse",
     "Thread Type": "Metric",
     "Thread Fit": "Metric Class 5g6g",
     "Thread Direction": "Right Hand",
     "Socket Head Profile": "Standard",
     "Fastener Head Type": "Socket",
     "Drive Style": "Hex",
     "Length": "10 mm",
     "Head Diameter": "7 mm",
     "Head Height": "4 mm",
     "Threading": "Fully Threaded",
     "Tensile Strength": "170,000 psi",
     "Fastener Strength Grade/Class": "Class 12.9",
     "Drive Size": "3 mm",
     "Hardness": "Rockwell C41",
     "Material": "Black-Oxide Alloy Steel",
     "Performance": "High Strength",
     "Specifications Met": "DIN 912, ISO 4762",
     "System of Measurement": "Metric",
     "Tip Type": "Flat",
     "Country of Origin": "United States",
     "DFARS Compliance": "Specialty Metals Compliant (252.225-7009)",
     "Export Control Classification Number (ECCN)": "EAR99",
     "REACH Compliance": "Not Compliant",
     "RoHS Compliance": "RoHS 3 (2015/863/EU) Compliant",
     "Schedule B Number": "731815.9000",
     "U.S.–Mexico–Canada Agreement (USMCA) Qualifying": "Yes"
    },
    "parsed": {
     "Thread Size": {
      "thread": "M4x0.7",
      "d": 4.0,
      "pitch": 0.7,
      "unit": "mm"
     },
     "Length": {
      "value": 10.0,
      "unit": "mm"
     },
     "Head Diameter": {
      "value": 7.0,
      "unit": "mm"
     },
     "Head Height": {
      "value": 4.0,
      "unit": "mm"
     },
     "Tensile Strength": {
      "value": 1172.1092,
      "unit": "MPa"
     },
     "Drive Size": {
      "value": 3.0,
      "unit": "mm"
     }
    }
   }
  },
  "cad": {
   "file": null,
   "kind": "screw",
   "frame": "axis +Z, centred on the axis, head on +z and shank towards -z; z = 0 at the underside of the head (socket, button, pan, hex and flanged heads) or at the top face of a countersunk (flat) head",
   "available": true,
   "step_url": "https://www.mcmaster.com/91290A144/",
   "bbox_mm": null,
   "volume_mm3": null,
   "pending": "STEP not downloaded yet: McMaster-Carr asks for a login before CAD downloads (the product page itself reads without one). Finish with .venv/bin/python tools/mcmaster_cad.py --catalog --file catalog/turret.json --only turret_screw_m4x10 once logged in, or save the STEP from a logged-in browser as references/vendor/mcmaster/91290A144/91290A144.step and run the same command."
  },
  "frame": "axis +Z, centred on the axis, head on +z and shank towards -z; z = 0 at the underside of the head (socket, button, pan, hex and flanged heads) or at the top face of a countersunk (flat) head",
  "sources": [
   "https://www.mcmaster.com/91290A144/"
  ],
  "confidence": "product page",
  "used_for": "the DT04-12PA flange to the pan base's pad (4) and the tilt yoke to the turntable (4, heads 4 mm down in the bridge)",
  "qty_per_robot": 8
 },
 {
  "id": "mcmaster-91294a126",
  "key": "turret_screw_m3x6_flat",
  "category": "fastener",
  "vendor": "McMaster-Carr",
  "model": "91294A126",
  "name": "Black-Oxide Alloy Steel Hex-Drive Flat Head Screw, 90 Degree Countersink, M3 x 0.5 mm Thread Size, 6 mm Long",
  "price_usd": 0.0545,
  "price_note": "McMaster-Carr: $5.45 per pack of 100 (price_usd is per piece)",
  "price_checked": "2026-10-27",
  "pack_qty": 100,
  "pack_price_usd": 5.45,
  "buy": [
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/91294A126/",
    "in_stock": null,
    "ships_from": "US"
   }
  ],
  "specs": {
   "thread": "M3x0.5",
   "length_mm": 6.0,
   "head_d_mm": 6.0,
   "head_height_mm": 1.7,
   "mass_g": null,
   "mass_basis": "unknown",
   "material": "Black-Oxide Alloy Steel",
   "mcmaster": {
    "raw": {
     "Thread Direction": "Right Hand",
     "Drive Style": "Hex",
     "Tip Type": "Flat",
     "Thread Size": "M3 × 0.5 mm",
     "Length": "6 mm",
     "Countersink Angle": "90°",
     "Flat Head Profile": "Standard",
     "Head Diameter": "6 mm",
     "Head Height": "1.7 mm",
     "Threading": "Fully Threaded",
     "Tensile Strength": "120,000 psi",
     "Certificate Form": "Digital",
     "Certificate Type": "Material Certificate with Traceable Lot Number",
     "Drive Size": "2 mm",
     "Fastener Head Type": "Flat",
     "Fastener Strength Grade/Class": "Class 10.9",
     "Hardness": "Rockwell C32",
     "Material": "Black-Oxide Alloy Steel",
     "Performance": "High Strength",
     "Specifications Met": "DIN 7991",
     "System of Measurement": "Metric",
     "Thread Fit": "Metric Class 6g",
     "Thread Spacing": "Coarse",
     "Thread Type": "Metric",
     "Country of Origin": "United States",
     "DFARS Compliance": "Specialty Metals COTS-Exempt",
     "Export Control Classification Number (ECCN)": "EAR99",
     "REACH Compliance": "REACH (EC 1907/2006) (02/04/2026, 253 SVHC) Compliant",
     "RoHS Compliance": "RoHS 3 (2015/863/EU) Compliant",
     "Schedule B Number": "731815.9000",
     "U.S.–Mexico–Canada Agreement (USMCA) Qualifying": "Yes"
    },
    "parsed": {
     "Thread Size": {
      "thread": "M3x0.5",
      "d": 3.0,
      "pitch": 0.5,
      "unit": "mm"
     },
     "Length": {
      "value": 6.0,
      "unit": "mm"
     },
     "Head Diameter": {
      "value": 6.0,
      "unit": "mm"
     },
     "Head Height": {
      "value": 1.7,
      "unit": "mm"
     },
     "Tensile Strength": {
      "value": 827.3712,
      "unit": "MPa"
     },
     "Drive Size": {
      "value": 2.0,
      "unit": "mm"
     }
    }
   }
  },
  "cad": {
   "file": null,
   "kind": "screw",
   "frame": "axis +Z, centred on the axis, head on +z and shank towards -z; z = 0 at the underside of the head (socket, button, pan, hex and flanged heads) or at the top face of a countersunk (flat) head",
   "available": true,
   "step_url": "https://www.mcmaster.com/91294A126/",
   "bbox_mm": null,
   "volume_mm3": null,
   "pending": "STEP not downloaded yet: McMaster-Carr asks for a login before CAD downloads (the product page itself reads without one). Finish with .venv/bin/python tools/mcmaster_cad.py --catalog --file catalog/turret.json --only turret_screw_m3x6_flat once logged in, or save the STEP from a logged-in browser as references/vendor/mcmaster/91294A126/91294A126.step and run the same command."
  },
  "frame": "axis +Z, centred on the axis, head on +z and shank towards -z; z = 0 at the underside of the head (socket, button, pan, hex and flanged heads) or at the top face of a countersunk (flat) head",
  "sources": [
   "https://www.mcmaster.com/91294A126/"
  ],
  "confidence": "product page",
  "used_for": "the M2006 under the dial-housing floor, countersunk flush on Ø19",
  "qty_per_robot": 3
 },
 {
  "id": "mcmaster-91294a130",
  "key": "turret_screw_m3x10_flat",
  "category": "fastener",
  "vendor": "McMaster-Carr",
  "model": "91294A130",
  "name": "Black-Oxide Alloy Steel Hex-Drive Flat Head Screw, 90 Degree Countersink, M3 x 0.5 mm Thread Size, 10 mm Long",
  "price_usd": 0.0636,
  "price_note": "McMaster-Carr: $6.36 per pack of 100 (price_usd is per piece)",
  "price_checked": "2026-10-27",
  "pack_qty": 100,
  "pack_price_usd": 6.36,
  "buy": [
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/91294A130/",
    "in_stock": null,
    "ships_from": "US"
   }
  ],
  "specs": {
   "thread": "M3x0.5",
   "length_mm": 10.0,
   "head_d_mm": 6.0,
   "head_height_mm": 1.7,
   "mass_g": null,
   "mass_basis": "unknown",
   "material": "Black-Oxide Alloy Steel",
   "mcmaster": {
    "raw": {
     "Thread Direction": "Right Hand",
     "Drive Style": "Hex",
     "Tip Type": "Flat",
     "Thread Size": "M3 × 0.5 mm",
     "Length": "10 mm",
     "Countersink Angle": "90°",
     "Flat Head Profile": "Standard",
     "Head Diameter": "6 mm",
     "Head Height": "1.7 mm",
     "Threading": "Fully Threaded",
     "Tensile Strength": "120,000 psi",
     "Drive Size": "2 mm",
     "Fastener Head Type": "Flat",
     "Fastener Strength Grade/Class": "Class 10.9",
     "Hardness": "Rockwell C32",
     "Material": "Black-Oxide Alloy Steel",
     "Performance": "High Strength",
     "Specifications Met": "DIN 7991",
     "System of Measurement": "Metric",
     "Thread Fit": "Metric Class 6g",
     "Thread Spacing": "Coarse",
     "Thread Type": "Metric",
     "Country of Origin": "United States",
     "DFARS Compliance": "Specialty Metals COTS-Exempt",
     "Export Control Classification Number (ECCN)": "EAR99",
     "REACH Compliance": "REACH (EC 1907/2006) (02/04/2026, 253 SVHC) Compliant",
     "RoHS Compliance": "RoHS 3 (2015/863/EU) Compliant",
     "Schedule B Number": "731815.9000",
     "U.S.–Mexico–Canada Agreement (USMCA) Qualifying": "Yes"
    },
    "parsed": {
     "Thread Size": {
      "thread": "M3x0.5",
      "d": 3.0,
      "pitch": 0.5,
      "unit": "mm"
     },
     "Length": {
      "value": 10.0,
      "unit": "mm"
     },
     "Head Diameter": {
      "value": 6.0,
      "unit": "mm"
     },
     "Head Height": {
      "value": 1.7,
      "unit": "mm"
     },
     "Tensile Strength": {
      "value": 827.3712,
      "unit": "MPa"
     },
     "Drive Size": {
      "value": 2.0,
      "unit": "mm"
     }
    }
   }
  },
  "cad": {
   "file": null,
   "kind": "screw",
   "frame": "axis +Z, centred on the axis, head on +z and shank towards -z; z = 0 at the underside of the head (socket, button, pan, hex and flanged heads) or at the top face of a countersunk (flat) head",
   "available": true,
   "step_url": "https://www.mcmaster.com/91294A130/",
   "bbox_mm": null,
   "volume_mm3": null,
   "pending": "STEP not downloaded yet: McMaster-Carr asks for a login before CAD downloads (the product page itself reads without one). Finish with .venv/bin/python tools/mcmaster_cad.py --catalog --file catalog/turret.json --only turret_screw_m3x10_flat once logged in, or save the STEP from a logged-in browser as references/vendor/mcmaster/91294A130/91294A130.step and run the same command."
  },
  "frame": "axis +Z, centred on the axis, head on +z and shank towards -z; z = 0 at the underside of the head (socket, button, pan, hex and flanged heads) or at the top face of a countersunk (flat) head",
  "sources": [
   "https://www.mcmaster.com/91294A130/"
  ],
  "confidence": "product page",
  "used_for": "the slip ring's carrier: up through its tabs, flush with the TM face, into the base's inserted bosses",
  "qty_per_robot": 3
 },
 {
  "id": "mcmaster-93285a115",
  "key": "turret_setscrew_m3x6_nylon",
  "category": "fastener",
  "vendor": "McMaster-Carr",
  "model": "93285A115",
  "name": "Nylon-Tip 18-8 Stainless Steel Set Screw, M3 x 0.5 mm Thread, 6 mm Long",
  "price_usd": 3.462,
  "price_note": "McMaster-Carr: $17.31 per pack of 5 (price_usd is per piece)",
  "price_checked": "2026-10-27",
  "pack_qty": 5,
  "pack_price_usd": 17.31,
  "buy": [
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/93285A115/",
    "in_stock": null,
    "ships_from": "US"
   }
  ],
  "specs": {
   "thread": "M3x0.5",
   "length_mm": 6.0,
   "mass_g": null,
   "mass_basis": "unknown",
   "material": "18-8 Stainless Steel",
   "mcmaster": {
    "raw": {
     "Drive Style": "Hex",
     "Tip Type": "Soft",
     "Material": "18-8 Stainless Steel",
     "Tip Diameter": "1.6 mm",
     "Tip Length": "0.8 mm",
     "Tip Temperature": "-50° F to 250° F",
     "Tip Material": "Nylon",
     "Tip Color": "Green",
     "Thread Size": "M3 × 0.5 mm",
     "Length": "6 mm",
     "Drive Size": "1.5 mm",
     "Hardness": "Rockwell B80",
     "Fastener Head Type": "Headless",
     "Performance": "Corrosion Resistant, Nonmarring",
     "Specifications Met": "ASME B18.3.6M",
     "System of Measurement": "Metric",
     "Thread Direction": "Right Hand",
     "Thread Fit": "Metric Class 6g",
     "Thread Spacing": "Coarse",
     "Thread Type": "Metric",
     "Country of Origin": "United States",
     "DFARS Compliance": "Specialty Metals Compliant (252.225-7009)",
     "Export Control Classification Number (ECCN)": "EAR99",
     "REACH Compliance": "REACH (EC 1907/2006) (01/21/2025, 247 SVHC) Compliant",
     "RoHS Compliance": "RoHS 3 (2015/863/EU) Compliant",
     "Schedule B Number": "731815.9000",
     "U.S.–Mexico–Canada Agreement (USMCA) Qualifying": "No"
    },
    "parsed": {
     "Tip Diameter": {
      "value": 1.6,
      "unit": "mm"
     },
     "Tip Length": {
      "value": 0.8,
      "unit": "mm"
     },
     "Tip Temperature": {
      "min": -45.555556,
      "max": 121.111111,
      "unit": "degC"
     },
     "Thread Size": {
      "thread": "M3x0.5",
      "d": 3.0,
      "pitch": 0.5,
      "unit": "mm"
     },
     "Length": {
      "value": 6.0,
      "unit": "mm"
     },
     "Drive Size": {
      "value": 1.5,
      "unit": "mm"
     }
    }
   }
  },
  "cad": {
   "file": null,
   "kind": "screw",
   "frame": "axis +Z, centred on the axis, head on +z and shank towards -z; z = 0 at the underside of the head (socket, button, pan, hex and flanged heads) or at the top face of a countersunk (flat) head",
   "available": true,
   "step_url": "https://www.mcmaster.com/93285A115/",
   "bbox_mm": null,
   "volume_mm3": null,
   "pending": "STEP not downloaded yet: McMaster-Carr asks for a login before CAD downloads (the product page itself reads without one). Finish with .venv/bin/python tools/mcmaster_cad.py --catalog --file catalog/turret.json --only turret_setscrew_m3x6_nylon once logged in, or save the STEP from a logged-in browser as references/vendor/mcmaster/93285A115/93285A115.step and run the same command."
  },
  "frame": "axis +Z, centred on the axis, head on +z and shank towards -z; z = 0 at the underside of the head (socket, button, pan, hex and flanged heads) or at the top face of a countersunk (flat) head",
  "sources": [
   "https://www.mcmaster.com/93285A115/"
  ],
  "confidence": "product page",
  "used_for": "the barrel in its socket (1, through the socket's insert) and the laser's boresight (3)",
  "qty_per_robot": 4
 },
 {
  "id": "mcmaster-94459a160",
  "key": "turret_insert_m4",
  "category": "fastener",
  "vendor": "McMaster-Carr",
  "model": "94459A160",
  "name": "Heat-Set Threaded Inserts for Plastic, Standard, Brass, M4 x 0.7 mm Thread Size, 6.4 mm Installed Length",
  "price_usd": 0.2346,
  "price_note": "McMaster-Carr: $11.73 per pack of 50 (price_usd is per piece)",
  "price_checked": "2026-10-27",
  "pack_qty": 50,
  "pack_price_usd": 11.73,
  "buy": [
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/94459A160/",
    "in_stock": null,
    "ships_from": "US"
   }
  ],
  "specs": {
   "installed_length_mm": 6.4,
   "hole_mm": 5.55625,
   "thread": "M4",
   "mass_g": null,
   "mass_basis": "unknown",
   "material": "Brass",
   "mcmaster": {
    "raw": {
     "Threaded Insert Type": "Heat Set",
     "Profile": "Standard",
     "Material": "Brass",
     "Thread Size": "M4",
     "Thread Pitch": "0.7 mm",
     "Installed Length": "6.4 mm",
     "Drill Bit Size": "7/32\"",
     "For Maximum Hole Diameter": "5.6 mm",
     "End Type": "Open",
     "For Minimum Material Thickness": "7.1 mm",
     "For Use In": "Plastic",
     "Performance": "Conductive, Corrosion Resistant, Nonmagnetic",
     "System of Measurement": "Metric",
     "Tensile Strength": "Not Rated",
     "Thread Direction": "Right Hand",
     "Thread Fit": "Metric Class 6H",
     "Thread Spacing": "Coarse",
     "Thread Type": "Metric",
     "Threaded Insert Securing Type": "Knurled",
     "Country of Origin": "United States",
     "DFARS Compliance": "Specialty Metals COTS-Exempt",
     "Export Control Classification Number (ECCN)": "EAR99",
     "REACH Compliance": "REACH (EC 1907/2006) (02/04/2026, 253 SVHC) Compliant",
     "RoHS Compliance": "RoHS 3 (2015/863/EU) Compliant with Exemptions",
     "RoHS Exemptions": "6(c)",
     "Schedule B Number": "741539.0000",
     "U.S.–Mexico–Canada Agreement (USMCA) Qualifying": "Yes",
     "Related Products": "Soldering Installation Tips"
    },
    "parsed": {
     "Thread Pitch": {
      "value": 0.7,
      "unit": "mm"
     },
     "Installed Length": {
      "value": 6.4,
      "unit": "mm"
     },
     "Drill Bit Size": {
      "value": 5.55625,
      "unit": "mm"
     },
     "For Maximum Hole Diameter": {
      "value": 5.6,
      "unit": "mm"
     },
     "For Minimum Material Thickness": {
      "value": 7.1,
      "unit": "mm"
     }
    }
   }
  },
  "cad": {
   "file": null,
   "kind": "insert",
   "frame": "axis +Z, centred on the axis; the larger end (flange, head, collar) at z = 0 and the part on +z; when both ends are the same size, the heavier end at z = 0",
   "available": true,
   "step_url": "https://www.mcmaster.com/94459A160/",
   "bbox_mm": null,
   "volume_mm3": null,
   "pending": "STEP not downloaded yet: McMaster-Carr asks for a login before CAD downloads (the product page itself reads without one). Finish with .venv/bin/python tools/mcmaster_cad.py --catalog --file catalog/turret.json --only turret_insert_m4 once logged in, or save the STEP from a logged-in browser as references/vendor/mcmaster/94459A160/94459A160.step and run the same command."
  },
  "frame": "axis +Z, centred on the axis; the larger end (flange, head, collar) at z = 0 and the part on +z; when both ends are the same size, the heavier end at z = 0",
  "sources": [
   "https://www.mcmaster.com/94459A160/"
  ],
  "confidence": "product page",
  "used_for": "M4 heat-set inserts: the DT pad (4), the turntable for the yoke (4), the cartridge's CT latch (1)",
  "qty_per_robot": 9
 },
 {
  "id": "mcmaster-91595a150",
  "key": "turret_dowel_4x8",
  "category": "fastener",
  "vendor": "McMaster-Carr",
  "model": "91595A150",
  "name": "Dowel Pin, 52100 Alloy Steel, 4 mm Diameter, 8 mm Long",
  "price_usd": 0.242,
  "price_note": "McMaster-Carr: $12.10 per pack of 50 (price_usd is per piece)",
  "price_checked": "2026-10-27",
  "pack_qty": 50,
  "pack_price_usd": 12.1,
  "buy": [
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/91595A150/",
    "in_stock": null,
    "ships_from": "US"
   }
  ],
  "specs": {
   "d_mm": 4.0,
   "length_mm": 8.0,
   "mass_g": null,
   "mass_basis": "unknown",
   "material": "Alloy Steel",
   "mcmaster": {
    "raw": {
     "Tolerance Rating": "Standard",
     "Fastener Head Type": "Plain",
     "Material": "Alloy Steel",
     "Diameter": "4 mm",
     "Diameter Tolerance": "0.004 mm to 0.012 mm",
     "Length": "8 mm",
     "Double Shear Breaking Strength": "Not Rated",
     "Minimum Hardness": "Rockwell C52",
     "Specifications Met": "DIN 6325-m6, ISO 8734",
     "Certificate Form": "Digital",
     "Certificate Type": "Material Certificate with Traceable Lot Number",
     "End Shape": "Round × Chamfer/Round",
     "End Type": "Plain",
     "Performance": "High Strength",
     "Pin Type": "Dowel",
     "Shaft Type": "Plain",
     "Steel Grade": "52100 Alloy Steel",
     "System of Measurement": "Metric",
     "Country of Origin": "United States, Belgium, Canada, China, France, Germany, India, Indonesia, Italy, Japan, Malaysia, Mexico, Philippines, Poland, South Korea, Switzerland, Taiwan, Thailand, Vietnam",
     "DFARS Compliance": "Not Specialty Metals Compliant",
     "Export Control Classification Number (ECCN)": "EAR99",
     "REACH Compliance": "REACH (EC 1907/2006) (02/04/2026, 253 SVHC) Compliant",
     "RoHS Compliance": "RoHS 3 (2015/863/EU) Compliant",
     "Schedule B Number": "731829.0000",
     "U.S.–Mexico–Canada Agreement (USMCA) Qualifying": "No"
    },
    "parsed": {
     "Diameter": {
      "value": 4.0,
      "unit": "mm"
     },
     "Diameter Tolerance": {
      "min": 0.004,
      "max": 0.012,
      "unit": "mm"
     },
     "Length": {
      "value": 8.0,
      "unit": "mm"
     }
    }
   }
  },
  "cad": {
   "file": null,
   "kind": "pin",
   "frame": "axis +Z, centred on the axis; the larger end (flange, head, collar) at z = 0 and the part on +z; when both ends are the same size, the heavier end at z = 0",
   "available": true,
   "step_url": "https://www.mcmaster.com/91595A150/",
   "bbox_mm": null,
   "volume_mm3": null,
   "pending": "STEP not downloaded yet: McMaster-Carr asks for a login before CAD downloads (the product page itself reads without one). Finish with .venv/bin/python tools/mcmaster_cad.py --catalog --file catalog/turret.json --only turret_dowel_4x8 once logged in, or save the STEP from a logged-in browser as references/vendor/mcmaster/91595A150/91595A150.step and run the same command."
  },
  "frame": "axis +Z, centred on the axis; the larger end (flange, head, collar) at z = 0 and the part on +z; when both ends are the same size, the heavier end at z = 0",
  "sources": [
   "https://www.mcmaster.com/91595A150/"
  ],
  "confidence": "product page",
  "used_for": "the CT dowels: pressed in the cradle's rails, 2.3 mm up into the cartridge's base",
  "qty_per_robot": 2
 },
 {
  "id": "mcmaster-98381a414",
  "key": "turret_pin_1_16x3_16",
  "category": "fastener",
  "vendor": "McMaster-Carr",
  "model": "98381A414",
  "name": "Dowel Pin, Alloy Steel, 1/16\" Diameter, 3/16\" Long",
  "price_usd": 0.2476,
  "price_note": "McMaster-Carr: $12.38 per pack of 50 (price_usd is per piece)",
  "price_checked": "2026-10-27",
  "pack_qty": 50,
  "pack_price_usd": 12.38,
  "buy": [
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/98381A414/",
    "in_stock": null,
    "ships_from": "US"
   }
  ],
  "specs": {
   "d_mm": 1.5875,
   "length_mm": 4.7625,
   "mass_g": null,
   "mass_basis": "unknown",
   "material": "Alloy Steel",
   "mcmaster": {
    "raw": {
     "Tolerance Rating": "Standard",
     "Fastener Head Type": "Plain",
     "Material": "Alloy Steel",
     "Diameter": "1/16\"",
     "Diameter Tolerance": "0.0001\" to 0.0003\"",
     "Length": "3/16\"",
     "Double Shear Breaking Strength": "750 lbf",
     "Minimum Hardness": "Rockwell C47",
     "Specifications Met": "ASME B18.8.2",
     "Certificate Form": "Digital",
     "Certificate Type": "Material Certificate with Traceable Lot Number",
     "End Shape": "Round × Chamfer",
     "End Type": "Plain",
     "Performance": "High Strength",
     "Pin Type": "Dowel",
     "Shaft Type": "Plain",
     "System of Measurement": "Inch",
     "Country of Origin": "United States",
     "DFARS Compliance": "Specialty Metals Compliant (252.225-7008)",
     "Export Control Classification Number (ECCN)": "EAR99",
     "REACH Compliance": "REACH (EC 1907/2006) (02/04/2026, 253 SVHC) Compliant",
     "RoHS Compliance": "RoHS 3 (2015/863/EU) Compliant",
     "Schedule B Number": "731829.0000",
     "U.S.–Mexico–Canada Agreement (USMCA) Qualifying": "No"
    },
    "parsed": {
     "Diameter": {
      "value": 1.5875,
      "unit": "mm"
     },
     "Diameter Tolerance": {
      "min": 0.00254,
      "max": 0.00762,
      "unit": "mm"
     },
     "Length": {
      "value": 4.7625,
      "unit": "mm"
     },
     "Double Shear Breaking Strength": {
      "value": 3336.1662,
      "unit": "N"
     }
    }
   }
  },
  "cad": {
   "file": null,
   "kind": "pin",
   "frame": "axis +Z, centred on the axis; the larger end (flange, head, collar) at z = 0 and the part on +z; when both ends are the same size, the heavier end at z = 0",
   "available": true,
   "step_url": "https://www.mcmaster.com/98381A414/",
   "bbox_mm": null,
   "volume_mm3": null,
   "pending": "STEP not downloaded yet: McMaster-Carr asks for a login before CAD downloads (the product page itself reads without one). Finish with .venv/bin/python tools/mcmaster_cad.py --catalog --file catalog/turret.json --only turret_pin_1_16x3_16 once logged in, or save the STEP from a logged-in browser as references/vendor/mcmaster/98381A414/98381A414.step and run the same command."
  },
  "frame": "axis +Z, centred on the axis; the larger end (flange, head, collar) at z = 0 and the part on +z; when both ends are the same size, the heavier end at z = 0",
  "sources": [
   "https://www.mcmaster.com/98381A414/"
  ],
  "confidence": "product page",
  "used_for": "the flywheel hubs' drive pins: 2 each into the Snail bell's Ø1.6 holes",
  "qty_per_robot": 4
 },
 {
  "id": "mcmaster-93600a249",
  "key": "turret_pin_2x20",
  "category": "fastener",
  "vendor": "McMaster-Carr",
  "model": "93600A249",
  "name": "316 Stainless Steel Dowel Pin, 2mm Diameter, 20mm Long",
  "price_usd": 0.406,
  "price_note": "McMaster-Carr: $10.15 per pack of 25 (price_usd is per piece)",
  "price_checked": "2026-10-27",
  "pack_qty": 25,
  "pack_price_usd": 10.15,
  "buy": [
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/93600A249/",
    "in_stock": null,
    "ships_from": "US"
   }
  ],
  "specs": {
   "d_mm": 2.0,
   "length_mm": 20.0,
   "mass_g": null,
   "mass_basis": "unknown",
   "material": "316 Stainless Steel",
   "mcmaster": {
    "raw": {
     "Tolerance Rating": "Standard",
     "Fastener Head Type": "Plain",
     "Material": "316 Stainless Steel",
     "Diameter": "2 mm",
     "Diameter Tolerance": "0.002 mm to 0.008 mm",
     "Length": "20 mm",
     "Double Shear Breaking Strength": "Not Rated",
     "Minimum Hardness": "Not Rated",
     "Specifications Met": "ISO 2338-m6",
     "Certificate Form": "Digital",
     "Certificate Type": "Material Certificate with Traceable Lot Number",
     "End Shape": "Chamfer",
     "End Type": "Plain",
     "Passivation": "Passivated",
     "Performance": "Highly Corrosion Resistant",
     "Pin Type": "Dowel",
     "Shaft Type": "Plain",
     "System of Measurement": "Metric",
     "Country of Origin": "United States, Belgium, Canada, China, France, Germany, India, Indonesia, Italy, Japan, Malaysia, Mexico, Philippines, Poland, South Korea, Switzerland, Taiwan, Thailand, Vietnam",
     "DFARS Compliance": "Not Specialty Metals Compliant",
     "Export Control Classification Number (ECCN)": "EAR99",
     "REACH Compliance": "REACH (EC 1907/2006) (02/04/2026, 253 SVHC) Compliant",
     "RoHS Compliance": "RoHS 3 (2015/863/EU) Compliant",
     "Schedule B Number": "731829.0000",
     "U.S.–Mexico–Canada Agreement (USMCA) Qualifying": "No"
    },
    "parsed": {
     "Diameter": {
      "value": 2.0,
      "unit": "mm"
     },
     "Diameter Tolerance": {
      "min": 0.002,
      "max": 0.008,
      "unit": "mm"
     },
     "Length": {
      "value": 20.0,
      "unit": "mm"
     }
    }
   }
  },
  "cad": {
   "file": null,
   "kind": "pin",
   "frame": "axis +Z, centred on the axis; the larger end (flange, head, collar) at z = 0 and the part on +z; when both ends are the same size, the heavier end at z = 0",
   "available": true,
   "step_url": "https://www.mcmaster.com/93600A249/",
   "bbox_mm": null,
   "volume_mm3": null,
   "pending": "STEP not downloaded yet: McMaster-Carr asks for a login before CAD downloads (the product page itself reads without one). Finish with .venv/bin/python tools/mcmaster_cad.py --catalog --file catalog/turret.json --only turret_pin_2x20 once logged in, or save the STEP from a logged-in browser as references/vendor/mcmaster/93600A249/93600A249.step and run the same command."
  },
  "frame": "axis +Z, centred on the axis; the larger end (flange, head, collar) at z = 0 and the part on +z; when both ends are the same size, the heavier end at z = 0",
  "sources": [
   "https://www.mcmaster.com/93600A249/"
  ],
  "confidence": "product page",
  "used_for": "the hopper flap's hinge pin",
  "qty_per_robot": 1
 },
 {
  "id": "mcmaster-9271k13",
  "key": "turret_spring_flap",
  "category": "fastener",
  "vendor": "McMaster-Carr",
  "model": "9271K13",
  "name": "Torsion Spring, 90 Degree Left-Hand Wound, 0.16\" OD",
  "price_usd": 1.0517,
  "price_note": "McMaster-Carr: $6.31 per pack of 6 (price_usd is per piece)",
  "price_checked": "2026-10-27",
  "pack_qty": 6,
  "pack_price_usd": 6.31,
  "buy": [
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/9271K13/",
    "in_stock": null,
    "ships_from": "US"
   }
  ],
  "specs": {
   "od_mm": 4.064,
   "id_mm": 2.3622,
   "mass_g": null,
   "mass_basis": "unknown",
   "material": "Spring Steel",
   "mcmaster": {
    "raw": {
     "Deflection Angle": "90°",
     "Spring Wind Direction": "Left Hand",
     "OD": "0.16\"",
     "For Shaft Diameter": "0.093\"",
     "Wire Diameter": "0.017\"",
     "Leg Length": "0.5\"",
     "Number of Coils": "3.25",
     "Spring Length @ Maximum Torque": "0.081\"",
     "Maximum Torque": "0.125 in·lbf",
     "Material": "Spring Steel",
     "Spring Type": "Torsion",
     "Steel Grade": "Music-Wire Steel",
     "Country of Origin": "United States",
     "DFARS Compliance": "Specialty Metals COTS-Exempt",
     "Export Control Classification Number (ECCN)": "EAR99",
     "REACH Compliance": "REACH (EC 1907/2006) (02/04/2026, 253 SVHC) Compliant",
     "RoHS Compliance": "RoHS 3 (2015/863/EU) Compliant",
     "Schedule B Number": "732020.5000",
     "U.S.–Mexico–Canada Agreement (USMCA) Qualifying": "Yes"
    },
    "parsed": {
     "OD": {
      "value": 4.064,
      "unit": "mm"
     },
     "For Shaft Diameter": {
      "value": 2.3622,
      "unit": "mm"
     },
     "Wire Diameter": {
      "value": 0.4318,
      "unit": "mm"
     },
     "Leg Length": {
      "value": 12.7,
      "unit": "mm"
     },
     "Spring Length @ Maximum Torque": {
      "value": 2.0574,
      "unit": "mm"
     }
    }
   }
  },
  "cad": {
   "file": null,
   "kind": "pin",
   "frame": "axis +Z, centred on the axis; the larger end (flange, head, collar) at z = 0 and the part on +z; when both ends are the same size, the heavier end at z = 0",
   "available": true,
   "step_url": "https://www.mcmaster.com/9271K13/",
   "bbox_mm": null,
   "volume_mm3": null,
   "pending": "STEP not downloaded yet: McMaster-Carr asks for a login before CAD downloads (the product page itself reads without one). Finish with .venv/bin/python tools/mcmaster_cad.py --catalog --file catalog/turret.json --only turret_spring_flap once logged in, or save the STEP from a logged-in browser as references/vendor/mcmaster/9271K13/9271K13.step and run the same command."
  },
  "frame": "axis +Z, centred on the axis; the larger end (flange, head, collar) at z = 0 and the part on +z; when both ends are the same size, the heavier end at z = 0",
  "sources": [
   "https://www.mcmaster.com/9271K13/"
  ],
  "confidence": "product page",
  "used_for": "the hopper flap's return spring, on the hinge pin",
  "qty_per_robot": 1
 },
 {
  "id": "mcmaster-91828a113",
  "key": "turret_nut_m2_5",
  "category": "fastener",
  "vendor": "McMaster-Carr",
  "model": "91828A113",
  "name": "Corrosion-Resistant 18-8 Stainless Steel Hex Nut, M2.5 x 0.45 mm Thread Size",
  "price_usd": 0.071,
  "price_note": "McMaster-Carr: $7.10 per pack of 100 (price_usd is per piece)",
  "price_checked": "2026-10-27",
  "pack_qty": 100,
  "pack_price_usd": 7.1,
  "buy": [
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/91828A113/",
    "in_stock": null,
    "ships_from": "US"
   }
  ],
  "specs": {
   "thread": "M2.5x0.45",
   "width_mm": 5.0,
   "height_mm": 2.0,
   "mass_g": null,
   "mass_basis": "unknown",
   "material": "18-8 Stainless Steel",
   "mcmaster": {
    "raw": {
     "Hex Nut Profile": "Standard",
     "Material": "18-8 Stainless Steel",
     "Thread Size": "M2.5 × 0.45 mm",
     "Width": "5 mm",
     "Height": "2 mm",
     "Specifications Met": "DIN 934",
     "Certificate Form": "Digital",
     "Certificate Type": "Material Certificate with Traceable Lot Number",
     "Drive Style": "External Hex",
     "Nut Type": "Hex",
     "Performance": "Corrosion Resistant",
     "System of Measurement": "Metric",
     "Thread Direction": "Right Hand",
     "Thread Fit": "Metric Class 6H",
     "Thread Spacing": "Coarse",
     "Thread Type": "Metric",
     "Country of Origin": "Brazil, China, India, Taiwan, Thailand",
     "DFARS Compliance": "Not Specialty Metals Compliant",
     "Export Control Classification Number (ECCN)": "EAR99",
     "REACH Compliance": "REACH (EC 1907/2006) (02/04/2026, 253 SVHC) Compliant",
     "RoHS Compliance": "RoHS 3 (2015/863/EU) Compliant",
     "Schedule B Number": "731816.0000",
     "U.S.–Mexico–Canada Agreement (USMCA) Qualifying": "No"
    },
    "parsed": {
     "Thread Size": {
      "thread": "M2.5x0.45",
      "d": 2.5,
      "pitch": 0.45,
      "unit": "mm"
     },
     "Width": {
      "value": 5.0,
      "unit": "mm"
     },
     "Height": {
      "value": 2.0,
      "unit": "mm"
     }
    }
   }
  },
  "cad": {
   "file": null,
   "kind": "nut",
   "frame": "axis +Z, centred on the axis; the larger end (flange, head, collar) at z = 0 and the part on +z; when both ends are the same size, the heavier end at z = 0",
   "available": true,
   "step_url": "https://www.mcmaster.com/91828A113/",
   "bbox_mm": null,
   "volume_mm3": null,
   "pending": "STEP not downloaded yet: McMaster-Carr asks for a login before CAD downloads (the product page itself reads without one). Finish with .venv/bin/python tools/mcmaster_cad.py --catalog --file catalog/turret.json --only turret_nut_m2_5 once logged in, or save the STEP from a logged-in browser as references/vendor/mcmaster/91828A113/91828A113.step and run the same command."
  },
  "frame": "axis +Z, centred on the axis; the larger end (flange, head, collar) at z = 0 and the part on +z; when both ends are the same size, the heavier end at z = 0",
  "sources": [
   "https://www.mcmaster.com/91828A113/"
  ],
  "confidence": "product page",
  "used_for": "the bench stand's XT60 panel socket",
  "qty_per_robot": 2
 },
 {
  "id": "mcmaster-5862k102",
  "key": "turret_magnet_disc",
  "category": "fastener",
  "vendor": "McMaster-Carr",
  "model": "5862K102",
  "name": "Neodymium Magnet, Magnetized Through Thickness, 1/8\" Thick, 3/16\" OD",
  "price_usd": 1.0,
  "price_note": "McMaster-Carr: $1.00 each (price_usd is per piece)",
  "price_checked": "2026-10-27",
  "pack_qty": 1,
  "pack_price_usd": 1.0,
  "buy": [
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/5862K102/",
    "in_stock": null,
    "ships_from": "US"
   }
  ],
  "specs": {
   "thickness_mm": 3.175,
   "od_mm": 4.7625,
   "mass_g": null,
   "mass_basis": "unknown",
   "material": "Nickel-Plated Neodymium",
   "mcmaster": {
    "raw": {
     "Mount Type": "Plain Back",
     "Thickness": "1/8\"",
     "Thickness Tolerance": "-0.005\" to 0.005\"",
     "OD": "3/16\"",
     "OD Tolerance": "-0.005\" to 0.005\"",
     "Maximum Pull": "1.6 lbf",
     "Temperature Minimum": "Not Rated",
     "Temperature Maximum": "175° F",
     "Magnet Grade": "N52",
     "Direction of Magnetization": "Through Thickness",
     "Color": "Silver",
     "Fabrication": "Sintered",
     "Material": "Nickel-Plated Neodymium",
     "Flux Density": "5,390 G",
     "Magnet Type": "Rare Earth",
     "Magnetic Pull Rating": "Super Light",
     "Maximum Energy Product": "414 kJ/m³",
     "Performance": "Strong Hold",
     "Relative Size": "Compact",
     "Sets of Poles": "1",
     "Shape": "Disc, Round",
     "System of Measurement": "Inch",
     "Country of Origin": "China",
     "DFARS Compliance": "Not Specialty Metals Compliant",
     "Export Control Classification Number (ECCN)": "EAR99",
     "REACH Compliance": "REACH (EC 1907/2006) (02/04/2026, 253 SVHC) Compliant",
     "RoHS Compliance": "RoHS 3 (2015/863/EU) Compliant",
     "Schedule B Number": "850511.0070",
     "U.S.–Mexico–Canada Agreement (USMCA) Qualifying": "No"
    },
    "parsed": {
     "Thickness": {
      "value": 3.175,
      "unit": "mm"
     },
     "Thickness Tolerance": {
      "min": -0.127,
      "max": 0.127,
      "unit": "mm"
     },
     "OD": {
      "value": 4.7625,
      "unit": "mm"
     },
     "OD Tolerance": {
      "min": -0.127,
      "max": 0.127,
      "unit": "mm"
     },
     "Maximum Pull": {
      "value": 7.117155,
      "unit": "N"
     },
     "Temperature Maximum": {
      "value": 79.444444,
      "unit": "degC"
     }
    }
   }
  },
  "cad": {
   "file": null,
   "kind": "spacer",
   "frame": "axis +Z, centred on the axis; the larger end (flange, head, collar) at z = 0 and the part on +z; when both ends are the same size, the heavier end at z = 0",
   "available": true,
   "step_url": "https://www.mcmaster.com/5862K102/",
   "bbox_mm": null,
   "volume_mm3": null,
   "pending": "STEP not downloaded yet: McMaster-Carr asks for a login before CAD downloads (the product page itself reads without one). Finish with .venv/bin/python tools/mcmaster_cad.py --catalog --file catalog/turret.json --only turret_magnet_disc once logged in, or save the STEP from a logged-in browser as references/vendor/mcmaster/5862K102/5862K102.step and run the same command."
  },
  "frame": "axis +Z, centred on the axis; the larger end (flange, head, collar) at z = 0 and the part on +z; when both ends are the same size, the heavier end at z = 0",
  "sources": [
   "https://www.mcmaster.com/5862K102/"
  ],
  "confidence": "product page",
  "used_for": "the pan index magnet: through the clamp ring on the housing's top at pan 0 (1, and a spare); 2.1 mm of ring is left beside its Ø4.8 hole",
  "qty_per_robot": 2
 },
 {
  "id": "mcmaster-51225k32",
  "key": "turret_tube_coupling",
  "category": "fastener",
  "vendor": "McMaster-Carr",
  "model": "51225K32",
  "name": "Continuous-Flex Tpv Rubber Tube for Chemicals, 5/16\" ID, 7/16\" OD",
  "price_usd": 0.94,
  "price_note": "McMaster-Carr: $0.94 per ft. (price_usd is per piece)",
  "price_checked": "2026-10-27",
  "pack_qty": 1,
  "pack_price_usd": 0.94,
  "buy": [
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/51225K32/",
    "in_stock": null,
    "ships_from": "US"
   }
  ],
  "specs": {
   "id_mm": 7.9375,
   "od_mm": 11.1125,
   "mass_g": null,
   "mass_basis": "unknown",
   "material": "TPV",
   "mcmaster": {
    "raw": {
     "Tube Hardness Rating": "Soft",
     "ID": "5/16\"",
     "OD": "7/16\"",
     "Wall Thickness": "1/16\"",
     "Bend Radius": "2 5/8\"",
     "Hardness": "Durometer 65A",
     "Maximum Pressure @ Temperature": "Not Rated",
     "Temperature Range": "-70° F to 245° F",
     "Compatible Fitting Connection": "Barbed",
     "Flexibility": "Continuous Flex",
     "Clarity": "Opaque",
     "Color": "Black",
     "Chemical Resistance (Excellent)": "Deionized Water, Methanol (Methyl Alcohol), Sodium Hypochlorite (Bleach), Acetic Acid (White Vinegar) (10% Concentration), Ethylene Glycol (50% Concentration), Hydrochloric Acid (10% Concentration), Hydrochloric Acid (30% Concentration), Hydrogen Peroxide (10% Concentration), Hydrogen Peroxide (30% Concentration), Sodium Hydroxide (Caustic Soda) (10% Concentration), Sodium Hydroxide (Caustic Soda) (30% Concentration), Sulfuric Acid (10% Concentration), Sulfuric Acid (30% Concentration)",
     "Chemical Resistance (Moderate)": "Methyl Ethyl Ketone (MEK)",
     "Chemical Resistance (Not Recommended)": "Acetone, Diesel Fuel, Fuel Oil, Gasoline, Hydraulic Fluid, Isopropyl Alcohol, Synthetic Oil, Phosphoric Acid (25% Concentration), Phosphoric Acid (85% Concentration)",
     "Connects To": "Tube",
     "End Type": "Without Fittings",
     "For Use With": "Chemicals, Acetic Acid (White Vinegar), Coolant, Deionized Water, Hydrochloric Acid, Hydrogen Peroxide, Methanol (Methyl Alcohol), Sodium Hydroxide (Caustic Soda), Sodium Hypochlorite (Bleach), Sulfuric Acid",
     "Material": "TPV",
     "Maximum Vacuum @ Temperature": "Not Rated",
     "Performance": "Chemical Resistant",
     "Shape": "Round Tube",
     "System of Measurement": "Inch",
     "Warning Message": "Chemical compatibility must be determined by the customer based on the conditions in which the product is being used, including the presence of other chemicals, temperature, and consistency.",
     "Country of Origin": "United States",
     "DFARS Compliance": "Specialty Metals COTS-Exempt",
     "Export Control Classification Number (ECCN)": "EAR99",
     "REACH Compliance": "REACH (EC 1907/2006) (02/04/2026, 253 SVHC) Compliant",
     "RoHS Compliance": "RoHS 3 (2015/863/EU) Compliant",
     "Schedule B Number": "391732.0000",
     "U.S.–Mexico–Canada Agreement (USMCA) Qualifying": "Yes"
    },
    "parsed": {
     "ID": {
      "value": 7.9375,
      "unit": "mm"
     },
     "OD": {
      "value": 11.1125,
      "unit": "mm"
     },
     "Wall Thickness": {
      "value": 1.5875,
      "unit": "mm"
     },
     "Bend Radius": {
      "value": 66.675,
      "unit": "mm"
     },
     "Temperature Range": {
      "min": -56.666667,
      "max": 118.333333,
      "unit": "degC"
     }
    }
   }
  },
  "cad": {
   "file": null,
   "kind": "rod",
   "frame": "axis +Z, centred on the axis; the larger end (flange, head, collar) at z = 0 and the part on +z; when both ends are the same size, the heavier end at z = 0",
   "available": true,
   "step_url": "https://www.mcmaster.com/51225K32/",
   "bbox_mm": null,
   "volume_mm3": null,
   "pending": "STEP not downloaded yet: McMaster-Carr asks for a login before CAD downloads (the product page itself reads without one). Finish with .venv/bin/python tools/mcmaster_cad.py --catalog --file catalog/turret.json --only turret_tube_coupling once logged in, or save the STEP from a logged-in browser as references/vendor/mcmaster/51225K32/51225K32.step and run the same command."
  },
  "frame": "axis +Z, centred on the axis; the larger end (flange, head, collar) at z = 0 and the part on +z; when both ends are the same size, the heavier end at z = 0",
  "sources": [
   "https://www.mcmaster.com/51225K32/"
  ],
  "confidence": "product page",
  "used_for": "the slip ring's rotor coupling: a 25 mm length from the 1 ft sold",
  "qty_per_robot": 1,
  "options": [
   "Choose a Length, ft. 10 25 50",
   "Choose a Length, ft."
  ]
 },
 {
  "id": "mcmaster-94459a130",
  "key": "turret_insert_m3_short",
  "category": "fastener",
  "vendor": "McMaster-Carr",
  "model": "94459A130",
  "name": "Heat-Set Threaded Inserts for Plastic, Standard, Brass, M3 x 0.5 mm Thread Size, 4.3 mm Installed Length",
  "price_usd": 0.2182,
  "price_note": "McMaster-Carr: $10.91 per pack of 50 (price_usd is per piece)",
  "price_checked": "2026-10-27",
  "pack_qty": 50,
  "pack_price_usd": 10.91,
  "buy": [
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/94459A130/",
    "in_stock": null,
    "ships_from": "US"
   }
  ],
  "specs": {
   "installed_length_mm": 4.3,
   "thread": "M3",
   "mass_g": null,
   "mass_basis": "unknown",
   "material": "Brass",
   "mcmaster": {
    "raw": {
     "Threaded Insert Type": "Heat Set",
     "Profile": "Standard",
     "Material": "Brass",
     "Thread Size": "M3",
     "Thread Pitch": "0.5 mm",
     "Installed Length": "4.3 mm",
     "Drill Bit Size": "22 Ga.",
     "For Maximum Hole Diameter": "4 mm",
     "End Type": "Open",
     "For Minimum Material Thickness": "5.1 mm",
     "For Use In": "Plastic",
     "Performance": "Conductive, Corrosion Resistant, Nonmagnetic",
     "System of Measurement": "Metric",
     "Tensile Strength": "Not Rated",
     "Thread Direction": "Right Hand",
     "Thread Fit": "Metric Class 6H",
     "Thread Spacing": "Coarse",
     "Thread Type": "Metric",
     "Threaded Insert Securing Type": "Knurled",
     "Country of Origin": "United States",
     "DFARS Compliance": "Specialty Metals COTS-Exempt",
     "Export Control Classification Number (ECCN)": "EAR99",
     "REACH Compliance": "REACH (EC 1907/2006) (02/04/2026, 253 SVHC) Compliant",
     "RoHS Compliance": "RoHS 3 (2015/863/EU) Compliant with Exemptions",
     "RoHS Exemptions": "6(c)",
     "Schedule B Number": "741539.0000",
     "U.S.–Mexico–Canada Agreement (USMCA) Qualifying": "Yes",
     "Related Products": "Soldering Installation Tips"
    },
    "parsed": {
     "Thread Pitch": {
      "value": 0.5,
      "unit": "mm"
     },
     "Installed Length": {
      "value": 4.3,
      "unit": "mm"
     },
     "For Maximum Hole Diameter": {
      "value": 4.0,
      "unit": "mm"
     },
     "For Minimum Material Thickness": {
      "value": 5.1,
      "unit": "mm"
     }
    }
   }
  },
  "cad": {
   "file": null,
   "kind": "insert",
   "frame": "axis +Z, centred on the axis; the larger end (flange, head, collar) at z = 0 and the part on +z; when both ends are the same size, the heavier end at z = 0",
   "available": true,
   "step_url": "https://www.mcmaster.com/94459A130/",
   "bbox_mm": null,
   "volume_mm3": null,
   "pending": "STEP not downloaded yet: McMaster-Carr asks for a login before CAD downloads (the product page itself reads without one). Finish with .venv/bin/python tools/mcmaster_cad.py --catalog --file catalog/turret.json --only turret_insert_m3_short once logged in, or save the STEP from a logged-in browser as references/vendor/mcmaster/94459A130/94459A130.step and run the same command."
  },
  "frame": "axis +Z, centred on the axis; the larger end (flange, head, collar) at z = 0 and the part on +z; when both ends are the same size, the heavier end at z = 0",
  "sources": [
   "https://www.mcmaster.com/94459A130/"
  ],
  "confidence": "product page",
  "used_for": "short M3 heat-set inserts (4.3 mm) in the pan base's 6 mm bumper tabs",
  "qty_per_robot": 5
 },
 {
  "id": "mcmaster-91294a128",
  "key": "turret_screw_m3x8_flat",
  "category": "fastener",
  "vendor": "McMaster-Carr",
  "model": "91294A128",
  "name": "Black-Oxide Alloy Steel Hex-Drive Flat Head Screw, 90 Degree Countersink, M3 x 0.5 mm Thread Size, 8 mm Long",
  "price_usd": 0.0582,
  "price_note": "McMaster-Carr: $5.82 per pack of 100 (price_usd is per piece)",
  "price_checked": "2026-10-27",
  "pack_qty": 100,
  "pack_price_usd": 5.82,
  "buy": [
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/91294A128/",
    "in_stock": null,
    "ships_from": "US"
   }
  ],
  "specs": {
   "thread": "M3x0.5",
   "length_mm": 8.0,
   "head_d_mm": 6.0,
   "head_height_mm": 1.7,
   "mass_g": null,
   "mass_basis": "unknown",
   "material": "Black-Oxide Alloy Steel",
   "mcmaster": {
    "raw": {
     "Thread Direction": "Right Hand",
     "Drive Style": "Hex",
     "Tip Type": "Flat",
     "Thread Size": "M3 × 0.5 mm",
     "Length": "8 mm",
     "Countersink Angle": "90°",
     "Flat Head Profile": "Standard",
     "Head Diameter": "6 mm",
     "Head Height": "1.7 mm",
     "Threading": "Fully Threaded",
     "Tensile Strength": "120,000 psi",
     "Drive Size": "2 mm",
     "Fastener Head Type": "Flat",
     "Fastener Strength Grade/Class": "Class 10.9",
     "Hardness": "Rockwell C32",
     "Material": "Black-Oxide Alloy Steel",
     "Performance": "High Strength",
     "Specifications Met": "DIN 7991",
     "System of Measurement": "Metric",
     "Thread Fit": "Metric Class 6g",
     "Thread Spacing": "Coarse",
     "Thread Type": "Metric",
     "Country of Origin": "United States",
     "DFARS Compliance": "Specialty Metals COTS-Exempt",
     "Export Control Classification Number (ECCN)": "EAR99",
     "REACH Compliance": "REACH (EC 1907/2006) (02/04/2026, 253 SVHC) Compliant",
     "RoHS Compliance": "RoHS 3 (2015/863/EU) Compliant",
     "Schedule B Number": "731815.9000",
     "U.S.–Mexico–Canada Agreement (USMCA) Qualifying": "Yes"
    },
    "parsed": {
     "Thread Size": {
      "thread": "M3x0.5",
      "d": 3.0,
      "pitch": 0.5,
      "unit": "mm"
     },
     "Length": {
      "value": 8.0,
      "unit": "mm"
     },
     "Head Diameter": {
      "value": 6.0,
      "unit": "mm"
     },
     "Head Height": {
      "value": 1.7,
      "unit": "mm"
     },
     "Tensile Strength": {
      "value": 827.3712,
      "unit": "MPa"
     },
     "Drive Size": {
      "value": 2.0,
      "unit": "mm"
     }
    }
   }
  },
  "cad": {
   "file": null,
   "kind": "screw",
   "frame": "axis +Z, centred on the axis, head on +z and shank towards -z; z = 0 at the underside of the head (socket, button, pan, hex and flanged heads) or at the top face of a countersunk (flat) head",
   "available": true,
   "step_url": "https://www.mcmaster.com/91294A128/",
   "bbox_mm": null,
   "volume_mm3": null,
   "pending": "STEP not downloaded yet: McMaster-Carr asks for a login before CAD downloads (the product page itself reads without one). Finish with .venv/bin/python tools/mcmaster_cad.py --catalog --file catalog/turret.json --only turret_screw_m3x8_flat once logged in, or save the STEP from a logged-in browser as references/vendor/mcmaster/91294A128/91294A128.step and run the same command."
  },
  "frame": "axis +Z, centred on the axis, head on +z and shank towards -z; z = 0 at the underside of the head (socket, button, pan, hex and flanged heads) or at the top face of a countersunk (flat) head",
  "sources": [
   "https://www.mcmaster.com/91294A128/"
  ],
  "confidence": "product page",
  "used_for": "the turret-board bay to the -y yoke arm, countersunk in its back",
  "qty_per_robot": 4
 },
 {
  "id": "mcmaster-92581a250",
  "key": "turret_thumbscrew_m4x12",
  "category": "fastener",
  "vendor": "McMaster-Carr",
  "model": "92581A250",
  "name": "Steel Raised Knurled-Head Thumb Screw, M4 x 0.7mm Thread Size, 12mm Long",
  "price_usd": 4.64,
  "price_note": "McMaster-Carr: $4.64 each (price_usd is per piece)",
  "price_checked": "2026-10-27",
  "pack_qty": 1,
  "pack_price_usd": 4.64,
  "buy": [
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/92581A250/",
    "in_stock": null,
    "ships_from": "US"
   }
  ],
  "specs": {
   "length_mm": 12.0,
   "head_d_mm": 16.0,
   "head_height_mm": 3.5,
   "thread": "M4",
   "mass_g": null,
   "mass_basis": "unknown",
   "material": "Black-Oxide Steel",
   "mcmaster": {
    "raw": {
     "Thumb Screw Head Profile": "Raised",
     "Fastener Head Type": "Thumb",
     "Grip Style": "Knurled Head",
     "Tip Type": "Flat",
     "Material": "Black-Oxide Steel",
     "Thread Size": "M4",
     "Thread Pitch": "0.7 mm",
     "Thread Direction": "Right Hand",
     "Thread Spacing": "Coarse",
     "Thread Type": "Metric",
     "Thread Fit": "Metric Class 6g",
     "Length": "12 mm",
     "Head Diameter": "16 mm",
     "Head Height": "3.5 mm",
     "Head Texture": "Knurled",
     "Collar Diameter": "8 mm",
     "Collar Height": "6 mm",
     "Threading": "Fully Threaded",
     "Tensile Strength": "70,000 psi",
     "Hardness": "Rockwell B84",
     "Specifications Met": "DIN 464",
     "System of Measurement": "Metric",
     "Country of Origin": "Germany",
     "DFARS Compliance": "Specialty Metals COTS-Exempt",
     "Export Control Classification Number (ECCN)": "EAR99",
     "REACH Compliance": "REACH (EC 1907/2006) (01/21/2025, 247 SVHC) Compliant",
     "RoHS Compliance": "RoHS 3 (2015/863/EU) Compliant",
     "Schedule B Number": "731815.9000",
     "U.S.–Mexico–Canada Agreement (USMCA) Qualifying": "No"
    },
    "parsed": {
     "Thread Pitch": {
      "value": 0.7,
      "unit": "mm"
     },
     "Length": {
      "value": 12.0,
      "unit": "mm"
     },
     "Head Diameter": {
      "value": 16.0,
      "unit": "mm"
     },
     "Head Height": {
      "value": 3.5,
      "unit": "mm"
     },
     "Collar Diameter": {
      "value": 8.0,
      "unit": "mm"
     },
     "Collar Height": {
      "value": 6.0,
      "unit": "mm"
     },
     "Tensile Strength": {
      "value": 482.6332,
      "unit": "MPa"
     }
    }
   }
  },
  "cad": {
   "file": null,
   "kind": "screw",
   "frame": "axis +Z, centred on the axis, head on +z and shank towards -z; z = 0 at the underside of the head (socket, button, pan, hex and flanged heads) or at the top face of a countersunk (flat) head",
   "available": true,
   "step_url": "https://www.mcmaster.com/92581A250/",
   "bbox_mm": null,
   "volume_mm3": null,
   "pending": "STEP not downloaded yet: McMaster-Carr asks for a login before CAD downloads (the product page itself reads without one). Finish with .venv/bin/python tools/mcmaster_cad.py --catalog --file catalog/turret.json --only turret_thumbscrew_m4x12 once logged in, or save the STEP from a logged-in browser as references/vendor/mcmaster/92581A250/92581A250.step and run the same command."
  },
  "frame": "axis +Z, centred on the axis, head on +z and shank towards -z; z = 0 at the underside of the head (socket, button, pan, hex and flanged heads) or at the top face of a countersunk (flat) head",
  "sources": [
   "https://www.mcmaster.com/92581A250/"
  ],
  "confidence": "product page",
  "used_for": "the CT latch: DIN 464 knurled thumbscrew up through the cradle's rail into the cartridge's M4 insert",
  "qty_per_robot": 1
 },
 {
  "id": "mcmaster-9452k14",
  "key": "turret_oring_ct",
  "category": "wiring",
  "vendor": "McMaster-Carr",
  "model": "9452K14",
  "name": "Oil-Resistant Buna-N O-Ring, 1/16 Fractional Width, Dash Number 006",
  "price_usd": 0.0279,
  "price_note": "McMaster-Carr: $2.79 per pack of 100 (price_usd is per piece)",
  "price_checked": "2026-10-27",
  "pack_qty": 100,
  "pack_price_usd": 2.79,
  "buy": [
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/9452K14/",
    "in_stock": null,
    "ships_from": "US"
   }
  ],
  "specs": {
   "width_mm": 1.778,
   "id_mm": 2.8956,
   "od_mm": 6.4516,
   "mass_g": null,
   "mass_basis": "unknown",
   "material": null,
   "mcmaster": {
    "raw": {
     "System of Measurement": "Inch",
     "Fractional Width": "1/16",
     "Fractional ID": "1/8",
     "Fractional OD": "1/4",
     "Width": "0.07\"",
     "Dash Number": "006",
     "ID": "0.114\"",
     "OD": "0.254\"",
     "Hardness": "Durometer 70A (Medium)",
     "Specifications Met": "ASTM D2000, ISO 3601-1, SAE AS568, SAE J200",
     "Temperature Range": "-30° F to 215° F",
     "Color": "Black",
     "Cross Section Shape": "Round",
     "For Use With": "Animal Oil Boric Acid Butyl Alcohol Calcium Hydroxide Citric Acid Ethanol Ethylene Glycol Glycerin Grease Hydraulic Oil Isopropyl Alcohol Methanol (Methyl Alcohol) Mineral Oil Motor Oil Petroleum Potassium Hydroxide Sodium Bicarbonate (Baking Soda) Vegetable Oil Water",
     "Performance": "Highly Tear Resistant, Ultra Oil Resistant",
     "Country of Origin": "United States, China, Vietnam",
     "DFARS Compliance": "Specialty Metals COTS-Exempt",
     "Export Control Classification Number (ECCN)": "EAR99",
     "REACH Compliance": "REACH (EC 1907/2006) (02/04/2026, 253 SVHC) Compliant",
     "RoHS Compliance": "RoHS 3 (2015/863/EU) Compliant",
     "Schedule B Number": "401693.0000",
     "U.S.–Mexico–Canada Agreement (USMCA) Qualifying": "No"
    },
    "parsed": {
     "Width": {
      "value": 1.778,
      "unit": "mm"
     },
     "ID": {
      "value": 2.8956,
      "unit": "mm"
     },
     "OD": {
      "value": 6.4516,
      "unit": "mm"
     },
     "Temperature Range": {
      "min": -34.444444,
      "max": 101.666667,
      "unit": "degC"
     }
    }
   }
  },
  "cad": {
   "file": null,
   "kind": "grommet",
   "frame": "axis +Z, centred on the axis; the larger end (flange, head, collar) at z = 0 and the part on +z; when both ends are the same size, the heavier end at z = 0",
   "available": true,
   "step_url": "https://www.mcmaster.com/9452K14/",
   "bbox_mm": null,
   "volume_mm3": null,
   "pending": "STEP not downloaded yet: McMaster-Carr asks for a login before CAD downloads (the product page itself reads without one). Finish with .venv/bin/python tools/mcmaster_cad.py --catalog --file catalog/turret.json --only turret_oring_ct once logged in, or save the STEP from a logged-in browser as references/vendor/mcmaster/9452K14/9452K14.step and run the same command."
  },
  "frame": "axis +Z, centred on the axis; the larger end (flange, head, collar) at z = 0 and the part on +z; when both ends are the same size, the heavier end at z = 0",
  "sources": [
   "https://www.mcmaster.com/9452K14/"
  ],
  "confidence": "product page",
  "used_for": "keeps the CT thumbscrew in its rail: on its thread, in the counterbore on the rail's top",
  "qty_per_robot": 1
 },
 {
  "id": "mcmaster-93475a210",
  "key": "turret_washer_m3",
  "category": "fastener",
  "vendor": "McMaster-Carr",
  "model": "93475A210",
  "name": "18-8 Stainless Steel General Purpose Washer, for M3 Screw Size, 3.2 mm ID, 7.0 mm OD",
  "price_usd": 0.0289,
  "price_note": "McMaster-Carr: $2.89 per pack of 100 (price_usd is per piece)",
  "price_checked": "2026-10-27",
  "pack_qty": 100,
  "pack_price_usd": 2.89,
  "buy": [
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/93475A210/",
    "in_stock": null,
    "ships_from": "US"
   }
  ],
  "specs": {
   "id_mm": 3.2,
   "od_mm": 7.0,
   "mass_g": null,
   "mass_basis": "unknown",
   "material": "18-8 Stainless Steel",
   "mcmaster": {
    "raw": {
     "Washer Designation": "General Purpose",
     "Material": "18-8 Stainless Steel",
     "For Screw Size": "M3",
     "ID": "3.2 mm",
     "OD": "7.0 mm",
     "Thickness": "0.4 mm to 0.6 mm",
     "Certificate Form": "Digital",
     "Certificate Type": "Material Certificate with Traceable Lot Number",
     "Hardness": "Not Rated",
     "Performance": "Corrosion Resistant",
     "Specifications Met": "DIN 125, ISO 7089",
     "System of Measurement": "Metric",
     "Washer Type": "Flat",
     "Country of Origin": "Brazil, China, India, Taiwan, Thailand",
     "DFARS Compliance": "Not Specialty Metals Compliant",
     "Export Control Classification Number (ECCN)": "EAR99",
     "REACH Compliance": "REACH (EC 1907/2006) (02/04/2026, 253 SVHC) Compliant",
     "RoHS Compliance": "RoHS 3 (2015/863/EU) Compliant",
     "Schedule B Number": "731822.0000",
     "U.S.–Mexico–Canada Agreement (USMCA) Qualifying": "No"
    },
    "parsed": {
     "ID": {
      "value": 3.2,
      "unit": "mm"
     },
     "OD": {
      "value": 7.0,
      "unit": "mm"
     },
     "Thickness": {
      "min": 0.4,
      "max": 0.6,
      "unit": "mm"
     }
    }
   }
  },
  "cad": {
   "file": null,
   "kind": "washer",
   "frame": "axis +Z, centred on the axis; the larger end (flange, head, collar) at z = 0 and the part on +z; when both ends are the same size, the heavier end at z = 0",
   "available": true,
   "step_url": "https://www.mcmaster.com/93475A210/",
   "bbox_mm": null,
   "volume_mm3": null,
   "pending": "STEP not downloaded yet: McMaster-Carr asks for a login before CAD downloads (the product page itself reads without one). Finish with .venv/bin/python tools/mcmaster_cad.py --catalog --file catalog/turret.json --only turret_washer_m3 once logged in, or save the STEP from a logged-in browser as references/vendor/mcmaster/93475A210/93475A210.step and run the same command."
  },
  "frame": "axis +Z, centred on the axis; the larger end (flange, head, collar) at z = 0 and the part on +z; when both ends are the same size, the heavier end at z = 0",
  "sources": [
   "https://www.mcmaster.com/93475A210/"
  ],
  "confidence": "product page",
  "used_for": "under the dial's retaining screw",
  "qty_per_robot": 1
 },
 {
  "id": "mcmaster-98952a110",
  "key": "turret_standoff_m3x12",
  "category": "fastener",
  "vendor": "McMaster-Carr",
  "model": "98952A110",
  "name": "Aluminum Male-Female Threaded Hex Standoff, 4.5mm Hex, 12mm Long, M3 x 0.50 mm Thread",
  "price_usd": 0.83,
  "price_note": "McMaster-Carr: $0.83 each (price_usd is per piece)",
  "price_checked": "2026-10-27",
  "pack_qty": 1,
  "pack_price_usd": 0.83,
  "buy": [
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/98952A110/",
    "in_stock": null,
    "ships_from": "US"
   }
  ],
  "specs": {
   "length_mm": 12.0,
   "thread": "M3",
   "mass_g": null,
   "mass_basis": "unknown",
   "material": "Aluminum",
   "mcmaster": {
    "raw": {
     "Material": "Aluminum",
     "Thread Size (A)": "M3",
     "Thread Size (B)": "M3",
     "Thread Pitch (A)": "0.5 mm",
     "Thread Pitch (B)": "0.5 mm",
     "Length": "12 mm",
     "Length Tolerance": "-0.13 mm to 0.13 mm",
     "Hex Size": "4.5 mm",
     "Hex Size Tolerance": "-0.13 mm to 0.13 mm",
     "Thread Lg. (A)": "4.7 mm",
     "Minimum Thread Length (B)": "6.4 mm",
     "Gender (A)": "Male",
     "Gender (B)": "Female",
     "Hardness": "Rockwell B50",
     "Mount Type (A)": "Threaded",
     "Mount Type (B)": "Threaded",
     "Performance": "Corrosion Resistant, Lightweight",
     "Shape": "Hex",
     "System of Measurement": "Metric",
     "Tensile Strength": "45,000 psi",
     "Thread Fit (A)": "Metric Class 6g",
     "Thread Fit (B)": "Metric Class 6H",
     "Country of Origin": "United States",
     "DFARS Compliance": "Specialty Metals COTS-Exempt",
     "Export Control Classification Number (ECCN)": "EAR99",
     "REACH Compliance": "REACH (EC 1907/2006) (02/04/2026, 253 SVHC) Compliant",
     "RoHS Compliance": "RoHS 3 (2015/863/EU) Compliant with Exemptions",
     "RoHS Exemptions": "6(b)-II",
     "Schedule B Number": "761610.8000",
     "U.S.–Mexico–Canada Agreement (USMCA) Qualifying": "Yes"
    },
    "parsed": {
     "Thread Pitch (A)": {
      "value": 0.5,
      "unit": "mm"
     },
     "Thread Pitch (B)": {
      "value": 0.5,
      "unit": "mm"
     },
     "Length": {
      "value": 12.0,
      "unit": "mm"
     },
     "Length Tolerance": {
      "min": -0.13,
      "max": 0.13,
      "unit": "mm"
     },
     "Hex Size": {
      "value": 4.5,
      "unit": "mm"
     },
     "Hex Size Tolerance": {
      "min": -0.13,
      "max": 0.13,
      "unit": "mm"
     },
     "Thread Lg. (A)": {
      "value": 4.7,
      "unit": "mm"
     },
     "Minimum Thread Length (B)": {
      "value": 6.4,
      "unit": "mm"
     },
     "Tensile Strength": {
      "value": 310.2642,
      "unit": "MPa"
     }
    }
   }
  },
  "cad": {
   "file": null,
   "kind": "standoff",
   "frame": "axis +Z, centred on the axis; the larger end (flange, head, collar) at z = 0 and the part on +z; when both ends are the same size, the heavier end at z = 0",
   "available": true,
   "step_url": "https://www.mcmaster.com/98952A110/",
   "bbox_mm": null,
   "volume_mm3": null,
   "pending": "STEP not downloaded yet: McMaster-Carr asks for a login before CAD downloads (the product page itself reads without one). Finish with .venv/bin/python tools/mcmaster_cad.py --catalog --file catalog/turret.json --only turret_standoff_m3x12 once logged in, or save the STEP from a logged-in browser as references/vendor/mcmaster/98952A110/98952A110.step and run the same command."
  },
  "frame": "axis +Z, centred on the axis; the larger end (flange, head, collar) at z = 0 and the part on +z; when both ends are the same size, the heavier end at z = 0",
  "sources": [
   "https://www.mcmaster.com/98952A110/"
  ],
  "confidence": "product page",
  "used_for": "the turret bay's level-2 board over the level-1 board (male end through level 1 into the bay's inserts)",
  "qty_per_robot": 4
 },
 {
  "id": "sparkfun-rob-13065",
  "key": "sparkfun-rob-13065",
  "category": "turret",
  "vendor": "SparkFun (Senring M220 series)",
  "model": "ROB-13065",
  "name": "Slip Ring - 12 Wire (2A)",
  "price_usd": 27.95,
  "price_note": "one unit, before shipping",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "SparkFun",
    "url": "https://www.sparkfun.com/products/13065",
    "in_stock": null,
    "ships_from": null
   }
  ],
  "specs": {
   "body_d_mm": 22,
   "body_l_mm": 26.5,
   "flange_d_mm": 44.5,
   "circuits": 12,
   "current_a": 2,
   "wire_awg": 28,
   "lead_mm": 250,
   "max_rpm": 250
  },
  "sources": [
   "https://www.sparkfun.com/products/13065"
  ],
  "confidence": "product page",
  "used_for": "the slip ring on the bench and on the robot (D2, decided 2026-10-27): 12 x 2 A; 1-2 +24 V, 3-4 GND, 5-6 CAN, 7-8 safety pulses, 9 servo TTL, 10 signal ground, 11-12 kept for a camera (docs/turret-wiring.md 1.2)",
  "qty_per_robot": 1,
  "notes": "cad/turret.py RING_MODELS sparkfun_rob13065. The flange hole pattern is not published: measure the ring and drill the carrier to suit."
 },
 {
  "id": "allegro-a1120lua-t",
  "key": "allegro-a1120lua-t",
  "category": "sensor",
  "vendor": "Allegro MicroSystems",
  "model": "A1120LUA-T",
  "name": "Unipolar hall-effect switch, 3-24 V, SIP-3 (UA)",
  "price_usd": 1.79,
  "price_note": "Digi-Key 620-1330-ND: $1.79 (read 2026-10-27)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/allegro-microsystems/A1120LUA-T/2075330",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "620-1330-ND",
    "price_usd": 1.79,
    "pack_qty": 1,
    "stock": 22190,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/250-A1120LUA-T",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "250-A1120LUA-T",
    "price_usd": 1.79,
    "pack_qty": 1,
    "stock": 2262,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {
   "supply_v": [
    3,
    24
   ],
   "package": "UA (SIP-3)"
  },
  "sources": [
   "https://www.cytechsystems.com/fr/product/a1120lua-t"
  ],
  "confidence": "seller listing",
  "used_for": "the pan index: in the turntable's underside, 3 mm over the magnet at pan 0",
  "qty_per_robot": 2,
  "notes": "1 + a spare. TI DRV5032 is the alternate."
 },
 {
  "id": "adafruit-feather-m4-can-4759",
  "key": "adafruit-feather-m4-can-4759",
  "category": "compute",
  "vendor": "Adafruit",
  "model": "4759",
  "name": "Feather M4 CAN Express with ATSAME51",
  "price_usd": 24.95,
  "price_note": "one unit, before shipping",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Adafruit",
    "url": "https://www.adafruit.com/product/4759",
    "in_stock": null,
    "ships_from": null
   },
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/adafruit-industries-llc/4759/13571587",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "1528-4759-ND",
    "price_usd": 24.95,
    "pack_qty": 1,
    "stock": 473,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/485-4759",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "485-4759",
    "price_usd": 24.95,
    "pack_qty": 1,
    "stock": 455,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {
   "size_mm": [
    50.8,
    22.8,
    7.2
   ],
   "mass_g": 5.5
  },
  "sources": [
   "https://www.adafruit.com/product/4759"
  ],
  "confidence": "product page",
  "used_for": "the turret MCU (level 2 of the bay): CAN to the robot, the servo bus, the ESCs, the C610, the gates, the lights",
  "qty_per_robot": 1
 },
 {
  "id": "pololu-d24v150f12-2885",
  "key": "pololu-d24v150f12-2885",
  "category": "dcdc",
  "vendor": "Pololu",
  "model": "2885 (D24V150F12)",
  "name": "12V, 15A Step-Down Voltage Regulator D24V150F12",
  "price_usd": 79.95,
  "price_note": "one unit, before shipping",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Pololu",
    "url": "https://www.pololu.com/product/2885",
    "in_stock": null,
    "ships_from": null
   }
  ],
  "specs": {
   "size_mm": [
    43.2,
    31.8,
    11.0
   ],
   "output_v": 12,
   "current_a": 15,
   "input_v": [
    13.3,
    40
   ]
  },
  "sources": [
   "https://www.pololu.com/product/2885"
  ],
  "confidence": "product page",
  "used_for": "the flywheel rail: 24 V in, a fixed 12 V out, the only supply the flywheel ESCs ever see (the hardware speed ceiling)",
  "qty_per_robot": 1,
  "notes": "Fixed output, no trim pot. Pololu suggests the D42V110F12 (same size and pinout)."
 },
 {
  "id": "pololu-d36v50f12-4095",
  "key": "pololu-d36v50f12-4095",
  "category": "dcdc",
  "vendor": "Pololu",
  "model": "4095 (D36V50F12)",
  "name": "12V, 4.5A Step-Down Voltage Regulator D36V50F12",
  "price_usd": 39.95,
  "price_note": "one unit, before shipping",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Pololu",
    "url": "https://www.pololu.com/product/4095",
    "in_stock": null,
    "ships_from": null
   }
  ],
  "specs": {
   "size_mm": [
    25.4,
    25.4,
    9.5
   ],
   "current_a": 4.5,
   "input_v": [
    13.3,
    50
   ]
  },
  "sources": [
   "https://www.pololu.com/product/4095"
  ],
  "confidence": "product page",
  "used_for": "the 12 V aux rail on the turret (tilt servo, laser) and the 12 V pan-servo rail in the base",
  "qty_per_robot": 2
 },
 {
  "id": "pololu-d36v28f5-3782",
  "key": "pololu-d36v28f5-3782",
  "category": "dcdc",
  "vendor": "Pololu",
  "model": "3782 (D36V28F5)",
  "name": "5V, 3.2A Step-Down Voltage Regulator D36V28F5",
  "price_usd": 23.95,
  "price_note": "one unit, before shipping",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Pololu",
    "url": "https://www.pololu.com/product/3782",
    "in_stock": null,
    "ships_from": null
   }
  ],
  "specs": {
   "size_mm": [
    17.8,
    20.3,
    8.8
   ],
   "current_a": 3.2,
   "input_v": [
    5.3,
    50
   ]
  },
  "sources": [
   "https://www.pololu.com/product/3782"
  ],
  "confidence": "product page",
  "used_for": "the 5 V logic rail on the turret (the Feather, the servo-bus buffer, the hall switch, the lights, the gates)",
  "qty_per_robot": 1
 },
 {
  "id": "pololu-2815",
  "key": "pololu-2815",
  "category": "power_distribution",
  "vendor": "Pololu",
  "model": "2815",
  "name": "Big MOSFET Slide Switch with Reverse Voltage Protection, HP",
  "price_usd": 8.49,
  "price_note": "one unit, before shipping",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Pololu",
    "url": "https://www.pololu.com/product/2815",
    "in_stock": null,
    "ships_from": null
   }
  ],
  "specs": {
   "size_mm": [
    20.3,
    25.4,
    4.1
   ],
   "current_a": 16,
   "voltage_v": [
    4.5,
    32
   ]
  },
  "sources": [
   "https://www.pololu.com/product/2815"
  ],
  "confidence": "product page",
  "used_for": "the safety switch: +24 V to the flywheel regulator and the C610 only while the arm chain holds its ON pin high (> 1 V)",
  "qty_per_robot": 1,
  "notes": "Pololu says it is not an emergency cutoff: the robot's radio stop cuts the head rail upstream as well."
 },
 {
  "id": "panasonic-eeu-fr1v102",
  "key": "panasonic-eeu-fr1v102",
  "category": "power_distribution",
  "vendor": "Panasonic",
  "model": "EEU-FR1V102",
  "name": "Aluminium electrolytic, 1000 uF, 35 V, low ESR (FR)",
  "price_usd": 1.67,
  "price_note": "Digi-Key P14445-ND: $1.67 (read 2026-10-27)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/panasonic-industry/EEU-FR1V102/2433579",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "P14445-ND",
    "price_usd": 1.67,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/667-EEU-FR1V102",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "667-EEU-FR1V102",
    "price_usd": 1.66,
    "pack_qty": 1,
    "stock": 5834,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {},
  "sources": [
   "https://www.mouser.com/c/?q=EEU-FR1V102"
  ],
  "confidence": "datasheet",
  "used_for": "the capacitor bank at the regulators' input (3 x 1000 uF ride a 2 ms ring bounce at 11 A)",
  "qty_per_robot": 3
 },
 {
  "id": "proto-board-52x50",
  "key": "proto-board-52x50",
  "category": "wiring",
  "vendor": "generic",
  "model": "double-sided prototype board 50 x 70 mm",
  "name": "Double-sided prototype board 50 x 70 mm, cut to size",
  "price_usd": 3.625,
  "price_note": "SparkFun PRT-08619 (Wombat, 80 x 100 mm, plated through): $7.25 a board, which cuts into two 52 x 50 pieces (page 2026-10-27); backup Tayda 50 x 70",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "SparkFun",
    "url": "https://www.sparkfun.com/protoboard-wombat-pth.html",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "PRT-08619",
    "price_usd": 7.25,
    "pack_qty": 1,
    "stock": "In stock",
    "read_on": "2026-10-27"
   },
   {
    "seller": "Tayda Electronics",
    "url": "https://www.taydaelectronics.com/double-side-prototyping-board-50x70mm.html",
    "in_stock": null,
    "ships_from": null
   }
  ],
  "specs": {},
  "sources": [
   "https://www.taydaelectronics.com/double-side-prototyping-board-50x70mm.html"
  ],
  "confidence": "seller listing",
  "used_for": "the turret bay's three boards (cut to 52 x 50, Ø3.2 holes drilled at the corners) and the base board (cut to 30 x 50.8)",
  "qty_per_robot": 4,
  "notes": "The same board as the bench stand's terminal board (catalog/sourcing.json proto-board-70x50).",
  "pack_qty": 2,
  "pack_price_usd": 7.25
 },
 {
  "id": "ti-ne555p",
  "key": "ti-ne555p",
  "category": "turret",
  "vendor": "Texas Instruments",
  "model": "NE555P",
  "name": "Precision timer, DIP-8",
  "price_usd": 0.59,
  "price_note": "Digi-Key 296-NE555P-ND: $0.59 (read 2026-10-27)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/texas-instruments/NE555P/277057",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "296-NE555P-ND",
    "price_usd": 0.59,
    "pack_qty": 1,
    "stock": 28579,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/595-NE555P",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "595-NE555P",
    "price_usd": 0.59,
    "pack_qty": 1,
    "stock": 61909,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {},
  "sources": [
   "https://www.ti.com/product/NE555/part-details/NE555P"
  ],
  "confidence": "datasheet",
  "used_for": "the base's 1 kHz safety-pulse oscillator",
  "qty_per_robot": 1
 },
 {
  "id": "ti-ua78l05aclp",
  "key": "ti-ua78l05aclp",
  "category": "turret",
  "vendor": "Texas Instruments",
  "model": "UA78L05ACLP",
  "name": "5 V 100 mA linear regulator, TO-92",
  "price_usd": 2.05,
  "price_note": "Digi-Key 296-1365-ND: $2.05 (read 2026-10-27)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/result?keywords=296-1365-ND",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "296-1365-ND",
    "price_usd": 2.05,
    "pack_qty": 1,
    "stock": 9,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/595-UA78L05ACLP",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "595-UA78L05ACLP",
    "price_usd": 1.94,
    "pack_qty": 1,
    "stock": 2195,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {},
  "sources": [
   "https://www.ti.com/product/UA78L05/part-details/UA78L05ACLP"
  ],
  "confidence": "datasheet",
  "used_for": "powers the 555 from the base's 12 V, through the pendant loop",
  "qty_per_robot": 1
 },
 {
  "id": "vishay-4n35",
  "key": "vishay-4n35",
  "category": "turret",
  "vendor": "Vishay",
  "model": "4N35",
  "name": "Optocoupler, phototransistor output, DIP-6",
  "price_usd": 1.58,
  "price_note": "Digi-Key 4N35-ND: $1.58 (read 2026-10-27)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/vishay-semiconductor-opto-division/4N35/1738522",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "4N35-ND",
    "price_usd": 1.58,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/859-4N35",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "859-4N35",
    "price_usd": 0.64,
    "pack_qty": 1,
    "stock": 9390,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {},
  "sources": [
   "https://www.mouser.com/c/?q=4N35"
  ],
  "confidence": "datasheet",
  "used_for": "the turret end of the safety pulse loop (2.2 k / 1 W in series)",
  "qty_per_robot": 1
 },
 {
  "id": "ti-sn74hc123n",
  "key": "ti-sn74hc123n",
  "category": "turret",
  "vendor": "Texas Instruments",
  "model": "SN74HC123N",
  "name": "Dual retriggerable monostable, DIP-16",
  "price_usd": 0.8,
  "price_note": "est",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Texas Instruments (TI store)",
    "url": "https://www.ti.com/product/SN74HC123/part-details/SN74HC123N",
    "in_stock": null,
    "ships_from": "US"
   },
   {
    "seller": "Mouser / Digi-Key",
    "url": "https://www.mouser.com/c/?q=SN74HC123N",
    "in_stock": null,
    "ships_from": null
   }
  ],
  "specs": {},
  "sources": [
   "https://www.ti.com/product/SN74HC123/part-details/SN74HC123N"
  ],
  "confidence": "datasheet",
  "used_for": "the 20 ms arm monostable and the overspeed trip's 2.98 ms window (gates 60 mm apart)",
  "qty_per_robot": 2
 },
 {
  "id": "ti-sn74hc74n",
  "key": "ti-sn74hc74n",
  "category": "turret",
  "vendor": "Texas Instruments",
  "model": "SN74HC74N",
  "name": "Dual D flip-flop, DIP-14",
  "price_usd": 1.13,
  "price_note": "Digi-Key 296-1602-5-ND: $1.13 (read 2026-10-27)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/texas-instruments/SN74HC74N/277248",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "296-1602-5-ND",
    "price_usd": 1.13,
    "pack_qty": 1,
    "stock": 9538,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/595-SN74HC74N",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "595-SN74HC74N",
    "price_usd": 1.11,
    "pack_qty": 1,
    "stock": 10808,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {},
  "sources": [
   "https://www.ti.com/product/SN74HC74/part-details/SN74HC74N"
  ],
  "confidence": "datasheet",
  "used_for": "the TRIP latch",
  "qty_per_robot": 1
 },
 {
  "id": "ti-sn74hc08n",
  "key": "ti-sn74hc08n",
  "category": "turret",
  "vendor": "Texas Instruments",
  "model": "SN74HC08N",
  "name": "Quad 2-input AND, DIP-14",
  "price_usd": 0.79,
  "price_note": "Digi-Key 296-1570-5-ND: $0.79 (read 2026-10-27)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/texas-instruments/SN74HC08N/277216",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "296-1570-5-ND",
    "price_usd": 0.79,
    "pack_qty": 1,
    "stock": 22274,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/595-SN74HC08N",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "595-SN74HC08N",
    "price_usd": 0.78,
    "pack_qty": 1,
    "stock": 8674,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {},
  "sources": [
   "https://www.ti.com/product/SN74HC08/part-details/SN74HC08N"
  ],
  "confidence": "datasheet",
  "used_for": "pulses present AND no trip = armed",
  "qty_per_robot": 1
 },
 {
  "id": "ti-sn74hc14n",
  "key": "ti-sn74hc14n",
  "category": "turret",
  "vendor": "Texas Instruments",
  "model": "SN74HC14N",
  "name": "Hex Schmitt inverter, DIP-14",
  "price_usd": 1.15,
  "price_note": "Digi-Key 296-1577-5-ND: $1.15 (read 2026-10-27)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/texas-instruments/SN74HC14N/277223",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "296-1577-5-ND",
    "price_usd": 1.15,
    "pack_qty": 1,
    "stock": 23031,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/595-SN74HC14N",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "595-SN74HC14N",
    "price_usd": 1.22,
    "pack_qty": 1,
    "stock": 15473,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {},
  "sources": [
   "https://www.ti.com/product/SN74HC14/part-details/SN74HC14N"
  ],
  "confidence": "datasheet",
  "used_for": "the phase-short brake's inverter with its 10 ms RC; edge cleanup",
  "qty_per_robot": 1
 },
 {
  "id": "ti-sn74ahct125n",
  "key": "ti-sn74ahct125n",
  "category": "turret",
  "vendor": "Texas Instruments",
  "model": "SN74AHCT125N",
  "name": "Quad buffer, 3-state, TTL inputs, DIP-14",
  "price_usd": 0.95,
  "price_note": "Digi-Key 296-4655-5-ND: $0.95 (read 2026-10-27)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/texas-instruments/SN74AHCT125N/375798",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "296-4655-5-ND",
    "price_usd": 0.95,
    "pack_qty": 1,
    "stock": 1674,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/595-SN74AHCT125N",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "595-SN74AHCT125N",
    "price_usd": 0.98,
    "pack_qty": 1,
    "stock": 3136,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {},
  "sources": [
   "https://www.ti.com/product/SN74AHCT125/part-details/SN74AHCT125N"
  ],
  "confidence": "datasheet",
  "used_for": "drives the Feetech half-duplex servo bus from the Feather's UART",
  "qty_per_robot": 1
 },
 {
  "id": "ti-lm393p",
  "key": "ti-lm393p",
  "category": "turret",
  "vendor": "Texas Instruments",
  "model": "LM393P",
  "name": "Dual comparator, DIP-8",
  "price_usd": 0.53,
  "price_note": "Digi-Key 296-1398-5-ND: $0.53 (read 2026-10-27)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/texas-instruments/LM393P/277045",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "296-1398-5-ND",
    "price_usd": 0.53,
    "pack_qty": 1,
    "stock": 8592,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/595-LM393P",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "595-LM393P",
    "price_usd": 0.53,
    "pack_qty": 1,
    "stock": 23356,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {},
  "sources": [
   "https://www.ti.com/product/LM393/part-details/LM393P"
  ],
  "confidence": "datasheet",
  "used_for": "the two chronograph gates' receivers",
  "qty_per_robot": 1
 },
 {
  "id": "infineon-irlz44npbf",
  "key": "infineon-irlz44npbf",
  "category": "turret",
  "vendor": "Infineon",
  "model": "IRLZ44NPBF",
  "name": "Logic-level N-MOSFET 55 V 47 A, TO-220",
  "price_usd": 1.8,
  "price_note": "Mouser 942-IRLZ44NPBF: $1.8 (read 2026-10-27; the primary seller's price was not readable)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/infineon-technologies/IRLZ44NPBF/811808",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "IRLZ44NPBF-ND",
    "price_usd": null,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/942-IRLZ44NPBF",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "942-IRLZ44NPBF",
    "price_usd": 1.8,
    "pack_qty": 1,
    "stock": 77849,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {},
  "sources": [
   "https://www.mouser.com/c/?q=IRLZ44NPBF"
  ],
  "confidence": "datasheet",
  "used_for": "the phase-short brake: 3 per Snail, tying its phases together 10 ms after ARM drops",
  "qty_per_robot": 6
 },
 {
  "id": "vishay-tsal4400",
  "key": "vishay-tsal4400",
  "category": "sensor",
  "vendor": "Vishay",
  "model": "TSAL4400",
  "name": "IR emitting diode 940 nm, T-1 (3 mm)",
  "price_usd": 0.48,
  "price_note": "Digi-Key 751-1201-ND: $0.48 (read 2026-10-27)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/vishay-semiconductor-opto-division/TSAL4400/1681336",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "751-1201-ND",
    "price_usd": 0.48,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/782-TSAL4400",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "782-TSAL4400",
    "price_usd": 0.48,
    "pack_qty": 1,
    "stock": 18862,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {},
  "sources": [
   "https://www.mouser.com/c/?q=TSAL4400"
  ],
  "confidence": "datasheet",
  "used_for": "the chronograph gates' emitters (barrel, 22 and 82 mm from the shoulder)",
  "qty_per_robot": 2
 },
 {
  "id": "vishay-teft4300",
  "key": "vishay-teft4300",
  "category": "sensor",
  "vendor": "Vishay",
  "model": "TEFT4300",
  "name": "Silicon NPN phototransistor, T-1 (3 mm)",
  "price_usd": 0.7,
  "price_note": "Digi-Key 751-1041-ND: $0.7 (read 2026-10-27)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/vishay-semiconductor-opto-division/TEFT4300/1681175",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "751-1041-ND",
    "price_usd": 0.7,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/782-TEFT4300",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "782-TEFT4300",
    "price_usd": 0.7,
    "pack_qty": 1,
    "stock": 2446,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {},
  "sources": [
   "https://www.mouser.com/c/?q=TEFT4300"
  ],
  "confidence": "datasheet",
  "used_for": "the chronograph gates' receivers",
  "qty_per_robot": 2
 },
 {
  "id": "adafruit-2167",
  "key": "adafruit-2167",
  "category": "sensor",
  "vendor": "Adafruit",
  "model": "2167",
  "name": "IR Break Beam Sensor - 3mm LEDs",
  "price_usd": 1.95,
  "price_note": "one unit, before shipping",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Adafruit",
    "url": "https://www.adafruit.com/product/2167",
    "in_stock": null,
    "ships_from": null
   }
  ],
  "specs": {},
  "sources": [
   "https://www.adafruit.com/product/2167"
  ],
  "confidence": "product page",
  "used_for": "the hopper-full beam (two Ø5 holes near the hopper's top)",
  "qty_per_robot": 1
 },
 {
  "id": "adafruit-neopixel-ring-12-1643",
  "key": "adafruit-neopixel-ring-12-1643",
  "category": "light",
  "vendor": "Adafruit",
  "model": "1643",
  "name": "NeoPixel Ring - 12 x 5050 RGB LED",
  "price_usd": 7.5,
  "price_note": "est",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Adafruit",
    "url": "https://www.adafruit.com/product/1643",
    "in_stock": null,
    "ships_from": null
   }
  ],
  "specs": {},
  "sources": [
   "https://www.adafruit.com/product/1643"
  ],
  "confidence": "product page",
  "used_for": "the turret's status lights",
  "qty_per_robot": 1
 },
 {
  "id": "molex-43030-0038",
  "key": "molex-43030-0038",
  "category": "wiring",
  "vendor": "Molex",
  "model": "43030-0038",
  "name": "Micro-Fit 3.0 female crimp terminal, 18 AWG, tin, 8.5 A",
  "price_usd": 0.16,
  "price_note": "Mouser 538-43030-0038-LP: $0.16 (read 2026-10-27; the primary seller's price was not readable)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/molex/0430300038/6098602",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "WM13070CT-ND",
    "price_usd": null,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/538-43030-0038-LP",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "538-43030-0038-LP",
    "price_usd": 0.16,
    "pack_qty": 1,
    "stock": 79499,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {},
  "sources": [
   "https://heilind.com/mol43030-0038.html"
  ],
  "confidence": "seller listing",
  "used_for": "female contacts for the 18 AWG power leads",
  "qty_per_robot": 12
 },
 {
  "id": "molex-43031-0021",
  "key": "molex-43031-0021",
  "category": "wiring",
  "vendor": "Molex",
  "model": "43031-0021",
  "name": "Micro-Fit 3.0 male crimp terminal, 18 AWG, tin, 8.5 A",
  "price_usd": 0.16,
  "price_note": "Mouser 538-43031-0021-LP: $0.16 (read 2026-10-27; the primary seller's price was not readable)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/molex/0430310021/9520956",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "WM22521CT-ND",
    "price_usd": null,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/538-43031-0021-LP",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "538-43031-0021-LP",
    "price_usd": 0.16,
    "pack_qty": 1,
    "stock": 9188,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {},
  "sources": [
   "https://heilind.com/mol43031-0021.html"
  ],
  "confidence": "product page",
  "used_for": "male contacts for the 18 AWG power leads",
  "qty_per_robot": 12
 },
 {
  "id": "molex-43030-0001",
  "key": "molex-43030-0001",
  "category": "wiring",
  "vendor": "Molex",
  "model": "43030-0001",
  "name": "Micro-Fit 3.0 female crimp terminal, 20-24 AWG, tin",
  "price_usd": 0.075,
  "price_note": "Mouser 538-43030-0001-CT: $7.5 per 100 (read 2026-10-27; the primary seller's price was not readable)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/molex/0430300001/467796",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "WM1837CT-ND",
    "price_usd": null,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/538-43030-0001-CT",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "538-43030-0001-CT",
    "price_usd": 7.5,
    "pack_qty": 100,
    "stock": 257100,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {},
  "sources": [
   "https://heilind.com/mol43030-0001.html"
  ],
  "confidence": "datasheet",
  "used_for": "female contacts for the signal leads",
  "qty_per_robot": 30
 },
 {
  "id": "molex-43031-0001",
  "key": "molex-43031-0001",
  "category": "wiring",
  "vendor": "Molex",
  "model": "43031-0001",
  "name": "Micro-Fit 3.0 male crimp terminal, 20-24 AWG, tin",
  "price_usd": 0.085,
  "price_note": "Mouser 538-43031-0001-CT: $8.5 per 100 (read 2026-10-27; the primary seller's price was not readable)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/molex/0430310001/467798",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "WM1841CT-ND",
    "price_usd": null,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/538-43031-0001-CT",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "538-43031-0001-CT",
    "price_usd": 8.5,
    "pack_qty": 100,
    "stock": 5000,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {},
  "sources": [
   "https://heilind.com/mol43031-0001.html"
  ],
  "confidence": "seller listing",
  "used_for": "male contacts for the signal leads",
  "qty_per_robot": 30
 },
 {
  "id": "keystone-3557-2",
  "key": "keystone-3557-2",
  "category": "power_distribution",
  "vendor": "Keystone Electronics",
  "model": "3557-2",
  "name": "PCB fuse holder for ATO or MINI blade fuses",
  "price_usd": 1.31,
  "price_note": "Digi-Key 36-3557-2-ND $1.31 (live digikey.com search, 2026-10-25); takes ATO/ATC blades (the base board's 10 A ATO)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/keystone-electronics/3557-2/2137305",
    "in_stock": false,
    "ships_from": "US",
    "seller_pn": "36-3557-2-ND",
    "price_usd": 1.31,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   },
   {
    "seller": "JLCPCB parts",
    "url": "https://jlcpcb.com/partdetail/3557-2/C352820",
    "in_stock": false,
    "ships_from": "US",
    "seller_pn": "C352820",
    "price_usd": null,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/534-3557-2",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "534-3557-2",
    "price_usd": 1.17,
    "pack_qty": 1,
    "stock": 86411,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {},
  "sources": [
   "https://jlcpcb.com/partdetail/3557-2/C352820"
  ],
  "confidence": "seller listing",
  "used_for": "the fuses on the boards: 10 A ATO main (base), 15 A MINI flywheel regulator and 10 A MINI C610 (turret)",
  "qty_per_robot": 3
 },
 {
  "id": "littelfuse-0287010-pxcn",
  "key": "littelfuse-0287010-pxcn",
  "category": "power_distribution",
  "vendor": "Littelfuse",
  "model": "0287010.PXCN",
  "name": "ATO blade fuse 10 A, 32 V DC",
  "price_usd": 0.36,
  "price_note": "Mouser 576-0287010.PXCN: $0.36 (read 2026-10-27; the primary seller's price was not readable)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/littelfuse-inc/0287010-PXCN/2519807",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "F4199-ND",
    "price_usd": null,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/576-0287010.PXCN",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "576-0287010.PXCN",
    "price_usd": 0.36,
    "pack_qty": 1,
    "stock": 58274,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {},
  "sources": [
   "https://www.mouser.com/c/?q=0287010.PXCN"
  ],
  "confidence": "datasheet",
  "used_for": "the base's main fuse (and a spare)",
  "qty_per_robot": 2
 },
 {
  "id": "littelfuse-0297015-wxnv",
  "key": "littelfuse-0297015-wxnv",
  "category": "power_distribution",
  "vendor": "Littelfuse",
  "model": "0297015.WXNV",
  "name": "MINI blade fuse 15 A, 32 V DC",
  "price_usd": 0.33,
  "price_note": "Mouser 576-0297015.WXNV: $0.33 (read 2026-10-27; the primary seller's price was not readable)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/littelfuse-inc/0297015-WXNV/146594",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "F992-ND",
    "price_usd": null,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/576-0297015.WXNV",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "576-0297015.WXNV",
    "price_usd": 0.33,
    "pack_qty": 1,
    "stock": 20780,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {},
  "sources": [
   "https://www.mouser.com/c/?q=0297015.WXNV"
  ],
  "confidence": "datasheet",
  "used_for": "the flywheel regulator's input (and a spare)",
  "qty_per_robot": 2
 },
 {
  "id": "littelfuse-0297010-wxnv",
  "key": "littelfuse-0297010-wxnv",
  "category": "power_distribution",
  "vendor": "Littelfuse",
  "model": "0297010.WXNV",
  "name": "MINI blade fuse 10 A, 32 V DC",
  "price_usd": 0.33,
  "price_note": "Mouser 576-0297010.WXNV: $0.33 (read 2026-10-27; the primary seller's price was not readable)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/littelfuse-inc/0297010-WXNV/146591",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "F991-ND",
    "price_usd": null,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/576-0297010.WXNV",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "576-0297010.WXNV",
    "price_usd": 0.33,
    "pack_qty": 1,
    "stock": 47007,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {},
  "sources": [
   "https://www.mouser.com/c/?q=0297010.WXNV"
  ],
  "confidence": "datasheet",
  "used_for": "the C610's 24 V dial rail (and a spare)",
  "qty_per_robot": 2
 },
 {
  "id": "bourns-mf-r300",
  "key": "bourns-mf-r300",
  "category": "power_distribution",
  "vendor": "Bourns",
  "model": "MF-R300",
  "name": "Resettable PTC fuse, 3 A hold, 30 V",
  "price_usd": 0.5,
  "price_note": "Mouser 652-MFR300: $0.5 (read 2026-10-27; the primary seller's price was not readable)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/bourns-inc/MF-R300/259975",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "MF-R300-ND",
    "price_usd": null,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/652-MFR300",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "652-MFR300",
    "price_usd": 0.5,
    "pack_qty": 1,
    "stock": 5353,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {},
  "sources": [
   "https://www.mouser.com/c/?q=MF-R300"
  ],
  "confidence": "datasheet",
  "used_for": "the 12 V aux rail (turret) and the pan servo's 12 V rail (base)",
  "qty_per_robot": 2
 },
 {
  "id": "bourns-mf-r200",
  "key": "bourns-mf-r200",
  "category": "power_distribution",
  "vendor": "Bourns",
  "model": "MF-R200",
  "name": "Resettable PTC fuse, 2 A hold, 30 V",
  "price_usd": 0.45,
  "price_note": "est",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Mouser / Digi-Key",
    "url": "https://www.mouser.com/c/?q=MF-R200",
    "in_stock": null,
    "ships_from": null
   }
  ],
  "specs": {},
  "sources": [
   "https://www.mouser.com/c/?q=MF-R200"
  ],
  "confidence": "datasheet",
  "used_for": "the 5 V logic rail",
  "qty_per_robot": 1
 },
 {
  "id": "te-w12p",
  "key": "te-w12p",
  "category": "wiring",
  "vendor": "TE Connectivity (Deutsch)",
  "model": "W12P",
  "name": "DT wedgelock for the 12-way receptacle",
  "price_usd": 0.88,
  "price_note": "Mouser 571-W12P-P004: $0.88 (read 2026-10-27; the primary seller's price was not readable)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/te-connectivity-deutsch-ict-connectors/W12P/6566598",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "1734-1034-ND",
    "price_usd": null,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/571-W12P-P004",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "571-W12P-P004",
    "price_usd": 0.88,
    "pack_qty": 1,
    "stock": 2620,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {},
  "sources": [
   "https://www.mouser.com/c/?q=W12P"
  ],
  "confidence": "datasheet",
  "used_for": "locks the pins in the DT04-12PA-L012 on the pan base",
  "qty_per_robot": 1
 },
 {
  "id": "te-0460-202-16141",
  "key": "te-0460-202-16141",
  "category": "wiring",
  "vendor": "TE Connectivity (Deutsch)",
  "model": "0460-202-16141",
  "name": "DT size 16 pin contact, nickel, 14-16 AWG",
  "price_usd": 0.45,
  "price_note": "Mouser 571-0460-202-16141: $0.45 (read 2026-10-27; the primary seller's price was not readable)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/te-connectivity-deutsch-ict-connectors/0460-202-16141/7200926",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "1734-1328-ND",
    "price_usd": null,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/571-0460-202-16141",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "571-0460-202-16141",
    "price_usd": 0.45,
    "pack_qty": 1,
    "stock": 267161,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {},
  "sources": [
   "https://www.mouser.com/c/?q=0460-202-16141"
  ],
  "confidence": "datasheet",
  "used_for": "the receptacle's 12 pins",
  "qty_per_robot": 12
 },
 {
  "id": "adafruit-2517",
  "key": "adafruit-2517",
  "category": "wiring",
  "vendor": "Adafruit",
  "model": "2517",
  "name": "Silicone Cover Stranded-Core Wire - 25ft 26AWG - Black",
  "price_usd": 4.95,
  "price_note": "est",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Adafruit",
    "url": "https://www.adafruit.com/product/2517",
    "in_stock": null,
    "ships_from": null
   }
  ],
  "specs": {},
  "sources": [
   "https://www.adafruit.com/product/2517"
  ],
  "confidence": "seller listing",
  "used_for": "the signal leads (twisted pairs for CAN, the safety loop, the gates)",
  "qty_per_robot": 1
 },
 {
  "id": "remington-18ul3173strblu25",
  "key": "remington-18ul3173strblu25",
  "category": "wiring",
  "vendor": "Remington Industries",
  "model": "18UL3173STRBLU25",
  "name": "18 AWG stranded hook-up wire, XLPE 125 C, 25 ft",
  "price_usd": 9.0,
  "price_note": "est",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Zoro",
    "url": "https://www.zoro.com/remington-industries-hookup-wire-18-awg-blue-25-ft-18ul3173strblu25/i/G310059658/",
    "in_stock": null,
    "ships_from": null
   }
  ],
  "specs": {},
  "sources": [
   "https://www.zoro.com/remington-industries-hookup-wire-18-awg-blue-25-ft-18ul3173strblu25/i/G310059658/"
  ],
  "confidence": "seller listing",
  "used_for": "the power pairs: ring to board, board to the CT connector (buy red and black of the same family)",
  "qty_per_robot": 2
 },
 {
  "id": "mcmaster-98952a112",
  "key": "turret_standoff_m3x14",
  "category": "fastener",
  "vendor": "McMaster-Carr",
  "model": "98952A112",
  "name": "Aluminum Male-Female Threaded Hex Standoff, 4.5mm Hex, 14mm Long, M3 x 0.50 mm Thread",
  "price_usd": 0.84,
  "price_note": "McMaster-Carr: $0.84 each (price_usd is per piece)",
  "price_checked": "2026-10-27",
  "pack_qty": 1,
  "pack_price_usd": 0.84,
  "buy": [
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/98952A112/",
    "in_stock": null,
    "ships_from": "US"
   }
  ],
  "specs": {
   "length_mm": 14.0,
   "thread": "M3",
   "mass_g": null,
   "mass_basis": "unknown",
   "material": "Aluminum",
   "mcmaster": {
    "raw": {
     "Material": "Aluminum",
     "Thread Size (A)": "M3",
     "Thread Size (B)": "M3",
     "Thread Pitch (A)": "0.5 mm",
     "Thread Pitch (B)": "0.5 mm",
     "Length": "14 mm",
     "Length Tolerance": "-0.13 mm to 0.13 mm",
     "Hex Size": "4.5 mm",
     "Hex Size Tolerance": "-0.13 mm to 0.13 mm",
     "Thread Lg. (A)": "4.7 mm",
     "Minimum Thread Length (B)": "6.4 mm",
     "Gender (A)": "Male",
     "Gender (B)": "Female",
     "Hardness": "Rockwell B50",
     "Mount Type (A)": "Threaded",
     "Mount Type (B)": "Threaded",
     "Performance": "Corrosion Resistant, Lightweight",
     "Shape": "Hex",
     "System of Measurement": "Metric",
     "Tensile Strength": "45,000 psi",
     "Thread Fit (A)": "Metric Class 6g",
     "Thread Fit (B)": "Metric Class 6H",
     "Country of Origin": "United States",
     "DFARS Compliance": "Specialty Metals COTS-Exempt",
     "Export Control Classification Number (ECCN)": "EAR99",
     "REACH Compliance": "REACH (EC 1907/2006) (02/04/2026, 253 SVHC) Compliant",
     "RoHS Compliance": "RoHS 3 (2015/863/EU) Compliant with Exemptions",
     "RoHS Exemptions": "6(b)-II",
     "Schedule B Number": "761610.8000",
     "U.S.–Mexico–Canada Agreement (USMCA) Qualifying": "Yes"
    },
    "parsed": {
     "Thread Pitch (A)": {
      "value": 0.5,
      "unit": "mm"
     },
     "Thread Pitch (B)": {
      "value": 0.5,
      "unit": "mm"
     },
     "Length": {
      "value": 14.0,
      "unit": "mm"
     },
     "Length Tolerance": {
      "min": -0.13,
      "max": 0.13,
      "unit": "mm"
     },
     "Hex Size": {
      "value": 4.5,
      "unit": "mm"
     },
     "Hex Size Tolerance": {
      "min": -0.13,
      "max": 0.13,
      "unit": "mm"
     },
     "Thread Lg. (A)": {
      "value": 4.7,
      "unit": "mm"
     },
     "Minimum Thread Length (B)": {
      "value": 6.4,
      "unit": "mm"
     },
     "Tensile Strength": {
      "value": 310.2642,
      "unit": "MPa"
     }
    }
   }
  },
  "cad": {
   "file": null,
   "kind": "standoff",
   "frame": "axis +Z, centred on the axis; the larger end (flange, head, collar) at z = 0 and the part on +z; when both ends are the same size, the heavier end at z = 0",
   "available": true,
   "step_url": "https://www.mcmaster.com/98952A112/",
   "bbox_mm": null,
   "volume_mm3": null,
   "pending": "STEP not downloaded yet: McMaster-Carr asks for a login before CAD downloads (the product page itself reads without one). Finish with .venv/bin/python tools/mcmaster_cad.py --catalog --file catalog/turret.json --only turret_standoff_m3x14 once logged in, or save the STEP from a logged-in browser as references/vendor/mcmaster/98952A112/98952A112.step and run the same command."
  },
  "frame": "axis +Z, centred on the axis; the larger end (flange, head, collar) at z = 0 and the part on +z; when both ends are the same size, the heavier end at z = 0",
  "sources": [
   "https://www.mcmaster.com/98952A112/"
  ],
  "confidence": "product page",
  "used_for": "the turret bay's level-2 board over level 1 (the capacitor bank lies between)",
  "qty_per_robot": 4
 },
 {
  "id": "amass-xt60e-m",
  "key": "amass-xt60e-m",
  "category": "wiring",
  "vendor": "Amass",
  "model": "XT60E-M",
  "name": "XT60E-M panel-mount plug (male), 2 screw holes",
  "price_usd": 0.99,
  "price_note": "Jameco 2844431 $0.99 each (search 2026-10-27); PyroDrone 10-pack with screws $11.99, in stock. No Digi-Key or Mouser listing for the Amass part",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Jameco",
    "url": "https://www.jameco.com/z/XT60E-M-Amass-XT60-Socket-Male-Terminals-30A-500V-2-Pin-Flanged-for-Panel-Mount_2844431.html",
    "in_stock": false,
    "ships_from": "US",
    "seller_pn": "2844431",
    "price_usd": 0.99,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   },
   {
    "seller": "PyroDrone",
    "url": "https://pyrodrone.com/collections/electronics/products/amass-xt60e-m-mountable-xt60-male-plug-w-mounting-screws-choose-color",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "F3-13155-BLK",
    "price_usd": 11.99,
    "pack_qty": 10,
    "stock": "in stock",
    "read_on": "2026-10-27"
   }
  ],
  "specs": {},
  "sources": [
   "https://pro.maplin.co.uk/products/male-xt60e-panel-mount-gold-plated-connector-20a-amass"
  ],
  "confidence": "seller listing",
  "used_for": "the bench stand's 24 V inlet: the supply's lead carries the female, so no live pin is bare",
  "qty_per_robot": 1,
  "notes": "Screw spacing and size not published (sellers: ~19-20 mm, M2.5 or M3): the stand's holes are slotted 18-28 mm at Ø3.2. Replaces the XT60E-F (female) the stand first named."
 },
 {
  "id": "littelfuse-0477005-mxp",
  "key": "littelfuse-0477005-mxp",
  "category": "power_distribution",
  "vendor": "Littelfuse",
  "model": "0477005.MXP",
  "name": "5 x 20 mm time-lag fuse, 5 A, 500 V AC / 400 V DC (477 series)",
  "price_usd": 1.0,
  "price_note": "est",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/576-0477005.MXP",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "576-0477005.MXP",
    "price_usd": 2.18,
    "pack_qty": 1,
    "stock": 8590,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/littelfuse-inc/0477005-MXP/1979192",
    "in_stock": null,
    "ships_from": "US"
   }
  ],
  "specs": {
   "current_a": 5,
   "voltage_dc_v": 400
  },
  "sources": [
   "https://rspsupply.com/p-564062-littelfuse-0477005mxp-5x20mm-fuse-5-amp-500-vac400-vdc.aspx"
  ],
  "confidence": "seller listing",
  "used_for": "the bench stand's 24 V fuse: DC-rated (the 218 series the stand first named is rated for AC only)",
  "qty_per_robot": 1
 },
 {
  "id": "molex-43025-0600",
  "key": "molex-43025-0600",
  "category": "wiring",
  "vendor": "Molex",
  "model": "43025-0600",
  "name": "Micro-Fit 3.0 receptacle housing, dual row, 6 circuits",
  "price_usd": 0.51,
  "price_note": "Mouser 538-43025-0600: $0.51 (read 2026-10-27; the primary seller's price was not readable)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/molex/0430250600/252498",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "WM1785-ND",
    "price_usd": null,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/538-43025-0600",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "538-43025-0600",
    "price_usd": 0.51,
    "pack_qty": 1,
    "stock": 207720,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {},
  "sources": [
   "https://heilind.com/mol43025-0600.html"
  ],
  "confidence": "datasheet",
  "used_for": "the CT power connector, cartridge side (docs/turret-wiring.md 1.4)",
  "qty_per_robot": 1
 },
 {
  "id": "molex-43020-0600",
  "key": "molex-43020-0600",
  "category": "wiring",
  "vendor": "Molex",
  "model": "43020-0600",
  "name": "Micro-Fit 3.0 plug housing, dual row, 6 circuits",
  "price_usd": 0.4,
  "price_note": "Mouser 538-43020-0600: $0.4 (read 2026-10-27; the primary seller's price was not readable)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/molex/0430200600/252492",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "WM1779-ND",
    "price_usd": null,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/538-43020-0600",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "538-43020-0600",
    "price_usd": 0.4,
    "pack_qty": 1,
    "stock": 12657,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {},
  "sources": [
   "https://heilind.com/mol43020-0600.html"
  ],
  "confidence": "datasheet",
  "used_for": "the CT power connector, cradle side",
  "qty_per_robot": 1
 },
 {
  "id": "molex-43025-1200",
  "key": "molex-43025-1200",
  "category": "wiring",
  "vendor": "Molex",
  "model": "43025-1200",
  "name": "Micro-Fit 3.0 receptacle housing, dual row, 12 circuits",
  "price_usd": 0.81,
  "price_note": "Mouser 538-43025-1200: $0.81 (read 2026-10-27; the primary seller's price was not readable)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/molex/0430251200/252501",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "WM1788-ND",
    "price_usd": null,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/538-43025-1200",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "538-43025-1200",
    "price_usd": 0.81,
    "pack_qty": 1,
    "stock": 75541,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {},
  "sources": [
   "https://heilind.com/mol43025-1200.html"
  ],
  "confidence": "datasheet",
  "used_for": "the slip ring's stator and rotor connectors (receptacles on the ring's leads, 2 x 6: docs/turret-wiring.md 1.3)",
  "qty_per_robot": 2
 },
 {
  "id": "molex-43020-1200",
  "key": "molex-43020-1200",
  "category": "wiring",
  "vendor": "Molex",
  "model": "43020-1200",
  "name": "Micro-Fit 3.0 plug housing, dual row, 12 circuits",
  "price_usd": 0.82,
  "price_note": "Mouser 538-43020-1200: $0.82 (read 2026-10-27; the primary seller's price was not readable)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/molex/0430201200/252495",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "WM1782-ND",
    "price_usd": null,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/538-43020-1200",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "538-43020-1200",
    "price_usd": 0.82,
    "pack_qty": 1,
    "stock": 13814,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {},
  "sources": [
   "https://heilind.com/mol43020-1200.html"
  ],
  "confidence": "datasheet",
  "used_for": "the base board's and the turret bay's mating plugs for the ring",
  "qty_per_robot": 2
 },
 {
  "id": "molex-43025-1000",
  "key": "molex-43025-1000",
  "category": "wiring",
  "vendor": "Molex",
  "model": "43025-1000",
  "name": "Micro-Fit 3.0 receptacle housing, dual row, 10 circuits",
  "price_usd": 0.75,
  "price_note": "Mouser 538-43025-1000: $0.75 (read 2026-10-27; the primary seller's price was not readable)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/molex/0430251000/252500",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "WM1787-ND",
    "price_usd": null,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/538-43025-1000",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "538-43025-1000",
    "price_usd": 0.75,
    "pack_qty": 1,
    "stock": 131360,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {},
  "sources": [
   "https://heilind.com/mol43025-1000.html"
  ],
  "confidence": "datasheet",
  "used_for": "the CT signal connector, cartridge side (2 x 5)",
  "qty_per_robot": 1
 },
 {
  "id": "molex-43020-1000",
  "key": "molex-43020-1000",
  "category": "wiring",
  "vendor": "Molex",
  "model": "43020-1000",
  "name": "Micro-Fit 3.0 plug housing, dual row, 10 circuits",
  "price_usd": 0.97,
  "price_note": "Mouser 538-43020-1000: $0.97 (read 2026-10-27; the primary seller's price was not readable)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/molex/0430201000/252494",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "WM1781-ND",
    "price_usd": null,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/538-43020-1000",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "538-43020-1000",
    "price_usd": 0.97,
    "pack_qty": 1,
    "stock": 20449,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {},
  "sources": [
   "https://heilind.com/mol43020-1000.html"
  ],
  "confidence": "datasheet",
  "used_for": "the CT signal connector, cradle side (2 x 5)",
  "qty_per_robot": 1
 },
 {
  "id": "vxb-6810-2rs",
  "key": "vxb-6810-2rs",
  "category": "bearing",
  "vendor": "VXB Bearings",
  "model": "Kit7458 (6810-2RS)",
  "name": "6810-2RS Bearing 50x65x7mm - Sealed Ball Bearing - Thin Section (chrome steel)",
  "price_usd": 24.99,
  "price_note": "one unit, VXB store (decided 2026-10-27: the chrome-steel sealed 6810-2RS, not the $194.88 stainless)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "VXB Bearings",
    "url": "https://vxb.com/products/6810-2rs-bearing-50x65x7mm-sealed",
    "in_stock": true,
    "ships_from": "US"
   }
  ],
  "specs": {
   "bore_mm": 50,
   "od_mm": 65,
   "width_mm": 7,
   "mass_g": 52,
   "seal": "2RS"
  },
  "sources": [
   "https://vxb.com/products/6810-2rs-bearing-50x65x7mm-sealed"
  ],
  "confidence": "product page",
  "used_for": "the pan bearing (cad/turret.py BRG): outer race in the pan base's seat under the clamp, inner race on the turntable's journal",
  "qty_per_robot": 1
 },
 {
  "id": "quarton-vlm-520-73-lpt",
  "key": "quarton-vlm-520-73-lpt",
  "category": "turret",
  "vendor": "Quarton",
  "model": "VLM-520-73 LPT",
  "name": "Green dot laser module 520 nm, < 1 mW (Class 2), 3-6 V DC, Ø7 x 26.1 mm",
  "price_usd": 43.49,
  "price_note": "Digi-Key 100-VLM-520-73LPT-ND, one unit, 189 in stock, 4-week standard lead (Octopart, 2026-10-26)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/quarton-inc/VLM-520-73-LPT/10523439",
    "in_stock": true,
    "ships_from": "US"
   }
  ],
  "specs": {
   "diameter_mm": 7.0,
   "length_mm": 26.1,
   "mass_g": 3.8,
   "voltage_v": [
    3,
    6
   ],
   "class": "2"
  },
  "sources": [
   "https://wmsc.lcsc.com/wmsc/upload/file/pdf/v2/lcsc/2404171146_Quarton--Inc--VLM-520-73-LPT_C5997388.pdf"
  ],
  "confidence": "datasheet",
  "used_for": "the aiming laser in its mount on the cradle (Class 2, under 1 mW: kid-safe), on the 5 V rail through a logic MOSFET",
  "qty_per_robot": 1,
  "notes": "Replaces the Picotronic DD520-1-24 (EUR 320, maker's store in Germany only): the same green dot class at an eighth of the price, listed at Digi-Key and LCSC (C5997388). v0 uses the red VLM-650-03 LPT (D42); this green one is the v1 option (Digi-Key $43.49, 189 in stock per Octopart 2026-10-26)."
 },
 {
  "id": "sendcutsend-pan-clamp",
  "key": "sendcutsend-pan-clamp",
  "category": "turret",
  "vendor": "SendCutSend",
  "model": "pan_clamp.dxf (6061-T6, 0.125 in)",
  "name": "Pan clamp ring, laser-cut 6061-T6 aluminium 0.125 in, 86 x 87 mm, 7 holes",
  "price_usd": null,
  "price_note": "instant price on upload of exports/turret/pan_clamp.dxf at sendcutsend.com (no quote): est $8-15 for one in 6061-T6 0.125 in",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "SendCutSend",
    "url": "https://sendcutsend.com/materials/6061-t6-aluminum/",
    "in_stock": null,
    "ships_from": "US"
   }
  ],
  "specs": {
   "material": "6061-T6 aluminium",
   "thickness_in": 0.125,
   "thickness_mm": 3.175,
   "mass_g": 17.8,
   "drawing": "exports/turret/pan_clamp.dxf"
  },
  "sources": [
   "https://sendcutsend.com/materials/6061-t6-aluminum/"
  ],
  "confidence": "estimate",
  "used_for": "holds the pan bearing's outer race down (5 x M3 x 8 into the housing ears); FEA SF 3.1 on the lift case",
  "qty_per_robot": 1
 },
 {
  "id": "sunnysky-x2216-880kv-v3",
  "key": "sunnysky-x2216-880kv-v3",
  "category": "turret",
  "preferred": true,
  "vendor": "SunnySky",
  "model": "X2216 V3 880KV, short shaft (SKU SS-XV3-X2216-S-880-V3)",
  "name": "SunnySky X2216 880KV V3 outrunner, short shaft, with its bolt-on prop adapter and X-mount",
  "price_usd": 24.99,
  "price_note": "SunnySky USA, V3, one unit (V2 $18.99), read 2026-10-27 (docs/turret-prototype-plan.md 3.1)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "SunnySky USA",
    "url": "https://sunnyskyusa.com/products/sunnysky-x2216?variant=15890897469534",
    "in_stock": true,
    "ships_from": null,
    "seller_pn": "SS-XV3-X2216-S-880-V3 (variant 15890897469534, '880 Short')",
    "price_usd": 24.99,
    "pack_qty": 1,
    "stock": "available: true (Shopify; no count exposed)",
    "read_on": "2026-10-27",
    "how_read": "json"
   },
   {
    "seller": "ReadyMadeRC",
    "url": "https://www.readymaderc.com/products/details/sunny-sky-x2216-brushless-motor-short-shaft-880kv",
    "in_stock": true,
    "ships_from": null,
    "seller_pn": "SS-XV3-X2216-S-880-V3 (RMRC 84776, GTIN 680306447725)",
    "price_usd": 22.99,
    "pack_qty": 1,
    "stock": "In Stock (no quantity shown)",
    "read_on": "2026-10-27",
    "how_read": "page"
   },
   {
    "seller": "Amazon",
    "url": "https://www.amazon.com/dp/B0BR4VV3FG",
    "in_stock": true,
    "ships_from": null,
    "seller_pn": "ASIN B0BR4VV3FG",
    "price_usd": 26.99,
    "pack_qty": 1,
    "stock": "Only 3 left in stock - order soon",
    "read_on": "2026-10-27",
    "how_read": "page"
   }
  ],
  "specs": {
   "kv_rpm_per_v": 880,
   "poles": 14,
   "slots": 12,
   "pole_pairs": 7,
   "stator_mm": "22 x 16",
   "diameter_mm": 27.7,
   "length_mount_face_to_bell_face_mm": 32.0,
   "length_with_front_boss_mm": 34.0,
   "length_overall_mm": 36.5,
   "shaft_diameter_mm": 3.175,
   "front_boss_mm": "Ø9 x 2.0",
   "mount": "4 x M3 x 0.5, 2.8 deep, on the diagonals 45 deg either side of the lead exit: 19 apart on one, 16 on the other",
   "prop_adapter": "bolt-on: Ø17 x 4 flange on 3 x M2 into the bell on Ø12 (Ø9 recess over the boss), Ø5 (0/-0.03) pilot 5.5 long, M5 x 0.8 stud 13 long; washer Ø14.8 x 2 (Ø5.1)",
   "mass_g": 72,
   "mass_note": "72 g with leads (SunnySky's table); 67.5 g (RMRC)",
   "resistance_ohm": 0.117,
   "resistance_note": "117 mOhm (SunnySky's table); 89 mOhm (RMRC)",
   "no_load_current_a": 0.5,
   "no_load_current_at_v": 10.0,
   "kt_nm_per_a": 0.01085,
   "no_load_speed_rpm": 10560,
   "no_load_speed_note": "880 rpm/V x 12 V, the fixed flywheel rail (D5, D42)",
   "rotor_inertia_kg_mm2": 4.8,
   "rotor_inertia_note": "est from the drawing (not published): steel can Ø27.7 x 0.8 x 24.5 (13.4 g at r 13.45) + 14 magnets ~15 g at r 12 + end cap: 4.8 kg mm2 +-30 %",
   "max_continuous_a": 30,
   "leads": "18 AWG x 100-110 mm with connectors",
   "voltage_range_v": [
    7.4,
    14.8
   ]
  },
  "cad": {
   "step_url": null,
   "available": false,
   "drawing_url": "http://www.rcsunnysky.com/Uploads/ueditor/image/20190903/6370311669556908787898053.jpg"
  },
  "sources": [
   "https://en.rcsunnysky.com/x-fixedwingseries/1102.html",
   "http://www.rcsunnysky.com/Uploads/ueditor/image/20190903/6370311669556908787898053.jpg",
   "https://www.readymaderc.com/products/details/sunny-sky-x2216-brushless-motor-short-shaft-880kv"
  ],
  "confidence": "datasheet",
  "used_for": "the two flywheel motors (D42), hanging bell-down under the cartridge's cage plate; the hub clamps on the bolt-on prop adapter",
  "qty_per_robot": 2,
  "notes": "Replaces the delisted DJI Snail 2305 (D42). 880 rpm/V sits in the cage's band on the fixed 12 V rail with Ø34 tyres (worst-corner ball 64.1 fps, docs/turret-prototype-plan.md 3.1). The drawing gives the stack and the 16/19 cross; the cage plate's radial slots take the cross in any quarter turn. Screws into the mount face must not reach past 2.8 mm (M3 x 6 through the 3.5 mm plate). The box has the bolt-on prop adapter, its washer and an X-mount (not used)."
 },
 {
  "id": "tmotor-mn2212-v2-920kv",
  "key": "tmotor-mn2212-v2-920kv",
  "category": "turret",
  "vendor": "T-Motor",
  "model": "MN2212 V2 920KV (Navigator)",
  "name": "T-Motor MN2212 V2 920KV outrunner (the flywheel motor's backup part)",
  "price_usd": 55.9,
  "price_note": "RobotShop US, one unit, 'In stock' (page, 2026-10-27); T-Motor store $46.90 (China)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "RobotShop",
    "url": "https://www.robotshop.com/products/t-motor-navigator-mn2212-v2-920kv-brushless-motor",
    "in_stock": true,
    "ships_from": "US"
   }
  ],
  "specs": {
   "kv_rpm_per_v": 920,
   "mass_g": 54,
   "mass_with_leads_g": 65,
   "shaft_diameter_mm": 4.0,
   "mount": "16 x 19 and 19 x 25 M3 patterns (RobotShop listing)"
  },
  "cad": {
   "step_url": null,
   "available": false
  },
  "sources": [
   "https://www.robotshop.com/products/t-motor-navigator-mn2212-v2-920kv-brushless-motor"
  ],
  "confidence": "seller listing",
  "used_for": "backup for the X2216 only if no 880 KV motor can be had: Ø34 tyres only",
  "qty_per_robot": 2,
  "notes": "At the KV edge: worst-corner ball 67.0 fps on Ø34, over the 66 fps bench limit by the formula, so the bench ceiling test (4.2) decides; a 4 mm shaft and a different stack height, so its hub and cage plate are a CAD change (not drop-in)."
 },
 {
  "id": "lumenier-razor-pro-f4-45a-am32",
  "key": "lumenier-razor-pro-f4-45a-am32",
  "category": "turret",
  "vendor": "Lumenier",
  "model": "Razor Pro F4 45A 2-6S AM32 ESC (single)",
  "name": "Lumenier Razor Pro F4 45A 2-6S AM32 single ESC (the flywheel ESC's backup)",
  "price_usd": 31.49,
  "price_note": "RaceDayQuads, one unit, available: true (page, 2026-10-27); GetFPV $23.99 (stock unconfirmed)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "RaceDayQuads",
    "url": "https://www.racedayquads.com/products/lumenier-razor-pro-f4-45a-2-6s-am32-esc",
    "in_stock": true,
    "ships_from": null,
    "seller_pn": "22300 (UPC 724376363650)",
    "price_usd": 31.49,
    "pack_qty": 1,
    "stock": "available: true (Shopify; no count exposed)",
    "read_on": "2026-10-27",
    "how_read": "json"
   },
   {
    "seller": "GetFPV",
    "url": "https://www.getfpv.com/lumenier-razor-pro-f4-45a-2-6s-am32-esc.html",
    "in_stock": null,
    "ships_from": null,
    "seller_pn": "not read",
    "price_usd": 31.49,
    "pack_qty": 1,
    "stock": "unknown (page returns 403 to automated reads)",
    "read_on": "2026-10-27",
    "how_read": "snippet"
   }
  ],
  "specs": {
   "size_mm": [
    28,
    12,
    5
   ],
   "mass_g": 3,
   "continuous_current_a": 45,
   "burst_current_a": 60,
   "cells_s": [
    2,
    6
   ],
   "firmware": "AM32",
   "bec": false,
   "signal_wire_mm": 150
  },
  "cad": {
   "step_url": null,
   "available": false
  },
  "sources": [
   "https://www.getfpv.com/lumenier-razor-pro-f4-45a-2-6s-am32-esc.html",
   "https://www.racedayquads.com/products/lumenier-razor-pro-f4-45a-2-6s-am32-esc"
  ],
  "confidence": "product page",
  "used_for": "backup for the Repeat Robotics AM32 35A flywheel ESCs: same place on the cartridge board",
  "qty_per_robot": 2,
  "notes": "Stock AM32 with bidirectional DShot and a telemetry pad; needs the same AM32 configurator settings (firmware/turret/am32_settings.md)."
 },
 {
  "id": "quarton-vlm-650-03-lpt",
  "key": "quarton-vlm-650-03-lpt",
  "category": "turret",
  "preferred": true,
  "vendor": "Quarton",
  "model": "VLM-650-03 LPT",
  "name": "Red dot laser module 650 nm, < 1 mW (Class 2), 2.6-6 V, Ø7 x 22.5 mm",
  "price_usd": 25.03,
  "price_note": "Digi-Key VLM-650-03-LPT-ND $25.03 at 1, 966 in stock (Octopart 2026-10-27); backup VLM-635-03 LPT (Ø7, Class II) $28.91, 36",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/quarton-inc/VLM-650-03-LPT/1010454",
    "in_stock": true,
    "ships_from": null,
    "seller_pn": "VLM-650-03-LPT-ND",
    "price_usd": 25.03,
    "pack_qty": 1,
    "stock": "966 (authorized; Octopart data updated 2026-10-26 12:48 UTC)",
    "read_on": "2026-10-27",
    "how_read": "octopart"
   },
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/result?keywords=VLM-635-03LPT-ND",
    "in_stock": null,
    "ships_from": null,
    "seller_pn": "VLM-635-03LPT-ND",
    "price_usd": 28.91,
    "pack_qty": 1,
    "stock": "36 (authorized; Octopart data updated 2026-10-26 12:48 UTC)",
    "read_on": "2026-10-27",
    "how_read": "octopart"
   }
  ],
  "specs": {
   "wavelength_nm": 650,
   "power_mw": 1.0,
   "class": "2",
   "diameter_mm": 7.0,
   "length_mm": 22.5,
   "voltage_v": [
    2.6,
    6.0
   ],
   "current_ma_max": 35,
   "mass_g": 3.0
  },
  "cad": {
   "step_url": null,
   "available": false
  },
  "sources": [
   "https://www.digikey.com/en/products/detail/quarton-inc/VLM-650-03-LPT/1010454"
  ],
  "confidence": "product page",
  "used_for": "the aiming laser in its mount on the cradle (D42), on 5 V through the 2N7000",
  "qty_per_robot": 1,
  "notes": "Replaces the green VLM-520-73 LPT (0 stock, 4-week lead) in the same Ø7 bore. The LPA variants are 2.5 mW Class IIIa: not allowed (kid-safety). Quarton's datasheet gives the body Ø7.00 x 22.50 (the plan said 21). The VLM-650-28 LPT the plan named as a backup is a line laser (Ø9, Class I): not a backup."
 },
 {
  "id": "ti-cd74hc123e",
  "key": "ti-cd74hc123e",
  "category": "turret",
  "vendor": "Texas Instruments",
  "model": "CD74HC123E",
  "name": "Dual retriggerable monostable, 74HC123, PDIP-16",
  "price_usd": 0.99,
  "price_note": "Digi-Key 296-9171-5-ND $0.99 (Octopart feed 2026-10-27); Mouser 595-CD74HC123E $1.03",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/texas-instruments/CD74HC123E/376825",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "296-9171-5-ND",
    "price_usd": 0.99,
    "pack_qty": 1,
    "stock": 2808,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/595-CD74HC123E",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "595-CD74HC123E",
    "price_usd": 1.03,
    "pack_qty": 1,
    "stock": 2680,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {
   "package": "PDIP-16",
   "supply_v": [
    2,
    6
   ],
   "timing": "tw = 0.45 Rx Cx (CD74HC123 data sheet, for Cx > 10 nF; TI SCHS142)"
  },
  "cad": {
   "step_url": null,
   "available": false
  },
  "sources": [
   "https://www.digikey.com/en/products/detail/texas-instruments/CD74HC123E/376825",
   "https://www.mouser.com/ProductDetail/595-CD74HC123E"
  ],
  "confidence": "product page",
  "used_for": "both one-shots of the safety chain in one package: the 20 ms retriggerable pulse detector and the 2.98 ms trip window (level 1)",
  "qty_per_robot": 1,
  "notes": "Replaces the SN74HC123N (broker stock only). The pulse width formula differs from the SN74HC123's: the R and C of both one-shots are chosen for the CD74HC123 (docs/turret-wiring.md), and bench test 3.3 selects the trip window's R."
 },
 {
  "id": "bourns-mf-r250",
  "key": "bourns-mf-r250",
  "category": "turret",
  "vendor": "Bourns",
  "model": "MF-R250",
  "name": "PTC resettable fuse, 30 V, 2.5 A hold, 5.0 A trip, radial",
  "price_usd": 0.49,
  "price_note": "Mouser 652-MFR250 $0.49, 8,520 in stock (oemstrade 2026-10-27); Digi-Key MF-R250-ND (price not readable)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/bourns-inc/MF-R250/1232772",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "MF-R250-ND",
    "price_usd": null,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/652-MFR250",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "652-MFR250",
    "price_usd": 0.49,
    "pack_qty": 1,
    "stock": 8520,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {
   "hold_a": 2.5,
   "trip_a": 5.0,
   "v_max": 30,
   "pitch_mm": 5.1
  },
  "cad": {
   "step_url": null,
   "available": false
  },
  "sources": [
   "https://www.digikey.com/en/products/detail/bourns-inc/MF-R250/1232772",
   "https://www.mouser.com/ProductDetail/652-MFR250"
  ],
  "confidence": "product page",
  "used_for": "the polyfuse on the 5 V logic rail (level 1)",
  "qty_per_robot": 1,
  "notes": "MF-R200 does not exist (Bourns' MF-R series goes from MF-R185 to MF-R250); the MF-R250 is the same body and pitch as the MF-R300, about 2.1 A hold at 40 C."
 },
 {
  "id": "onsemi-2n7000",
  "key": "onsemi-2n7000",
  "category": "turret",
  "vendor": "onsemi",
  "model": "2N7000",
  "name": "N-channel MOSFET 60 V 200 mA, TO-92",
  "price_usd": 1.23,
  "price_note": "Mouser 512-2N7000 $1.23, 95,079 in stock (oemstrade 2026-10-27); Digi-Key 2N7000FS-ND about $0.66 (search copy, not confirmed)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/onsemi/2N7000/244278",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "2N7000FS-ND",
    "price_usd": null,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/512-2N7000",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "512-2N7000",
    "price_usd": 1.23,
    "pack_qty": 1,
    "stock": 95079,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {
   "package": "TO-92",
   "vds_v": 60,
   "id_ma": 200
  },
  "cad": {
   "step_url": null,
   "available": false
  },
  "sources": [
   "https://www.digikey.com/en/products/detail/onsemi/2N7000/244278",
   "https://www.mouser.com/ProductDetail/512-2N7000"
  ],
  "confidence": "product page",
  "used_for": "the laser's low-side switch on level 1 (gate from the Feather's LASER_EN)",
  "qty_per_robot": 1,
  "notes": ""
 },
 {
  "id": "keystone-3568",
  "key": "keystone-3568",
  "category": "turret",
  "vendor": "Keystone Electronics",
  "model": "3568",
  "name": "PCB holder for MINI (297) blade fuses, fully insulated, 30 A 500 VAC",
  "price_usd": 1.41,
  "price_note": "Mouser 534-3568-15 (the blue 15 A colour) $1.41, 2,411 in stock (oemstrade 2026-10-27); Digi-Key 36-3568-ND (price not readable)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/keystone-electronics/3568/2137306",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "36-3568-ND",
    "price_usd": null,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/534-3568-15",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "534-3568-15",
    "price_usd": 1.41,
    "pack_qty": 1,
    "stock": 2411,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {
   "body_mm": [
    16.0,
    6.73,
    7.37
   ],
   "pins": "4 x Ø1.57 on 9.9 x 3.40 mm, in Ø1.6 holes (not on the 0.1 in grid: drill the perfboard)"
  },
  "cad": {
   "step_url": null,
   "available": false
  },
  "sources": [
   "https://www.digikey.com/en/products/detail/keystone-electronics/3568/2137306",
   "https://www.mouser.com/ProductDetail/534-3568-15"
  ],
  "confidence": "product page",
  "used_for": "the 15 A MINI fuse at the flywheel regulator's input (level 0)",
  "qty_per_robot": 1,
  "notes": "The Keystone 3557-2 takes ATO and low-profile MINI blades only, not MINI 297 (Keystone catalogue p. 41-42): the base board's 10 A ATO stays in a 3557-2, the level-0 MINI in this."
 },
 {
  "id": "molex-43030-0010",
  "key": "molex-43030-0010",
  "category": "turret",
  "vendor": "Molex",
  "model": "43030-0010",
  "name": "Micro-Fit 3.0 female crimp terminal, tin, 26-30 AWG",
  "price_usd": 0.2,
  "price_note": "Mouser 538-43030-0010 $0.20 (1), $0.153 (25), 287,656 in stock (oemstrade 2026-10-27)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/538-43030-0010",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "538-43030-0010",
    "price_usd": 0.2,
    "pack_qty": 1,
    "stock": 287656,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/molex/0430300010/252480",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "WM1838-ND",
    "price_usd": null,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {
   "awg": [
    26,
    30
   ],
   "plating": "tin"
  },
  "cad": {
   "step_url": null,
   "available": false
  },
  "sources": [
   "https://www.mouser.com/ProductDetail/538-43030-0010"
  ],
  "confidence": "product page",
  "used_for": "the slip ring's own 28 AWG leads into the two 2 x 6 receptacles (43025-1200), one per lead",
  "qty_per_robot": 24,
  "notes": "The 20-24 AWG crimps (43030-0001) do not hold a 28 AWG lead; the board side of each ring connector is the plug (43020-1200) with 43031-0001 males on 24 AWG."
 },
 {
  "id": "pololu-ul1007-24awg-60ft",
  "key": "pololu-ul1007-24awg-60ft",
  "category": "turret",
  "vendor": "Pololu",
  "model": "2630 (black), 2632 (red), 2634 (yellow), 2639 (white)",
  "name": "Stranded hook-up wire, 24 AWG UL1007, 60 ft spool",
  "price_usd": 10.95,
  "price_note": "Pololu $10.95 per 60 ft spool (2630 black: 441 in stock, page 2026-10-27)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Pololu",
    "url": "https://www.pololu.com/product/2630",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "2630",
    "price_usd": 10.95,
    "pack_qty": 60,
    "stock": "InStock (page data-available-stock=441); category page showed some colours as out of stock/backorder",
    "read_on": "2026-10-27"
   },
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/remington-industries/24UL1007STRKIT/11613669",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": null,
    "price_usd": 31.63,
    "pack_qty": 6,
    "stock": null,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {
   "awg": 24,
   "strands": "11 x 0.16 mm",
   "od_mm": 1.4,
   "insulation": "PVC UL1007"
  },
  "cad": {
   "step_url": null,
   "available": false
  },
  "sources": [
   "https://www.pololu.com/product/2630",
   "https://www.digikey.com/en/products/detail/remington-industries/24UL1007STRKIT/11613669"
  ],
  "confidence": "product page",
  "used_for": "every 24 AWG signal and logic run; fits the Micro-Fit 20-24 AWG crimps (1.85 mm insulation at most)",
  "qty_per_robot": 4,
  "notes": "One spool per colour: black 2630, red 2632, yellow 2634, white 2639 (Pololu); 26 AWG is outside the 43030-0001's range."
 },
 {
  "id": "remington-18ptfestr-25ft",
  "key": "remington-18ptfestr-25ft",
  "category": "turret",
  "vendor": "Remington Industries",
  "model": "18PTFESTRBLA25 (black) / 18PTFESTRRED25 (red)",
  "name": "Hook-up wire 18 AWG stranded PTFE, 600 V, 25 ft",
  "price_usd": 64.56,
  "price_note": "Digi-Key $64.56 per 25 ft spool (search result page 2026-10-27)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/remington-industries/18PTFESTRBLA25/11613433",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": null,
    "price_usd": 64.56,
    "pack_qty": 25,
    "stock": null,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/602-6825-100-02",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "602-6825-100-02",
    "price_usd": 120.87,
    "pack_qty": 100,
    "stock": "2 (Mouser, via oemstrade feed today)",
    "read_on": "2026-10-27"
   }
  ],
  "specs": {
   "awg": 18,
   "strands": 19,
   "od_mm": 1.75,
   "insulation": "PTFE"
  },
  "cad": {
   "step_url": null,
   "available": false
  },
  "sources": [
   "https://www.digikey.com/en/products/detail/remington-industries/18PTFESTRBLA25/11613433",
   "https://www.mouser.com/ProductDetail/602-6825-100-02"
  ],
  "confidence": "product page",
  "used_for": "the CT power cable and pigtail (12 V FLY, 12 V FEED, GND) and the stand's 24 V runs",
  "qty_per_robot": 1,
  "notes": "The Micro-Fit 18 AWG crimp (43030-0038) takes insulation up to 1.85 mm (Molex 43030-0040 data sheet); no 18 AWG silicone wire at the allowed sellers fits (2.41 mm and up). One black spool, with red heat-shrink markers on the + conductors. Backup: Alpha Wire 6825 (mPPE, 1.57 mm) at Mouser, 0 in stock today."
 },
 {
  "id": "turret_screw_m2x6_flat",
  "key": "turret_screw_m2x6_flat",
  "category": "fastener",
  "vendor": "McMaster-Carr",
  "model": "92125A052",
  "name": "18-8 Stainless Steel Hex-Drive Flat Head Screw, M2 x 0.4 mm Thread Size, 6 mm Long",
  "price_usd": 0.24,
  "price_note": "McMaster-Carr: $12.00 per pack of 50 (price_usd is per piece; product page read 2026-10-27)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/92125A052/",
    "in_stock": null,
    "ships_from": "US"
   }
  ],
  "specs": {
   "thread": "M2 x 0.4",
   "length_mm": 6,
   "head": "90 deg flat, hex drive",
   "material": "18-8 stainless steel"
  },
  "cad": {
   "step_url": "https://www.mcmaster.com/92125A052/",
   "available": false,
   "pending": "STEP not downloaded yet: McMaster-Carr asks for a login before CAD downloads."
  },
  "sources": [
   "https://www.mcmaster.com/92125A052/"
  ],
  "confidence": "product page",
  "used_for": "the feed servo under the dial floor: 4 x M2 x 6 countersunk from above through the 3 mm floor, 3 mm into the servo's output face",
  "qty_per_robot": 4,
  "notes": "",
  "pack_qty": 50,
  "pack_price_usd": 12.0
 },
 {
  "id": "bulgin-r13244aaaa",
  "key": "bulgin-r13244aaaa",
  "category": "turret",
  "vendor": "Bulgin",
  "model": "R13244AAAA",
  "name": "Round snap-in rocker switch, DPST, 10 A 28 VDC (UL), Ø20.2 panel hole, panels to 3 mm",
  "price_usd": 4.58,
  "price_note": "Digi-Key 708-3111-ND $4.58, 866 in stock; Mouser 167-R13244AAAA $4.13, 347 (Octopart 2026-10-27)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/result?keywords=708-3111-ND",
    "in_stock": true,
    "ships_from": null,
    "seller_pn": "708-3111-ND",
    "price_usd": 4.58,
    "pack_qty": 1,
    "stock": "866 (Octopart, updated 2026-10-26 12:48 UTC)",
    "read_on": "2026-10-27",
    "how_read": "octopart"
   },
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/167-R13244AAAA",
    "in_stock": true,
    "ships_from": null,
    "seller_pn": "167-R13244AAAA",
    "price_usd": 4.13,
    "pack_qty": 1,
    "stock": "347 (Octopart, updated 2026-10-26 21:01 UTC)",
    "read_on": "2026-10-27",
    "how_read": "octopart"
   }
  ],
  "specs": {
   "poles": 2,
   "rating": "10 A 28 VDC",
   "panel_hole_mm": 20.2,
   "panel_max_mm": 3.0
  },
  "cad": {
   "step_url": null,
   "available": false
  },
  "sources": [
   "https://www.digikey.com/en/products/result?keywords=708-3111-ND",
   "https://www.mouser.com/ProductDetail/167-R13244AAAA"
  ],
  "confidence": "product page",
  "used_for": "the bench stand's power switch on the 24 V input",
  "qty_per_robot": 1,
  "notes": "The DC-rated rocker sold by Digi-Key and Mouser. Same Ø20.2 hole as the Switch Components RA1-1A-DC-2-B-1 (the plan's choice: RS Americas $1.54, 7 in stock; TME $1.98), which is the backup."
 },
 {
  "id": "switchcomponents-ra1-1a-dc-2-b-1",
  "key": "switchcomponents-ra1-1a-dc-2-b-1",
  "category": "turret",
  "vendor": "Switch Components",
  "model": "RA1-1A-DC-2-B-1",
  "name": "Round snap-in rocker switch, SPST, 10 A 28 VDC, Ø20.2 hole with a 2.2 mm key notch, panel 2.0-3.0 mm",
  "price_usd": 1.54,
  "price_note": "RS Americas 74355352 $1.54, 7 in stock; TME $1.98, 178 (Octopart 2026-10-27); Jameco 2337967 (not confirmed)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "RS Americas",
    "url": "https://us.rs-online.com/product/switch-components-inc/ra1-1a-dc-2-b-1/74355352/",
    "in_stock": null,
    "ships_from": null,
    "seller_pn": "74355352",
    "price_usd": 1.54,
    "pack_qty": 1,
    "stock": "7 (Octopart, updated 2026-10-26 19:45 UTC; oemstrade also shows 7)",
    "read_on": "2026-10-27",
    "how_read": "octopart"
   },
   {
    "seller": "TME",
    "url": "https://www.tme.eu/en/details/ra1-1a-dc-2-b-1/",
    "in_stock": true,
    "ships_from": null,
    "seller_pn": "RA1-1A-DC-2-B-1",
    "price_usd": 1.98,
    "pack_qty": 1,
    "stock": "178 (Octopart updated 2026-10-27 12:31 UTC; oemstrade also 178)",
    "read_on": "2026-10-27",
    "how_read": "octopart"
   },
   {
    "seller": "Jameco",
    "url": "https://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?langId=-1&storeId=10001&catalogId=10001&productId=2337967",
    "in_stock": true,
    "ships_from": null,
    "seller_pn": "2337967",
    "price_usd": 1.54,
    "pack_qty": 1,
    "stock": "not confirmed today (planner's snippet: 1,222 in stock; $1.54 at 10+, NCNR)",
    "read_on": "2026-10-27",
    "how_read": "snippet"
   }
  ],
  "specs": {
   "poles": 1,
   "rating": "10 A 28 VDC",
   "panel_hole_mm": 20.2,
   "key_notch_mm": 2.2,
   "panel_mm": [
    2.0,
    3.0
   ]
  },
  "cad": {
   "step_url": null,
   "available": false
  },
  "sources": [
   "https://us.rs-online.com/product/switch-components-inc/ra1-1a-dc-2-b-1/74355352/",
   "https://www.tme.eu/en/details/ra1-1a-dc-2-b-1/",
   "https://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?langId=-1&storeId=10001&catalogId=10001&productId=2337967"
  ],
  "confidence": "product page",
  "used_for": "backup for the stand's rocker",
  "qty_per_robot": 1,
  "notes": "Not sold by Digi-Key or Mouser today: the Bulgin R13244AAAA is the primary."
 },
 {
  "id": "meanwell-lrs-350-24",
  "key": "meanwell-lrs-350-24",
  "category": "turret",
  "vendor": "Mean Well",
  "model": "LRS-350-24",
  "name": "Enclosed AC-DC supply, 24 V 14.6 A, 350 W",
  "price_usd": 32.1,
  "price_note": "Jameco 2219823 $32.10, 245 in stock (Octopart 2026-10-27); TRC Electronics $34.81, 2,902 in stock (page)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Jameco",
    "url": "https://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?langId=-1&storeId=10001&catalogId=10001&productId=2219823",
    "in_stock": true,
    "ships_from": null,
    "seller_pn": "2219823",
    "price_usd": 32.1,
    "pack_qty": 1,
    "stock": "245 (Octopart, updated 2026-10-27 06:18 UTC)",
    "read_on": "2026-10-27",
    "how_read": "octopart"
   },
   {
    "seller": "TRC Electronics",
    "url": "https://www.trcelectronics.com/products/mean-well-lrs-350-24",
    "in_stock": true,
    "ships_from": null,
    "seller_pn": "LRS-350-24",
    "price_usd": 34.81,
    "pack_qty": 1,
    "stock": "In Stock: 2,902 can ship now",
    "read_on": "2026-10-27",
    "how_read": "page"
   }
  ],
  "specs": {
   "v_out": 24,
   "i_out_a": 14.6,
   "w": 350
  },
  "cad": {
   "step_url": null,
   "available": false
  },
  "sources": [
   "https://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?langId=-1&storeId=10001&catalogId=10001&productId=2219823",
   "https://www.trcelectronics.com/products/mean-well-lrs-350-24"
  ],
  "confidence": "product page",
  "used_for": "the bench's 24 V supply (current limit set on the bench, test plan)",
  "qty_per_robot": 1,
  "notes": "Backup part LRS-200-24 (8.8 A): TRC $27.22, Jameco and Master Electronics $25.10. Digi-Key and Mouser do not list either today."
 },
 {
  "id": "caldwell-ballistic-precision-chronograph-bt",
  "key": "caldwell-ballistic-precision-chronograph-bt",
  "category": "turret",
  "vendor": "Caldwell",
  "model": "4001147",
  "name": "Ballistic Precision chronograph with Bluetooth (optical)",
  "price_usd": 168.99,
  "price_note": "Caldwell's store $168.99, In Stock (page 2026-10-27)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Caldwell",
    "url": "https://www.caldwellshooting.com/range-gear/range-essentials/chronographs/ballistic-precision-chronograph-with-bluetooth/4001147.html",
    "in_stock": true,
    "ships_from": null,
    "seller_pn": "SKU 4001147",
    "price_usd": 168.99,
    "pack_qty": 1,
    "stock": "Availability: In Stock",
    "read_on": "2026-10-27",
    "how_read": "page"
   },
   {
    "seller": "Competition Electronics",
    "url": "https://competitionelectronics.com/products/prochrono-dlx",
    "in_stock": true,
    "ships_from": null,
    "seller_pn": "CEI-3820",
    "price_usd": 139.95,
    "pack_qty": 1,
    "stock": "available: true",
    "read_on": "2026-10-27",
    "how_read": "json"
   },
   {
    "seller": "Graf & Sons",
    "url": "https://grafs.com/products/competition-electronics-prochrono-dlx-chronograph",
    "in_stock": true,
    "ships_from": null,
    "seller_pn": "CE3820 (Shopify variant 46624058671235)",
    "price_usd": 136.99,
    "pack_qty": 1,
    "stock": "available: true",
    "read_on": "2026-10-27",
    "how_read": "json"
   }
  ],
  "specs": {
   "type": "optical gates"
  },
  "cad": {
   "step_url": null,
   "available": false
  },
  "sources": [
   "https://www.caldwellshooting.com/range-gear/range-essentials/chronographs/ballistic-precision-chronograph-with-bluetooth/4001147.html",
   "https://competitionelectronics.com/products/prochrono-dlx",
   "https://grafs.com/products/competition-electronics-prochrono-dlx-chronograph"
  ],
  "confidence": "product page",
  "used_for": "the reference chronograph 1 m out beside the barrel's own gates (bench tests 4.2-4.4)",
  "qty_per_robot": 1,
  "notes": "Backup: Competition Electronics ProChrono DLX, $139.95 at the maker, $136.99 at grafs.com (both available). Optical gates read foam balls."
 },
 {
  "id": "waveshare-bus-servo-adapter-a",
  "key": "waveshare-bus-servo-adapter-a",
  "category": "turret",
  "vendor": "Waveshare",
  "model": "Bus Servo Adapter (A), SKU 25514",
  "name": "USB / UART adapter for Feetech serial bus servos",
  "price_usd": 4.99,
  "price_note": "Waveshare $4.99, In stock (page 2026-10-27); Amazon B0CJ6TP3TP $12.99",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Waveshare",
    "url": "https://www.waveshare.com/bus-servo-adapter-a.htm",
    "in_stock": true,
    "ships_from": null,
    "seller_pn": "25514 (MPN 'Bus Servo Adapter (A)')",
    "price_usd": 4.99,
    "pack_qty": 1,
    "stock": "schema.org availability InStock",
    "read_on": "2026-10-27",
    "how_read": "page"
   },
   {
    "seller": "Amazon",
    "url": "https://www.amazon.com/dp/B0CJ6TP3TP",
    "in_stock": true,
    "ships_from": null,
    "seller_pn": "ASIN B0CJ6TP3TP",
    "price_usd": 12.99,
    "pack_qty": 1,
    "stock": "In Stock",
    "read_on": "2026-10-27",
    "how_read": "page"
   }
  ],
  "specs": {},
  "cad": {
   "step_url": null,
   "available": false
  },
  "sources": [
   "https://www.waveshare.com/bus-servo-adapter-a.htm",
   "https://www.amazon.com/dp/B0CJ6TP3TP"
  ],
  "confidence": "product page",
  "used_for": "tool: sets each STS3215's bus ID (1 pan, 2 tilt, 3 feed) before assembly",
  "qty_per_robot": 1,
  "notes": "A tool, bought once."
 },
 {
  "id": "tool-reamer-5mm",
  "key": "tool-reamer-5mm",
  "category": "turret",
  "vendor": "McMaster-Carr",
  "model": "8851A18",
  "name": "Chucking reamer, 5 mm, turned by hand in a tap wrench (tool)",
  "price_usd": 26.23,
  "price_note": "McMaster-Carr 8851A18 chucking reamer $26.23 (page 2026-10-27), turned in a tap wrench; backup the 2822A37 hand reamer $106.53",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/8851A18/",
    "in_stock": null,
    "ships_from": null,
    "seller_pn": "8851A18",
    "price_usd": 26.23,
    "pack_qty": 1,
    "stock": "listed in the category table (product page not opened)",
    "read_on": "2026-10-27",
    "how_read": "page"
   },
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/2822A37/",
    "in_stock": null,
    "ships_from": null,
    "seller_pn": "2822A37",
    "price_usd": 106.53,
    "pack_qty": 1,
    "stock": "'Delivers tomorrow 7-9 am'",
    "read_on": "2026-10-27",
    "how_read": "page"
   }
  ],
  "specs": {},
  "cad": {
   "step_url": null,
   "available": false
  },
  "sources": [
   "https://www.mcmaster.com/2822A37/",
   "https://www.mcmaster.com/8851A18/"
  ],
  "confidence": "product page",
  "used_for": "tool: 5 mm hand reamer",
  "qty_per_robot": 1,
  "notes": "The only 5 mm hand reamer McMaster lists (category https://www.mcmaster.com/products/hand-reamers/). Far above the plan's ~$10 estimate: a cheaper 5 mm H7 hand or chucking reamer from Amazon could not be read today (Amazon bot checks / 503). Turn it in a tap wrench."
 },
 {
  "id": "tool-am32-usb-linker",
  "key": "tool-am32-usb-linker",
  "category": "turret",
  "vendor": "VXB",
  "model": "VXB0FNQW93SR (Shopify variant 48952943968491)",
  "name": "USB linker / ESC programming card for AM32 and BLHeli_32 ESCs (tool)",
  "price_usd": 49.99,
  "price_note": "VXB VXB0FNQW93SR (Shopify variant 48952943968491) $49.99 (json, 2026-10-27); backup Amazon ASIN B0FNQW93SR $None",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "VXB",
    "url": "https://vxb.com/products/usb-linker-esc-programming-card-for-am32-bl32-brus",
    "in_stock": true,
    "ships_from": null,
    "seller_pn": "VXB0FNQW93SR (Shopify variant 48952943968491)",
    "price_usd": 49.99,
    "pack_qty": 1,
    "stock": "available: true",
    "read_on": "2026-10-27",
    "how_read": "json"
   },
   {
    "seller": "Amazon",
    "url": "https://www.amazon.com/dp/B0FNQW93SR",
    "in_stock": null,
    "ships_from": null,
    "seller_pn": "ASIN B0FNQW93SR",
    "price_usd": null,
    "pack_qty": 1,
    "stock": "not shown to this reader",
    "read_on": "2026-10-27",
    "how_read": "page"
   }
  ],
  "specs": {},
  "cad": {
   "step_url": null,
   "available": false
  },
  "sources": [
   "https://vxb.com/products/usb-linker-esc-programming-card-for-am32-bl32-brus",
   "https://www.amazon.com/dp/B0FNQW93SR"
  ],
  "confidence": "product page",
  "used_for": "tool: AM32 USB linker",
  "qty_per_robot": 1,
  "notes": "Read from the Shopify product .js. VXB's vendor field is 'Amazon' and its SKU embeds ASIN B0FNQW93SR: this is the Amazon GOUPRC linker resold at a markup. The listing names AM32/BL32 configuration and firmware upgrades from a PC; it does not name esc-configurator.com, so treat compatibility with the"
 },
 {
  "id": "tool-deutsch-crimper-iwd1620",
  "key": "tool-deutsch-crimper-iwd1620",
  "category": "turret",
  "vendor": "IWISS",
  "model": "IWD-1620 (Shopify variant 40373778415729)",
  "name": "IWISS IWD-1620 crimper for Deutsch DT size-16 solid contacts, 16-20 AWG (tool)",
  "price_usd": 24.99,
  "price_note": "IWISS IWD-1620 (Shopify variant 40373778415729) $24.99 (json, 2026-10-27); backup McMaster-Carr 6084T3 $64.98",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "IWISS",
    "url": "https://www.iwiss.com/products/iwd-1620-deutsch-size-16-crimper-solid-barrel-contact-circular-connector-contacts-crimping-tool-8-indents-wire-crimper-awg16-20",
    "in_stock": true,
    "ships_from": null,
    "seller_pn": "IWD-1620 (Shopify variant 40373778415729)",
    "price_usd": 24.99,
    "pack_qty": 1,
    "stock": "available: true",
    "read_on": "2026-10-27",
    "how_read": "json"
   },
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/6084T3/",
    "in_stock": null,
    "ships_from": null,
    "seller_pn": "6084T3",
    "price_usd": 64.98,
    "pack_qty": 1,
    "stock": "'Delivers tomorrow 7-9 am'",
    "read_on": "2026-10-27",
    "how_read": "page"
   }
  ],
  "specs": {},
  "cad": {
   "step_url": null,
   "available": false
  },
  "sources": [
   "https://www.iwiss.com/products/iwd-1620-deutsch-size-16-crimper-solid-barrel-contact-circular-connector-contacts-crimping-tool-8-indents-wire-crimper-awg16-20",
   "https://www.mcmaster.com/6084T3/"
  ],
  "confidence": "product page",
  "used_for": "tool: IWISS",
  "qty_per_robot": 1,
  "notes": "Read from the Shopify product .js (vendor field 'iCrimp', IWISS's brand). 4-indent / 8-impression crimp for Deutsch DT solid contacts and Amphenol AT pins, 16-20 AWG: right for the DT12 size-16 pins (0460-202-16141). A second iwiss.com store search was met by a 'Verifying your connection' check and "
 },
 {
  "id": "tool-microfit-crimper",
  "key": "tool-microfit-crimper",
  "category": "turret",
  "vendor": "Adafruit",
  "model": "Product ID 1213",
  "name": "Ratcheting crimper for open-barrel contacts, 18-28 AWG (Adafruit 1213): Micro-Fit 3.0 terminals (tool)",
  "price_usd": 10.0,
  "price_note": "Adafruit Product ID 1213 $10.0 (page, 2026-10-27); backup Adafruit Product ID 350 $49.95; backup Mouser 538-63819-0000 (Molex 63819-0000) $501.22",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Adafruit",
    "url": "https://www.adafruit.com/product/1213",
    "in_stock": true,
    "ships_from": null,
    "seller_pn": "Product ID 1213",
    "price_usd": 10.0,
    "pack_qty": 1,
    "stock": "'In stock'; 'On Sale' $10.00 (struck-through $34.95; qty-break table still shows $34.95 for 1-9)",
    "read_on": "2026-10-27",
    "how_read": "page"
   },
   {
    "seller": "Adafruit",
    "url": "https://www.adafruit.com/product/350",
    "in_stock": true,
    "ships_from": null,
    "seller_pn": "Product ID 350",
    "price_usd": 49.95,
    "pack_qty": 1,
    "stock": "'In stock'",
    "read_on": "2026-10-27",
    "how_read": "page"
   },
   {
    "seller": "Mouser",
    "url": "https://www.oemstrade.com/search/638190000",
    "in_stock": true,
    "ships_from": null,
    "seller_pn": "538-63819-0000 (Molex 63819-0000)",
    "price_usd": 501.22,
    "pack_qty": 1,
    "stock": "40 in stock (Mouser); Heilind 42 in stock at $463.32",
    "read_on": "2026-10-27",
    "how_read": "oemstrade"
   }
  ],
  "specs": {},
  "cad": {
   "step_url": null,
   "available": false
  },
  "sources": [
   "https://www.adafruit.com/product/1213",
   "https://www.adafruit.com/product/350",
   "https://www.oemstrade.com/search/638190000"
  ],
  "confidence": "product page",
  "used_for": "tool: Micro-Fit 3.0 crimper",
  "qty_per_robot": 1,
  "notes": "A ratcheting open-barrel crimper of the IWS-3220M class, and the only one read today that reaches 18 AWG: it covers both the 18 AWG and the 24 AWG Micro-Fit crimps in the plan. The IWS-3220M itself tops out at AWG 20 (0.03-0.5 mm2), so it would not do the 18 AWG crimps; iwiss.com answered with a 'Ve"
 },
 {
  "id": "tool-dial-indicator",
  "key": "tool-dial-indicator",
  "category": "turret",
  "vendor": "McMaster-Carr",
  "model": "5518N11",
  "name": "Dial indicator with a jointed-arm magnetic base (tool)",
  "price_usd": 79.62,
  "price_note": "McMaster-Carr 5518N11 $79.62 (page, 2026-10-27); backup McMaster-Carr 6302N12 $84.93",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/products/dial-indicators/economy-dial-plunger-variance-indicators-with-jointed-arm-magnetic-base-holder~~/",
    "in_stock": null,
    "ships_from": null,
    "seller_pn": "5518N11",
    "price_usd": 79.62,
    "pack_qty": 1,
    "stock": "'Delivers tomorrow 7-9 am'",
    "read_on": "2026-10-27",
    "how_read": "page"
   },
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/products/dial-indicators/economy-dial-plunger-variance-indicators-with-flexible-arm-magnetic-base-holder~~/",
    "in_stock": null,
    "ships_from": null,
    "seller_pn": "6302N12",
    "price_usd": 84.93,
    "pack_qty": 1,
    "stock": "'Delivers tomorrow 7-9 am'",
    "read_on": "2026-10-27",
    "how_read": "page"
   }
  ],
  "specs": {},
  "cad": {
   "step_url": null,
   "available": false
  },
  "sources": [
   "https://www.mcmaster.com/products/dial-indicators/economy-dial-plunger-variance-indicators-with-jointed-arm-magnetic-base-holder~~/",
   "https://www.mcmaster.com/products/dial-indicators/economy-dial-plunger-variance-indicators-with-flexible-arm-magnetic-base-holder~~/"
  ],
  "confidence": "product page",
  "used_for": "tool: dial indicator",
  "qty_per_robot": 1,
  "notes": "Indicator and base sold as one kit. Inch reading: 0.001 in = 0.025 mm, fine for the 0.15 mm (0.006 in) runout limit of test 1.5. Other McMaster kits on https://www.mcmaster.com/products/dial-indicators/ (rigid-arm, flexible-arm, Mitutoyo) were not priced."
 },
 {
  "id": "tool-circlip-pliers",
  "key": "tool-circlip-pliers",
  "category": "turret",
  "vendor": "McMaster-Carr",
  "model": "5449A83",
  "name": "External retaining-ring pliers for a 50 mm ring (tool)",
  "price_usd": 37.25,
  "price_note": "McMaster-Carr 5449A83 $37.25 (page, 2026-10-27); backup McMaster-Carr 5449A82 $33.48",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/5449A83/",
    "in_stock": null,
    "ships_from": null,
    "seller_pn": "5449A83",
    "price_usd": 37.25,
    "pack_qty": 1,
    "stock": "'Delivers tomorrow 7-9 am' (McMaster's in-stock wording)",
    "read_on": "2026-10-27",
    "how_read": "page"
   },
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/5449A82/",
    "in_stock": null,
    "ships_from": null,
    "seller_pn": "5449A82",
    "price_usd": 33.48,
    "pack_qty": 1,
    "stock": "listed in the category table (not opened; McMaster stocks the family)",
    "read_on": "2026-10-27",
    "how_read": "page"
   }
  ],
  "specs": {},
  "cad": {
   "step_url": null,
   "available": false
  },
  "sources": [
   "https://www.mcmaster.com/5449A83/",
   "https://www.mcmaster.com/5449A82/"
  ],
  "confidence": "product page",
  "used_for": "tool: external circlip",
  "qty_per_robot": 1,
  "notes": "Read in headless Chrome, one page. A DIN 471-50 ring (50 mm shaft) sits mid-range; the 0.090 in (2.3 mm) tips suit the ring's ~2.5 mm lug holes. Spring-assisted jaws."
 },
 {
  "id": "tool-insert-tips",
  "key": "tool-insert-tips",
  "category": "turret",
  "vendor": "McMaster-Carr",
  "model": "8915N111",
  "name": "Heat-set insert installation tip set, M2-M8, for a Hakko 900M-style iron (tool)",
  "price_usd": 22.66,
  "price_note": "McMaster-Carr 8915N111 $22.66 (page, 2026-10-27); backup McMaster-Carr 97338A140 $74.43; backup McMaster-Carr 92160A315 + 92160A323 + 92160A327 $28.14",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/8915N111/",
    "in_stock": null,
    "ships_from": null,
    "seller_pn": "8915N111",
    "price_usd": 22.66,
    "pack_qty": 1,
    "stock": "'Delivers tomorrow 7-9 am'",
    "read_on": "2026-10-27",
    "how_read": "page"
   },
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/97338A140/",
    "in_stock": null,
    "ships_from": null,
    "seller_pn": "97338A140",
    "price_usd": 74.43,
    "pack_qty": 1,
    "stock": "'Delivers tomorrow 7-9 am'",
    "read_on": "2026-10-27",
    "how_read": "page"
   },
   {
    "seller": "McMaster-Carr",
    "url": "https://www.mcmaster.com/heat-set-insert-installation-tips/",
    "in_stock": null,
    "ships_from": null,
    "seller_pn": "92160A315 + 92160A323 + 92160A327",
    "price_usd": 28.14,
    "pack_qty": 3,
    "stock": "listed in the category table (product pages not opened)",
    "read_on": "2026-10-27",
    "how_read": "page"
   }
  ],
  "specs": {},
  "cad": {
   "step_url": null,
   "available": false
  },
  "sources": [
   "https://www.mcmaster.com/8915N111/",
   "https://www.mcmaster.com/97338A140/",
   "https://www.mcmaster.com/heat-set-insert-installation-tips/"
  ],
  "confidence": "product page",
  "used_for": "tool: heat-set",
  "qty_per_robot": 1,
  "notes": "Covers M3, M4 and M5. Fits a Hakko 900M-series iron (e.g. a Hakko FX-888D-class iron, or any iron taking 900M tips); check the bench iron before ordering. Found on https://www.mcmaster.com/heat-set-insert-installation-tips/ (headless Chrome)."
 },
 {
  "id": "littelfuse-0fhm0001zxj",
  "key": "littelfuse-0fhm0001zxj",
  "category": "turret",
  "vendor": "Littelfuse",
  "model": "0FHM0001ZXJ",
  "name": "In-line holder for a MINI blade fuse, black leads (MINI FHM series)",
  "price_usd": 9.47,
  "price_note": "Mouser 576-0FHM0001ZXJ $9.47, 8,130 in stock (oemstrade 2026-10-27); red-lead 0FHM0001ZXJ-RED $10.33",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/576-0FHM0001ZXJ",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "576-0FHM0001ZXJ",
    "price_usd": 9.47,
    "pack_qty": 1,
    "stock": 8130,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/littelfuse-commercial-vehicle-products/0FHM0001ZXJ/2004060",
    "in_stock": false,
    "ships_from": "US",
    "seller_pn": null,
    "price_usd": null,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {
   "fuse": "MINI (297) blade",
   "rating": "32 VDC; 15 A continuous for this series (Littelfuse MINI FHM)"
  },
  "cad": {
   "step_url": null,
   "available": false
  },
  "sources": [
   "https://littelfuse.com/products/fuse-blocks-fuseholders-and-fuse-accessories/automotive-and-commercial-vehicle-fuse-holders/mini-fhm/0fhm0003zxjb.aspx"
  ],
  "confidence": "product page",
  "used_for": "the turret's one fuse: 5 A MINI in the +24 V lead from the DT12 to the base board (it protects the slip ring's paralleled 2 A circuits)",
  "qty_per_robot": 1,
  "notes": "An in-line holder lies in the harness: no PCB blade holder with its fuse fits under the base board's 11 mm or the bay's levels (docs/turret-wiring.md 6)."
 },
 {
  "id": "littelfuse-0297005-wxnv",
  "key": "littelfuse-0297005-wxnv",
  "category": "turret",
  "vendor": "Littelfuse",
  "model": "0297005.WXNV",
  "name": "MINI blade fuse 5 A, 32 V",
  "price_usd": 0.33,
  "price_note": "Mouser 576-0297005.WXNV $0.33, 48,438 in stock (oemstrade 2026-10-27)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/576-0297005.WXNV",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "576-0297005.WXNV",
    "price_usd": 0.33,
    "pack_qty": 1,
    "stock": 48438,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {
   "rating_a": 5,
   "v_max": 32,
   "type": "MINI (297)"
  },
  "cad": {
   "step_url": null,
   "available": false
  },
  "sources": [
   "https://www.mouser.com/ProductDetail/576-0297005.WXNV"
  ],
  "confidence": "product page",
  "used_for": "the turret's +24 V fuse in the in-line holder (one spare)",
  "qty_per_robot": 2,
  "notes": ""
 },
 {
  "id": "yageo-mfr-25fbf52-100r",
  "key": "yageo-mfr-25fbf52-100r",
  "category": "turret",
  "vendor": "Yageo",
  "model": "MFR-25FBF52-100R",
  "name": "Resistor 100 R 1 % 1/4 W metal film (Yageo MFR-25FBF52)",
  "price_usd": 0.1,
  "price_note": "Mouser 603-MFR-25FBF52-100R $0.10, 49,654 in stock (its row on oemstrade.com, read 2026-10-27); Digi-Key 100XBK-ND (price not read: the page returns 403)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/603-MFR-25FBF52-100R",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "603-MFR-25FBF52-100R",
    "price_usd": 0.1,
    "pack_qty": 1,
    "stock": 49654,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Digi-Key",
    "url": "https://digikey.com/product-detail/en/yageo/MFR-25FBF52-100R/100XBK-ND/12795",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "100XBK-ND",
    "price_usd": null,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {
   "value": "100 R",
   "tolerance": "1 %",
   "power_w": 0.25,
   "package": "axial, 6.3 x 2.4 mm body"
  },
  "sources": [
   "https://www.mouser.com/ProductDetail/603-MFR-25FBF52-100R",
   "https://digikey.com/product-detail/en/yageo/MFR-25FBF52-100R/100XBK-ND/12795"
  ],
  "confidence": "product page",
  "used_for": "the turret's boards (cad/turret_boards.py COMPONENTS)",
  "qty_per_robot": 3,
  "notes": "Size: Axial through-hole, body 2.4 mm dia (+-0.2) x 6.3 mm long (+-0.5), lead dia 0.55 mm; 1/4 W, +-1 %, +-100 ppm/C (Yageo MFR datasheet, MFR-25 row; Digi-Key lists 0.094 in x 0.248 in)."
 },
 {
  "id": "yageo-mfr-25fbf52-1k",
  "key": "yageo-mfr-25fbf52-1k",
  "category": "turret",
  "vendor": "Yageo",
  "model": "MFR-25FBF52-1K",
  "name": "Resistor 1.00 k 1 % 1/4 W metal film (Yageo MFR-25FBF52)",
  "price_usd": 0.1,
  "price_note": "Mouser 603-MFR-25FBF52-1K $0.10, 51,348 in stock (its row on oemstrade.com, read 2026-10-27); Digi-Key 1.00KXBK-ND $0.10",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/603-MFR-25FBF52-1K",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "603-MFR-25FBF52-1K",
    "price_usd": 0.1,
    "pack_qty": 1,
    "stock": 51348,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/yageo/MFR-25FBF52-1K/1.00KXBK-ND/13011",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "1.00KXBK-ND",
    "price_usd": 0.1,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {
   "value": "1.00 k",
   "tolerance": "1 %",
   "power_w": 0.25,
   "package": "axial, 6.3 x 2.4 mm body"
  },
  "sources": [
   "https://www.mouser.com/ProductDetail/603-MFR-25FBF52-1K",
   "https://www.digikey.com/en/products/detail/yageo/MFR-25FBF52-1K/1.00KXBK-ND/13011"
  ],
  "confidence": "product page",
  "used_for": "the turret's boards (cad/turret_boards.py COMPONENTS)",
  "qty_per_robot": 8,
  "notes": "Size: Axial through-hole, body 2.4 mm dia (+-0.2) x 6.3 mm long (+-0.5), lead dia 0.55 mm; 1/4 W, +-1 %, +-100 ppm/C (Yageo MFR datasheet, MFR-25 row; Digi-Key lists 0.094 in x 0.248 in)."
 },
 {
  "id": "yageo-mfr-25fbf52-4k7",
  "key": "yageo-mfr-25fbf52-4k7",
  "category": "turret",
  "vendor": "Yageo",
  "model": "MFR-25FBF52-4K7",
  "name": "Resistor 4.7 k 1 % 1/4 W metal film (Yageo MFR-25FBF52)",
  "price_usd": 0.11,
  "price_note": "Mouser 603-MFR-25FBF52-4K7 $0.11, 12,937 in stock (its row on oemstrade.com, read 2026-10-27); Digi-Key search link (price not read: the page returns 403)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/603-MFR-25FBF52-4K7",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "603-MFR-25FBF52-4K7",
    "price_usd": 0.11,
    "pack_qty": 1,
    "stock": 12937,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/result?keywords=MFR-25FBF52-4K7",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": null,
    "price_usd": null,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {
   "value": "4.7 k",
   "tolerance": "1 %",
   "power_w": 0.25,
   "package": "axial, 6.3 x 2.4 mm body"
  },
  "sources": [
   "https://www.mouser.com/ProductDetail/603-MFR-25FBF52-4K7",
   "https://www.digikey.com/en/products/result?keywords=MFR-25FBF52-4K7"
  ],
  "confidence": "product page",
  "used_for": "the turret's boards (cad/turret_boards.py COMPONENTS)",
  "qty_per_robot": 3,
  "notes": "4K7 is the one value whose Mouser price is $0.11 (4.7k is an E24 value, not E96). Same value in other packing codes at Mouser: 603-MFR-25FRF52-4K7 (FRF52) $0.10, 19,849 in stock; 603-MFR-25FTF52-4K7 (FTF52) $0.11, 5,893 in stock. Size: Axial through-hole, body 2.4 mm dia (+-0.2) x 6.3 mm long (+-0.5), lead dia 0.55 mm; 1/4 W, +-1 %, +-100 ppm/C (Yageo MFR datasheet, MFR-25 row; Digi-Key lists 0.094 in x 0.248 in)."
 },
 {
  "id": "yageo-mfr-25fbf52-6k8",
  "key": "yageo-mfr-25fbf52-6k8",
  "category": "turret",
  "vendor": "Yageo",
  "model": "MFR-25FBF52-6K8",
  "name": "Resistor 6.8 k 1 % 1/4 W metal film (Yageo MFR-25FBF52)",
  "price_usd": 0.1,
  "price_note": "Mouser 603-MFR-25FBF52-6K8 $0.10, 12,179 in stock (its row on oemstrade.com, read 2026-10-27); Digi-Key 13-MFR-25FRF52-6K8CT-ND $0.10",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/603-MFR-25FBF52-6K8",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "603-MFR-25FBF52-6K8",
    "price_usd": 0.1,
    "pack_qty": 1,
    "stock": 12179,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/yageo/MFR-25FRF52-6K8/MFR-25FRF52-6K8-ND/9139107",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "13-MFR-25FRF52-6K8CT-ND",
    "price_usd": 0.1,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {
   "value": "6.8 k",
   "tolerance": "1 %",
   "power_w": 0.25,
   "package": "axial, 6.3 x 2.4 mm body"
  },
  "sources": [
   "https://www.mouser.com/ProductDetail/603-MFR-25FBF52-6K8",
   "https://www.digikey.com/en/products/detail/yageo/MFR-25FRF52-6K8/MFR-25FRF52-6K8-ND/9139107"
  ],
  "confidence": "product page",
  "used_for": "the turret's boards (cad/turret_boards.py COMPONENTS)",
  "qty_per_robot": 3,
  "notes": "6.8k is an E24 value; Mouser also has the E96 neighbour 603-MFR-25FBF52-6K81 (6.81k) at $0.10, 12,199 in stock. Size: Axial through-hole, body 2.4 mm dia (+-0.2) x 6.3 mm long (+-0.5), lead dia 0.55 mm; 1/4 W, +-1 %, +-100 ppm/C (Yageo MFR datasheet, MFR-25 row; Digi-Key lists 0.094 in x 0.248 in)."
 },
 {
  "id": "yageo-mfr-25fbf52-10k",
  "key": "yageo-mfr-25fbf52-10k",
  "category": "turret",
  "vendor": "Yageo",
  "model": "MFR-25FBF52-10K",
  "name": "Resistor 10 k 1 % 1/4 W metal film (Yageo MFR-25FBF52)",
  "price_usd": 0.1,
  "price_note": "Mouser 603-MFR-25FBF52-10K $0.10, 114,923 in stock (its row on oemstrade.com, read 2026-10-27); Digi-Key 10.0KXBK-ND $0.10",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/603-MFR-25FBF52-10K",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "603-MFR-25FBF52-10K",
    "price_usd": 0.1,
    "pack_qty": 1,
    "stock": 114923,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/yageo/MFR-25FBF52-10K/13219",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "10.0KXBK-ND",
    "price_usd": 0.1,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {
   "value": "10 k",
   "tolerance": "1 %",
   "power_w": 0.25,
   "package": "axial, 6.3 x 2.4 mm body"
  },
  "sources": [
   "https://www.mouser.com/ProductDetail/603-MFR-25FBF52-10K",
   "https://www.digikey.com/en/products/detail/yageo/MFR-25FBF52-10K/13219"
  ],
  "confidence": "product page",
  "used_for": "the turret's boards (cad/turret_boards.py COMPONENTS)",
  "qty_per_robot": 18,
  "notes": "FAMILY RESULT. Mouser qty-1 price is $0.10 for 12 of the 13 values (100R, 1K, 6K8, 10K, 44K2, 60K4, 63K4, 66K5, 69K8, 73K2, 91K, 100K); 4K7 is the exception at $0.11. Mouser URL pattern: https://www.mouser.com/ProductDetail/603-MFR-25FBF52-<value>, value written as in the part number (-100R, -1K, -4K7, -6K8, -10K, -44K2, -60K4, -63K4, -66K5, -69K8, -73K2, -91K, -100K). DIGI-KEY PART NUMBERS for this resistor come in these styles: (a) bulk FBF52 parts, legacy style '<value>XBK-ND' with the value to 3 significant figures (10.0KXBK-ND, 1.00KXBK-ND confirmed by exact-match search; 44.2KXBK-ND, 66.5KXBK-ND, 100XBK-ND, 100KXBK-ND seen in Digi-Key URLs); (b) bulk FBF52 parts, newer style '13-MFR-25FBF52-<value>-ND' (read for 69K8 and 73K2; also seen on aggregator pages for 510K and 5K9); (c) the reel-pack FRF52 version of the same resistor, sold as cut tape: '13-MFR-25FRF52-<value>CT-ND' (confirmed in page copies for 6K8 and 63K4, $0.10 at 1; reel = ...TR-ND). The '13-...CT-ND' style in the request is style (c), i.e. the FRF52 code, not FBF52. Digi-Key qty-1 price was read live for two FBF52 values, 10K and 1K: $0.10 each; 6K8 and 63K4 ($0.10) come from cached page copies of the FRF52 version. 4K7 and 91K: no Digi-Key listing confirmed at all. Size: Axial through-hole, body 2.4 mm dia (+-0.2) x 6.3 mm long (+-0.5), lead dia 0.55 mm; 1/4 W, +-1 %, +-100 ppm/C (Yageo MFR datasheet, MFR-25 row; Digi-Key lists 0.094 in x 0.248 in)."
 },
 {
  "id": "yageo-mfr-25fbf52-60k4",
  "key": "yageo-mfr-25fbf52-60k4",
  "category": "turret",
  "vendor": "Yageo",
  "model": "MFR-25FBF52-60K4",
  "name": "Resistor 60.4 k 1 % 1/4 W metal film (Yageo MFR-25FBF52)",
  "price_usd": 0.1,
  "price_note": "Mouser 603-MFR-25FBF52-60K4 $0.10, 12,929 in stock (its row on oemstrade.com, read 2026-10-27); Digi-Key 60.4KXBK-ND (price not read: the page returns 403)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/603-MFR-25FBF52-60K4",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "603-MFR-25FBF52-60K4",
    "price_usd": 0.1,
    "pack_qty": 1,
    "stock": 12929,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/yageo/MFR-25FBF52-60K4/13430",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "60.4KXBK-ND",
    "price_usd": null,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {
   "value": "60.4 k",
   "tolerance": "1 %",
   "power_w": 0.25,
   "package": "axial, 6.3 x 2.4 mm body"
  },
  "sources": [
   "https://www.mouser.com/ProductDetail/603-MFR-25FBF52-60K4",
   "https://www.digikey.com/en/products/detail/yageo/MFR-25FBF52-60K4/13430"
  ],
  "confidence": "product page",
  "used_for": "the turret's boards (cad/turret_boards.py COMPONENTS)",
  "qty_per_robot": 1,
  "notes": "Size: Axial through-hole, body 2.4 mm dia (+-0.2) x 6.3 mm long (+-0.5), lead dia 0.55 mm; 1/4 W, +-1 %, +-100 ppm/C (Yageo MFR datasheet, MFR-25 row; Digi-Key lists 0.094 in x 0.248 in)."
 },
 {
  "id": "yageo-mfr-25fbf52-63k4",
  "key": "yageo-mfr-25fbf52-63k4",
  "category": "turret",
  "vendor": "Yageo",
  "model": "MFR-25FBF52-63K4",
  "name": "Resistor 63.4 k 1 % 1/4 W metal film (Yageo MFR-25FBF52)",
  "price_usd": 0.1,
  "price_note": "Mouser 603-MFR-25FBF52-63K4 $0.10, 8,863 in stock (its row on oemstrade.com, read 2026-10-27); Digi-Key search link (price not read: the page returns 403)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/603-MFR-25FBF52-63K4",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "603-MFR-25FBF52-63K4",
    "price_usd": 0.1,
    "pack_qty": 1,
    "stock": 8863,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/result?keywords=MFR-25FBF52-63K4",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": null,
    "price_usd": null,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {
   "value": "63.4 k",
   "tolerance": "1 %",
   "power_w": 0.25,
   "package": "axial, 6.3 x 2.4 mm body"
  },
  "sources": [
   "https://www.mouser.com/ProductDetail/603-MFR-25FBF52-63K4",
   "https://www.digikey.com/en/products/result?keywords=MFR-25FBF52-63K4"
  ],
  "confidence": "product page",
  "used_for": "the turret's boards (cad/turret_boards.py COMPONENTS)",
  "qty_per_robot": 1,
  "notes": "Size: Axial through-hole, body 2.4 mm dia (+-0.2) x 6.3 mm long (+-0.5), lead dia 0.55 mm; 1/4 W, +-1 %, +-100 ppm/C (Yageo MFR datasheet, MFR-25 row; Digi-Key lists 0.094 in x 0.248 in)."
 },
 {
  "id": "yageo-mfr-25fbf52-66k5",
  "key": "yageo-mfr-25fbf52-66k5",
  "category": "turret",
  "vendor": "Yageo",
  "model": "MFR-25FBF52-66K5",
  "name": "Resistor 66.5 k 1 % 1/4 W metal film (Yageo MFR-25FBF52)",
  "price_usd": 0.1,
  "price_note": "Mouser 603-MFR-25FBF52-66K5 $0.10, 19,592 in stock (its row on oemstrade.com, read 2026-10-27); Digi-Key 66.5KXBK-ND (price not read: the page returns 403)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/603-MFR-25FBF52-66K5",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "603-MFR-25FBF52-66K5",
    "price_usd": 0.1,
    "pack_qty": 1,
    "stock": 19592,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/product-detail/en/yageo/MFR-25FBF52-66K5/66.5KXBK-ND/13437",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "66.5KXBK-ND",
    "price_usd": null,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {
   "value": "66.5 k",
   "tolerance": "1 %",
   "power_w": 0.25,
   "package": "axial, 6.3 x 2.4 mm body"
  },
  "sources": [
   "https://www.mouser.com/ProductDetail/603-MFR-25FBF52-66K5",
   "https://www.digikey.com/product-detail/en/yageo/MFR-25FBF52-66K5/66.5KXBK-ND/13437"
  ],
  "confidence": "product page",
  "used_for": "the turret's boards (cad/turret_boards.py COMPONENTS)",
  "qty_per_robot": 1,
  "notes": "Size: Axial through-hole, body 2.4 mm dia (+-0.2) x 6.3 mm long (+-0.5), lead dia 0.55 mm; 1/4 W, +-1 %, +-100 ppm/C (Yageo MFR datasheet, MFR-25 row; Digi-Key lists 0.094 in x 0.248 in)."
 },
 {
  "id": "yageo-mfr-25fbf52-69k8",
  "key": "yageo-mfr-25fbf52-69k8",
  "category": "turret",
  "vendor": "Yageo",
  "model": "MFR-25FBF52-69K8",
  "name": "Resistor 69.8 k 1 % 1/4 W metal film (Yageo MFR-25FBF52)",
  "price_usd": 0.1,
  "price_note": "Mouser 603-MFR-25FBF52-69K8 $0.10, 14,226 in stock (its row on oemstrade.com, read 2026-10-27); Digi-Key 13-MFR-25FBF52-69K8-ND (price not read: the page returns 403)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/603-MFR-25FBF52-69K8",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "603-MFR-25FBF52-69K8",
    "price_usd": 0.1,
    "pack_qty": 1,
    "stock": 14226,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/yageo/MFR-25FBF52-69K8/13442",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "13-MFR-25FBF52-69K8-ND",
    "price_usd": null,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {
   "value": "69.8 k",
   "tolerance": "1 %",
   "power_w": 0.25,
   "package": "axial, 6.3 x 2.4 mm body"
  },
  "sources": [
   "https://www.mouser.com/ProductDetail/603-MFR-25FBF52-69K8",
   "https://www.digikey.com/en/products/detail/yageo/MFR-25FBF52-69K8/13442"
  ],
  "confidence": "product page",
  "used_for": "the turret's boards (cad/turret_boards.py COMPONENTS)",
  "qty_per_robot": 1,
  "notes": "That Digi-Key page lists MFR-25FRF52-69K8 (reel-pack version, 13-MFR-25FRF52-69K8TR-ND) as parametric substitute: $0.10, 9,562 in stock in the cached copy; I found no cut-tape number for it. Size: Axial through-hole, body 2.4 mm dia (+-0.2) x 6.3 mm long (+-0.5), lead dia 0.55 mm; 1/4 W, +-1 %, +-100 ppm/C (Yageo MFR datasheet, MFR-25 row; Digi-Key lists 0.094 in x 0.248 in)."
 },
 {
  "id": "yageo-mfr-25fbf52-73k2",
  "key": "yageo-mfr-25fbf52-73k2",
  "category": "turret",
  "vendor": "Yageo",
  "model": "MFR-25FBF52-73K2",
  "name": "Resistor 73.2 k 1 % 1/4 W metal film (Yageo MFR-25FBF52)",
  "price_usd": 0.1,
  "price_note": "Mouser 603-MFR-25FBF52-73K2 $0.10, 8,644 in stock (its row on oemstrade.com, read 2026-10-27); Digi-Key 13-MFR-25FBF52-73K2-ND (price not read: the page returns 403)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/603-MFR-25FBF52-73K2",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "603-MFR-25FBF52-73K2",
    "price_usd": 0.1,
    "pack_qty": 1,
    "stock": 8644,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/yageo/MFR-25FBF52-73K2/13447",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "13-MFR-25FBF52-73K2-ND",
    "price_usd": null,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {
   "value": "73.2 k",
   "tolerance": "1 %",
   "power_w": 0.25,
   "package": "axial, 6.3 x 2.4 mm body"
  },
  "sources": [
   "https://www.mouser.com/ProductDetail/603-MFR-25FBF52-73K2",
   "https://www.digikey.com/en/products/detail/yageo/MFR-25FBF52-73K2/13447"
  ],
  "confidence": "product page",
  "used_for": "the turret's boards (cad/turret_boards.py COMPONENTS)",
  "qty_per_robot": 1,
  "notes": "That Digi-Key page lists MFR-25FRF52-73K2 (reel-pack version, 13-MFR-25FRF52-73K2TR-ND) as parametric substitute: $0.10, 9,114 in stock in the cached copy; I found no cut-tape number for it. Size: Axial through-hole, body 2.4 mm dia (+-0.2) x 6.3 mm long (+-0.5), lead dia 0.55 mm; 1/4 W, +-1 %, +-100 ppm/C (Yageo MFR datasheet, MFR-25 row; Digi-Key lists 0.094 in x 0.248 in)."
 },
 {
  "id": "yageo-mfr-25fbf52-91k",
  "key": "yageo-mfr-25fbf52-91k",
  "category": "turret",
  "vendor": "Yageo",
  "model": "MFR-25FBF52-91K",
  "name": "Resistor 91 k 1 % 1/4 W metal film (Yageo MFR-25FBF52)",
  "price_usd": 0.1,
  "price_note": "Mouser 603-MFR-25FBF52-91K $0.10, 13,902 in stock (its row on oemstrade.com, read 2026-10-27); Digi-Key search link (price not read: the page returns 403)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/603-MFR-25FBF52-91K",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "603-MFR-25FBF52-91K",
    "price_usd": 0.1,
    "pack_qty": 1,
    "stock": 13902,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/result?keywords=MFR-25FBF52-91K",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": null,
    "price_usd": null,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {
   "value": "91 k",
   "tolerance": "1 %",
   "power_w": 0.25,
   "package": "axial, 6.3 x 2.4 mm body"
  },
  "sources": [
   "https://www.mouser.com/ProductDetail/603-MFR-25FBF52-91K",
   "https://www.digikey.com/en/products/result?keywords=MFR-25FBF52-91K"
  ],
  "confidence": "product page",
  "used_for": "the turret's boards (cad/turret_boards.py COMPONENTS)",
  "qty_per_robot": 1,
  "notes": "91k is an E24 value (the E96 neighbour is 90.9k). Size: Axial through-hole, body 2.4 mm dia (+-0.2) x 6.3 mm long (+-0.5), lead dia 0.55 mm; 1/4 W, +-1 %, +-100 ppm/C (Yageo MFR datasheet, MFR-25 row; Digi-Key lists 0.094 in x 0.248 in)."
 },
 {
  "id": "yageo-mfr-25fbf52-100k",
  "key": "yageo-mfr-25fbf52-100k",
  "category": "turret",
  "vendor": "Yageo",
  "model": "MFR-25FBF52-100K",
  "name": "Resistor 100 k 1 % 1/4 W metal film (Yageo MFR-25FBF52)",
  "price_usd": 0.1,
  "price_note": "Mouser 603-MFR-25FBF52-100K $0.10, 15,007 in stock (its row on oemstrade.com, read 2026-10-27); Digi-Key 100KXBK-ND (price not read: the page returns 403)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/603-MFR-25FBF52-100K",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "603-MFR-25FBF52-100K",
    "price_usd": 0.1,
    "pack_qty": 1,
    "stock": 15007,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/yageo/MFR-25FBF52-100K/100KXBK-ND/13473",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "100KXBK-ND",
    "price_usd": null,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {
   "value": "100 k",
   "tolerance": "1 %",
   "power_w": 0.25,
   "package": "axial, 6.3 x 2.4 mm body"
  },
  "sources": [
   "https://www.mouser.com/ProductDetail/603-MFR-25FBF52-100K",
   "https://www.digikey.com/en/products/detail/yageo/MFR-25FBF52-100K/100KXBK-ND/13473"
  ],
  "confidence": "product page",
  "used_for": "the turret's boards (cad/turret_boards.py COMPONENTS)",
  "qty_per_robot": 7,
  "notes": "Size: Axial through-hole, body 2.4 mm dia (+-0.2) x 6.3 mm long (+-0.5), lead dia 0.55 mm; 1/4 W, +-1 %, +-100 ppm/C (Yageo MFR datasheet, MFR-25 row; Digi-Key lists 0.094 in x 0.248 in)."
 },
 {
  "id": "yageo-rsf100jb-73-2k2",
  "key": "yageo-rsf100jb-73-2k2",
  "category": "turret",
  "vendor": "Yageo",
  "model": "RSF100JB-73-2K2",
  "name": "Resistor 2.2k 1 W 5 % metal oxide (RSF100)",
  "price_usd": 0.2,
  "price_note": "Mouser 603-RSF100JB-73-2K2 $0.20, 9,082 in stock (its row on oemstrade.com, read 2026-10-27); Digi-Key 2.2KW-1-ND (price not read: the page returns 403)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/603-RSF100JB-73-2K2",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "603-RSF100JB-73-2K2",
    "price_usd": 0.2,
    "pack_qty": 1,
    "stock": 9082,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/product-detail/en/yageo/RSF100JB-73-2K2/2.2KW-1-ND/18091",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "2.2KW-1-ND",
    "price_usd": null,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {},
  "sources": [
   "https://www.mouser.com/ProductDetail/603-RSF100JB-73-2K2",
   "https://www.digikey.com/product-detail/en/yageo/RSF100JB-73-2K2/2.2KW-1-ND/18091"
  ],
  "confidence": "product page",
  "used_for": "the turret's boards (cad/turret_boards.py COMPONENTS)",
  "qty_per_robot": 2,
  "notes": "Ordering code per the Yageo RSF spec: J = +-5 %, B = bulk packing, -73- = forming code. Other sellers at qty 1: Arrow V99:2348_17669645 lists $0.036 but only 1 pc in stock; Newark 49AK7743 / 49AK7744 have 0 stock and a 6,000 minimum; TTI starts at 500 pcs. So Mouser and Digi-Key are the only practical sellers for a few pieces. Size: Axial body 4.5 mm dia (+-0.5) x 11.5 mm long (+-1.0); lead dia 0.8 mm (+-0.05); 1 W at 70 C, 350 V max working voltage, +-300 ppm/C, +-5 % (Yageo RSF product specification 16-Aug-2021 V.0, RSF100 row; Digi-Key lists 4.50 mm x 11.50 mm = 0.177 in x 0.453 in; Future Electronics and Avnet agree)."
 },
 {
  "id": "cap-mlcc-100n-50v",
  "key": "cap-mlcc-100n-50v",
  "category": "turret",
  "vendor": "Vishay (BCcomponents)",
  "model": "K104K15X7RF53L2",
  "name": "Capacitor 100 nF 50 V X7R radial ceramic, 2.5 mm leads",
  "price_usd": 0.25,
  "price_note": "Mouser 594-K104K15X7RF53L2 $0.25, 57,498 in stock (its row on oemstrade.com, read 2026-10-27); Digi-Key BC3324-ND $0.29",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/594-K104K15X7RF53L2",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "594-K104K15X7RF53L2",
    "price_usd": 0.25,
    "pack_qty": 1,
    "stock": 57498,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/vishay-beyschlag-draloric-bc-components/K104K15X7RF53L2/2820506",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "BC3324-ND",
    "price_usd": 0.29,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {},
  "sources": [
   "https://www.mouser.com/ProductDetail/594-K104K15X7RF53L2",
   "https://www.digikey.com/en/products/detail/vishay-beyschlag-draloric-bc-components/K104K15X7RF53L2/2820506"
  ],
  "confidence": "product page",
  "used_for": "the turret's boards (cad/turret_boards.py COMPONENTS)",
  "qty_per_robot": 8,
  "notes": "I picked the +-10 % K version over the K104M15X7RF53L2 (+-20 %) you named: same body, cheaper and deeper stock. The M part is confirmed too: Mouser 594-K104M15X7RF53L2 is $0.27 with 16,944 in stock today (oemstrade), so the snippet's $0.25 / 21,341 for it was stale; Digi-Key BC5142-ND shows $0.27 in a cached copy. Other candidates: KEMET C320C104K5R5TA is 2.54 mm but 7.36 mm tall seated per Digi-Key (an RS listing for a related KEMET 100 nF / 50 V GoldMax 300 part gives 6.6 mm), so it is over the 6 mm limit either way, and Mouser carries only the ammo-pack C320C104K5R5TA7301 (about $0.32); Digi-Key 399-4264-ND. TDK FG18X7R1H104KNT06: Mouser 810-FG18X7R1H104KNT6 $0.27, 5,747 in stock, 2.5 mm, body about 4 x 2.5 x 5.5 mm (also fine). Vishay K104K10X7RF5UH5 decodes (per the datasheet) to size 10, 5.0 mm lead spacing, flat crimp, ammo pack: Mouser 594-K104K10X7RF5UH5 $0.30, 112,541 in stock, but 5.0 mm, not 2.54 mm. Size: Vishay K series size code 15: body 4.0 mm W x 4.0 mm H x 2.6 mm T (all max); lead spacing 2.5 mm +-0.8 (straight 'L2' leads, so it fits 2.54 mm holes); lead dia 0.5 mm; max seating height 1.6 mm, so the top of the body is at most 4.0 + 1.6 = 5.6 mm above the board (Vishay K Series datasheet 45171, rev 05-Sep-2025, which I rendered and read)."
 },
 {
  "id": "cap-mlcc-1u-50v",
  "key": "cap-mlcc-1u-50v",
  "category": "turret",
  "vendor": "TDK",
  "model": "FG24X7R1H105KRT06",
  "name": "Capacitor 1 uF 50 V X7R radial ceramic, 5 mm leads",
  "price_usd": 0.54,
  "price_note": "Mouser 810-FG24X7R1H105KRT6 $0.54, 11,666 in stock (its row on oemstrade.com, read 2026-10-27); Digi-Key 445-173374-1-ND $0.51",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/810-FG24X7R1H105KRT6",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "810-FG24X7R1H105KRT6",
    "price_usd": 0.54,
    "pack_qty": 1,
    "stock": 11666,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/tdk/FG24X7R1H105KRT06/5802988",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "445-173374-1-ND",
    "price_usd": 0.51,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {},
  "sources": [
   "https://www.mouser.com/ProductDetail/810-FG24X7R1H105KRT6",
   "https://www.digikey.com/en/products/detail/tdk/FG24X7R1H105KRT06/5802988"
  ],
  "confidence": "product page",
  "used_for": "the turret's boards (cad/turret_boards.py COMPONENTS)",
  "qty_per_robot": 4,
  "notes": "TDK's 50 V 1 uF part is the FG24 (5 mm spacing), not the FG18X7R1H105KRT06 you listed: oemstrade finds no such part and TDK's FG18 1 uF is only the 25 V FG18X7R1E105KRT06. Other candidates: KEMET C320C105K5R5TA (2.54 mm) is Mouser 80-C320C105K5R5TA $1.34 with 0 stock. Vishay K105K15X7RF5UH5 is not a catalogue code (K105 exists only in size 20); K105K20X7RF5UH5 is Mouser 594-K105K20X7RF5UH5 $1.06, 8,397 in stock, 5 mm spacing but about 7.5 mm tall (Unikey lists 5 x 3.2 x 7.54 mm), so it misses the 7 mm limit. KEMET C322C105K5R5TA (5.08 mm): Mouser $1.78, 521 in stock. Size: Body 4.5 mm W x 3.0 mm T x 5.5 mm H (5.5 mm is the max seated height); lead spacing 5.0 mm (fits 5.08 mm holes); +-10 %, X7R, 125 C (Digi-Key listing; Element14, TME and Future Electronics give the same 4.5 x 3 x 5.5 mm)."
 },
 {
  "id": "cap-film-100n-5pct",
  "key": "cap-film-100n-5pct",
  "category": "turret",
  "vendor": "WIMA",
  "model": "MKS2C031001A00JSSD",
  "name": "Capacitor 100 nF 63 V +-5 % PET film, 5 mm leads",
  "price_usd": 0.7,
  "price_note": "Mouser 505-MKS2.1/63/5 $0.70, 2,166 in stock (its row on oemstrade.com, read 2026-10-27); Newark 46T6775 $0.45",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/WIMA/MKS2-1-63-5/?qs=ISKKXg98%252B1lWN2VQKHfGJg%3D%3D",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "505-MKS2.1/63/5",
    "price_usd": 0.7,
    "pack_qty": 1,
    "stock": 2166,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Newark",
    "url": "https://www.newark.com/search?st=46T6775",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "46T6775",
    "price_usd": 0.452,
    "pack_qty": 1,
    "stock": 9338,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {},
  "sources": [
   "https://www.mouser.com/ProductDetail/WIMA/MKS2-1-63-5/?qs=ISKKXg98%252B1lWN2VQKHfGJg%3D%3D",
   "https://www.newark.com/search?st=46T6775"
  ],
  "confidence": "product page",
  "used_for": "the turret's boards (cad/turret_boards.py COMPONENTS)",
  "qty_per_robot": 2,
  "notes": "The exact code you named is out of stock at Mouser (505-MKS20.1/63/5, 0 in stock); Mouser's in-stock 505-MKS2.1/63/5 is listed under WIMA's older short code MKS2-.1/63/5 and has the same electrical and size data (0.1 uF, 63 VDC, +-5 %, 5 mm, 7.2 x 2.5 x 6.5 mm). I could not confirm from a WIMA datasheet that the two codes are the identical SKU (lead length / packing), so check the lead-length option on the Mouser page. Digi-Key lists only the +-10 % MKS2C031001A00KSSD (DK 1928-MKS2C031001A00KSSD-ND, $0.64 at 1 in a cached copy). KEMET R82EC3100DQ50J returns no result at any seller (R82EC3100DQ60J is at Mouser with 0 stock). Panasonic ECQ-E1104JF is not a current part: oemstrade shows only OEM/CM brokers for it, no Mouser or Digi-Key listing turned up in search, Panasonic's current ECQE(F) 100 V range starts at 0.56 uF (datasheet 01-Sep-25) and the older 100 V ECQ-E1104KZ is marked obsolete at Digi-Key. Size: Body 7.2 mm L x 2.5 mm T x 6.5 mm H, lead spacing 5 mm, lead dia 0.5 mm, 63 VDC / 40 VAC, PET (Mouser listing via web search; TME, Unikey, Verical and Anglia rows agree)."
 },
 {
  "id": "onsemi-1n4148",
  "key": "onsemi-1n4148",
  "category": "turret",
  "vendor": "onsemi",
  "model": "1N4148",
  "name": "Diode 1N4148 (DO-35)",
  "price_usd": 0.1,
  "price_note": "Mouser 512-1N4148 $0.10, 1,090,369 in stock (its row on oemstrade.com, read 2026-10-27); Digi-Key 1N4148FS-ND $0.10",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/512-1N4148",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "512-1N4148",
    "price_usd": 0.1,
    "pack_qty": 1,
    "stock": 1090369,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/onsemi/1N4148/458603",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "1N4148FS-ND",
    "price_usd": 0.1,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {},
  "sources": [
   "https://www.mouser.com/ProductDetail/512-1N4148",
   "https://www.digikey.com/en/products/detail/onsemi/1N4148/458603"
  ],
  "confidence": "product page",
  "used_for": "the turret's boards (cad/turret_boards.py COMPONENTS)",
  "qty_per_robot": 3,
  "notes": "Body dimensions not looked up (not requested). Digi-Key's onsemi listing is the 100 V / 200 mA part; the Diotec, SMC and similar 1N4148s on Digi-Key are 75 V parts. Also on Digi-Key: 1N4148TR (cut tape / reel, $0.10 at 1)."
 },
 {
  "id": "omron-b3f-1000",
  "key": "omron-b3f-1000",
  "category": "turret",
  "vendor": "Omron (now sold as Aratas, formerly Omron Components)",
  "model": "B3F-1000",
  "name": "Tactile switch 6x6 mm, 4.3 mm, 100 gf (B3F-1000)",
  "price_usd": 0.35,
  "price_note": "Mouser 653-B3F-1000 $0.35, 25,871 in stock (its row on oemstrade.com, read 2026-10-27); Digi-Key SW400-ND $0.35",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/653-B3F-1000",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "653-B3F-1000",
    "price_usd": 0.35,
    "pack_qty": 1,
    "stock": 25871,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Digi-Key",
    "url": "https://digikey.com/product-detail/en/B3F-1000/SW400-ND/33150",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "SW400-ND",
    "price_usd": 0.35,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {},
  "sources": [
   "https://www.mouser.com/ProductDetail/653-B3F-1000",
   "https://digikey.com/product-detail/en/B3F-1000/SW400-ND/33150"
  ],
  "confidence": "product page",
  "used_for": "the turret's boards (cad/turret_boards.py COMPONENTS)",
  "qty_per_robot": 1,
  "notes": "Other heights in the series: B3F-1020 is 5.0 mm, B3F-1060 7.0 mm, B3F-1070 9.5 mm (same datasheet). Size: Height 4.3 mm +-0.2 above the board (body 3.4 mm; plunger 3.5 mm dia); body 6 mm x 6 mm (+-0.2); terminals 3.5 mm long below the body; PCB holes 4 x 1.0 mm dia on a 6.5 x 4.5 mm (+-0.1) rectangle; SPST-NO, 0.98 N (100 gf) operating force, 1-50 mA at 3-24 VDC (Omron B3F datasheet, dimension drawing rendered and read)."
 },
 {
  "id": "ti-sn74hct14n",
  "key": "ti-sn74hct14n",
  "category": "turret",
  "vendor": "Texas Instruments",
  "model": "SN74HCT14N",
  "name": "Hex Schmitt-trigger inverter SN74HCT14N (DIP-14)",
  "price_usd": 0.92,
  "price_note": "Mouser 595-SN74HCT14N $0.92, 3,467 in stock (its row on oemstrade.com, read 2026-10-27); Digi-Key 296-8394-5-ND $0.87",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/595-SN74HCT14N",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "595-SN74HCT14N",
    "price_usd": 0.92,
    "pack_qty": 1,
    "stock": 3467,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Digi-Key",
    "url": "https://digikey.com/product-detail/en/texas-instruments/SN74HCT14N/296-8394-5-ND/376852",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "296-8394-5-ND",
    "price_usd": 0.87,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {},
  "sources": [
   "https://www.mouser.com/ProductDetail/595-SN74HCT14N",
   "https://digikey.com/product-detail/en/texas-instruments/SN74HCT14N/296-8394-5-ND/376852"
  ],
  "confidence": "product page",
  "used_for": "the turret's boards (cad/turret_boards.py COMPONENTS)",
  "qty_per_robot": 1,
  "notes": "Digi-Key is $0.05 cheaper than Mouser at qty 1 and has more stock. Package is 14-PDIP (through-hole DIP-14); body size not looked up (not requested)."
 },
 {
  "id": "yageo-mfr-25fbf52-39k",
  "key": "yageo-mfr-25fbf52-39k",
  "category": "turret",
  "vendor": "Yageo",
  "model": "MFR-25FBF52-39K",
  "name": "Resistor 39 k 1 % 1/4 W metal film (Yageo MFR-25FBF52)",
  "price_usd": 0.1,
  "price_note": "Mouser 603-MFR-25FBF52-39K $0.10, 5,471 in stock (its row on oemstrade.com, read 2026-10-27); Digi-Key 39.0KXBK-ND (price not read: the page returns 403)",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/603-MFR-25FBF52-39K",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "603-MFR-25FBF52-39K",
    "price_usd": 0.1,
    "pack_qty": 1,
    "stock": 5471,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/result?keywords=MFR-25FBF52-39K",
    "in_stock": null,
    "ships_from": "US",
    "seller_pn": "39.0KXBK-ND",
    "price_usd": null,
    "pack_qty": 1,
    "stock": null,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {
   "value": "39 k",
   "tolerance": "1 %",
   "power_w": 0.25,
   "package": "axial, 6.3 x 2.4 mm body"
  },
  "sources": [
   "https://www.mouser.com/ProductDetail/603-MFR-25FBF52-39K",
   "https://www.digikey.com/en/products/result?keywords=MFR-25FBF52-39K"
  ],
  "confidence": "product page",
  "used_for": "the turret's boards (cad/turret_boards.py COMPONENTS)",
  "qty_per_robot": 1,
  "notes": "One-shot A's timing resistor (0.45 x 39 k x 1 uF = 18 ms). Size: axial, body 2.4 mm dia x 6.3 mm long (Yageo MFR-25)."
 },
 {
  "id": "ti-cd74hc423e",
  "key": "ti-cd74hc423e",
  "category": "turret",
  "vendor": "Texas Instruments",
  "model": "CD74HC423E",
  "name": "Dual retriggerable monostable, 74HC423 (no trigger on a rising reset), PDIP-16",
  "price_usd": 1.25,
  "price_note": "Mouser 595-CD74HC423E $1.25, 453 in stock (read 2026-10-27); Digi-Key 296-9229-5-ND $1.22",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/595-CD74HC423E",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "595-CD74HC423E",
    "price_usd": 1.25,
    "pack_qty": 1,
    "stock": 453,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/texas-instruments/CD74HC423E/376955",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "296-9229-5-ND",
    "price_usd": 1.22,
    "pack_qty": 1,
    "stock": 296,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {
   "lifecycle": "ACTIVE. ti.com/product/CD74HC423 and ti.com/product/CD74HC423/part-details/CD74HC423E (fetched 2026-10-27) both say ACTIVE; thepartsdirect page heading says 'Part Status: Active'.",
   "package": "PDIP (N) 16, 25 per tube, RoHS yes (TI part-details page)",
   "supply_v": "2 to 6 (HC types)",
   "temp_c": "-55 to 125",
   "function": "dual retriggerable one-shot with resets; the 423 types are NOT triggered by a rising edge on reset (the 123 types are)",
   "datasheet": "TI SCHS142F, https://www.ti.com/lit/ds/symlink/cd74hc423.pdf (page 1 read from the copy already in /mnt/storage-10tb/claude-scratch/gyropup/turret/elec_review/ds/cd74hc123.pdf; its ordering table lists CD74HC423E as 16 Ld PDIP)",
   "ti_store_stock": "TI.com part-details page shows 'Out of stock' for buying direct from TI; distributor stock is separate",
   "other_in_stock_seen": "TME 242 at $1.48 qty 1 (oemstrade.com 2026-10-27)"
  },
  "sources": [
   "https://www.mouser.com/ProductDetail/595-CD74HC423E",
   "https://www.digikey.com/en/products/detail/texas-instruments/CD74HC423E/376955"
  ],
  "confidence": "product page",
  "used_for": "the arm chain's two one-shots (U7, on 3.3 V)",
  "qty_per_robot": 1,
  "notes": "CONFIRMED active and in stock at both sellers on 2026-10-27 (Mouser 453, Digi-Key 296). Manufacturer lead time shown on the aggregator page is 20 weeks, so order soon rather than assume restock. The Mouser and Digi-Key live pages could not be read directly; numbers are from a dated aggregator. Size: PDIP (N) 16: TI lists 9.4 x 19.3 mm (W x L)"
 },
 {
  "id": "microchip-mcp120",
  "key": "microchip-mcp120",
  "category": "turret",
  "vendor": "Microchip",
  "model": "MCP120-300DI/TO",
  "name": "Voltage supervisor 2.93 V, open-drain active-low reset, TO-92",
  "price_usd": 0.6,
  "price_note": "Mouser 579-MCP120-300DI/TO $0.60, 894 in stock (read 2026-10-27); Digi-Key MCP120-300DI/TO-ND $0.60",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/579-MCP120-300DI/TO",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "579-MCP120-300DI/TO",
    "price_usd": 0.6,
    "pack_qty": 1,
    "stock": 894,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/microchip-technology/MCP120-300DI-TO/275231",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "MCP120-300DI/TO-ND",
    "price_usd": 0.6,
    "pack_qty": 1,
    "stock": 1901,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {
   "vtrip_v": {
    "min": 2.85,
    "typ": 2.925,
    "max": 3.0,
    "note": "MCP1X0-300 row of the datasheet table, VDD falling; hysteresis 50 mV typ"
   },
   "reset_timeout_tRPU_ms": {
    "min": 150,
    "typ": 350,
    "max": 700,
    "note": "table 'VDD detect to RESET inactive'; typ values are at 25 C and VDD = 5.0 V. Fig. 2-3 (tRPU vs temperature) shows roughly 290-300 ms at VDD = 3 V and 25 C (read off the graph, approximate)."
   },
   "output": "open drain, active-low RST (needs an external pull-up; the MCP130 variant has an internal 5 kOhm). Leakage 1 uA typ. VOL max 0.4 V at IOL = 3.2 mA.",
   "vdd_range_v": "1.0 to 5.5 (RESET asserted valid down to VDD = 1.0 V)",
   "idd_ua": {
    "typ": 45,
    "max": 60,
    "note": "at VDD = 5.5 V, no load"
   },
   "tRPD_us_typ": 10,
   "temp_c": "-40 to +85 (Industrial, 'I')",
   "pinout_D_bondout": "-DI/TO = 'D' bondout: RST, VDD, VSS on pins 1, 2, 3 (flat face toward you, leads down) as drawn on datasheet page 1 - check the figure before wiring",
   "datasheet": "Microchip DS11184D (2001) MCP120/130, https://ww1.microchip.com/downloads/en/DeviceDoc/11184d.pdf (downloaded and read)",
   "alternate": {
    "mfr_pn": "MCP120-315DI/TO",
    "mouser": "579-MCP120-315DI/TO",
    "mouser_stock": 1867,
    "mouser_price_usd": 0.6,
    "vtrip_v": "3.00 min / 3.075 typ / 3.15 max",
    "source": "oemstrade.com/search/MCP120-315DI%2FTO 2026-10-27"
   }
  },
  "sources": [
   "https://www.mouser.com/ProductDetail/579-MCP120-300DI/TO",
   "https://www.digikey.com/en/products/detail/microchip-technology/MCP120-300DI-TO/275231"
  ],
  "confidence": "product page",
  "used_for": "the power-up reset of the trip latch and one-shot A (U14)",
  "qty_per_robot": 1,
  "notes": "Picked -300 over -315: its worst-case trip (3.00 V max) stays below 3.3 V -5% = 3.135 V, so it cannot false-reset on an in-spec rail; the -315 tops out at 3.15 V, above 3.135 V. Both have Mouser stock at the same price (-315: 1,867). Design for a hold time anywhere in 150-700 ms. Live Mouser/Digi-Key pages not read directly; numbers come from dated aggregators. Size: TO-92-3: height-to-flat A 3.30-3.94 mm, width E1 4.45-4.95 mm, length D 4.32-4.95 mm, lead pitch 1.27 mm, lead length 12.70-15.49 mm, lead 0.41-0.56 x 0.36-0.51 mm (datasheet page 7)"
 },
 {
  "id": "vishay-bat85",
  "key": "vishay-bat85",
  "category": "turret",
  "vendor": "Vishay",
  "model": "BAT85S-TAP",
  "name": "Schottky diode 30 V 200 mA, DO-35 (BAT85S)",
  "price_usd": 0.5,
  "price_note": "Mouser 78-BAT85S-TAP $0.50, 41,995 in stock (read 2026-10-27); Digi-Key BAT85S-TAPCT-ND $0.50",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/78-BAT85S-TAP",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "78-BAT85S-TAP",
    "price_usd": 0.5,
    "pack_qty": 1,
    "stock": 41995,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/result?keywords=BAT85S-TAP",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "BAT85S-TAPCT-ND",
    "price_usd": 0.5,
    "pack_qty": 1,
    "stock": 61329,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {
   "vf_at_1mA_max_V": 0.32,
   "vf_at_1mA_typ_V": "about 0.25 (read off Fig. 1, Tj = 25 C curve; approximate, the table gives no typ column)",
   "vf_max_table_mV": {
    "0.1 mA": 240,
    "1 mA": 320,
    "10 mA": 400,
    "30 mA": 500,
    "100 mA": 800
   },
   "vr_v": 30,
   "if_cont_mA": 200,
   "ifrm_mA": 300,
   "ifsm_A": "5 (tp <= 10 ms)",
   "ir_uA_max": "2 at VR = 25 V",
   "cd_pF_max": "10 at VR = 1 V, 1 MHz",
   "trr_ns_max": 5,
   "tj_max_c": 125,
   "datasheet": "Vishay document 85513, Rev. 2.2 (07-Nov-2024), https://www.vishay.com/docs/85513/bat85s.pdf (downloaded and read)"
  },
  "sources": [
   "https://www.mouser.com/ProductDetail/78-BAT85S-TAP",
   "https://www.digikey.com/en/products/result?keywords=BAT85S-TAP"
  ],
  "confidence": "product page",
  "used_for": "the servo bus's RX (D6)",
  "qty_per_robot": 1,
  "notes": "Used BAT85S: no plain Vishay BAT85-TAP/TR exists in oemstrade (no results for BAT85-TAP), and the Vishay DO-35 part is BAT85S. The 1 mA Vf in the datasheet table is a MAXIMUM (320 mV); there is no typical column. Manufacturer lead time on the aggregator page is 28 weeks, but both sellers hold tens of thousands. Size: DO-35 (DO-204AH): body 3.1-3.9 mm long x 1.3-1.7 mm dia, leads 0.4-0.6 mm dia, 26 mm min length, black cathode band; ammopack (TAP) 10k per pack"
 },
 {
  "id": "schottky-1n5817",
  "key": "schottky-1n5817",
  "category": "turret",
  "vendor": "Diodes Inc",
  "model": "1N5817-T",
  "name": "Schottky rectifier 1 A 20 V, DO-41 (1N5817)",
  "price_usd": 0.37,
  "price_note": "Mouser 621-1N5817 $0.37, 15,381 in stock (read 2026-10-27); Digi-Key 1N5817DICT-ND $0.37",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/621-1N5817",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "621-1N5817",
    "price_usd": 0.37,
    "pack_qty": 1,
    "stock": 15381,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/result?keywords=1N5817-T",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "1N5817DICT-ND",
    "price_usd": 0.37,
    "pack_qty": 1,
    "stock": 28734,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {
   "vrrm_v": 20,
   "io_A": "1.0 at TL = 90 C",
   "ifsm_A": "25 (8.3 ms half sine)",
   "vf_V": "0.450 at 1.0 A; 0.750 at 3.0 A (table values, listed under 'Maximum Ratings and Electrical Characteristics')",
   "ir": "1.0 mA at 25 C, 10 mA at 100 C (at rated VR)",
   "ct_pF_typ": 110,
   "tj_c": "-65 to +125",
   "packing": "1N5817-T = 5k per 13 inch tape & reel",
   "datasheet": "Diodes Inc DS23001 Rev. 10-2 (Apr 2023), https://www.diodes.com/assets/Datasheets/ds23001.pdf (downloaded and read)"
  },
  "sources": [
   "https://www.mouser.com/ProductDetail/621-1N5817",
   "https://www.digikey.com/en/products/result?keywords=1N5817-T"
  ],
  "confidence": "product page",
  "used_for": "the Feather's USB pin feed (D7)",
  "qty_per_robot": 1,
  "notes": "Cheapest qty-1 among the three makers named at Mouser (same row on 2026-10-27): Diodes Inc $0.37, onsemi 1N5817G (863-1N5817G) $0.67 with 14132 in stock, Vishay 1N5817-E3/54 (625-1N5817-E3) $0.72 with 20514 in stock (oemstrade). Cathode = banded end. Size: DO-41: body 4.06-5.21 mm long x 2.00-2.72 mm dia; leads 0.71-0.864 mm dia, 25.4 mm min length"
 },
 {
  "id": "schottky-1n5822",
  "key": "schottky-1n5822",
  "category": "turret",
  "vendor": "onsemi",
  "model": "1N5822G",
  "name": "Schottky rectifier 3 A 40 V, DO-201AD (1N5822)",
  "price_usd": 0.83,
  "price_note": "Mouser 863-1N5822G $0.83, 15,695 in stock (read 2026-10-27); Digi-Key 1N5822-E3/54GICT-ND $0.91",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/863-1N5822G",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "863-1N5822G",
    "price_usd": 0.83,
    "pack_qty": 1,
    "stock": 15695,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/result?keywords=1N5822-E3%2F54",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "1N5822-E3/54GICT-ND",
    "price_usd": 0.91,
    "pack_qty": 1,
    "stock": 7531,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {
   "vrrm_v": 40,
   "io_A": "3.0",
   "ifsm_A": "80 (one cycle)",
   "vf_max_V": {
    "1 A": 0.39,
    "3 A": 0.525,
    "9.4 A": 0.95
   },
   "ir_max_mA": "2.0 at 25 C, 20 at 100 C (rated VR)",
   "tj_c": "-65 to +125",
   "rthja_c_per_w": 28,
   "datasheet": "onsemi 1N5820/D Rev. 11 (Nov 2023), https://www.onsemi.com/pdf/datasheet/1n5820-d.pdf (downloaded and read)"
  },
  "sources": [
   "https://www.mouser.com/ProductDetail/863-1N5822G",
   "https://www.digikey.com/en/products/result?keywords=1N5822-E3%2F54"
  ],
  "confidence": "product page",
  "used_for": "the reverse-polarity diode after the 5 A fuse (D8) and across the 2815's output (D10)",
  "qty_per_robot": 1,
  "notes": "onsemi 1N5822G is the cheapest of the named makers at Mouser (Vishay 1N5822-E3/54 = 625-1N5822-E3, $0.91, 3292 in stock). Cheaper non-listed makers exist at Mouser (Taiwan Semiconductor 821-1N5822 $0.71, 1985 in stock) but were not chosen. The same aggregator page also shows Digi-Key 2156-1N5822G-ND with 11,879 in stock at $0.32; the seller of that listing could not be verified, so it is not used. Size: DO-201AD (case 267-05): body 7.30-9.50 mm long x 4.80-5.30 mm dia; leads 1.20-1.30 mm dia, 25.4 mm min length; cathode = polarity band"
 },
 {
  "id": "tvs-p6ke15a",
  "key": "tvs-p6ke15a",
  "category": "turret",
  "vendor": "Vishay",
  "model": "P6KE15A-E3/54",
  "name": "TVS diode 600 W unidirectional, 12.8 V standoff, 21.2 V clamp, DO-15 (P6KE15A)",
  "price_usd": 0.96,
  "price_note": "Mouser 625-P6KE15A-E3 $0.96, 2,378 in stock (read 2026-10-27); Digi-Key P6KE15A-E3/54GICT-ND $0.96",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/625-P6KE15A-E3",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "625-P6KE15A-E3",
    "price_usd": 0.96,
    "pack_qty": 1,
    "stock": 2378,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/result?keywords=P6KE15A-E3%2F54",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "P6KE15A-E3/54GICT-ND",
    "price_usd": 0.96,
    "pack_qty": 1,
    "stock": 1054,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {
   "VRWM_V": 12.8,
   "VBR_V": {
    "min": 14.3,
    "max": 15.8,
    "at_IT_mA": 1.0,
    "note": "15 V nominal by part number; the table gives min/max only"
   },
   "VC_max_V": 21.2,
   "IPP_A": "28.3 (10/1000 us, the current at which VC = 21.2 V max applies)",
   "ID_uA_max_at_VWM": 1.0,
   "PPPM_W": "600 (10/1000 us)",
   "IFSM_A": 100,
   "polarity": "unidirectional; color band = cathode (CA suffix would be bidirectional)",
   "tempco_pct_per_c": 0.084,
   "datasheet": "Vishay document 88369 (P6KE6.8A thru P6KE540A), Revision 27-Sep-2021, https://www.vishay.com/docs/88369/p6ke.pdf (downloaded and read). Values are the common 600 W P6KE series values; the Littelfuse PDF returned 403 and was not read."
  },
  "sources": [
   "https://www.mouser.com/ProductDetail/625-P6KE15A-E3",
   "https://www.digikey.com/en/products/result?keywords=P6KE15A-E3%2F54"
  ],
  "confidence": "product page",
  "used_for": "across 12 V MAIN at the 2815 (D9) and 12 V FLY at the cartridge (D11)",
  "qty_per_robot": 1,
  "notes": "Littelfuse P6KE15A: no in-stock Mouser row found (oemstrade shows Mouser 576-P6KE15A-B with stock 0; thepartsdirect has no Mouser row; an older WebSearch snippet claiming 7,217 in stock is stale). Digi-Key Littelfuse P6KE15ALFCT-ND has 6,742 in stock at $0.70 qty 1 (thepartsdirect 10/27/26, https://www.digikey.com/en/products/detail/littelfuse-inc/P6KE15A/285926) and is the cheaper alternative if the BOM allows any maker. No Bourns P6KE15A found at Mouser or Digi-Key. A Digi-Key listing snippet gives Littelfuse IPP as 28.8 A versus 28.3 A on the Vishay sheet (unverified; VC = 21.2 V in both). Size: DO-15 (DO-204AC): body 6.15-6.55 mm long x 3.3-3.5 mm dia; leads 0.71-0.86 mm dia, 25.4 mm min length"
 },
 {
  "id": "bourns-mf-r010",
  "key": "bourns-mf-r010",
  "category": "turret",
  "vendor": "Bourns",
  "model": "MF-R010",
  "name": "Resettable PTC fuse 0.10 A hold, 60 V, radial (MF-R010)",
  "price_usd": 0.33,
  "price_note": "Mouser 652-MFR010 $0.33, 11,219 in stock (read 2026-10-27); Digi-Key MF-R010-ND $0.40",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/652-MFR010",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "652-MFR010",
    "price_usd": 0.33,
    "pack_qty": 1,
    "stock": 11219,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/bourns-inc/MF-R010/259959",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "MF-R010-ND",
    "price_usd": 0.4,
    "pack_qty": 1,
    "stock": 7433,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {
   "ihold_A": 0.1,
   "itrip_A": "0.20 at 23 C",
   "vmax_V": 60,
   "imax_A": 40,
   "resistance_ohm": "2.50 min / 4.50 max initial; 7.50 max one hour after trip",
   "max_time_to_trip": "4.0 s at 0.5 A (23 C)",
   "tripped_power_W_typ": 0.38,
   "derating_ihold_itrip_A": {
    "-40 C": "0.16 / 0.32",
    "0 C": "0.12 / 0.24",
    "23 C": "0.10 / 0.20",
    "40 C": "0.08 / 0.16",
    "60 C": "0.06 / 0.12",
    "85 C": "0.04 / 0.08"
   },
   "style": "radial leaded, Bourns 'Style 1', lead Sn/NiCu",
   "datasheet": "Bourns MF-R Series, https://www.bourns.com/docs/product-datasheets/mfr.pdf (PDF created May 2026, downloaded and read)"
  },
  "sources": [
   "https://www.mouser.com/ProductDetail/652-MFR010",
   "https://www.digikey.com/en/products/detail/bourns-inc/MF-R010/259959"
  ],
  "confidence": "product page",
  "used_for": "the pendant loop's feed (F4)",
  "qty_per_robot": 1,
  "notes": "Other readable sellers on 2026-10-27: Newark 38K5104 has 12,502 in stock at $0.256 qty 1 (thepartsdirect), cheaper than both. Hold current drops to 0.08 A at 40 C, so check the real operating temperature. Size: Bourns MF-R010 outline (Style 1), all maximum unless noted: A width 7.4 mm, B height 12.7 mm, E thickness 3.1 mm; C lead spacing 5.1 mm nominal (+/-0.7 mm); D lead length 7.6 mm min; lead dia 0.51 mm"
 },
 {
  "id": "switchcraft-tb3m",
  "key": "switchcraft-tb3m",
  "category": "turret",
  "vendor": "Switchcraft",
  "model": "TB3M",
  "name": "Mini-XLR 3-pin male panel receptacle (TB3M), latching, keyed",
  "price_usd": 13.1,
  "price_note": "Mouser 502-TB3M $13.10, 2,619 in stock (read 2026-10-27); Digi-Key TB3M-ND $13.24",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/502-TB3M",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "502-TB3M",
    "price_usd": 13.1,
    "pack_qty": 1,
    "stock": 2619,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/switchcraft-inc/TB3M/137715",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "TB3M-ND",
    "price_usd": 13.24,
    "pack_qty": 1,
    "stock": 1488,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {
   "type": "3-pin male chassis/panel receptacle, solder terminals, latch-lock, keyed (polarizing groove), pins fully recessed ('scoop-proof'), nickel housing",
   "fixing": "7/16-32 UNS-2A threaded bushing; hex nut and flat washer supplied ('mounting hardware supplied'); no screws, no snap",
   "max_panel_thickness_mm": 6.4,
   "audio_plug_safe": "yes - male receptacle with recessed pins and a latch, cannot take a 3.5 mm or 6.35 mm audio plug",
   "ratings_catalog": "receptacles: 1.5 A, 125 VAC carry-only, 250 V rms dielectric, 2000 operations; distributor listings quote 5 A for the TB3M",
   "wire": "28 AWG stranded (catalog, receptacles)",
   "datasheet": "Switchcraft Tini Q-G catalog pages 31-37 (TB(*)M outline on page 33), https://datasheet.octopart.com/TB3M-Switchcraft-datasheet-111022410.pdf (downloaded and read; dimensions marked 'for reference only'). switchcraft.com product pages are empty to WebFetch."
  },
  "sources": [
   "https://www.mouser.com/ProductDetail/502-TB3M",
   "https://www.digikey.com/en/products/detail/switchcraft-inc/TB3M/137715"
  ],
  "confidence": "product page",
  "used_for": "the stand's pendant socket: keyed, takes no audio plug",
  "qty_per_robot": 1,
  "notes": "MATES WITH the cable plug TA3FLX in the next entry (also with TA3FX / TA3F female cord plugs). Chosen pair is the cheapest I could confirm in stock at Mouser or Digi-Key: Mouser TB3M $13.10 + TA3FLX $14.22 = $27.32 (Digi-Key $13.24 + $14.22 = $27.46). The 11.4 mm hole is inferred: the catalog drawing gives only the 7/16-32 thread and 11.10 mm major dia, and the 0.45 in hole figure comes from the catalog's note for the TBA adapters that use the same 7/16 inch thread - test-print the cutout. TB3MW did not appear in the oemstrade TB3M results; the Mouser rows there are TB3M, TB3MB (black housing, 502-TB3MB, $16.47, 79 in stock) and TB3MS (sealed, 502-TB3MS, $22.52, 0 in stock). Alternatives checked and rejected: (1) Same Sky mini-DIN: the panel part MD-30PL100 (25 x 14 mm flange, 2 x 2.1 mm screw holes 19 mm apart, about 12 mm body, 10 cm leads, about $2-4) and cable plug MD-30 (44 mm long, strain-relief end 5.0 mm dia) have no Mouser or Digi-Key stock rows on oemstrade or thepartsdirect (stocked at Future, Master, Onlinecomponents, Verical with 20-25 piece minimums); Mouser only has PCB-mount MD-30SM $1.92 and MD-30SV $2.00, which are not panel-mount; Digi-Key has a page for the MD-30 plug (CP-2030-ND, undated search-snippet price $2.38 qty 1) but no stock row was found for it; the MD-30CV panel jack is marked discontinued and the MD-30SP datasheet carries a DISCONTINUED watermark. So it is cheaper on paper but not confirmable in stock at either seller. (2) Bulgin Buccaneer: Mouser 167-PX0412/03S panel socket $13.29 (450) plus 177-PX0410/03P/3035 plug $16.20 (21 in stock), about $29.49, more expensive. Size: PANEL CUTOUT: circular hole, 11.4 mm dia (0.45 in; for the 3D-printed panel use 11.4-11.5 mm). Optional 'D' hole: the bushing is 11.10 mm (0.437 in) dia with a 0.89 mm (0.035 in) flat, i.e. about 10.2 mm across the flat. Max panel thickness 6.4 mm (0.25 in), so 2-4 mm is fine. Front lip 11.9 mm (0.468 in) dia. Washer 15.9 mm dia x 0.5 mm; nut 2.3 mm thick. Drawing also shows 12.4 mm and 9.9 mm body/thread length dimensions and 4.2 mm solder tails at the rear (reference-only drawing; check against a sample before fixing the enclosure depth)."
 },
 {
  "id": "switchcraft-ta3flx",
  "key": "switchcraft-ta3flx",
  "category": "turret",
  "vendor": "Switchcraft",
  "model": "TA3FLX",
  "name": "Mini-XLR 3-pin female cable plug (TA3FLX), latching, cable <= 4.32 mm",
  "price_usd": 14.22,
  "price_note": "Mouser 502-TA3FLX $14.22, 323 in stock (read 2026-10-27); Digi-Key TA3FLX-ND $14.22",
  "price_checked": "2026-10-27",
  "buy": [
   {
    "seller": "Mouser",
    "url": "https://www.mouser.com/ProductDetail/502-TA3FLX",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "502-TA3FLX",
    "price_usd": 14.22,
    "pack_qty": 1,
    "stock": 323,
    "read_on": "2026-10-27"
   },
   {
    "seller": "Digi-Key",
    "url": "https://www.digikey.com/en/products/detail/switchcraft-inc/TA3FLX/TA3FLX-ND/1290022",
    "in_stock": true,
    "ships_from": "US",
    "seller_pn": "TA3FLX-ND",
    "price_usd": 14.22,
    "pack_qty": 1,
    "stock": 631,
    "read_on": "2026-10-27"
   }
  ],
  "specs": {
   "type": "3-contact straight female cord plug, solder cups, internal clamp strain relief, latch-lock, flex relief omitted (L variant)",
   "cable_diameter_range": "up to 4.32 mm (0.170 in) without flex relief (TA3FL series). Minimum is not stated by Switchcraft. With a flex-relief boot (TA3F / TA3FX) the recommended maximum is 2.92 mm (0.115 in).",
   "housing_dia_mm": "10.5 (0.413 in)",
   "wire_gauge": "#22 solid or #24 stranded max in the solder cups (catalog, 3-5 pin cord mount)",
   "ratings_catalog": "3-5 pin cord plug: 5 A, 125 VAC carry-only, 5000 operations",
   "datasheet": "Switchcraft Tini Q-G catalog pages 31-37, https://datasheet.octopart.com/TB3M-Switchcraft-datasheet-111022410.pdf (downloaded and read)"
  },
  "sources": [
   "https://www.mouser.com/ProductDetail/502-TA3FLX",
   "https://www.digikey.com/en/products/detail/switchcraft-inc/TA3FLX/TA3FLX-ND/1290022"
  ],
  "confidence": "product page",
  "used_for": "the pendant's plug (the switch's 3.5 mm plug cut off, this soldered on)",
  "qty_per_robot": 1,
  "notes": "MATES WITH the panel receptacle TB3M in the previous entry. Chosen over TA3FX (flex relief, cable <= 2.92 mm): TA3FX is out of stock at Mouser (502-TA3FX, stock 0, $13.98); Digi-Key TA3FX-ND has 1,461 at $14.59 qty 1 (thepartsdirect 10/27/26, https://www.digikey.com/en/products/detail/switchcraft-inc/TA3FX/1290046) if a thin cable and a boot are wanted. TA3F-ND at Digi-Key is on order, non-RoHS, not usable. Pair cost: Mouser $27.32, Digi-Key $27.46. Size: Housing 10.5 mm (0.413 in) dia; cable OD 4.32 mm max (no flex relief). Weight about 7 g."
 }
]
