<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>光 Hikari badge | Go Education Project</title><link>https://goeducation.net/docs/hikari/</link><atom:link href="https://goeducation.net/docs/hikari/index.xml" rel="self" type="application/rss+xml"/><description>光 Hikari badge</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>en-us</language><image><url>https://goeducation.net/media/logo.svg</url><title>光 Hikari badge</title><link>https://goeducation.net/docs/hikari/</link></image><item><title>Information</title><link>https://goeducation.net/docs/hikari/readme/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://goeducation.net/docs/hikari/readme/</guid><description>
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;Visit the
to download the example code and get the latest version.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;A custom WS2812 LED badge powered by a
and written in
.&lt;/p&gt;
&lt;p&gt;The PCB hosts 20 RGB LEDs arranged in a &lt;strong&gt;4 rows × 5 columns&lt;/strong&gt; grid behind a frosted 3D-printed diffuser. A single button cycles through lighting effects.&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;&lt;img alt="Video 3"
src="https://goeducation.net/docs/hikari/readme/videogif3.gif"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="hardware"&gt;Hardware&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Note&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Hikari PCB&lt;/td&gt;
&lt;td&gt;in hardware/pcb folder&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3D printed files&lt;/td&gt;
&lt;td&gt;in hardware/STL folder&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Flathead screw 2.1x10&lt;/td&gt;
&lt;td&gt;4x&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;20 × WS2812 LEDs (4 rows × 5 cols)&lt;/td&gt;
&lt;td&gt;D6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tactile button&lt;/td&gt;
&lt;td&gt;D3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Qwiic / StemmaQT connector&lt;/td&gt;
&lt;td&gt;D4 &amp;amp; D5 (I²C)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Passive buffer&lt;/td&gt;
&lt;td&gt;D7&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="effects"&gt;Effects&lt;/h2&gt;
&lt;p&gt;Each press of the button advances to the next effect. The sequence cycles endlessly.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;#&lt;/th&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Rainbow&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;All 20 LEDs show the same colour; the hue cycles slowly through the full spectrum (~20 s per revolution)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Row sweep&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;One row lights up at a time and sweeps downward; the hue drifts continuously&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Column sweep&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;One column lights up at a time and sweeps rightward&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Stars&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;8 LEDs at random positions fade in with a random colour then fade out; when a star dies a new one appears elsewhere&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Breathing&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;All LEDs pulse with a triangular brightness envelope (~5 s per breath); the hue shifts slowly between cycles&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Rainbow rows&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Each row shows a different hue (90° apart on the colour wheel); all hues advance together&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Wave&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;A bright column chases across the grid with a two-column fading trail&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="flash"&gt;Flash&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tinygo flash -target&lt;span class="o"&gt;=&lt;/span&gt;xiao-esp32c3 -stack-size&lt;span class="o"&gt;=&lt;/span&gt;8KB .
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Requires TinyGo ≥ 0.41 and
v0.35.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="build"&gt;Build&lt;/h2&gt;
&lt;h3 id="step-1--bare-pcb"&gt;Step 1 — Bare PCB&lt;/h3&gt;
&lt;p&gt;The back side of the custom PCB. Footprints for the 20 WS2812 LEDs are arranged in the 4 × 5 grid.&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Step 1 – bare PCB front"
srcset="https://goeducation.net/docs/hikari/readme/step1_hu_178417193545ea5e.webp 320w, https://goeducation.net/docs/hikari/readme/step1_hu_46fe45fa231f90ff.webp 480w, https://goeducation.net/docs/hikari/readme/step1_hu_fa250bc7f3453036.webp 658w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://goeducation.net/docs/hikari/readme/step1_hu_178417193545ea5e.webp"
width="658"
height="478"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="step-2--qwiic--stemmaqt-connector"&gt;Step 2 — Qwiic / StemmaQT connector&lt;/h3&gt;
&lt;p&gt;We&amp;rsquo;ll start with the SMD Qwiic / StemmaQT connector since it&amp;rsquo;s the trickiest to solder. It is not really needed, but a cool way to extend the board with sensors. Use the help of some flux if needed.&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Step 2 – qwiic stemmaqt"
srcset="https://goeducation.net/docs/hikari/readme/step2_hu_2241d729c55621d3.webp 290w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://goeducation.net/docs/hikari/readme/step2_hu_2241d729c55621d3.webp"
width="290"
height="222"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="step-3--soldering-the-button"&gt;Step 3 — Soldering the button&lt;/h3&gt;
&lt;p&gt;The tactile switch is soldered to its footprint on top of the board. Easier than the stemmaQT.&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Step 3 – soldering button"
srcset="https://goeducation.net/docs/hikari/readme/step3_hu_d67419b9a33fedaa.webp 320w, https://goeducation.net/docs/hikari/readme/step3_hu_bf85ee7ace3aa9ae.webp 348w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://goeducation.net/docs/hikari/readme/step3_hu_d67419b9a33fedaa.webp"
width="348"
height="196"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="step-4--pcb-fully-populated"&gt;Step 4 — PCB fully populated&lt;/h3&gt;
&lt;p&gt;All 20 LEDs and the button in place. The XIAO BLE/RP2040/ESP32C3/&amp;hellip; plugs in on the left edge. It&amp;rsquo;s the easier one to do, and the last one to be done since it goes over one LED.&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Step 4 – PCB fully populated"
srcset="https://goeducation.net/docs/hikari/readme/step4_hu_501f7eda5f68a53b.webp 320w, https://goeducation.net/docs/hikari/readme/step4_hu_b432df25ccfc1474.webp 480w, https://goeducation.net/docs/hikari/readme/step4_hu_8a12f66d81cd16fd.webp 760w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://goeducation.net/docs/hikari/readme/step4_hu_501f7eda5f68a53b.webp"
width="760"
height="438"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="note-make-sure-all-the-leds-are-correctly-soldered-since-once-we-solder-the-board-theres-no-way-to-fix-the-led-behind-it"&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: Make sure all the LEDs are correctly soldered since once we solder the board there&amp;rsquo;s no way to fix the LED behind it.&lt;/h2&gt;
&lt;h3 id="step-5--pcb-seated-in-the-frame"&gt;Step 5 — PCB seated in the frame&lt;/h3&gt;
&lt;p&gt;The board drops into the back shell. The silkscreen on the rear shows the Go gopher pattern.&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Step 5 – PCB in frame"
srcset="https://goeducation.net/docs/hikari/readme/step6_hu_27c2804663143656.webp 320w, https://goeducation.net/docs/hikari/readme/step6_hu_c62556a20de52ac.webp 480w, https://goeducation.net/docs/hikari/readme/step6_hu_d92c2bb4913db5f.webp 550w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://goeducation.net/docs/hikari/readme/step6_hu_27c2804663143656.webp"
width="550"
height="414"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="step-6--3d-printed-back-cover"&gt;Step 6 — 3D-printed back cover&lt;/h3&gt;
&lt;p&gt;The black back shell printed in PLA. The XIAO slides into the slot on the side for USB access. Use 4 screws on the holes.&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Step 6 – back cover"
srcset="https://goeducation.net/docs/hikari/readme/step5_hu_3eaa853c5d503f6f.webp 320w, https://goeducation.net/docs/hikari/readme/step5_hu_c63fb715dd7095ce.webp 480w, https://goeducation.net/docs/hikari/readme/step5_hu_afdd8f7973872e88.webp 552w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://goeducation.net/docs/hikari/readme/step5_hu_3eaa853c5d503f6f.webp"
width="552"
height="388"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="step-7--frosted-diffuser-panel"&gt;Step 7 — Frosted diffuser panel&lt;/h3&gt;
&lt;p&gt;A white PLA diffuser snaps onto the front of the frame to spread the light evenly across the grid. You could print different models of the diffuser!&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Step 7 – diffuser panel"
srcset="https://goeducation.net/docs/hikari/readme/step7_hu_7ad56e91e1c1e789.webp 320w, https://goeducation.net/docs/hikari/readme/step7_hu_2136b18d6eee8eaf.webp 480w, https://goeducation.net/docs/hikari/readme/step7_hu_d46cf3eb7d6e11b5.webp 580w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://goeducation.net/docs/hikari/readme/step7_hu_7ad56e91e1c1e789.webp"
width="580"
height="428"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="step-8--finished"&gt;Step 8 — Finished&lt;/h3&gt;
&lt;p&gt;Fully assembled and running. The diffuser softens each LED point into a smooth glow.&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;
&lt;img alt="Step 8 – finished, lit"
srcset="https://goeducation.net/docs/hikari/readme/step8_hu_e8d7c8d4c96c784d.webp 320w, https://goeducation.net/docs/hikari/readme/step8_hu_d66768d955f4afbc.webp 480w, https://goeducation.net/docs/hikari/readme/step8_hu_f81cf8ed1d5dc92.webp 568w"
sizes="(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px"
src="https://goeducation.net/docs/hikari/readme/step8_hu_e8d7c8d4c96c784d.webp"
width="568"
height="406"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="showroom"&gt;Showroom&lt;/h2&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;&lt;img alt="Video 1"
src="https://goeducation.net/docs/hikari/readme/videogif1.gif"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;&lt;img alt="Video 2"
src="https://goeducation.net/docs/hikari/readme/videogif2.gif"
loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="license"&gt;License&lt;/h2&gt;
&lt;p&gt;
&lt;/p&gt;</description></item></channel></rss>