← Commit history

pin 1: carry the footprint's marker into the .lbr, the viewer and page.json (silk-marker, drawn, top-left)

Ray ·b5437ad878 ·1mo ago ·parent d59cddf
5 files changed +290−3
package.json+2−1
@@ -24,6 +24,7 @@     "docs/hero.png",     "docs/w25q80dvsnig-tr-datasheet.pdf",     "viewers/symbol.html",-    "viewers/footprint.html"+    "viewers/footprint.html",+    "pads.json"   ] }\ No newline at end of file
pads.jsonadded+275
@@ -0,0 +1,275 @@+{+ "schema": "adom.pads/1",+ "slug": "w25q80dvsnig-tr",+ "footprint": "SOIC-8_3.9x4.9mm_P1.27mm",+ "generated_from": {+  "footprint": "SOIC-8_3.9x4.9mm_P1.27mm@sha256:074ecb2092b24fa4",+  "pins": "page.json:component.pins",+  "overrides": null+ },+ "pin1": {+  "pad": "1",+  "at": [+   -2.475,+   -1.905+  ],+  "corner": "top-left",+  "source": "silk-marker",+  "derived_from": "SOIC-8_3.9x4.9mm_P1.27mm@sha256:074ecb2092b24fa4"+ },+ "pad_count": 8,+ "symbol_pins": [+  "1",+  "2",+  "3",+  "4",+  "5",+  "6",+  "7",+  "8"+ ],+ "paste_apertures": 0,+ "issues": [],+ "pads": [+  {+   "pad": "1",+   "kind": "smd",+   "shape": "roundrect",+   "at": [+    -2.475,+    -1.905+   ],+   "rot": 0.0,+   "size": [+    1.95,+    0.6+   ],+   "layers": [+    "F.Cu",+    "F.Mask",+    "F.Paste"+   ],+   "thermal": false,+   "pin": "1",+   "name": "/CS",+   "type": "input",+   "description": "Active-low SPI Chip Select input. Drive low to enable device access; when high the device is deselected and DO/IO pins are high-Z. /CS must track VCC at power-up (per power-up timing).",+   "is_pin1": true,+   "source": {+    "geometry": "SOIC-8_3.9x4.9mm_P1.27mm.kicad_mod",+    "meaning": "page.json:component.pins",+    "correspondence": "kicad: symbol pin number == pad name"+   }+  },+  {+   "pad": "2",+   "kind": "smd",+   "shape": "roundrect",+   "at": [+    -2.475,+    -0.635+   ],+   "rot": 0.0,+   "size": [+    1.95,+    0.6+   ],+   "layers": [+    "F.Cu",+    "F.Mask",+    "F.Paste"+   ],+   "thermal": false,+   "pin": "2",+   "name": "DO/IO1",+   "type": "bidirectional",+   "description": "Standard SPI serial data output (DO); in Dual/Quad SPI modes acts as bidirectional IO1. In Standard/Dual SPI this pin is DO; when QE=1 in Status Register-2 it becomes IO1 for Quad SPI.",+   "is_pin1": false,+   "source": {+    "geometry": "SOIC-8_3.9x4.9mm_P1.27mm.kicad_mod",+    "meaning": "page.json:component.pins",+    "correspondence": "kicad: symbol pin number == pad name"+   }+  },+  {+   "pad": "3",+   "kind": "smd",+   "shape": "roundrect",+   "at": [+    -2.475,+    0.635+   ],+   "rot": 0.0,+   "size": [+    1.95,+    0.6+   ],+   "layers": [+    "F.Cu",+    "F.Mask",+    "F.Paste"+   ],+   "thermal": false,+   "pin": "3",+   "name": "/WP/IO2",+   "type": "bidirectional",+   "description": "Active-low hardware Write Protect input in Standard/Dual SPI, used with the Status Register Block Protect (CMP/SEC/TB/BP2/BP1/BP0) and SRP0 bits. Becomes bidirectional IO2 for Quad SPI when the Quad Enable (QE) bit is set.",+   "is_pin1": false,+   "source": {+    "geometry": "SOIC-8_3.9x4.9mm_P1.27mm.kicad_mod",+    "meaning": "page.json:component.pins",+    "correspondence": "kicad: symbol pin number == pad name"+   }+  },+  {+   "pad": "4",+   "kind": "smd",+   "shape": "roundrect",+   "at": [+    -2.475,+    1.905+   ],+   "rot": 0.0,+   "size": [+    1.95,+    0.6+   ],+   "layers": [+    "F.Cu",+    "F.Mask",+    "F.Paste"+   ],+   "thermal": false,+   "pin": "4",+   "name": "GND",+   "type": "power_in",+   "description": "Device ground reference for all logic and I/O signaling.",+   "is_pin1": false,+   "source": {+    "geometry": "SOIC-8_3.9x4.9mm_P1.27mm.kicad_mod",+    "meaning": "page.json:component.pins",+    "correspondence": "kicad: symbol pin number == pad name"+   }+  },+  {+   "pad": "5",+   "kind": "smd",+   "shape": "roundrect",+   "at": [+    2.475,+    1.905+   ],+   "rot": 0.0,+   "size": [+    1.95,+    0.6+   ],+   "layers": [+    "F.Cu",+    "F.Mask",+    "F.Paste"+   ],+   "thermal": false,+   "pin": "5",+   "name": "DI/IO0",+   "type": "bidirectional",+   "description": "Standard SPI serial data input (DI); latched on rising edge of CLK. In Dual/Quad SPI acts as bidirectional IO0 for command, address, and data phases.",+   "is_pin1": false,+   "source": {+    "geometry": "SOIC-8_3.9x4.9mm_P1.27mm.kicad_mod",+    "meaning": "page.json:component.pins",+    "correspondence": "kicad: symbol pin number == pad name"+   }+  },+  {+   "pad": "6",+   "kind": "smd",+   "shape": "roundrect",+   "at": [+    2.475,+    0.635+   ],+   "rot": 0.0,+   "size": [+    1.95,+    0.6+   ],+   "layers": [+    "F.Cu",+    "F.Mask",+    "F.Paste"+   ],+   "thermal": false,+   "pin": "6",+   "name": "CLK",+   "type": "input",+   "description": "SPI Serial Clock input, up to 104 MHz. Provides timing for serial input/output; data on DI/IOx is latched on rising edge, data on DO/IOx is shifted out on falling edge.",+   "is_pin1": false,+   "source": {+    "geometry": "SOIC-8_3.9x4.9mm_P1.27mm.kicad_mod",+    "meaning": "page.json:component.pins",+    "correspondence": "kicad: symbol pin number == pad name"+   }+  },+  {+   "pad": "7",+   "kind": "smd",+   "shape": "roundrect",+   "at": [+    2.475,+    -0.635+   ],+   "rot": 0.0,+   "size": [+    1.95,+    0.6+   ],+   "layers": [+    "F.Cu",+    "F.Mask",+    "F.Paste"+   ],+   "thermal": false,+   "pin": "7",+   "name": "/HOLD/IO3",+   "type": "bidirectional",+   "description": "Active-low Hold input in Standard/Dual SPI: while /CS is low, driving /HOLD low pauses the device with DO high-Z and DI/CLK ignored. Becomes bidirectional IO3 for Quad SPI when the Quad Enable (QE) bit in Status Register-2 is set.",+   "is_pin1": false,+   "source": {+    "geometry": "SOIC-8_3.9x4.9mm_P1.27mm.kicad_mod",+    "meaning": "page.json:component.pins",+    "correspondence": "kicad: symbol pin number == pad name"+   }+  },+  {+   "pad": "8",+   "kind": "smd",+   "shape": "roundrect",+   "at": [+    2.475,+    -1.905+   ],+   "rot": 0.0,+   "size": [+    1.95,+    0.6+   ],+   "layers": [+    "F.Cu",+    "F.Mask",+    "F.Paste"+   ],+   "thermal": false,+   "pin": "8",+   "name": "VCC",+   "type": "power_in",+   "description": "Main power supply, 2.7V to 3.6V single-supply. Decouple with a local bypass capacitor to GND.",+   "is_pin1": false,+   "source": {+    "geometry": "SOIC-8_3.9x4.9mm_P1.27mm.kicad_mod",+    "meaning": "page.json:component.pins",+    "correspondence": "kicad: symbol pin number == pad name"+   }+  }+ ]+}\ No newline at end of file
page.json+11
@@ -96,6 +96,17 @@     "viewers": {       "symbol": "viewers/symbol.html",       "footprint": "viewers/footprint.html"+    },+    "pin1": {+      "pad": "1",+      "at": [+        -2.475,+        -1.905+      ],+      "corner": "top-left",+      "source": "silk-marker",+      "derived_from": "SOIC-8_3.9x4.9mm_P1.27mm@sha256:074ecb2092b24fa4",+      "mark": "drawn"     }   },   "metadata": {
viewers/footprint.html+1−1
@@ -23,7 +23,7 @@ rect.pad.hi{stroke:var(--hi);stroke-width:.15;paint-order:stroke} #tip .td{font-size:11px;color:var(--ink);margin-top:5px;line-height:1.4} </style></head><body> <div class=bar><span class=h>PCB footprint</span><span class=sp></span><button class="lyrtog on" data-lyr="copper"><span class="d" style="background:#e35d5d"></span>Copper</button><button class="lyrtog on" data-lyr="silk"><span class="d" style="background:#e6edf3"></span>Silkscreen</button><button class="lyrtog" data-lyr="fab"><span class="d" style="background:#8b949e"></span>Fab</button><button class="lyrtog" data-lyr="courtyard"><span class="d" style="background:#bc8cff"></span>Courtyard</button></div>-<div class=stage id=stage><svg xmlns='http://www.w3.org/2000/svg' viewBox='-4.100 -3.100 8.200 6.200' style='width:100%;height:100%'><line class='ly-silk' x1='-2.060' y1='-2.560' x2='2.060' y2='-2.560' stroke='#d8b4fe' stroke-width='0.120'/><line class='ly-silk' x1='-2.060' y1='-2.465' x2='-2.060' y2='-2.560' stroke='#d8b4fe' stroke-width='0.120'/><line class='ly-silk' x1='-2.060' y1='2.560' x2='-2.060' y2='2.465' stroke='#d8b4fe' stroke-width='0.120'/><line class='ly-silk' x1='2.060' y1='-2.560' x2='2.060' y2='-2.465' stroke='#d8b4fe' stroke-width='0.120'/><line class='ly-silk' x1='2.060' y1='2.465' x2='2.060' y2='2.560' stroke='#d8b4fe' stroke-width='0.120'/><line class='ly-silk' x1='2.060' y1='2.560' x2='-2.060' y2='2.560' stroke='#d8b4fe' stroke-width='0.120'/><line class='ly-courtyard' x1='-3.700' y1='-2.460' x2='-2.200' y2='-2.460' stroke='#4ade80' stroke-width='0.050'/><line class='ly-courtyard' x1='-3.700' y1='2.460' x2='-3.700' y2='-2.460' stroke='#4ade80' stroke-width='0.050'/><line class='ly-courtyard' x1='-2.200' y1='-2.700' x2='2.200' y2='-2.700' stroke='#4ade80' stroke-width='0.050'/><line class='ly-courtyard' x1='-2.200' y1='-2.460' x2='-2.200' y2='-2.700' stroke='#4ade80' stroke-width='0.050'/><line class='ly-courtyard' x1='-2.200' y1='2.460' x2='-3.700' y2='2.460' stroke='#4ade80' stroke-width='0.050'/><line class='ly-courtyard' x1='-2.200' y1='2.700' x2='-2.200' y2='2.460' stroke='#4ade80' stroke-width='0.050'/><line class='ly-courtyard' x1='2.200' y1='-2.700' x2='2.200' y2='-2.460' stroke='#4ade80' stroke-width='0.050'/><line class='ly-courtyard' x1='2.200' y1='-2.460' x2='3.700' y2='-2.460' stroke='#4ade80' stroke-width='0.050'/><line class='ly-courtyard' x1='2.200' y1='2.460' x2='2.200' y2='2.700' stroke='#4ade80' stroke-width='0.050'/><line class='ly-courtyard' x1='2.200' y1='2.700' x2='-2.200' y2='2.700' stroke='#4ade80' stroke-width='0.050'/><line class='ly-courtyard' x1='3.700' y1='-2.460' x2='3.700' y2='2.460' stroke='#4ade80' stroke-width='0.050'/><line class='ly-courtyard' x1='3.700' y1='2.460' x2='2.200' y2='2.460' stroke='#4ade80' stroke-width='0.050'/><rect class='ly-copper pad' data-num='1' data-name='/CS' x='-3.450' y='-2.205' width='1.950' height='0.600' rx='0.150' fill='#f59e0b' stroke='#00000033' stroke-width='0.03' opacity='0.94'/><text class='padnum' x='-2.475' y='-1.905' font-size='0.360' fill='#1c1206' text-anchor='middle' dominant-baseline='central' pointer-events='none' font-family='ui-monospace,monospace' font-weight='700'>1</text><rect class='ly-copper pad' data-num='2' data-name='DO/IO1' x='-3.450' y='-0.935' width='1.950' height='0.600' rx='0.150' fill='#f59e0b' stroke='#00000033' stroke-width='0.03' opacity='0.94'/><text class='padnum' x='-2.475' y='-0.635' font-size='0.360' fill='#1c1206' text-anchor='middle' dominant-baseline='central' pointer-events='none' font-family='ui-monospace,monospace' font-weight='700'>2</text><rect class='ly-copper pad' data-num='3' data-name='/WP/IO2' x='-3.450' y='0.335' width='1.950' height='0.600' rx='0.150' fill='#f59e0b' stroke='#00000033' stroke-width='0.03' opacity='0.94'/><text class='padnum' x='-2.475' y='0.635' font-size='0.360' fill='#1c1206' text-anchor='middle' dominant-baseline='central' pointer-events='none' font-family='ui-monospace,monospace' font-weight='700'>3</text><rect class='ly-copper pad' data-num='4' data-name='GND' x='-3.450' y='1.605' width='1.950' height='0.600' rx='0.150' fill='#f59e0b' stroke='#00000033' stroke-width='0.03' opacity='0.94'/><text class='padnum' x='-2.475' y='1.905' font-size='0.360' fill='#1c1206' text-anchor='middle' dominant-baseline='central' pointer-events='none' font-family='ui-monospace,monospace' font-weight='700'>4</text><rect class='ly-copper pad' data-num='5' data-name='DI/IO0' x='1.500' y='1.605' width='1.950' height='0.600' rx='0.150' fill='#f59e0b' stroke='#00000033' stroke-width='0.03' opacity='0.94'/><text class='padnum' x='2.475' y='1.905' font-size='0.360' fill='#1c1206' text-anchor='middle' dominant-baseline='central' pointer-events='none' font-family='ui-monospace,monospace' font-weight='700'>5</text><rect class='ly-copper pad' data-num='6' data-name='CLK' x='1.500' y='0.335' width='1.950' height='0.600' rx='0.150' fill='#f59e0b' stroke='#00000033' stroke-width='0.03' opacity='0.94'/><text class='padnum' x='2.475' y='0.635' font-size='0.360' fill='#1c1206' text-anchor='middle' dominant-baseline='central' pointer-events='none' font-family='ui-monospace,monospace' font-weight='700'>6</text><rect class='ly-copper pad' data-num='7' data-name='/HOLD/IO3' x='1.500' y='-0.935' width='1.950' height='0.600' rx='0.150' fill='#f59e0b' stroke='#00000033' stroke-width='0.03' opacity='0.94'/><text class='padnum' x='2.475' y='-0.635' font-size='0.360' fill='#1c1206' text-anchor='middle' dominant-baseline='central' pointer-events='none' font-family='ui-monospace,monospace' font-weight='700'>7</text><rect class='ly-copper pad' data-num='8' data-name='VCC' x='1.500' y='-2.205' width='1.950' height='0.600' rx='0.150' fill='#f59e0b' stroke='#00000033' stroke-width='0.03' opacity='0.94'/><text class='padnum' x='2.475' y='-1.905' font-size='0.360' fill='#1c1206' text-anchor='middle' dominant-baseline='central' pointer-events='none' font-family='ui-monospace,monospace' font-weight='700'>8</text></svg></div>+<div class=stage id=stage><svg xmlns='http://www.w3.org/2000/svg' viewBox='-4.100 -3.100 8.200 6.200' style='width:100%;height:100%'><line class='ly-silk' x1='-2.060' y1='-2.560' x2='2.060' y2='-2.560' stroke='#d8b4fe' stroke-width='0.120'/><line class='ly-silk' x1='-2.060' y1='-2.465' x2='-2.060' y2='-2.560' stroke='#d8b4fe' stroke-width='0.120'/><line class='ly-silk' x1='-2.060' y1='2.560' x2='-2.060' y2='2.465' stroke='#d8b4fe' stroke-width='0.120'/><line class='ly-silk' x1='2.060' y1='-2.560' x2='2.060' y2='-2.465' stroke='#d8b4fe' stroke-width='0.120'/><line class='ly-silk' x1='2.060' y1='2.465' x2='2.060' y2='2.560' stroke='#d8b4fe' stroke-width='0.120'/><line class='ly-silk' x1='2.060' y1='2.560' x2='-2.060' y2='2.560' stroke='#d8b4fe' stroke-width='0.120'/><line class='ly-courtyard' x1='-3.700' y1='-2.460' x2='-2.200' y2='-2.460' stroke='#4ade80' stroke-width='0.050'/><line class='ly-courtyard' x1='-3.700' y1='2.460' x2='-3.700' y2='-2.460' stroke='#4ade80' stroke-width='0.050'/><line class='ly-courtyard' x1='-2.200' y1='-2.700' x2='2.200' y2='-2.700' stroke='#4ade80' stroke-width='0.050'/><line class='ly-courtyard' x1='-2.200' y1='-2.460' x2='-2.200' y2='-2.700' stroke='#4ade80' stroke-width='0.050'/><line class='ly-courtyard' x1='-2.200' y1='2.460' x2='-3.700' y2='2.460' stroke='#4ade80' stroke-width='0.050'/><line class='ly-courtyard' x1='-2.200' y1='2.700' x2='-2.200' y2='2.460' stroke='#4ade80' stroke-width='0.050'/><line class='ly-courtyard' x1='2.200' y1='-2.700' x2='2.200' y2='-2.460' stroke='#4ade80' stroke-width='0.050'/><line class='ly-courtyard' x1='2.200' y1='-2.460' x2='3.700' y2='-2.460' stroke='#4ade80' stroke-width='0.050'/><line class='ly-courtyard' x1='2.200' y1='2.460' x2='2.200' y2='2.700' stroke='#4ade80' stroke-width='0.050'/><line class='ly-courtyard' x1='2.200' y1='2.700' x2='-2.200' y2='2.700' stroke='#4ade80' stroke-width='0.050'/><line class='ly-courtyard' x1='3.700' y1='-2.460' x2='3.700' y2='2.460' stroke='#4ade80' stroke-width='0.050'/><line class='ly-courtyard' x1='3.700' y1='2.460' x2='2.200' y2='2.460' stroke='#4ade80' stroke-width='0.050'/><rect class='ly-copper pad' data-num='1' data-name='/CS' x='-3.450' y='-2.205' width='1.950' height='0.600' rx='0.150' fill='#f59e0b' stroke='#00000033' stroke-width='0.03' opacity='0.94'/><text class='padnum' x='-2.475' y='-1.905' font-size='0.360' fill='#1c1206' text-anchor='middle' dominant-baseline='central' pointer-events='none' font-family='ui-monospace,monospace' font-weight='700'>1</text><rect class='ly-copper pad' data-num='2' data-name='DO/IO1' x='-3.450' y='-0.935' width='1.950' height='0.600' rx='0.150' fill='#f59e0b' stroke='#00000033' stroke-width='0.03' opacity='0.94'/><text class='padnum' x='-2.475' y='-0.635' font-size='0.360' fill='#1c1206' text-anchor='middle' dominant-baseline='central' pointer-events='none' font-family='ui-monospace,monospace' font-weight='700'>2</text><rect class='ly-copper pad' data-num='3' data-name='/WP/IO2' x='-3.450' y='0.335' width='1.950' height='0.600' rx='0.150' fill='#f59e0b' stroke='#00000033' stroke-width='0.03' opacity='0.94'/><text class='padnum' x='-2.475' y='0.635' font-size='0.360' fill='#1c1206' text-anchor='middle' dominant-baseline='central' pointer-events='none' font-family='ui-monospace,monospace' font-weight='700'>3</text><rect class='ly-copper pad' data-num='4' data-name='GND' x='-3.450' y='1.605' width='1.950' height='0.600' rx='0.150' fill='#f59e0b' stroke='#00000033' stroke-width='0.03' opacity='0.94'/><text class='padnum' x='-2.475' y='1.905' font-size='0.360' fill='#1c1206' text-anchor='middle' dominant-baseline='central' pointer-events='none' font-family='ui-monospace,monospace' font-weight='700'>4</text><rect class='ly-copper pad' data-num='5' data-name='DI/IO0' x='1.500' y='1.605' width='1.950' height='0.600' rx='0.150' fill='#f59e0b' stroke='#00000033' stroke-width='0.03' opacity='0.94'/><text class='padnum' x='2.475' y='1.905' font-size='0.360' fill='#1c1206' text-anchor='middle' dominant-baseline='central' pointer-events='none' font-family='ui-monospace,monospace' font-weight='700'>5</text><rect class='ly-copper pad' data-num='6' data-name='CLK' x='1.500' y='0.335' width='1.950' height='0.600' rx='0.150' fill='#f59e0b' stroke='#00000033' stroke-width='0.03' opacity='0.94'/><text class='padnum' x='2.475' y='0.635' font-size='0.360' fill='#1c1206' text-anchor='middle' dominant-baseline='central' pointer-events='none' font-family='ui-monospace,monospace' font-weight='700'>6</text><rect class='ly-copper pad' data-num='7' data-name='/HOLD/IO3' x='1.500' y='-0.935' width='1.950' height='0.600' rx='0.150' fill='#f59e0b' stroke='#00000033' stroke-width='0.03' opacity='0.94'/><text class='padnum' x='2.475' y='-0.635' font-size='0.360' fill='#1c1206' text-anchor='middle' dominant-baseline='central' pointer-events='none' font-family='ui-monospace,monospace' font-weight='700'>7</text><rect class='ly-copper pad' data-num='8' data-name='VCC' x='1.500' y='-2.205' width='1.950' height='0.600' rx='0.150' fill='#f59e0b' stroke='#00000033' stroke-width='0.03' opacity='0.94'/><text class='padnum' x='2.475' y='-1.905' font-size='0.360' fill='#1c1206' text-anchor='middle' dominant-baseline='central' pointer-events='none' font-family='ui-monospace,monospace' font-weight='700'>8</text><polygon class='ly-silk adom-pin1' points='-2.600,-2.470 -2.840,-2.800 -2.360,-2.800' fill='#d8b4fe' stroke='none'><title>pin 1</title></polygon></svg></div> <div id=tip></div> <script> var KIND="footprint", MPN="RAY/W25Q80DVSNIG-TR", PINS=[{"desc":"","name":"/CS","number":"1","type":""},{"desc":"","name":"DO/IO1","number":"2","type":""},{"desc":"","name":"/WP/IO2","number":"3","type":""},{"desc":"","name":"GND","number":"4","type":""},{"desc":"","name":"VCC","number":"8","type":""},{"desc":"","name":"/HOLD/IO3","number":"7","type":""},{"desc":"","name":"CLK","number":"6","type":""},{"desc":"","name":"DI/IO0","number":"5","type":""}];
w25q80dvsnig-tr.lbr+1−1
@@ -70,7 +70,7 @@   <wire x1="2.0600" y1="-2.5600" x2="-2.0600" y2="-2.5600" width="0.1200" layer="21"/>   <text x="0" y="3.480" size="1.27" layer="25" align="bottom-center">&gt;NAME</text>   <text x="0" y="-3.480" size="1.27" layer="27" align="top-center">&gt;VALUE</text>-</package>+<!--adom-pin1--><polygon width="0.0500" layer="21"><vertex x="-2.6000" y="2.4700"/><vertex x="-2.8400" y="2.8000"/><vertex x="-2.3600" y="2.8000"/></polygon></package> </packages> <symbols> <symbol name="W25Q80DVSNIG TR">