← Commit history
README.md+47−47
@@ -8,26 +8,26 @@ AT89C2051-12PU from Microchip Tech, in a DIP-20. Pinout and pin descriptions ext  | Pin | Name | Type | Function | |---|---|---|---|-| 1 | RST/VPP | input | Reset input: all I/O pins are reset to 1s as soon as RST goes high, and holding it high for two machine cycles while the oscillator runs resets the device. |-| 2 | P3.0 (RXD) | bidirectional | Port 3 bi-directional I/O pin with internal pull-up; alternate function is RXD serial input port. |-| 3 | P3.1 (TXD) | bidirectional | Port 3 bi-directional I/O pin with internal pull-up; alternate function is TXD serial output port. |-| 4 | XTAL2 | output | Output from the inverting oscillator amplifier. |-| 5 | XTAL1 | input | Input to the inverting oscillator amplifier and input to the internal clock operating circuit. |-| 6 | P3.2 (INT0) | bidirectional | Port 3 bi-directional I/O pin with internal pull-up; alternate function is external interrupt 0 (INT0). |-| 7 | P3.3 (INT1) | bidirectional | Port 3 bi-directional I/O pin with internal pull-up; alternate function is external interrupt 1 (INT1). |-| 8 | P3.4 (T0) | bidirectional | Port 3 bi-directional I/O pin with internal pull-up; alternate function is timer 0 external input (T0). |-| 9 | P3.5 (T1) | bidirectional | Port 3 bi-directional I/O pin with internal pull-up; alternate function is timer 1 external input (T1). |+| 1 | RST/VPP | input | Reset input: holding RST high for two machine cycles while the oscillator runs resets the device, and RST is raised to 12 V to enable Flash programming. |+| 2 | P3.0 (RXD) | bidirectional | Port 3 bit with internal pull-up; alternate function RXD, the serial input port, and Port 3 output buffers can sink 20 mA. |+| 3 | P3.1 (TXD) | bidirectional | Port 3 bit with internal pull-up; alternate function TXD, the serial output port, and also the RDY/BSY output during programming. |+| 4 | XTAL2 | output | Output from the inverting oscillator amplifier; left unconnected when an external clock drives XTAL1. |+| 5 | XTAL1 | input | Input to the inverting oscillator amplifier and to the internal clock operating circuit. |+| 6 | P3.2 (INT0) | bidirectional | Port 3 bit with internal pull-up; alternate function INT0, external interrupt 0, and used as PROG during Flash programming. |+| 7 | P3.3 (INT1) | bidirectional | Port 3 bit with internal pull-up; alternate function INT1, external interrupt 1. |+| 8 | P3.4 (T0) | bidirectional | Port 3 bit with internal pull-up; alternate function T0, timer 0 external input (printed as "TO" on the pin diagram). |+| 9 | P3.5 (T1) | bidirectional | Port 3 bit with internal pull-up; alternate function T1, timer 1 external input. | | 10 | GND | power_in | Ground. |-| 11 | P3.7 | bidirectional | Port 3 bi-directional I/O pin with internal pull-up; can sink 20 mA as an output buffer. |-| 12 | P1.0 (AIN0) | bidirectional | Port 1 bi-directional I/O pin that requires an external pull-up and serves as the positive input (AIN0) of the on-chip precision analog comparator; output buffer sinks 20 mA. |-| 13 | P1.1 (AIN1) | bidirectional | Port 1 bi-directional I/O pin that requires an external pull-up and serves as the negative input (AIN1) of the on-chip precision analog comparator; output buffer sinks 20 mA. |-| 14 | P1.2 | bidirectional | Port 1 bi-directional I/O pin with internal pull-up; output buffer sinks 20 mA and can drive LED displays directly. |-| 15 | P1.3 | bidirectional | Port 1 bi-directional I/O pin with internal pull-up; output buffer sinks 20 mA and can drive LED displays directly. |-| 16 | P1.4 | bidirectional | Port 1 bi-directional I/O pin with internal pull-up; output buffer sinks 20 mA and can drive LED displays directly. |-| 17 | P1.5 | bidirectional | Port 1 bi-directional I/O pin with internal pull-up; output buffer sinks 20 mA and can drive LED displays directly. |-| 18 | P1.6 | bidirectional | Port 1 bi-directional I/O pin with internal pull-up; output buffer sinks 20 mA and can drive LED displays directly. |-| 19 | P1.7 | bidirectional | Port 1 bi-directional I/O pin with internal pull-up; output buffer sinks 20 mA and can drive LED displays directly. |-| 20 | VCC | power_in | Supply voltage, 2.7V to 6V operating range for this speed grade. |+| 11 | P3.7 | bidirectional | Port 3 bit with internal pull-up; general-purpose bidirectional I/O, output buffer can sink 20 mA. |+| 12 | P1.0 (AIN0) | bidirectional | Port 1 bit that requires an external pull-up; serves as the positive input AIN0 of the on-chip analog comparator and can sink 20 mA. |+| 13 | P1.1 (AIN1) | bidirectional | Port 1 bit that requires an external pull-up; serves as the negative input AIN1 of the on-chip analog comparator and can sink 20 mA. |+| 14 | P1.2 | bidirectional | Port 1 bit with internal pull-up; can sink 20 mA and drive LEDs directly. |+| 15 | P1.3 | bidirectional | Port 1 bit with internal pull-up; can sink 20 mA and drive LEDs directly. |+| 16 | P1.4 | bidirectional | Port 1 bit with internal pull-up; can sink 20 mA and drive LEDs directly. |+| 17 | P1.5 | bidirectional | Port 1 bit with internal pull-up; can sink 20 mA and drive LEDs directly. |+| 18 | P1.6 | bidirectional | Port 1 bit with internal pull-up; can sink 20 mA and drive LEDs directly. |+| 19 | P1.7 | bidirectional | Port 1 bit with internal pull-up; can sink 20 mA and drive LEDs directly. |+| 20 | VCC | power_in | Supply voltage; the DC characteristics specify VCC = 2.7 V to 6.0 V. |  ## Key specifications @@ -58,40 +58,40 @@ Limits as printed in the datasheet (page.json `metadata.characteristics` carries | Power Supply Current, Active Mode | ICC |  |  | 5.5 | mA | Active Mode, 12 MHz, VCC = 3V | 12 | | Power Supply Current, Idle Mode | ICC |  |  | 5 | mA | Idle Mode, 12 MHz, VCC = 6V, P1.0 & P1.1 = 0V or VCC | 12 | | Power Supply Current, Idle Mode | ICC |  |  | 1 | mA | Idle Mode, 12 MHz, VCC = 3V, P1.0 & P1.1 = 0V or VCC | 12 |-| Power Supply Current, Power-down Mode | ICC |  |  | 100 | µA | Power-down Mode, VCC = 6V, P1.0 & P1.1 = 0V or VCC | 12 |-| Power Supply Current, Power-down Mode | ICC |  |  | 20 | µA | Power-down Mode, VCC = 3V, P1.0 & P1.1 = 0V or VCC | 12 |+| Power Supply Current, Power-down Mode | ICC |  |  | 100 | µA | VCC = 6V, P1.0 & P1.1 = 0V or VCC | 12 |+| Power Supply Current, Power-down Mode | ICC |  |  | 20 | µA | VCC = 3V, P1.0 & P1.1 = 0V or VCC | 12 | | Oscillator Frequency | 1/tCLCL | 0 |  | 12 | MHz | VCC = 2.7V to 6.0V | 13 | | Clock Period | tCLCL | 83.3 |  |  | ns | VCC = 2.7V to 6.0V | 13 | | High Time | tCHCX | 30 |  |  | ns | VCC = 2.7V to 6.0V | 13 | | Low Time | tCLCX | 30 |  |  | ns | VCC = 2.7V to 6.0V | 13 |-| Rise Time | tCLCH | 20 |  |  | ns | VCC = 2.7V to 6.0V | 13 |-| Fall Time | tCHCL | 20 |  |  | ns | VCC = 2.7V to 6.0V | 13 |-| Serial Port Clock Cycle Time | tXLXL | 1 |  |  | µs | 12 MHz Osc | 14 |-| Input Data Hold after Clock Rising Edge | tXHDX | 0 |  |  | ns | 12 MHz Osc | 14 |-| Supply Voltage (operating range) | VCC | 2.7 |  | 6 | V | AT89C2051-12PU, 12 MHz speed grade | 12 |-| Operating Temperature (Industrial) | TA | -40 |  | 85 | °C | Industrial | 16 |-| Operating Temperature | TA | -55 |  | 125 | °C |  | 12 |-| Storage Temperature | TSTG | -65 |  | 150 | °C |  | 12 |+| Rise Time | tCLCH |  |  | 20 | ns | VCC = 2.7V to 6.0V | 13 |+| Fall Time | tCHCL |  |  | 20 | ns | VCC = 2.7V to 6.0V | 13 |+| Serial Port Clock Cycle Time | tXLXL | 1 |  |  | µs | 12 MHz Osc; VCC = 5.0V ± 20%; Load Capacitance = 80 pF | 13 |+| Output Data Setup to Clock Rising Edge | tQVXH | 700 |  |  | ns | 12 MHz Osc; VCC = 5.0V ± 20%; Load Capacitance = 80 pF | 13 |+| Output Data Hold after Clock Rising Edge | tXHQX | 50 |  |  | ns | 12 MHz Osc; VCC = 5.0V ± 20%; Load Capacitance = 80 pF | 13 |+| Input Data Hold after Clock Rising Edge | tXHDX | 0 |  |  | ns | 12 MHz Osc; VCC = 5.0V ± 20%; Load Capacitance = 80 pF | 13 |+| Clock Rising Edge to Input Data Valid | tXHDV | 700 |  |  | ns | 12 MHz Osc; VCC = 5.0V ± 20%; Load Capacitance = 80 pF | 13 |+| Operating Temperature |  | -55 |  | 125 | °C |  | 12 |+| Storage Temperature |  | -65 |  | 150 | °C |  | 12 | | Voltage on Any Pin with Respect to Ground |  | -1 |  | 7 | V |  | 12 | | Maximum Operating Voltage |  |  |  | 6.6 | V |  | 12 | | DC Output Current |  |  |  | 25 | mA |  | 12 |-| Maximum IOL per port pin (steady state) | IOL |  |  | 20 | mA |  | 12 |-| Maximum total IOL for all output pins (steady state) | IOL |  |  | 80 | mA |  | 12 |-| Minimum VCC for Power-down | VCC | 2 |  |  | V |  | 12 |-| Programming Enable Voltage | VPP | 11.5 |  | 12.5 | V |  | 11 |-| Programming Enable Current | IPP |  |  | 250 | µA |  | 11 |-| Data Setup to PROG Low | tDVGL | 1 |  |  | µs |  | 11 |-| Data Hold after PROG | tGHDX | 1 |  |  | µs |  | 11 |-| P3.4 (ENABLE) High to VPP | tEHSH | 1 |  |  | µs |  | 11 |-| VPP Setup to PROG Low | tSHGL | 10 |  |  | µs |  | 11 |-| VPP Hold after PROG | tGHSL | 10 |  |  | µs |  | 11 |-| PROG Width | tGLGH | 1 |  | 110 | µs |  | 11 |-| ENABLE Low to Data Valid | tELQV |  |  | 1 | µs |  | 11 |-| Data Float after ENABLE | tEHQZ | 0 |  | 1 | µs |  | 11 |-| PROG High to BUSY Low | tGHBL | 50 |  |  | ns |  | 11 |-| Byte Write Cycle Time | tWC |  |  | 2 | ms |  | 11 |-| RDY/BSY to Increment Clock Delay | tBHIH | 1 |  |  | µs |  | 11 |-| Increment Clock High | tIHIL | 200 |  |  | ns |  | 11 |+| Supply Voltage (operating range for AT89C2051-12PU) | VCC | 2.7 |  | 6 | V | TA = -40°C to 85°C, VCC = 2.7V to 6.0V (DC characteristics range) | 12 |+| Operating Temperature (Industrial) |  | -40 |  | 85 | °C | Industrial operation range | 16 |+| Programming Enable Voltage | VPP | 11.5 |  | 12.5 | V | TA = 0°C to 70°C, VCC = 5.0 ± 10% | 11 |+| Programming Enable Current | IPP |  |  | 250 | µA | TA = 0°C to 70°C, VCC = 5.0 ± 10% | 11 |+| Data Setup to PROG Low | tDVGL | 1 |  |  | µs | TA = 0°C to 70°C, VCC = 5.0 ± 10% | 11 |+| Data Hold after PROG | tGHDX | 1 |  |  | µs | TA = 0°C to 70°C, VCC = 5.0 ± 10% | 11 |+| P3.4 (ENABLE) High to VPP | tEHSH | 1 |  |  | µs | TA = 0°C to 70°C, VCC = 5.0 ± 10% | 11 |+| VPP Setup to PROG Low | tSHGL | 10 |  |  | µs | TA = 0°C to 70°C, VCC = 5.0 ± 10% | 11 |+| VPP Hold after PROG | tGHSL | 10 |  |  | µs | TA = 0°C to 70°C, VCC = 5.0 ± 10% | 11 |+| PROG Width | tGLGH | 1 |  | 110 | µs | TA = 0°C to 70°C, VCC = 5.0 ± 10% | 11 |+| ENABLE Low to Data Valid | tELQV | 1 |  |  | µs | TA = 0°C to 70°C, VCC = 5.0 ± 10% | 11 |+| Data Float after ENABLE | tEHQZ | 0 |  | 1 | µs | TA = 0°C to 70°C, VCC = 5.0 ± 10% | 11 |+| PROG High to BUSY Low | tGHBL | 50 |  |  | ns | TA = 0°C to 70°C, VCC = 5.0 ± 10% | 11 |+| Byte Write Cycle Time | tWC |  |  | 2 | ms | TA = 0°C to 70°C, VCC = 5.0 ± 10% | 11 |+| RDY/BSY to Increment Clock Delay | tBHIH | 1 |  |  | µs | TA = 0°C to 70°C, VCC = 5.0 ± 10% | 11 |+| Increment Clock High | tIHIL | 200 |  |  | ns | TA = 0°C to 70°C, VCC = 5.0 ± 10% | 11 |  ## CAD (KiCad official) @@ -104,7 +104,7 @@ Limits as printed in the datasheet (page.json `metadata.characteristics` carries  Data extracted from the manufacturer datasheet, not a distributor listing: -- **Datasheet:** [Microchip Tech datasheet](docs/at89c2051-12pu-datasheet.pdf) (19 pp, sha256 `2ef3a172c794a432`, retrieved 2026-11-10, tier: manufacturer)+- **Datasheet:** [Microchip Tech datasheet](docs/at89c2051-12pu-datasheet.pdf) (19 pp, sha256 `2ef3a172c794a432`, retrieved 2026-11-11, tier: manufacturer) - **Extractor:** parts-factory `2.0.0` / `extract_pins 0.3`, primary `claude-haiku-5-5` (text), consensus `claude-sonnet-5-5` (agreed), guards: pin_guards 0.1: passed. Pins are checked against the footprint pad set and their cited datasheet pages before publish. - **CAD:** KiCad official libraries (CC-BY-SA 4.0). 
at89c2051-12pu-hero.overlay.json+528−526
@@ -1,529 +1,531 @@ {-  "spec": "adom-hero 1.4",-  "mpn": "AT89C2051-12PU",-  "kind": "component + footprint reference art",-  "board_use": false,-  "plane_z_mm": -0.02,-  "units": "metre",-  "upAxis": "Z",-  "layers": {-    "pad_outlines": {-      "material": "Footprint pads - teal dashed outlines - 50 percent opacity",-      "rgba": [-        0.0,-        0.902,-        0.863,-        0.5-      ],-      "pads": 20,-      "span_mm": 24.46,-      "dash_mm": 0.45,-      "gap_mm": 0.27,-      "pad_stroke_mm": 0.09-    },-    "silkscreen": {-      "material": "Silkscreen reference lines - 30 percent opacity",-      "rgba": [-        0.92,-        0.96,-        1.0,-        0.3-      ],-      "footprint_items": 6,-      "pin1": {-        "source": "added dot (AI)",-        "pad": "1",-        "center_mm": [-          0.0,-          -1.35-        ],-        "r_mm": 0.35-      }-    },-    "signal_names": {-      "material": "Signal names - 50 percent opacity",-      "rgba": [-        0.92,-        0.96,-        1.0,-        0.5-      ],-      "font": "DejaVu Sans Mono",-      "labels": 20,-      "sides": "top + mirrored underside (single-sided)",-      "fallback_to_pad_number": 0-    }-  },-  "align": {-    "ok": true,-    "centre_offset_mm": 0.0,-    "tolerance_mm": 1.957,-    "orientation_flipped": false,-    "contacts_bbox_mm": [-      -0.127,-      7.747,-      -22.975,-      0.115-    ],-    "pads_bbox_mm": [-      -0.8,-      8.42,-      -23.66,-      0.8+ "spec": "adom-hero 1.4",+ "mpn": "AT89C2051-12PU",+ "kind": "component + footprint reference art",+ "board_use": false,+ "plane_z_mm": -0.02,+ "units": "metre",+ "upAxis": "Z",+ "layers": {+  "pad_outlines": {+   "material": "Footprint pads - teal dashed outlines - 50 percent opacity",+   "rgba": [+    0.0,+    0.902,+    0.863,+    0.5+   ],+   "pads": 20,+   "span_mm": 24.46,+   "dash_mm": 0.45,+   "gap_mm": 0.27,+   "pad_stroke_mm": 0.09+  },+  "silkscreen": {+   "material": "Silkscreen reference lines - 30 percent opacity",+   "rgba": [+    0.92,+    0.96,+    1.0,+    0.3+   ],+   "footprint_items": 6,+   "pin1": {+    "source": "added dot (AI)",+    "pad": "1",+    "center_mm": [+     0.0,+     -1.35     ],-    "seating_z_mm": -3.3-  },-  "sources": {-    "glb": "at89c2051-12pu-etched.glb",-    "glb_sha256": "eeaaefbd1cdc2089dc1d119222677bc0032c17eec4e9232963929c7851a00653",-    "footprint": "at89c2051-12pu.kicad_mod",-    "footprint_sha256": "d98cb2b932a5a4004d26d787249d6089bcc06f088d1a2d848420cdd489d48c98",-    "pins": "page.json component.pins",-    "pins_sha256": "4270cdcb02f19a761491eaf25c5bf85e586746adb474d77f76ff1fbf0deb82a3"-  },-  "generator": "adom-wiki 1.8.15 (component_hero)",-  "labels": [-    {-      "pad": "1",-      "text": "RST/VPP",-      "x": -0.95,-      "y": 0.0,-      "align": "right",-      "vertical": false,-      "h": 0.6-    },-    {-      "pad": "2",-      "text": "P3.0 (RXD)",-      "x": -0.95,-      "y": 2.54,-      "align": "right",-      "vertical": false,-      "h": 0.6-    },-    {-      "pad": "3",-      "text": "P3.1 (TXD)",-      "x": -0.95,-      "y": 5.08,-      "align": "right",-      "vertical": false,-      "h": 0.6-    },-    {-      "pad": "4",-      "text": "XTAL2",-      "x": -0.95,-      "y": 7.62,-      "align": "right",-      "vertical": false,-      "h": 0.6-    },-    {-      "pad": "5",-      "text": "XTAL1",-      "x": -0.95,-      "y": 10.16,-      "align": "right",-      "vertical": false,-      "h": 0.6-    },-    {-      "pad": "6",-      "text": "P3.2 (INT0)",-      "x": -0.95,-      "y": 12.7,-      "align": "right",-      "vertical": false,-      "h": 0.6-    },-    {-      "pad": "7",-      "text": "P3.3 (INT1)",-      "x": -0.95,-      "y": 15.24,-      "align": "right",-      "vertical": false,-      "h": 0.6-    },-    {-      "pad": "8",-      "text": "P3.4 (T0)",-      "x": -0.95,-      "y": 17.78,-      "align": "right",-      "vertical": false,-      "h": 0.6-    },-    {-      "pad": "9",-      "text": "P3.5 (T1)",-      "x": -0.95,-      "y": 20.32,-      "align": "right",-      "vertical": false,-      "h": 0.6-    },-    {-      "pad": "10",-      "text": "GND",-      "x": -0.95,-      "y": 22.86,-      "align": "right",-      "vertical": false,-      "h": 0.6-    },-    {-      "pad": "11",-      "text": "P3.7",-      "x": 8.57,-      "y": 22.86,-      "align": "left",-      "vertical": false,-      "h": 0.6-    },-    {-      "pad": "12",-      "text": "P1.0 (AIN0)",-      "x": 8.57,-      "y": 20.32,-      "align": "left",-      "vertical": false,-      "h": 0.6-    },-    {-      "pad": "13",-      "text": "P1.1 (AIN1)",-      "x": 8.57,-      "y": 17.78,-      "align": "left",-      "vertical": false,-      "h": 0.6-    },-    {-      "pad": "14",-      "text": "P1.2",-      "x": 8.57,-      "y": 15.24,-      "align": "left",-      "vertical": false,-      "h": 0.6-    },-    {-      "pad": "15",-      "text": "P1.3",-      "x": 8.57,-      "y": 12.7,-      "align": "left",-      "vertical": false,-      "h": 0.6-    },-    {-      "pad": "16",-      "text": "P1.4",-      "x": 8.57,-      "y": 10.16,-      "align": "left",-      "vertical": false,-      "h": 0.6-    },-    {-      "pad": "17",-      "text": "P1.5",-      "x": 8.57,-      "y": 7.62,-      "align": "left",-      "vertical": false,-      "h": 0.6-    },-    {-      "pad": "18",-      "text": "P1.6",-      "x": 8.57,-      "y": 5.08,-      "align": "left",-      "vertical": false,-      "h": 0.6-    },-    {-      "pad": "19",-      "text": "P1.7",-      "x": 8.57,-      "y": 2.54,-      "align": "left",-      "vertical": false,-      "h": 0.6-    },-    {-      "pad": "20",-      "text": "VCC",-      "x": 8.57,-      "y": 0.0,-      "align": "left",-      "vertical": false,-      "h": 0.6-    }+    "r_mm": 0.35+   }+  },+  "signal_names": {+   "material": "Signal names - 50 percent opacity",+   "rgba": [+    0.92,+    0.96,+    1.0,+    0.5+   ],+   "font": "DejaVu Sans Mono",+   "labels": 20,+   "sides": "top + mirrored underside (single-sided)",+   "omitted": null,+   "fallback_to_pad_number": 0+  }+ },+ "align": {+  "ok": true,+  "centre_offset_mm": 0.0,+  "over_pads": true,+  "tolerance_mm": 1.957,+  "orientation_flipped": false,+  "contacts_bbox_mm": [+   -0.127,+   7.747,+   -22.975,+   0.115   ],-  "pads": [-    {-      "number": "1",-      "shape": "roundrect",-      "center_mm": [-        0.0,-        0.0-      ],-      "size_mm": [-        1.6,-        1.6-      ],-      "rot": 0.0-    },-    {-      "number": "2",-      "shape": "circle",-      "center_mm": [-        0.0,-        2.54-      ],-      "size_mm": [-        1.6,-        1.6-      ],-      "rot": 0.0-    },-    {-      "number": "3",-      "shape": "circle",-      "center_mm": [-        0.0,-        5.08-      ],-      "size_mm": [-        1.6,-        1.6-      ],-      "rot": 0.0-    },-    {-      "number": "4",-      "shape": "circle",-      "center_mm": [-        0.0,-        7.62-      ],-      "size_mm": [-        1.6,-        1.6-      ],-      "rot": 0.0-    },-    {-      "number": "5",-      "shape": "circle",-      "center_mm": [-        0.0,-        10.16-      ],-      "size_mm": [-        1.6,-        1.6-      ],-      "rot": 0.0-    },-    {-      "number": "6",-      "shape": "circle",-      "center_mm": [-        0.0,-        12.7-      ],-      "size_mm": [-        1.6,-        1.6-      ],-      "rot": 0.0-    },-    {-      "number": "7",-      "shape": "circle",-      "center_mm": [-        0.0,-        15.24-      ],-      "size_mm": [-        1.6,-        1.6-      ],-      "rot": 0.0-    },-    {-      "number": "8",-      "shape": "circle",-      "center_mm": [-        0.0,-        17.78-      ],-      "size_mm": [-        1.6,-        1.6-      ],-      "rot": 0.0-    },-    {-      "number": "9",-      "shape": "circle",-      "center_mm": [-        0.0,-        20.32-      ],-      "size_mm": [-        1.6,-        1.6-      ],-      "rot": 0.0-    },-    {-      "number": "10",-      "shape": "circle",-      "center_mm": [-        0.0,-        22.86-      ],-      "size_mm": [-        1.6,-        1.6-      ],-      "rot": 0.0-    },-    {-      "number": "11",-      "shape": "circle",-      "center_mm": [-        7.62,-        22.86-      ],-      "size_mm": [-        1.6,-        1.6-      ],-      "rot": 0.0-    },-    {-      "number": "12",-      "shape": "circle",-      "center_mm": [-        7.62,-        20.32-      ],-      "size_mm": [-        1.6,-        1.6-      ],-      "rot": 0.0-    },-    {-      "number": "13",-      "shape": "circle",-      "center_mm": [-        7.62,-        17.78-      ],-      "size_mm": [-        1.6,-        1.6-      ],-      "rot": 0.0-    },-    {-      "number": "14",-      "shape": "circle",-      "center_mm": [-        7.62,-        15.24-      ],-      "size_mm": [-        1.6,-        1.6-      ],-      "rot": 0.0-    },-    {-      "number": "15",-      "shape": "circle",-      "center_mm": [-        7.62,-        12.7-      ],-      "size_mm": [-        1.6,-        1.6-      ],-      "rot": 0.0-    },-    {-      "number": "16",-      "shape": "circle",-      "center_mm": [-        7.62,-        10.16-      ],-      "size_mm": [-        1.6,-        1.6-      ],-      "rot": 0.0-    },-    {-      "number": "17",-      "shape": "circle",-      "center_mm": [-        7.62,-        7.62-      ],-      "size_mm": [-        1.6,-        1.6-      ],-      "rot": 0.0-    },-    {-      "number": "18",-      "shape": "circle",-      "center_mm": [-        7.62,-        5.08-      ],-      "size_mm": [-        1.6,-        1.6-      ],-      "rot": 0.0-    },-    {-      "number": "19",-      "shape": "circle",-      "center_mm": [-        7.62,-        2.54-      ],-      "size_mm": [-        1.6,-        1.6-      ],-      "rot": 0.0-    },-    {-      "number": "20",-      "shape": "circle",-      "center_mm": [-        7.62,-        0.0-      ],-      "size_mm": [-        1.6,-        1.6-      ],-      "rot": 0.0-    }-  ]-}+  "pads_bbox_mm": [+   -0.8,+   8.42,+   -23.66,+   0.8+  ],+  "seating_z_mm": -3.3+ },+ "sources": {+  "glb": "at89c2051-12pu-etched.glb",+  "glb_sha256": "eeaaefbd1cdc2089dc1d119222677bc0032c17eec4e9232963929c7851a00653",+  "footprint": "at89c2051-12pu.kicad_mod",+  "footprint_sha256": "d98cb2b932a5a4004d26d787249d6089bcc06f088d1a2d848420cdd489d48c98",+  "pins": "page.json component.pins",+  "pins_sha256": "4270cdcb02f19a761491eaf25c5bf85e586746adb474d77f76ff1fbf0deb82a3"+ },+ "generator": "factory/hero_glb.py",+ "labels": [+  {+   "pad": "1",+   "text": "RST/VPP",+   "x": -0.95,+   "y": 0.0,+   "align": "right",+   "vertical": false,+   "h": 0.6+  },+  {+   "pad": "2",+   "text": "P3.0 (RXD)",+   "x": -0.95,+   "y": 2.54,+   "align": "right",+   "vertical": false,+   "h": 0.6+  },+  {+   "pad": "3",+   "text": "P3.1 (TXD)",+   "x": -0.95,+   "y": 5.08,+   "align": "right",+   "vertical": false,+   "h": 0.6+  },+  {+   "pad": "4",+   "text": "XTAL2",+   "x": -0.95,+   "y": 7.62,+   "align": "right",+   "vertical": false,+   "h": 0.6+  },+  {+   "pad": "5",+   "text": "XTAL1",+   "x": -0.95,+   "y": 10.16,+   "align": "right",+   "vertical": false,+   "h": 0.6+  },+  {+   "pad": "6",+   "text": "P3.2 (INT0)",+   "x": -0.95,+   "y": 12.7,+   "align": "right",+   "vertical": false,+   "h": 0.6+  },+  {+   "pad": "7",+   "text": "P3.3 (INT1)",+   "x": -0.95,+   "y": 15.24,+   "align": "right",+   "vertical": false,+   "h": 0.6+  },+  {+   "pad": "8",+   "text": "P3.4 (T0)",+   "x": -0.95,+   "y": 17.78,+   "align": "right",+   "vertical": false,+   "h": 0.6+  },+  {+   "pad": "9",+   "text": "P3.5 (T1)",+   "x": -0.95,+   "y": 20.32,+   "align": "right",+   "vertical": false,+   "h": 0.6+  },+  {+   "pad": "10",+   "text": "GND",+   "x": -0.95,+   "y": 22.86,+   "align": "right",+   "vertical": false,+   "h": 0.6+  },+  {+   "pad": "11",+   "text": "P3.7",+   "x": 8.57,+   "y": 22.86,+   "align": "left",+   "vertical": false,+   "h": 0.6+  },+  {+   "pad": "12",+   "text": "P1.0 (AIN0)",+   "x": 8.57,+   "y": 20.32,+   "align": "left",+   "vertical": false,+   "h": 0.6+  },+  {+   "pad": "13",+   "text": "P1.1 (AIN1)",+   "x": 8.57,+   "y": 17.78,+   "align": "left",+   "vertical": false,+   "h": 0.6+  },+  {+   "pad": "14",+   "text": "P1.2",+   "x": 8.57,+   "y": 15.24,+   "align": "left",+   "vertical": false,+   "h": 0.6+  },+  {+   "pad": "15",+   "text": "P1.3",+   "x": 8.57,+   "y": 12.7,+   "align": "left",+   "vertical": false,+   "h": 0.6+  },+  {+   "pad": "16",+   "text": "P1.4",+   "x": 8.57,+   "y": 10.16,+   "align": "left",+   "vertical": false,+   "h": 0.6+  },+  {+   "pad": "17",+   "text": "P1.5",+   "x": 8.57,+   "y": 7.62,+   "align": "left",+   "vertical": false,+   "h": 0.6+  },+  {+   "pad": "18",+   "text": "P1.6",+   "x": 8.57,+   "y": 5.08,+   "align": "left",+   "vertical": false,+   "h": 0.6+  },+  {+   "pad": "19",+   "text": "P1.7",+   "x": 8.57,+   "y": 2.54,+   "align": "left",+   "vertical": false,+   "h": 0.6+  },+  {+   "pad": "20",+   "text": "VCC",+   "x": 8.57,+   "y": 0.0,+   "align": "left",+   "vertical": false,+   "h": 0.6+  }+ ],+ "pads": [+  {+   "number": "1",+   "shape": "roundrect",+   "center_mm": [+    0.0,+    0.0+   ],+   "size_mm": [+    1.6,+    1.6+   ],+   "rot": 0.0+  },+  {+   "number": "2",+   "shape": "circle",+   "center_mm": [+    0.0,+    2.54+   ],+   "size_mm": [+    1.6,+    1.6+   ],+   "rot": 0.0+  },+  {+   "number": "3",+   "shape": "circle",+   "center_mm": [+    0.0,+    5.08+   ],+   "size_mm": [+    1.6,+    1.6+   ],+   "rot": 0.0+  },+  {+   "number": "4",+   "shape": "circle",+   "center_mm": [+    0.0,+    7.62+   ],+   "size_mm": [+    1.6,+    1.6+   ],+   "rot": 0.0+  },+  {+   "number": "5",+   "shape": "circle",+   "center_mm": [+    0.0,+    10.16+   ],+   "size_mm": [+    1.6,+    1.6+   ],+   "rot": 0.0+  },+  {+   "number": "6",+   "shape": "circle",+   "center_mm": [+    0.0,+    12.7+   ],+   "size_mm": [+    1.6,+    1.6+   ],+   "rot": 0.0+  },+  {+   "number": "7",+   "shape": "circle",+   "center_mm": [+    0.0,+    15.24+   ],+   "size_mm": [+    1.6,+    1.6+   ],+   "rot": 0.0+  },+  {+   "number": "8",+   "shape": "circle",+   "center_mm": [+    0.0,+    17.78+   ],+   "size_mm": [+    1.6,+    1.6+   ],+   "rot": 0.0+  },+  {+   "number": "9",+   "shape": "circle",+   "center_mm": [+    0.0,+    20.32+   ],+   "size_mm": [+    1.6,+    1.6+   ],+   "rot": 0.0+  },+  {+   "number": "10",+   "shape": "circle",+   "center_mm": [+    0.0,+    22.86+   ],+   "size_mm": [+    1.6,+    1.6+   ],+   "rot": 0.0+  },+  {+   "number": "11",+   "shape": "circle",+   "center_mm": [+    7.62,+    22.86+   ],+   "size_mm": [+    1.6,+    1.6+   ],+   "rot": 0.0+  },+  {+   "number": "12",+   "shape": "circle",+   "center_mm": [+    7.62,+    20.32+   ],+   "size_mm": [+    1.6,+    1.6+   ],+   "rot": 0.0+  },+  {+   "number": "13",+   "shape": "circle",+   "center_mm": [+    7.62,+    17.78+   ],+   "size_mm": [+    1.6,+    1.6+   ],+   "rot": 0.0+  },+  {+   "number": "14",+   "shape": "circle",+   "center_mm": [+    7.62,+    15.24+   ],+   "size_mm": [+    1.6,+    1.6+   ],+   "rot": 0.0+  },+  {+   "number": "15",+   "shape": "circle",+   "center_mm": [+    7.62,+    12.7+   ],+   "size_mm": [+    1.6,+    1.6+   ],+   "rot": 0.0+  },+  {+   "number": "16",+   "shape": "circle",+   "center_mm": [+    7.62,+    10.16+   ],+   "size_mm": [+    1.6,+    1.6+   ],+   "rot": 0.0+  },+  {+   "number": "17",+   "shape": "circle",+   "center_mm": [+    7.62,+    7.62+   ],+   "size_mm": [+    1.6,+    1.6+   ],+   "rot": 0.0+  },+  {+   "number": "18",+   "shape": "circle",+   "center_mm": [+    7.62,+    5.08+   ],+   "size_mm": [+    1.6,+    1.6+   ],+   "rot": 0.0+  },+  {+   "number": "19",+   "shape": "circle",+   "center_mm": [+    7.62,+    2.54+   ],+   "size_mm": [+    1.6,+    1.6+   ],+   "rot": 0.0+  },+  {+   "number": "20",+   "shape": "circle",+   "center_mm": [+    7.62,+    0.0+   ],+   "size_mm": [+    1.6,+    1.6+   ],+   "rot": 0.0+  }+ ]+}\ No newline at end of file
at89c2051-12pu.lbr+14−3
@@ -50,7 +50,7 @@ <layer number="98" name="Guide" color="6" fill="1" visible="yes" active="yes"/> </layers> <library>-<description></description>+<description>Microchip Tech MICROCHIP, DIP-20. Pinout cross-checked by two models against the datasheet</description> <packages> <package name="DIP-20_W7.62mm">   <description>20 pads, 9.2 x 24.5 mm. 20-lead though-hole mounted DIP package, row spacing 7.62mm (300 mils)</description>@@ -102,6 +102,7 @@ </packages> <symbols> <symbol name="AT89C2051-12PU">+  <description>Microchip Tech MICROCHIP, DIP-20. Pinout cross-checked by two models against the datasheet</description>   <wire x1="-12.7" y1="12.7" x2="12.7" y2="12.7" width="0.254" layer="94"/>   <wire x1="12.7" y1="12.7" x2="12.7" y2="-15.24" width="0.254" layer="94"/>   <wire x1="12.7" y1="-15.24" x2="-12.7" y2="-15.24" width="0.254" layer="94"/>@@ -132,7 +133,7 @@ </symbols> <devicesets> <deviceset name="AT89C2051-12PU" prefix="U">-  <description></description>+  <description>Microchip Tech MICROCHIP, DIP-20. Pinout cross-checked by two models against the datasheet</description>   <gates>     <gate name="G$1" symbol="AT89C2051-12PU" x="0" y="0"/>   </gates>@@ -160,7 +161,17 @@         <connect gate="G$1" pin="P1.0_AIN0" pad="12"/>         <connect gate="G$1" pin="P3.7" pad="11"/>       </connects>-      <technologies><technology name=""/></technologies>+      <technologies>+        <technology name="">+          <attribute name="MPN" value="AT89C2051-12PU" constant="no"/>+          <attribute name="MANUFACTURER" value="Microchip Tech" constant="no"/>+          <attribute name="DATASHEET" value="https://datasheet.lcsc.com/datasheet/pdf/50457c73a99b43f9b2ed97c385bfb4d3.pdf" constant="no"/>+          <attribute name="ADOM_WIKI" value="https://wiki.adom.inc/adom/at89c2051-12pu" constant="no"/>+          <attribute name="MOUSER_PN" value="556-A89C205112PU" constant="no"/>+          <attribute name="DIGIKEY_PN" value="AT89C2051-12PU-ND" constant="no"/>+          <attribute name="LCSC_PN" value="C150841" constant="no"/>+        </technology>+      </technologies>     </device>   </devices> </deviceset>
package.json+30−29
@@ -1,6 +1,6 @@ {   "slug": "at89c2051-12pu",-  "version": "0.1.0",+  "version": "0.1.1",   "type": "component",   "description": "Microchip Tech MICROCHIP, DIP-20. Pinout cross-checked by two models against the datasheet, KiCad symbol/footprint/3D.",   "tags": [@@ -54,12 +54,11 @@       "mouser": "556-A89C205112PU"     },     "distributor_check": {-      "checked_at": "2026-11-10T06:53:38Z",+      "checked_at": "2026-11-11T02:39:57Z",       "source": "Component Ocean /api/assign-pns",       "digikey": {         "pn": "AT89C2051-12PU-ND",-        "status": "found",-        "lifecycle": "Active"+        "status": "found"       },       "mouser": {         "pn": "556-A89C205112PU",@@ -71,55 +70,55 @@         "number": "1",         "name": "RST/VPP",         "type": "input",-        "description": "Reset input: all I/O pins are reset to 1s as soon as RST goes high, and holding it high for two machine cycles while the oscillator runs resets the device."+        "description": "Reset input: holding RST high for two machine cycles while the oscillator runs resets the device, and RST is raised to 12 V to enable Flash programming."       },       {         "number": "2",         "name": "P3.0 (RXD)",         "type": "bidirectional",-        "description": "Port 3 bi-directional I/O pin with internal pull-up; alternate function is RXD serial input port."+        "description": "Port 3 bit with internal pull-up; alternate function RXD, the serial input port, and Port 3 output buffers can sink 20 mA."       },       {         "number": "3",         "name": "P3.1 (TXD)",         "type": "bidirectional",-        "description": "Port 3 bi-directional I/O pin with internal pull-up; alternate function is TXD serial output port."+        "description": "Port 3 bit with internal pull-up; alternate function TXD, the serial output port, and also the RDY/BSY output during programming."       },       {         "number": "4",         "name": "XTAL2",         "type": "output",-        "description": "Output from the inverting oscillator amplifier."+        "description": "Output from the inverting oscillator amplifier; left unconnected when an external clock drives XTAL1."       },       {         "number": "5",         "name": "XTAL1",         "type": "input",-        "description": "Input to the inverting oscillator amplifier and input to the internal clock operating circuit."+        "description": "Input to the inverting oscillator amplifier and to the internal clock operating circuit."       },       {         "number": "6",         "name": "P3.2 (INT0)",         "type": "bidirectional",-        "description": "Port 3 bi-directional I/O pin with internal pull-up; alternate function is external interrupt 0 (INT0)."+        "description": "Port 3 bit with internal pull-up; alternate function INT0, external interrupt 0, and used as PROG during Flash programming."       },       {         "number": "7",         "name": "P3.3 (INT1)",         "type": "bidirectional",-        "description": "Port 3 bi-directional I/O pin with internal pull-up; alternate function is external interrupt 1 (INT1)."+        "description": "Port 3 bit with internal pull-up; alternate function INT1, external interrupt 1."       },       {         "number": "8",         "name": "P3.4 (T0)",         "type": "bidirectional",-        "description": "Port 3 bi-directional I/O pin with internal pull-up; alternate function is timer 0 external input (T0)."+        "description": "Port 3 bit with internal pull-up; alternate function T0, timer 0 external input (printed as \"TO\" on the pin diagram)."       },       {         "number": "9",         "name": "P3.5 (T1)",         "type": "bidirectional",-        "description": "Port 3 bi-directional I/O pin with internal pull-up; alternate function is timer 1 external input (T1)."+        "description": "Port 3 bit with internal pull-up; alternate function T1, timer 1 external input."       },       {         "number": "10",@@ -131,61 +130,61 @@         "number": "11",         "name": "P3.7",         "type": "bidirectional",-        "description": "Port 3 bi-directional I/O pin with internal pull-up; can sink 20 mA as an output buffer."+        "description": "Port 3 bit with internal pull-up; general-purpose bidirectional I/O, output buffer can sink 20 mA."       },       {         "number": "12",         "name": "P1.0 (AIN0)",         "type": "bidirectional",-        "description": "Port 1 bi-directional I/O pin that requires an external pull-up and serves as the positive input (AIN0) of the on-chip precision analog comparator; output buffer sinks 20 mA."+        "description": "Port 1 bit that requires an external pull-up; serves as the positive input AIN0 of the on-chip analog comparator and can sink 20 mA."       },       {         "number": "13",         "name": "P1.1 (AIN1)",         "type": "bidirectional",-        "description": "Port 1 bi-directional I/O pin that requires an external pull-up and serves as the negative input (AIN1) of the on-chip precision analog comparator; output buffer sinks 20 mA."+        "description": "Port 1 bit that requires an external pull-up; serves as the negative input AIN1 of the on-chip analog comparator and can sink 20 mA."       },       {         "number": "14",         "name": "P1.2",         "type": "bidirectional",-        "description": "Port 1 bi-directional I/O pin with internal pull-up; output buffer sinks 20 mA and can drive LED displays directly."+        "description": "Port 1 bit with internal pull-up; can sink 20 mA and drive LEDs directly."       },       {         "number": "15",         "name": "P1.3",         "type": "bidirectional",-        "description": "Port 1 bi-directional I/O pin with internal pull-up; output buffer sinks 20 mA and can drive LED displays directly."+        "description": "Port 1 bit with internal pull-up; can sink 20 mA and drive LEDs directly."       },       {         "number": "16",         "name": "P1.4",         "type": "bidirectional",-        "description": "Port 1 bi-directional I/O pin with internal pull-up; output buffer sinks 20 mA and can drive LED displays directly."+        "description": "Port 1 bit with internal pull-up; can sink 20 mA and drive LEDs directly."       },       {         "number": "17",         "name": "P1.5",         "type": "bidirectional",-        "description": "Port 1 bi-directional I/O pin with internal pull-up; output buffer sinks 20 mA and can drive LED displays directly."+        "description": "Port 1 bit with internal pull-up; can sink 20 mA and drive LEDs directly."       },       {         "number": "18",         "name": "P1.6",         "type": "bidirectional",-        "description": "Port 1 bi-directional I/O pin with internal pull-up; output buffer sinks 20 mA and can drive LED displays directly."+        "description": "Port 1 bit with internal pull-up; can sink 20 mA and drive LEDs directly."       },       {         "number": "19",         "name": "P1.7",         "type": "bidirectional",-        "description": "Port 1 bi-directional I/O pin with internal pull-up; output buffer sinks 20 mA and can drive LED displays directly."+        "description": "Port 1 bit with internal pull-up; can sink 20 mA and drive LEDs directly."       },       {         "number": "20",         "name": "VCC",         "type": "power_in",-        "description": "Supply voltage, 2.7V to 6V operating range for this speed grade."+        "description": "Supply voltage; the DC characteristics specify VCC = 2.7 V to 6.0 V."       }     ],     "provenance": {@@ -198,10 +197,12 @@         "consensus_model": "claude-sonnet-5-5",         "consensus": "agreed",         "guards": "pin_guards 0.1: passed",-        "guard_notes": [],+        "guard_notes": [+          "extractor flagged: The datasheet has no explicit per-pin table for the 20-lead package. Pin numbers and names were take; The pin diagram on page 2 prints '(TO) P3.4'; the alternate function is T0 (timer 0 external input) ; Pin 1 is RST/VPP: its 12 V programming role is shown in the Flash programming section, not in the pi"+        ],         "pages_sent": 19,-        "cost_usd": 0.0731,-        "at": "2026-11-10T06:53:30"+        "cost_usd": 0.0768,+        "at": "2026-11-11T02:39:42"       },       "datasheet": {         "url": "https://datasheet.lcsc.com/datasheet/pdf/50457c73a99b43f9b2ed97c385bfb4d3.pdf",@@ -238,7 +239,7 @@         "centre_offset_mm": 0.0,         "footprint_binding": "identity",         "sha256": "ca359c9b9e0ce94efcb6c96866513f659eef6517d629ace3c4a0a779f6fd57bb",-        "checked": "2026-11-10",+        "checked": "2026-11-11",         "checked_by": "factory/step_pose.py (Z-up, origin, seat, binding)"       },       {@@ -256,8 +257,8 @@         "zmin_mm": -3.3,         "centre_offset_mm": 0.0,         "footprint_binding": "identity",-        "sha256": "8fa53fc80148a69347caac4692a4aa3a947615e2de99910ab6807a66185a5b91",-        "checked": "2026-11-10",+        "sha256": "f257868096eb1c33e05f365464ff36699bd6f469b51aaff2bc4fe5d82805eb0d",+        "checked": "2026-11-11",         "checked_by": "factory/step_pose.py (Z-up, origin, seat, binding)"       }     ],
page.json+33−30
@@ -4,7 +4,7 @@   "slug": "at89c2051-12pu",   "title": "AT89C2051-12PU",   "brief": "Microchip Tech MICROCHIP, DIP-20. Pinout cross-checked by two models against the datasheet, KiCad symbol/footprint/3D.",-  "version": "0.1.0",+  "version": "0.1.1",   "license": "CC-BY-SA-4.0",   "tags": [     "component",@@ -36,12 +36,11 @@       "mouser": "556-A89C205112PU"     },     "distributor_check": {-      "checked_at": "2026-11-10T06:53:38Z",+      "checked_at": "2026-11-11T02:39:57Z",       "source": "Component Ocean /api/assign-pns",       "digikey": {         "pn": "AT89C2051-12PU-ND",-        "status": "found",-        "lifecycle": "Active"+        "status": "found"       },       "mouser": {         "pn": "556-A89C205112PU",@@ -53,55 +52,55 @@         "number": "1",         "name": "RST/VPP",         "type": "input",-        "description": "Reset input: all I/O pins are reset to 1s as soon as RST goes high, and holding it high for two machine cycles while the oscillator runs resets the device."+        "description": "Reset input: holding RST high for two machine cycles while the oscillator runs resets the device, and RST is raised to 12 V to enable Flash programming."       },       {         "number": "2",         "name": "P3.0 (RXD)",         "type": "bidirectional",-        "description": "Port 3 bi-directional I/O pin with internal pull-up; alternate function is RXD serial input port."+        "description": "Port 3 bit with internal pull-up; alternate function RXD, the serial input port, and Port 3 output buffers can sink 20 mA."       },       {         "number": "3",         "name": "P3.1 (TXD)",         "type": "bidirectional",-        "description": "Port 3 bi-directional I/O pin with internal pull-up; alternate function is TXD serial output port."+        "description": "Port 3 bit with internal pull-up; alternate function TXD, the serial output port, and also the RDY/BSY output during programming."       },       {         "number": "4",         "name": "XTAL2",         "type": "output",-        "description": "Output from the inverting oscillator amplifier."+        "description": "Output from the inverting oscillator amplifier; left unconnected when an external clock drives XTAL1."       },       {         "number": "5",         "name": "XTAL1",         "type": "input",-        "description": "Input to the inverting oscillator amplifier and input to the internal clock operating circuit."+        "description": "Input to the inverting oscillator amplifier and to the internal clock operating circuit."       },       {         "number": "6",         "name": "P3.2 (INT0)",         "type": "bidirectional",-        "description": "Port 3 bi-directional I/O pin with internal pull-up; alternate function is external interrupt 0 (INT0)."+        "description": "Port 3 bit with internal pull-up; alternate function INT0, external interrupt 0, and used as PROG during Flash programming."       },       {         "number": "7",         "name": "P3.3 (INT1)",         "type": "bidirectional",-        "description": "Port 3 bi-directional I/O pin with internal pull-up; alternate function is external interrupt 1 (INT1)."+        "description": "Port 3 bit with internal pull-up; alternate function INT1, external interrupt 1."       },       {         "number": "8",         "name": "P3.4 (T0)",         "type": "bidirectional",-        "description": "Port 3 bi-directional I/O pin with internal pull-up; alternate function is timer 0 external input (T0)."+        "description": "Port 3 bit with internal pull-up; alternate function T0, timer 0 external input (printed as \"TO\" on the pin diagram)."       },       {         "number": "9",         "name": "P3.5 (T1)",         "type": "bidirectional",-        "description": "Port 3 bi-directional I/O pin with internal pull-up; alternate function is timer 1 external input (T1)."+        "description": "Port 3 bit with internal pull-up; alternate function T1, timer 1 external input."       },       {         "number": "10",@@ -113,61 +112,61 @@         "number": "11",         "name": "P3.7",         "type": "bidirectional",-        "description": "Port 3 bi-directional I/O pin with internal pull-up; can sink 20 mA as an output buffer."+        "description": "Port 3 bit with internal pull-up; general-purpose bidirectional I/O, output buffer can sink 20 mA."       },       {         "number": "12",         "name": "P1.0 (AIN0)",         "type": "bidirectional",-        "description": "Port 1 bi-directional I/O pin that requires an external pull-up and serves as the positive input (AIN0) of the on-chip precision analog comparator; output buffer sinks 20 mA."+        "description": "Port 1 bit that requires an external pull-up; serves as the positive input AIN0 of the on-chip analog comparator and can sink 20 mA."       },       {         "number": "13",         "name": "P1.1 (AIN1)",         "type": "bidirectional",-        "description": "Port 1 bi-directional I/O pin that requires an external pull-up and serves as the negative input (AIN1) of the on-chip precision analog comparator; output buffer sinks 20 mA."+        "description": "Port 1 bit that requires an external pull-up; serves as the negative input AIN1 of the on-chip analog comparator and can sink 20 mA."       },       {         "number": "14",         "name": "P1.2",         "type": "bidirectional",-        "description": "Port 1 bi-directional I/O pin with internal pull-up; output buffer sinks 20 mA and can drive LED displays directly."+        "description": "Port 1 bit with internal pull-up; can sink 20 mA and drive LEDs directly."       },       {         "number": "15",         "name": "P1.3",         "type": "bidirectional",-        "description": "Port 1 bi-directional I/O pin with internal pull-up; output buffer sinks 20 mA and can drive LED displays directly."+        "description": "Port 1 bit with internal pull-up; can sink 20 mA and drive LEDs directly."       },       {         "number": "16",         "name": "P1.4",         "type": "bidirectional",-        "description": "Port 1 bi-directional I/O pin with internal pull-up; output buffer sinks 20 mA and can drive LED displays directly."+        "description": "Port 1 bit with internal pull-up; can sink 20 mA and drive LEDs directly."       },       {         "number": "17",         "name": "P1.5",         "type": "bidirectional",-        "description": "Port 1 bi-directional I/O pin with internal pull-up; output buffer sinks 20 mA and can drive LED displays directly."+        "description": "Port 1 bit with internal pull-up; can sink 20 mA and drive LEDs directly."       },       {         "number": "18",         "name": "P1.6",         "type": "bidirectional",-        "description": "Port 1 bi-directional I/O pin with internal pull-up; output buffer sinks 20 mA and can drive LED displays directly."+        "description": "Port 1 bit with internal pull-up; can sink 20 mA and drive LEDs directly."       },       {         "number": "19",         "name": "P1.7",         "type": "bidirectional",-        "description": "Port 1 bi-directional I/O pin with internal pull-up; output buffer sinks 20 mA and can drive LED displays directly."+        "description": "Port 1 bit with internal pull-up; can sink 20 mA and drive LEDs directly."       },       {         "number": "20",         "name": "VCC",         "type": "power_in",-        "description": "Supply voltage, 2.7V to 6V operating range for this speed grade."+        "description": "Supply voltage; the DC characteristics specify VCC = 2.7 V to 6.0 V."       }     ],     "provenance": {@@ -180,10 +179,12 @@         "consensus_model": "claude-sonnet-5-5",         "consensus": "agreed",         "guards": "pin_guards 0.1: passed",-        "guard_notes": [],+        "guard_notes": [+          "extractor flagged: The datasheet has no explicit per-pin table for the 20-lead package. Pin numbers and names were take; The pin diagram on page 2 prints '(TO) P3.4'; the alternate function is T0 (timer 0 external input) ; Pin 1 is RST/VPP: its 12 V programming role is shown in the Flash programming section, not in the pi"+        ],         "pages_sent": 19,-        "cost_usd": 0.0731,-        "at": "2026-11-10T06:53:30"+        "cost_usd": 0.0768,+        "at": "2026-11-11T02:39:42"       },       "datasheet": {         "url": "https://datasheet.lcsc.com/datasheet/pdf/50457c73a99b43f9b2ed97c385bfb4d3.pdf",@@ -220,7 +221,7 @@         "centre_offset_mm": 0,         "footprint_binding": "identity",         "sha256": "ca359c9b9e0ce94efcb6c96866513f659eef6517d629ace3c4a0a779f6fd57bb",-        "checked": "2026-11-10",+        "checked": "2026-11-11",         "checked_by": "factory/step_pose.py (Z-up, origin, seat, binding)"       },       {@@ -238,8 +239,8 @@         "zmin_mm": -3.3,         "centre_offset_mm": 0,         "footprint_binding": "identity",-        "sha256": "8fa53fc80148a69347caac4692a4aa3a947615e2de99910ab6807a66185a5b91",-        "checked": "2026-11-10",+        "sha256": "f257868096eb1c33e05f365464ff36699bd6f469b51aaff2bc4fe5d82805eb0d",+        "checked": "2026-11-11",         "checked_by": "factory/step_pose.py (Z-up, origin, seat, binding)"       }     ],@@ -922,5 +923,7 @@   ],   "visibility": {     "public": true-  }+  },+  "description": "Microchip Tech MICROCHIP, DIP-20. Pinout cross-checked by two models against the datasheet, KiCad symbol/footprint/3D.",+  "org": "adom" }\ No newline at end of file