by adom
2020 Addressable RGB LED · 800 Kbps single-line cascade · 16 mA per channel (V1.0 sheet), 12 mA from V1.2
← Commit history
Pads: square corners, as the datasheet draws them (no added rounding); viewers, lbr, insertion GLB, hero rebuilt from the footprint
11 files changed
+39−47
README.md+3−4WS2812B-2020-fpview.html+1−1WS2812B-2020.adom-lbr.json+4−4WS2812B-2020.glbWS2812B-2020.insertion.glbWS2812B-2020.kicad_mod+9−9WS2812B-2020.lbr+5−5footprint-variants/WS2812B-2020.kicad_mod+9−9footprint-variants/WS2812B-2020.variants.json+3−10ws2812b-2020-hero.glbws2812b-2020-hero.overlay.json+5−5README.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