← Commit history
README.md+3−4
@@ -72,11 +72,10 @@ Source: Land pattern from Worldsemi WS2812B-2020 datasheet V1.0, p.2 (PCB Solder | Gap between pads | 1.13 | - | 1.13 | 1.13 | | Centre to centre | - | - | 1.83 | 1.83 | | Overall | - | - | 2.53 | 2.53 |-| Corner radius | not specified | - | 0.175 (ratio 0.25) | 0.1 (ratio 0.1429) |+| Corner radius | not specified | - | 0.175 (ratio 0.25) | square (as drawn) |+Corners: square, as the datasheet draws them. The datasheet does not call for rounded corners, so the footprint does not add any. -Corners: the datasheet drawing shows plain rectangles and says nothing about corners, so the pads are KiCad roundrects with the radius held to 0.25 x the smaller pad side and no more than 0.1 mm. IPC-7351C favours rounded SMD pad corners for cleaner paste release and to avoid stress points; capping the radius keeps the copper area within 1.75 % of a square-cornered pad.--::adom-footprint-variants{src="/adom/ws2812b-2020/render/footprint-variants/WS2812B-2020.variants.json" heading="Pad corners: this footprint, square corners, KiCad default rounding"}+::adom-footprint-variants{src="/adom/ws2812b-2020/render/footprint-variants/WS2812B-2020.variants.json" heading="Pad corners: this footprint (square, as drawn) and KiCad default rounding (not used)"}  ## Chip outline 
WS2812B-2020-fpview.html+1−1
@@ -57,7 +57,7 @@ aside .ah{padding:9px 12px;border-bottom:1px solid var(--border);font-size:12px;   <main>     <div class="vpwrap">       <div class="av-vp" id="vp">-        <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2.550 -2.250 5.100 4.500" preserveAspectRatio="xMidYMid meet"><g class="adom-layer-courtyard"><rect x="-1.550" y="-1.250" width="3.100" height="2.500" fill="none" stroke="#FF26E2" stroke-width="0.05" stroke-dasharray="0.2,0.1"/></g><g class="adom-layer-fab"><rect x="-1.100" y="-1.000" width="2.200" height="2.000" fill="none" stroke="#6e7681" stroke-width="0.1"/></g><g class="adom-layer-copper"><g data-pad="1" data-shape="roundrect" data-size="0.700x0.700" data-mount="smd"><rect x="-1.265" y="-0.900" width="0.700" height="0.700" rx="0.100" fill="#C83434" stroke="#ef5350" stroke-width="0.04"/></g><g data-pad="2" data-shape="roundrect" data-size="0.700x0.700" data-mount="smd"><rect x="-1.265" y="0.200" width="0.700" height="0.700" rx="0.100" fill="#C83434" stroke="#ef5350" stroke-width="0.04"/></g><g data-pad="3" data-shape="roundrect" data-size="0.700x0.700" data-mount="smd"><rect x="0.565" y="0.200" width="0.700" height="0.700" rx="0.100" fill="#C83434" stroke="#ef5350" stroke-width="0.04"/></g><g data-pad="4" data-shape="roundrect" data-size="0.700x0.700" data-mount="smd"><rect x="0.565" y="-0.900" width="0.700" height="0.700" rx="0.100" fill="#C83434" stroke="#ef5350" stroke-width="0.04"/></g></g><g class="adom-layer-heatsink"></g><g class="adom-layer-drill"></g><g class="adom-layer-silk"><line x1="-1.450" y1="-1.100" x2="1.100" y2="-1.100" stroke="#00cccc" stroke-width="0.12" stroke-linecap="round"/><line x1="-1.450" y1="-1.100" x2="-1.450" y2="-0.200" stroke="#00cccc" stroke-width="0.12" stroke-linecap="round"/><line x1="-1.100" y1="1.100" x2="1.100" y2="1.100" stroke="#00cccc" stroke-width="0.12" stroke-linecap="round"/></g><g class="adom-layer-padnum"><text x="-0.915" y="-0.550" text-anchor="middle" dominant-baseline="central" font-size="0.294" fill="#fff" font-family="sans-serif" style="pointer-events:none">1</text><text x="-0.915" y="0.550" text-anchor="middle" dominant-baseline="central" font-size="0.294" fill="#fff" font-family="sans-serif" style="pointer-events:none">2</text><text x="0.915" y="0.550" text-anchor="middle" dominant-baseline="central" font-size="0.294" fill="#fff" font-family="sans-serif" style="pointer-events:none">3</text><text x="0.915" y="-0.550" text-anchor="middle" dominant-baseline="central" font-size="0.294" fill="#fff" font-family="sans-serif" style="pointer-events:none">4</text></g><g class="adom-layer-paste-apertures"><rect x="-1.265" y="-0.900" width="0.700" height="0.700" rx="0.05" transform="rotate(0.00 -0.915 -0.550)" fill="none" stroke="#8aa0b8" stroke-width="0.03" stroke-dasharray="0.12 0.08" opacity="0.7"/><rect x="-1.265" y="0.200" width="0.700" height="0.700" rx="0.05" transform="rotate(0.00 -0.915 0.550)" fill="none" stroke="#8aa0b8" stroke-width="0.03" stroke-dasharray="0.12 0.08" opacity="0.7"/><rect x="0.565" y="0.200" width="0.700" height="0.700" rx="0.05" transform="rotate(0.00 0.915 0.550)" fill="none" stroke="#8aa0b8" stroke-width="0.03" stroke-dasharray="0.12 0.08" opacity="0.7"/><rect x="0.565" y="-0.900" width="0.700" height="0.700" rx="0.05" transform="rotate(0.00 0.915 -0.550)" fill="none" stroke="#8aa0b8" stroke-width="0.03" stroke-dasharray="0.12 0.08" opacity="0.7"/></g><g class="adom-layer-paste-dots"><circle cx="-1.040" cy="-0.675" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-1.040" cy="-0.425" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-0.790" cy="-0.675" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-0.790" cy="-0.425" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-1.040" cy="0.425" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-1.040" cy="0.675" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-0.790" cy="0.425" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-0.790" cy="0.675" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="0.790" cy="0.425" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="0.790" cy="0.675" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="1.040" cy="0.425" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="1.040" cy="0.675" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="0.790" cy="-0.675" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="0.790" cy="-0.425" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="1.040" cy="-0.675" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="1.040" cy="-0.425" r="0.150" fill="#37c8a6" opacity="0.92"/></g></svg>+        <svg xmlns="http://www.w3.org/2000/svg" viewBox="-2.550 -2.250 5.100 4.500" preserveAspectRatio="xMidYMid meet"><g class="adom-layer-courtyard"><rect x="-1.550" y="-1.250" width="3.100" height="2.500" fill="none" stroke="#FF26E2" stroke-width="0.05" stroke-dasharray="0.2,0.1"/></g><g class="adom-layer-fab"><rect x="-1.100" y="-1.000" width="2.200" height="2.000" fill="none" stroke="#6e7681" stroke-width="0.1"/></g><g class="adom-layer-copper"><g data-pad="1" data-shape="rect" data-size="0.700x0.700" data-mount="smd"><rect x="-1.265" y="-0.900" width="0.700" height="0.700" fill="#C83434" stroke="#ef5350" stroke-width="0.04"/></g><g data-pad="2" data-shape="rect" data-size="0.700x0.700" data-mount="smd"><rect x="-1.265" y="0.200" width="0.700" height="0.700" fill="#C83434" stroke="#ef5350" stroke-width="0.04"/></g><g data-pad="3" data-shape="rect" data-size="0.700x0.700" data-mount="smd"><rect x="0.565" y="0.200" width="0.700" height="0.700" fill="#C83434" stroke="#ef5350" stroke-width="0.04"/></g><g data-pad="4" data-shape="rect" data-size="0.700x0.700" data-mount="smd"><rect x="0.565" y="-0.900" width="0.700" height="0.700" fill="#C83434" stroke="#ef5350" stroke-width="0.04"/></g></g><g class="adom-layer-heatsink"></g><g class="adom-layer-drill"></g><g class="adom-layer-silk"><line x1="-1.450" y1="-1.100" x2="1.100" y2="-1.100" stroke="#00cccc" stroke-width="0.12" stroke-linecap="round"/><line x1="-1.450" y1="-1.100" x2="-1.450" y2="-0.200" stroke="#00cccc" stroke-width="0.12" stroke-linecap="round"/><line x1="-1.100" y1="1.100" x2="1.100" y2="1.100" stroke="#00cccc" stroke-width="0.12" stroke-linecap="round"/></g><g class="adom-layer-padnum"><text x="-0.915" y="-0.550" text-anchor="middle" dominant-baseline="central" font-size="0.294" fill="#fff" font-family="sans-serif" style="pointer-events:none">1</text><text x="-0.915" y="0.550" text-anchor="middle" dominant-baseline="central" font-size="0.294" fill="#fff" font-family="sans-serif" style="pointer-events:none">2</text><text x="0.915" y="0.550" text-anchor="middle" dominant-baseline="central" font-size="0.294" fill="#fff" font-family="sans-serif" style="pointer-events:none">3</text><text x="0.915" y="-0.550" text-anchor="middle" dominant-baseline="central" font-size="0.294" fill="#fff" font-family="sans-serif" style="pointer-events:none">4</text></g><g class="adom-layer-paste-apertures"><rect x="-1.265" y="-0.900" width="0.700" height="0.700" rx="0.05" transform="rotate(0.00 -0.915 -0.550)" fill="none" stroke="#8aa0b8" stroke-width="0.03" stroke-dasharray="0.12 0.08" opacity="0.7"/><rect x="-1.265" y="0.200" width="0.700" height="0.700" rx="0.05" transform="rotate(0.00 -0.915 0.550)" fill="none" stroke="#8aa0b8" stroke-width="0.03" stroke-dasharray="0.12 0.08" opacity="0.7"/><rect x="0.565" y="0.200" width="0.700" height="0.700" rx="0.05" transform="rotate(0.00 0.915 0.550)" fill="none" stroke="#8aa0b8" stroke-width="0.03" stroke-dasharray="0.12 0.08" opacity="0.7"/><rect x="0.565" y="-0.900" width="0.700" height="0.700" rx="0.05" transform="rotate(0.00 0.915 -0.550)" fill="none" stroke="#8aa0b8" stroke-width="0.03" stroke-dasharray="0.12 0.08" opacity="0.7"/></g><g class="adom-layer-paste-dots"><circle cx="-1.040" cy="-0.675" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-1.040" cy="-0.425" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-0.790" cy="-0.675" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-0.790" cy="-0.425" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-1.040" cy="0.425" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-1.040" cy="0.675" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-0.790" cy="0.425" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="-0.790" cy="0.675" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="0.790" cy="0.425" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="0.790" cy="0.675" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="1.040" cy="0.425" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="1.040" cy="0.675" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="0.790" cy="-0.675" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="0.790" cy="-0.425" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="1.040" cy="-0.675" r="0.150" fill="#37c8a6" opacity="0.92"/><circle cx="1.040" cy="-0.425" r="0.150" fill="#37c8a6" opacity="0.92"/></g></svg>       </div>     </div>     <aside>
WS2812B-2020.adom-lbr.json+4−4
@@ -125,7 +125,7 @@         "h_mm": 0.7,         "drill_mm": 0.0,         "rotation": 0.0,-        "shape": "roundrect"+        "shape": "rect"       },       {         "number": "2",@@ -135,7 +135,7 @@         "h_mm": 0.7,         "drill_mm": 0.0,         "rotation": 0.0,-        "shape": "roundrect"+        "shape": "rect"       },       {         "number": "3",@@ -145,7 +145,7 @@         "h_mm": 0.7,         "drill_mm": 0.0,         "rotation": 0.0,-        "shape": "roundrect"+        "shape": "rect"       },       {         "number": "4",@@ -155,7 +155,7 @@         "h_mm": 0.7,         "drill_mm": 0.0,         "rotation": 0.0,-        "shape": "roundrect"+        "shape": "rect"       }     ],     "graphics": [
WS2812B-2020.glb
⋯ 1 unchanged line ⋯
WS2812B-2020.insertion.glb
⋯ 1 unchanged line ⋯
WS2812B-2020.kicad_mod+9−9
@@ -2,7 +2,7 @@   (version 20240108)   (generator "adom-footprint")   (layer "F.Cu")-  (descr "Worldsemi WS2812B-2020, 2020. Land pattern from Worldsemi WS2812B-2020 datasheet V1.0, p.2 (PCB Solder Pad); corners: datasheet silent; roundrect radius 0.1 mm = min(0.25 x smaller pad side, 0.1 mm), IPC-7351C rounded corners for paste release")+  (descr "Worldsemi WS2812B-2020, 2020. Land pattern from Worldsemi WS2812B-2020 datasheet V1.0, p.2 (PCB Solder Pad); corners: square, as the datasheet draws them")   (attr smd)   (fp_rect (start -1.55 -1.25) (end 1.55 1.25)     (stroke (width 0.05) (type default)) (fill none) (layer "F.CrtYd"))@@ -18,12 +18,12 @@     (layer "F.SilkS") (effects (font (size 1 1) (thickness 0.15))))   (fp_text value "WS2812B-2020" (at 0 2.2)     (layer "F.Fab") (effects (font (size 1 1) (thickness 0.15))))-  (pad "1" smd roundrect (at -0.915 -0.55) (size 0.7 0.7)-    (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1429))-  (pad "2" smd roundrect (at -0.915 0.55) (size 0.7 0.7)-    (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1429))-  (pad "3" smd roundrect (at 0.915 0.55) (size 0.7 0.7)-    (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1429))-  (pad "4" smd roundrect (at 0.915 -0.55) (size 0.7 0.7)-    (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1429))+  (pad "1" smd rect (at -0.915 -0.55) (size 0.7 0.7)+    (layers "F.Cu" "F.Paste" "F.Mask"))+  (pad "2" smd rect (at -0.915 0.55) (size 0.7 0.7)+    (layers "F.Cu" "F.Paste" "F.Mask"))+  (pad "3" smd rect (at 0.915 0.55) (size 0.7 0.7)+    (layers "F.Cu" "F.Paste" "F.Mask"))+  (pad "4" smd rect (at 0.915 -0.55) (size 0.7 0.7)+    (layers "F.Cu" "F.Paste" "F.Mask")) )
WS2812B-2020.lbr+5−5
@@ -53,11 +53,11 @@ <description>Intelligent control LED integrated light source, 2020 package. Built-in IC for single-wire addressable RGB control. 256 brightness levels, 16.7M colors</description> <packages> <package name="WS2812B-2020">-  <description>4 pads, 2.5 x 1.8 mm. Worldsemi WS2812B-2020, 2020. Land pattern from Worldsemi WS2812B-2020 datasheet V1.0, p.2 (PCB Solder Pad); corners: datasheet silent; roundrect radius 0.1 mm = min(0.25 x smaller pad side, 0.1 mm), IPC-7351C rounded corners for paste release</description>-  <smd name="1" x="-0.9150" y="0.5500" dx="0.7000" dy="0.7000" layer="1" roundness="29"/>-  <smd name="2" x="-0.9150" y="-0.5500" dx="0.7000" dy="0.7000" layer="1" roundness="29"/>-  <smd name="3" x="0.9150" y="-0.5500" dx="0.7000" dy="0.7000" layer="1" roundness="29"/>-  <smd name="4" x="0.9150" y="0.5500" dx="0.7000" dy="0.7000" layer="1" roundness="29"/>+  <description>4 pads, 2.5 x 1.8 mm. Worldsemi WS2812B-2020, 2020. Land pattern from Worldsemi WS2812B-2020 datasheet V1.0, p.2 (PCB Solder Pad); corners: square, as the datasheet draws them</description>+  <smd name="1" x="-0.9150" y="0.5500" dx="0.7000" dy="0.7000" layer="1"/>+  <smd name="2" x="-0.9150" y="-0.5500" dx="0.7000" dy="0.7000" layer="1"/>+  <smd name="3" x="0.9150" y="-0.5500" dx="0.7000" dy="0.7000" layer="1"/>+  <smd name="4" x="0.9150" y="0.5500" dx="0.7000" dy="0.7000" layer="1"/>   <wire x1="-1.1000" y1="1.0000" x2="1.1000" y2="1.0000" width="0.1000" layer="51"/>   <wire x1="1.1000" y1="1.0000" x2="1.1000" y2="-1.0000" width="0.1000" layer="51"/>   <wire x1="1.1000" y1="-1.0000" x2="-1.1000" y2="-1.0000" width="0.1000" layer="51"/>
footprint-variants/WS2812B-2020.kicad_mod+9−9
@@ -2,7 +2,7 @@   (version 20240108)   (generator "adom-footprint")   (layer "F.Cu")-  (descr "Worldsemi WS2812B-2020, 2020. Land pattern from Worldsemi WS2812B-2020 datasheet V1.0, p.2 (PCB Solder Pad); corners: datasheet silent; roundrect radius 0.1 mm = min(0.25 x smaller pad side, 0.1 mm), IPC-7351C rounded corners for paste release")+  (descr "Worldsemi WS2812B-2020, 2020. Land pattern from Worldsemi WS2812B-2020 datasheet V1.0, p.2 (PCB Solder Pad); corners: square, as the datasheet draws them")   (attr smd)   (fp_rect (start -1.55 -1.25) (end 1.55 1.25)     (stroke (width 0.05) (type default)) (fill none) (layer "F.CrtYd"))@@ -18,12 +18,12 @@     (layer "F.SilkS") (effects (font (size 1 1) (thickness 0.15))))   (fp_text value "WS2812B-2020" (at 0 2.2)     (layer "F.Fab") (effects (font (size 1 1) (thickness 0.15))))-  (pad "1" smd roundrect (at -0.915 -0.55) (size 0.7 0.7)-    (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1429))-  (pad "2" smd roundrect (at -0.915 0.55) (size 0.7 0.7)-    (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1429))-  (pad "3" smd roundrect (at 0.915 0.55) (size 0.7 0.7)-    (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1429))-  (pad "4" smd roundrect (at 0.915 -0.55) (size 0.7 0.7)-    (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1429))+  (pad "1" smd rect (at -0.915 -0.55) (size 0.7 0.7)+    (layers "F.Cu" "F.Paste" "F.Mask"))+  (pad "2" smd rect (at -0.915 0.55) (size 0.7 0.7)+    (layers "F.Cu" "F.Paste" "F.Mask"))+  (pad "3" smd rect (at 0.915 0.55) (size 0.7 0.7)+    (layers "F.Cu" "F.Paste" "F.Mask"))+  (pad "4" smd rect (at 0.915 -0.55) (size 0.7 0.7)+    (layers "F.Cu" "F.Paste" "F.Mask")) )
footprint-variants/WS2812B-2020.variants.json+3−10
@@ -5,21 +5,14 @@   "variants": [     {       "suffix": "",-      "device": "this page",+      "device": "this page (square, as drawn)",       "kicad_mod": "WS2812B-2020.kicad_mod",       "footprintName": "WS2812B-2020",-      "changed": "the page footprint: roundrect, corner radius 0.1 mm (ratio 0.1429)"-    },-    {-      "suffix": "-SQ",-      "device": "square corners",-      "kicad_mod": "WS2812B-2020-SQ.kicad_mod",-      "footprintName": "WS2812B-2020-SQ",-      "changed": "same pads as plain rectangles, as the datasheet draws them"+      "changed": "the page footprint: plain rectangles, square corners, as the datasheet draws them"     },     {       "suffix": "-RR25",-      "device": "KiCad default rounding",+      "device": "KiCad default rounding (not used)",       "kicad_mod": "WS2812B-2020-RR25.kicad_mod",       "footprintName": "WS2812B-2020-RR25",       "changed": "same pads with roundrect_rratio 0.25 (KiCad's default), radius 0.175 mm"
ws2812b-2020-hero.glb
⋯ 1 unchanged line ⋯
ws2812b-2020-hero.overlay.json+5−5
@@ -77,7 +77,7 @@     "glb": "WS2812B-2020-part.glb",     "glb_sha256": "34a75834340b5d56b0e8ac55a9e5f028d40e6dcf4043162e783f2641793b5bf4",     "footprint": "WS2812B-2020.kicad_mod",-    "footprint_sha256": "cf615516f7eab4c199e0fedb4e3e8798c2387e3c5a533de82167532174961d1b",+    "footprint_sha256": "02e5bcf6a9713bc4d2ad20734f5f86e5c1c4c45b259697ece929eefce8c57a92",     "pins": "page.json component.pins",     "pins_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"   },@@ -123,7 +123,7 @@   "pads": [     {       "number": "1",-      "shape": "roundrect",+      "shape": "rect",       "center_mm": [         -0.915,         -0.55@@ -136,7 +136,7 @@     },     {       "number": "2",-      "shape": "roundrect",+      "shape": "rect",       "center_mm": [         -0.915,         0.55@@ -149,7 +149,7 @@     },     {       "number": "3",-      "shape": "roundrect",+      "shape": "rect",       "center_mm": [         0.915,         0.55@@ -162,7 +162,7 @@     },     {       "number": "4",-      "shape": "roundrect",+      "shape": "rect",       "center_mm": [         0.915,         -0.55