Files
yellowberryHN_redive/guide/led-pcb.html
T

1187 lines
30 KiB
HTML

<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="description" content="Let's all DIVE again!">
<meta name="author" content="Yellow">
<link rel="canonical" href="https://redive.world/guide/led-pcb.html">
<link rel="prev" href="led-replace.html">
<link rel="next" href="alls-image.html">
<link rel="icon" href="../assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.17">
<title>DIY LED Boards - reDIVE World</title>
<link rel="stylesheet" href="../assets/stylesheets/main.bcfcd587.min.css">
<link rel="stylesheet" href="../assets/stylesheets/palette.06af60db.min.css">
<script src="https://unpkg.com/iframe-worker/shim"></script>
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<link rel="stylesheet" href="../css/extra.css">
<script>__md_scope=new URL("..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
</head>
<body dir="ltr" data-md-color-scheme="slate" data-md-color-primary="custom" data-md-color-accent="custom">
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#replacement-led-pcbs" class="md-skip">
Skip to content
</a>
</div>
<div data-md-component="announce">
</div>
<header class="md-header md-header--shadow" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="../index.html" title="reDIVE World" class="md-header__button md-logo" aria-label="reDIVE World" data-md-component="logo">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"/></svg>
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
reDIVE World
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
DIY LED Boards
</span>
</div>
</div>
</div>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
</label>
<nav class="md-search__options" aria-label="Search">
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
</button>
</nav>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Initializing search
</div>
<ol class="md-search-result__list" role="presentation"></ol>
</div>
</div>
</div>
</div>
</div>
<div class="md-header__source">
<a href="https://github.com/yellowberryHN/redive" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z"/></svg>
</div>
<div class="md-source__repository">
GitHub
</div>
</a>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="../index.html" title="reDIVE World" class="md-nav__button md-logo" aria-label="reDIVE World" data-md-component="logo">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"/></svg>
</a>
reDIVE World
</label>
<div class="md-nav__source">
<a href="https://github.com/yellowberryHN/redive" title="Go to repository" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z"/></svg>
</div>
<div class="md-source__repository">
GitHub
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../index.html" class="md-nav__link">
<span class="md-ellipsis">
Home
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" checked>
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="">
<span class="md-ellipsis">
Info
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_2">
<span class="md-nav__icon md-icon"></span>
Info
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../guide.html" class="md-nav__link">
<span class="md-ellipsis">
The DiVER's Guide
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_2" checked>
<label class="md-nav__link" for="__nav_2_2" id="__nav_2_2_label" tabindex="0">
<span class="md-ellipsis">
Guides
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_2_label" aria-expanded="true">
<label class="md-nav__title" for="__nav_2_2">
<span class="md-nav__icon md-icon"></span>
Guides
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="led-replace.html" class="md-nav__link">
<span class="md-ellipsis">
Replacing LED Boards
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
<span class="md-ellipsis">
DIY LED Boards
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<a href="led-pcb.html" class="md-nav__link md-nav__link--active">
<span class="md-ellipsis">
DIY LED Boards
</span>
</a>
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#bom-for-use-with-ws2813b-v5" class="md-nav__link">
<span class="md-ellipsis">
BOM (for use with WS2813B-V5)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#soldering-it-all-together" class="md-nav__link">
<span class="md-ellipsis">
Soldering it all together
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="alls-image.html" class="md-nav__link">
<span class="md-ellipsis">
ALLS Drive Imaging
</span>
</a>
</li>
<li class="md-nav__item">
<a href="custom-led-driver.html" class="md-nav__link">
<span class="md-ellipsis">
Custom LED Driver
</span>
</a>
</li>
<li class="md-nav__item">
<a href="router.html" class="md-nav__link">
<span class="md-ellipsis">
Networking Guide
</span>
</a>
</li>
<li class="md-nav__item">
<a href="accessories.html" class="md-nav__link">
<span class="md-ellipsis">
Accessory Guide
</span>
</a>
</li>
<li class="md-nav__item">
<a href="custom-charts.html" class="md-nav__link">
<span class="md-ellipsis">
Custom Charts
</span>
</a>
</li>
<li class="md-nav__item">
<a href="wacvr.html" class="md-nav__link">
<span class="md-ellipsis">
WACVR Setup
</span>
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_2_2_9" >
<label class="md-nav__link" for="__nav_2_2_9" id="__nav_2_2_9_label" tabindex="0">
<span class="md-ellipsis">
Mods
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="3" aria-labelledby="__nav_2_2_9_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2_2_9">
<span class="md-nav__icon md-icon"></span>
Mods
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="mod/back-plate.html" class="md-nav__link">
<span class="md-ellipsis">
External Port Adapter
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_2_3" >
<label class="md-nav__link" for="__nav_2_3" id="__nav_2_3_label" tabindex="0">
<span class="md-ellipsis">
Specifications
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2_3">
<span class="md-nav__icon md-icon"></span>
Specifications
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../info/hardware.html" class="md-nav__link">
<span class="md-ellipsis">
Hardware
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../info/manual.html" class="md-nav__link">
<span class="md-ellipsis">
Manuals
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_2_4" >
<label class="md-nav__link" for="__nav_2_4" id="__nav_2_4_label" tabindex="0">
<span class="md-ellipsis">
Tools
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2_4">
<span class="md-nav__icon md-icon"></span>
Tools
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../launcher.html" class="md-nav__link">
<span class="md-ellipsis">
WACCA Launcher
</span>
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_2_5" >
<label class="md-nav__link" for="__nav_2_5" id="__nav_2_5_label" tabindex="0">
<span class="md-ellipsis">
Reference
</span>
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_2_5">
<span class="md-nav__icon md-icon"></span>
Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../info/test-menu.html" class="md-nav__link">
<span class="md-ellipsis">
Test Menu
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../info/errors.html" class="md-nav__link">
<span class="md-ellipsis">
Error Dictionary
</span>
</a>
</li>
<li class="md-nav__item">
<a href="../info/data/tables.html" class="md-nav__link">
<span class="md-ellipsis">
Table Map
</span>
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Table of contents
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#bom-for-use-with-ws2813b-v5" class="md-nav__link">
<span class="md-ellipsis">
BOM (for use with WS2813B-V5)
</span>
</a>
</li>
<li class="md-nav__item">
<a href="#soldering-it-all-together" class="md-nav__link">
<span class="md-ellipsis">
Soldering it all together
</span>
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<h1 id="replacement-led-pcbs">Replacement LED PCBs</h1>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>
If you're reading this, you probably know the basics of soldering, including SMD components.</p>
<p>If you're totally new to soldering, SMD might be a bit tricky. I'd suggest picking up an interesting keyboard project
(like the corne) and studying lots of youtube videos on the matter.</p>
<p>Just remember to use solder with flux (Kester 63/37 .031 inch leaded solder recommended), and to use a smoke absorber
for your safety (Hakko FA400-04 recommended). When in doubt, flux flux flux.</p>
</div>
<p>So, you want to manufacture your own LED PCBs? Well, here's a good way to go about that.</p>
<ol>
<li>Clone <a href="https://github.com/mnm-isola/wacca_ws2813">Isola's repo</a> or download the ZIP from the Code button.
<code>wacca_ws2813_rev20221021</code> is the revision we want. The main difference between revisions is that the capacitor at C9
is SMD instead of THT. If you need THT, the previous August revision will do just fine.</li>
<li><a href="https://www.kicad.org/download/">Download KiCad</a></li>
<li>Open <code>wacca_ws2813.kicab_pcb</code>.</li>
<li><code>File &gt; Fabrication Outputs &gt; Gerbers (.gbr)</code>. Set your output directory appropriately. </li>
<li>Click <code>Generate Drill Files...</code> and ensure that the drill units are in millimeters.
Click <code>Generate Drill File</code> and <code>Generate Map File</code>.</li>
<li>Click <code>Plot</code>.</li>
</ol>
<p>You should now have 13 files. Zip these files up and go to your favorite PCB manufacturer (I like JLCPCB). </p>
<p><strong>You need 60 PCBs to do a full replacement.</strong></p>
<p>It should be as simple as uploading the zip, clicking through, and purchasing.
I didn't change any of the default options other than making the PCB solder mask white.
It took a total of 7 days for 200 PCBs to be produced, ship, and arrive from China to California.
YMMV. About $45 for the PCBs and $47 for shipping.</p>
<p>If someone has a cool WACCA-related silkscreen, please give. Maybe one of each navigator.</p>
<p>Now that your PCBs are being fabricated, it's time to order the parts you'll need.
<a href="https://www.lcsc.com/">LCSC</a> is the recommended shop for these,
they ship right out of Shenzhen and it's quite quick, considering.</p>
<h3 id="bom-for-use-with-ws2813b-v5">BOM (for use with WS2813B-V5)</h3>
<table>
<thead>
<tr>
<th>Footprint</th>
<th>Parts</th>
<th>Size</th>
<th>Value</th>
<th>LCSC</th>
<th>Remark</th>
</tr>
</thead>
<tbody>
<tr>
<td>C1-C8</td>
<td>Not Needed</td>
<td>N/A</td>
<td>N/A</td>
<td>N/A</td>
<td>WS2813B-V5 do not require decoupling caps</td>
</tr>
<tr>
<td>C9</td>
<td>Tantalum Capacitor</td>
<td>7343</td>
<td>220uF</td>
<td><a href="https://www.lcsc.com/product-detail/Tantalum-Capacitors_Kyocera-AVX-TAJD227K010RNJ_C8024.html"><strong>C8024</strong></a></td>
<td>Optional but adds protection. 10V.</td>
</tr>
<tr>
<td>CN1, CN2</td>
<td>JST XA</td>
<td>3 pin</td>
<td>N/A</td>
<td><a href="https://www.lcsc.com/product-detail/Wire-To-Board-Wire-To-Wire-Connector_JST-Sales-America-B03B-XASK-1-LF-SN_C265055.html"><strong>C265055</strong></a></td>
<td>B03B-XASK-1(LF)(SN)</td>
</tr>
<tr>
<td>CN3</td>
<td>JST XA</td>
<td>4 pin</td>
<td>N/A</td>
<td><a href="https://www.lcsc.com/product-detail/Wire-To-Board-Wire-To-Wire-Connector_JST-Sales-America-B04B-XASK-1-LF-SN_C264994.html"><strong>C264994</strong></a></td>
<td>B04B-XASK-1(LF)(SN)</td>
</tr>
<tr>
<td>D1-D8</td>
<td>Worldsemi WS2813B-V5</td>
<td>N/A</td>
<td>N/A</td>
<td><a href="https://www.lcsc.com/product-detail/Light-Emitting-Diodes-LED_Worldsemi-WS2813B-V5_C965558.html"><strong>C965558</strong></a></td>
<td></td>
</tr>
<tr>
<td>R1, R2</td>
<td>0805W8F1000T5E</td>
<td>0805</td>
<td>100R</td>
<td><a href="https://www.lcsc.com/product-detail/Chip-Resistor-Surface-Mount_UNI-ROYAL-Uniroyal-Elec-0805W8F1000T5E_C17408.html"><strong>C17408</strong></a></td>
<td></td>
</tr>
<tr>
<td>U1, U2</td>
<td>MMBD1503A</td>
<td>N/A</td>
<td>N/A</td>
<td><a href="https://www.lcsc.com/product-detail/Diodes-General-Purpose_onsemi-MMBD1503A_C242273.html"><strong>C242273</strong></a></td>
<td></td>
</tr>
</tbody>
</table>
<p>So to do the math for you, to replace all of your lights, that's 60 PCBs you need.
<div class="highlight"><pre><span></span><code>60x C8024 [ships in multiples of 1]
120x C265055 [ships in multiples of 10]
60x C264994 [ships in multiples of 10]
480x C965558 [ships in multiples of 5]
120x C17408 [ships in multiples of 100, you&#39;ll have 80 extra]
120x C242273 [ships in multiples of 5]
</code></pre></div></p>
<p>The parts at the time of writing were $61.94 with $14.24 for slower shipping from China to California.</p>
<h2 id="soldering-it-all-together">Soldering it all together</h2>
<p>One way to shave a lot of time off mass producing these PCBs is to use solder paste and
order a stencil from <a href="https://www.oshstencils.com/">OSH Stencils</a>. Upload the gerber zip,
select the side that has all the LEDs as the top stencil (<code>wacca_ws2813_f_paste.gtp</code>),
and make frameless stainless steel 5mil. Should cost about $50.</p>
<p>Ordering the jig accessory can help as well,
but you can just use other PCBs to hold the position of the one you're squeegeeing.
Get some solder paste and apply it to the PCB using the stencil
(spread over stencil and squeegee. if no stencil, careful syringing),
apply the SMD components, put it in a modified oven or on top of a modified clothes iron
(or maybe you can use hot air at low flow)</p>
<aside class="md-source-file">
<span class="md-source-file__fact">
<span class="md-icon" title="Last update">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1-2.1-2M12.5 7v5.2l4 2.4-1 1L11 13V7h1.5M11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2v1.8Z"/></svg>
</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date" title="July 27, 2026 23:32:56 UTC">July 27, 2026</span>
</span>
</aside>
</article>
</div>
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
</div>
</main>
<footer class="md-footer">
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
<a rel="cc:attributionURL" href="https://redive.world">reDIVE World</a> is marked with <a href="https://creativecommons.org/publicdomain/zero/1.0/?ref=chooser-v1" target="_blank" rel="license noopener noreferrer" style="display:inline-block;">CC0 1.0 Universal<img style="height:18px!important;margin-left:2px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/cc.svg?ref=chooser-v1" alt=""><img style="height:18px!important;margin-left:2px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/zero.svg?ref=chooser-v1" alt=""></a>
<br/>
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "..", "features": ["navigation.sections", "navigation.expand"], "search": "../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
<script src="../assets/javascripts/bundle.1e8ae164.min.js"></script>
</body>
</html>