<script data-pm-proxy="intercept"></script><?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[atomic14]]></title><description><![CDATA[Welcome to the atomic14 newsletter - full of interesting posts for makers and electronics enthusiasts, sign up now - you won't be dissapointed!]]></description><link>https://atomic14.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!N97H!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fba33f659-4333-4159-9cf5-2799c60d91ff_1439x1439.jpeg</url><title>atomic14</title><link>https://atomic14.substack.com</link></image><generator>Substack</generator><lastBuildDate>Thu, 03 Sep 2026 01:15:16 GMT</lastBuildDate><atom:link href="/__u/atomic14.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Chris Greening]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[atomic14@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[atomic14@substack.com]]></itunes:email><itunes:name><![CDATA[Chris Greening]]></itunes:name></itunes:owner><itunes:author><![CDATA[Chris Greening]]></itunes:author><googleplay:owner><![CDATA[atomic14@substack.com]]></googleplay:owner><googleplay:email><![CDATA[atomic14@substack.com]]></googleplay:email><googleplay:author><![CDATA[Chris Greening]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[12 Boards one script...]]></title><description><![CDATA[I asked an AI to build me all the ESP32 dev boards - apparently that's beneath it..]]></description><link>https://atomic14.substack.com/p/12-boards-one-script</link><guid isPermaLink="false">https://atomic14.substack.com/p/12-boards-one-script</guid><dc:creator><![CDATA[Chris Greening]]></dc:creator><pubDate>Mon, 03 Aug 2026 10:54:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/gt-0t01COPw" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div id="youtube2-gt-0t01COPw" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;gt-0t01COPw&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/gt-0t01COPw?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Write up here: https://www.atomic14.com/2026/08/03/twelve-dev-boards-from-one</p>]]></content:encoded></item><item><title><![CDATA[ESP32 Module Info]]></title><description><![CDATA[I've made a thing!]]></description><link>https://atomic14.substack.com/p/esp32-module-info</link><guid isPermaLink="false">https://atomic14.substack.com/p/esp32-module-info</guid><dc:creator><![CDATA[Chris Greening]]></dc:creator><pubDate>Mon, 15 Jun 2026 16:37:46 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!N97H!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fba33f659-4333-4159-9cf5-2799c60d91ff_1439x1439.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A while back I made an ESP32-S3 pinout guide. It&#8217;s pretty popular - so I&#8217;ve decided to try and go for maximum coverage! All the Espressif modules in one place.</p><p>Give it a go here: <a href="https://www.atomic14.com/esp32/">https://www.atomic14.com/esp32/</a></p>]]></content:encoded></item><item><title><![CDATA[Get started with the ESP-IDF 6]]></title><description><![CDATA[ESP-IDF 6 Setup in VS Code: Blink & Debug an ESP32-S3]]></description><link>https://atomic14.substack.com/p/get-started-with-the-esp-idf-6</link><guid isPermaLink="false">https://atomic14.substack.com/p/get-started-with-the-esp-idf-6</guid><dc:creator><![CDATA[Chris Greening]]></dc:creator><pubDate>Sun, 10 May 2026 17:01:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/y2pIqbZa-iA" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Surprisingly straightforward.</p><div id="youtube2-y2pIqbZa-iA" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;y2pIqbZa-iA&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/y2pIqbZa-iA?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div>]]></content:encoded></item><item><title><![CDATA[Another massive AliExpress unbagging]]></title><description><![CDATA[We've got a lot of projects lining up!]]></description><link>https://atomic14.substack.com/p/another-massive-aliexpress-unbagging</link><guid isPermaLink="false">https://atomic14.substack.com/p/another-massive-aliexpress-unbagging</guid><dc:creator><![CDATA[Chris Greening]]></dc:creator><pubDate>Sat, 18 Apr 2026 13:53:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/OfJDcr03Tho" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div id="youtube2-OfJDcr03Tho" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;OfJDcr03Tho&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/OfJDcr03Tho?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div>]]></content:encoded></item><item><title><![CDATA[Hacking a Cheap Night Light]]></title><description><![CDATA[I've got a whole bunch of these - and they are of questionable quality...]]></description><link>https://atomic14.substack.com/p/hacking-a-cheap-night-light</link><guid isPermaLink="false">https://atomic14.substack.com/p/hacking-a-cheap-night-light</guid><dc:creator><![CDATA[Chris Greening]]></dc:creator><pubDate>Sat, 11 Apr 2026 17:09:23 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/eVac2GMyddk" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div id="youtube2-eVac2GMyddk" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;eVac2GMyddk&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/eVac2GMyddk?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>There&#8217;s an accompanying blog post <a href="https://www.atomic14.com/2026/04/11/pir-night-light-upgrade">here</a>.</p>]]></content:encoded></item><item><title><![CDATA[Why Won't My Board Reset?]]></title><description><![CDATA[One board works - another board doesn't...]]></description><link>https://atomic14.substack.com/p/why-wont-my-board-reset</link><guid isPermaLink="false">https://atomic14.substack.com/p/why-wont-my-board-reset</guid><dc:creator><![CDATA[Chris Greening]]></dc:creator><pubDate>Sat, 04 Apr 2026 15:07:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/VdJXJQXXZoo" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div id="youtube2-VdJXJQXXZoo" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;VdJXJQXXZoo&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/VdJXJQXXZoo?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>A simple case of not enough alcohol&#8230; accompanying blog post <a href="https://www.atomic14.com/2026/04/04/why-no-reset">here</a>.</p>]]></content:encoded></item><item><title><![CDATA[I Thought SOT666 Was a Standard - It Isn’t.]]></title><description><![CDATA[Pretty interesting (well, I thought so anyway!) SOT666 - you'd think it's a standard footprint...]]></description><link>https://atomic14.substack.com/p/i-thought-sot666-was-a-standard-it</link><guid isPermaLink="false">https://atomic14.substack.com/p/i-thought-sot666-was-a-standard-it</guid><dc:creator><![CDATA[Chris Greening]]></dc:creator><pubDate>Sun, 22 Mar 2026 13:55:31 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/z3s550opeZ0" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Accompanying blog post <a href="https://www.atomic14.com/2026/03/15/is-sot666-standard">here</a>.</p><div id="youtube2-z3s550opeZ0" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;z3s550opeZ0&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/z3s550opeZ0?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div>]]></content:encoded></item><item><title><![CDATA[MAX30102 + ESP32-C3 0.4 inch OLED]]></title><description><![CDATA[$3 dollar heart rate and oxygen sensor]]></description><link>https://atomic14.substack.com/p/max30102-esp32-c3-04-inch-oled</link><guid isPermaLink="false">https://atomic14.substack.com/p/max30102-esp32-c3-04-inch-oled</guid><dc:creator><![CDATA[Chris Greening]]></dc:creator><pubDate>Sun, 15 Mar 2026 10:59:38 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/0OV5aCOnXBA" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div id="youtube2-0OV5aCOnXBA" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;0OV5aCOnXBA&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/0OV5aCOnXBA?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Blog post <a href="https://www.atomic14.com/2026/03/15/cheap-heart-rate-monitor">here</a>.</p>]]></content:encoded></item><item><title><![CDATA[Size Does Matter: Why -Os Beat -O2 on My ESP32-S3]]></title><description><![CDATA[Turns out, size might matter more than you think...]]></description><link>https://atomic14.substack.com/p/size-does-matter-why-os-beat-o2-on</link><guid isPermaLink="false">https://atomic14.substack.com/p/size-does-matter-why-os-beat-o2-on</guid><dc:creator><![CDATA[Chris Greening]]></dc:creator><pubDate>Sat, 07 Mar 2026 14:37:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/cqHH2NXcf5E" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div id="youtube2-cqHH2NXcf5E" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;cqHH2NXcf5E&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/cqHH2NXcf5E?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Accompanying blog post <a href="https://www.atomic14.com/2026/03/06/size-better-than-speed">here</a>. </p>]]></content:encoded></item><item><title><![CDATA[I Turned an ESP32 into a Thermal USB Webcam]]></title><description><![CDATA[It's a webcam - but it's Infrared!]]></description><link>https://atomic14.substack.com/p/i-turned-an-esp32-into-a-thermal</link><guid isPermaLink="false">https://atomic14.substack.com/p/i-turned-an-esp32-into-a-thermal</guid><dc:creator><![CDATA[Chris Greening]]></dc:creator><pubDate>Sun, 15 Feb 2026 08:38:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/jyhVxC0ipE8" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div id="youtube2-jyhVxC0ipE8" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;jyhVxC0ipE8&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/jyhVxC0ipE8?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>You can find an accompanying blog post <a href="https://www.atomic14.com/2026/02/15/diy-infrared-usb-camera">here</a>.</p>]]></content:encoded></item><item><title><![CDATA[Amazon Basics vs SanDisk: I Cut Them Open]]></title><description><![CDATA[We recently repaired a broken AmazonBasics microSD adapter, and a few people in the comments pointed out that these are &#8220;built to a price&#8221; and probably not the highest quality - let's take a look.]]></description><link>https://atomic14.substack.com/p/amazon-basics-vs-sandisk-i-cut-them</link><guid isPermaLink="false">https://atomic14.substack.com/p/amazon-basics-vs-sandisk-i-cut-them</guid><dc:creator><![CDATA[Chris Greening]]></dc:creator><pubDate>Mon, 09 Feb 2026 04:55:38 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/Wir1jBqvQEs" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div id="youtube2-Wir1jBqvQEs" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;Wir1jBqvQEs&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/Wir1jBqvQEs?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div>]]></content:encoded></item><item><title><![CDATA[I've no idea why I fixed this...]]></title><description><![CDATA[Not something I'd recommend doing!]]></description><link>https://atomic14.substack.com/p/ive-no-idea-why-i-fixed-this</link><guid isPermaLink="false">https://atomic14.substack.com/p/ive-no-idea-why-i-fixed-this</guid><dc:creator><![CDATA[Chris Greening]]></dc:creator><pubDate>Wed, 28 Jan 2026 18:16:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/WNOOJvelkcE" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div id="youtube2-WNOOJvelkcE" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;WNOOJvelkcE&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/WNOOJvelkcE?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div>]]></content:encoded></item><item><title><![CDATA[Drones and Lasers - what could possibly go wrong?]]></title><description><![CDATA[It's a big bag from AliExpress - I'd actually forgotten about half the stuff I'd ordered...]]></description><link>https://atomic14.substack.com/p/drones-and-lasers-what-could-possibly</link><guid isPermaLink="false">https://atomic14.substack.com/p/drones-and-lasers-what-could-possibly</guid><dc:creator><![CDATA[Chris Greening]]></dc:creator><pubDate>Thu, 22 Jan 2026 21:13:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/jfxzf5G0qgw" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div id="youtube2-jfxzf5G0qgw" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;jfxzf5G0qgw&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/jfxzf5G0qgw?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div>]]></content:encoded></item><item><title><![CDATA[Train Surgery]]></title><description><![CDATA[This is a fun little battery-powered Christmas tree train set&#8230; but out of the box it has two &#8220;features&#8221;:]]></description><link>https://atomic14.substack.com/p/train-surgery</link><guid isPermaLink="false">https://atomic14.substack.com/p/train-surgery</guid><dc:creator><![CDATA[Chris Greening]]></dc:creator><pubDate>Wed, 07 Jan 2026 17:58:48 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!GWgo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c36bb9c-be5e-4966-bebe-da08735893e3_2560x1440.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>This is a fun little battery-powered Christmas tree train set&#8230;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://s.click.aliexpress.com/e/_c4BuZuJL" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!GWgo!, /__u/atomic14.substack.com/w_424, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c36bb9c-be5e-4966-bebe-da08735893e3_2560x1440.webp 424w, /__u/substackcdn.com/image/fetch/$s_!GWgo!, /__u/atomic14.substack.com/w_848, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c36bb9c-be5e-4966-bebe-da08735893e3_2560x1440.webp 848w, /__u/substackcdn.com/image/fetch/$s_!GWgo!, /__u/atomic14.substack.com/w_1272, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c36bb9c-be5e-4966-bebe-da08735893e3_2560x1440.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!GWgo!, /__u/atomic14.substack.com/w_1456, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c36bb9c-be5e-4966-bebe-da08735893e3_2560x1440.webp 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!GWgo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c36bb9c-be5e-4966-bebe-da08735893e3_2560x1440.webp" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9c36bb9c-be5e-4966-bebe-da08735893e3_2560x1440.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:116274,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:&quot;https://s.click.aliexpress.com/e/_c4BuZuJL&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://atomic14.substack.com/i/183817849?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c36bb9c-be5e-4966-bebe-da08735893e3_2560x1440.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!GWgo!, /__u/atomic14.substack.com/w_424, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c36bb9c-be5e-4966-bebe-da08735893e3_2560x1440.webp 424w, /__u/substackcdn.com/image/fetch/$s_!GWgo!, /__u/atomic14.substack.com/w_848, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c36bb9c-be5e-4966-bebe-da08735893e3_2560x1440.webp 848w, /__u/substackcdn.com/image/fetch/$s_!GWgo!, /__u/atomic14.substack.com/w_1272, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c36bb9c-be5e-4966-bebe-da08735893e3_2560x1440.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!GWgo!, /__u/atomic14.substack.com/w_1456, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c36bb9c-be5e-4966-bebe-da08735893e3_2560x1440.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Christmas Tree Train!</figcaption></figure></div><p>You can buy your own one <a href="https://s.click.aliexpress.com/e/_c4BuZuJL">here</a>.</p><p>But out of the box it has two &#8220;features&#8221;:</p><ul><li><p>It&#8217;s <strong>unbelievably loud</strong> (the kind of loud you don&#8217;t want in your living room for more than 30 seconds)</p></li><li><p>It eats the <strong>four AA batteries</strong> living in the coal car</p></li></ul><p>You can listen to the noise in all its glory at the start of this video:</p><div id="youtube2-RAQBaDWxRQ0" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;RAQBaDWxRQ0&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/RAQBaDWxRQ0?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>So this was an excuse for a bit of <em>train surgery</em>: make it rechargeable, and give it a proper volume control.</p><h1>What we&#8217;re starting with</h1><p>The power pack lives in the coal car and holds <strong>4&#215;AA</strong>. Before changing anything, I wanted to know what voltage the train actually expects.</p><p>With the existing batteries already a bit tired, the output measured about <strong>5.1 V</strong>. With fresh alkalines you&#8217;d expect something closer to <strong>~6 V</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!iLUO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0c4ba23-5c16-40d4-a62f-05fb84c9b372_1522x856.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!iLUO!, /__u/atomic14.substack.com/w_424, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0c4ba23-5c16-40d4-a62f-05fb84c9b372_1522x856.webp 424w, /__u/substackcdn.com/image/fetch/$s_!iLUO!, /__u/atomic14.substack.com/w_848, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0c4ba23-5c16-40d4-a62f-05fb84c9b372_1522x856.webp 848w, /__u/substackcdn.com/image/fetch/$s_!iLUO!, /__u/atomic14.substack.com/w_1272, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0c4ba23-5c16-40d4-a62f-05fb84c9b372_1522x856.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!iLUO!, /__u/atomic14.substack.com/w_1456, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0c4ba23-5c16-40d4-a62f-05fb84c9b372_1522x856.webp 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!iLUO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0c4ba23-5c16-40d4-a62f-05fb84c9b372_1522x856.webp" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d0c4ba23-5c16-40d4-a62f-05fb84c9b372_1522x856.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Battery Voltage&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Battery Voltage" title="Battery Voltage" srcset="/__u/substackcdn.com/image/fetch/$s_!iLUO!, /__u/atomic14.substack.com/w_424, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0c4ba23-5c16-40d4-a62f-05fb84c9b372_1522x856.webp 424w, /__u/substackcdn.com/image/fetch/$s_!iLUO!, /__u/atomic14.substack.com/w_848, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0c4ba23-5c16-40d4-a62f-05fb84c9b372_1522x856.webp 848w, /__u/substackcdn.com/image/fetch/$s_!iLUO!, /__u/atomic14.substack.com/w_1272, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0c4ba23-5c16-40d4-a62f-05fb84c9b372_1522x856.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!iLUO!, /__u/atomic14.substack.com/w_1456, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0c4ba23-5c16-40d4-a62f-05fb84c9b372_1522x856.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Battery Voltage</em></figcaption></figure></div><h1>Quick teardown</h1><p>Opening the locomotive was pretty straightforward - we have the legendary <strong>visible screws</strong>.</p><p>Inside the engine is a small PCB with the usual blob IC, plus a whole bunch of wires:</p><ul><li><p>Two wires to the <strong>speaker</strong></p></li><li><p>Wires to the <strong>power switch</strong></p></li><li><p>Two wires to the <strong>motor</strong></p></li><li><p>Two wires to the <strong>front LED</strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!5aZG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8844435a-0115-44d5-ac7b-533dddf1b847_833x773.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!5aZG!, /__u/atomic14.substack.com/w_424, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8844435a-0115-44d5-ac7b-533dddf1b847_833x773.webp 424w, /__u/substackcdn.com/image/fetch/$s_!5aZG!, /__u/atomic14.substack.com/w_848, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8844435a-0115-44d5-ac7b-533dddf1b847_833x773.webp 848w, /__u/substackcdn.com/image/fetch/$s_!5aZG!, /__u/atomic14.substack.com/w_1272, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8844435a-0115-44d5-ac7b-533dddf1b847_833x773.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!5aZG!, /__u/atomic14.substack.com/w_1456, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8844435a-0115-44d5-ac7b-533dddf1b847_833x773.webp 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!5aZG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8844435a-0115-44d5-ac7b-533dddf1b847_833x773.webp" width="833" height="773" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8844435a-0115-44d5-ac7b-533dddf1b847_833x773.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:773,&quot;width&quot;:833,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Lots of wires&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Lots of wires" title="Lots of wires" srcset="/__u/substackcdn.com/image/fetch/$s_!5aZG!, /__u/atomic14.substack.com/w_424, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8844435a-0115-44d5-ac7b-533dddf1b847_833x773.webp 424w, /__u/substackcdn.com/image/fetch/$s_!5aZG!, /__u/atomic14.substack.com/w_848, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8844435a-0115-44d5-ac7b-533dddf1b847_833x773.webp 848w, /__u/substackcdn.com/image/fetch/$s_!5aZG!, /__u/atomic14.substack.com/w_1272, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8844435a-0115-44d5-ac7b-533dddf1b847_833x773.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!5aZG!, /__u/atomic14.substack.com/w_1456, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8844435a-0115-44d5-ac7b-533dddf1b847_833x773.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Lots of wires</em></figcaption></figure></div><h1>Parts used</h1><p>This is very much a &#8220;what&#8217;s in the parts drawer?&#8221; mod. The final setup was:</p><ul><li><p><strong>18650 Li&#8209;ion cell</strong> (single cell, 3.7 V nominal, 2200mAh)</p></li><li><p><a href="https://s.click.aliexpress.com/e/_c400zH8J">A combined </a><strong><a href="https://s.click.aliexpress.com/e/_c400zH8J">charger + protection + boost</a></strong><a href="https://s.click.aliexpress.com/e/_c400zH8J"> module (with an adjustable output voltage)</a></p></li><li><p>A <strong>potentiometer</strong> used as a simple volume control in series with the speaker</p></li><li><p>Wire, solder, and a quantity of hot glue that we&#8217;ll call &#8220;structural&#8221;</p></li></ul><h1>Making it rechargeable</h1><p>The plan was simple:</p><ol><li><p>Put the 18650 cell in the coal car</p></li><li><p>Boost it up to roughly &#8220;4&#215;AA voltage&#8221;</p></li><li><p>Feed the train through the existing power connector</p></li></ol><p>Fitting it was the main challenge. The coal car has an internal red plastic compartment that needed to be&#8230; <em>re-engineered</em>&#8230; to make room for the cell.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!o_2M!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde8ae8c5-3c31-43ae-ace8-cdd42c4dce28_978x548.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!o_2M!, /__u/atomic14.substack.com/w_424, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde8ae8c5-3c31-43ae-ace8-cdd42c4dce28_978x548.webp 424w, /__u/substackcdn.com/image/fetch/$s_!o_2M!, /__u/atomic14.substack.com/w_848, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde8ae8c5-3c31-43ae-ace8-cdd42c4dce28_978x548.webp 848w, /__u/substackcdn.com/image/fetch/$s_!o_2M!, /__u/atomic14.substack.com/w_1272, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde8ae8c5-3c31-43ae-ace8-cdd42c4dce28_978x548.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!o_2M!, /__u/atomic14.substack.com/w_1456, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde8ae8c5-3c31-43ae-ace8-cdd42c4dce28_978x548.webp 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!o_2M!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde8ae8c5-3c31-43ae-ace8-cdd42c4dce28_978x548.webp" width="978" height="548" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/de8ae8c5-3c31-43ae-ace8-cdd42c4dce28_978x548.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:548,&quot;width&quot;:978,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;It fits!&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="It fits!" title="It fits!" srcset="/__u/substackcdn.com/image/fetch/$s_!o_2M!, /__u/atomic14.substack.com/w_424, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde8ae8c5-3c31-43ae-ace8-cdd42c4dce28_978x548.webp 424w, /__u/substackcdn.com/image/fetch/$s_!o_2M!, /__u/atomic14.substack.com/w_848, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde8ae8c5-3c31-43ae-ace8-cdd42c4dce28_978x548.webp 848w, /__u/substackcdn.com/image/fetch/$s_!o_2M!, /__u/atomic14.substack.com/w_1272, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde8ae8c5-3c31-43ae-ace8-cdd42c4dce28_978x548.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!o_2M!, /__u/atomic14.substack.com/w_1456, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde8ae8c5-3c31-43ae-ace8-cdd42c4dce28_978x548.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>It fits!</em></figcaption></figure></div><p>Once there was space, the wiring was straightforward:</p><ul><li><p>Battery &#8594; charge/protect/boost module input</p></li><li><p>Module output adjusted to around <strong>~5.5 V</strong></p></li><li><p>Module output &#8594; connected to the plug coming out of the coal cart</p></li></ul><p>I set the output to around <strong>5.5 V</strong> &#8212; nicely in the middle between &#8220;fresh AAs&#8221; and &#8220;nearly flat AAs&#8221;.</p><p>One surprisingly nice thing is they did include a PTC fuse inline with the batteries - a nice soft start/safety feature.</p><p>Before plugging anything in, I did a quick polarity sanity check because toy wiring colour conventions are often a work of fiction. In this case the connector was <strong>centre positive</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!i-IU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa11a5166-e8d0-4359-8784-0f5828859469_1449x734.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!i-IU!, /__u/atomic14.substack.com/w_424, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa11a5166-e8d0-4359-8784-0f5828859469_1449x734.webp 424w, /__u/substackcdn.com/image/fetch/$s_!i-IU!, /__u/atomic14.substack.com/w_848, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa11a5166-e8d0-4359-8784-0f5828859469_1449x734.webp 848w, /__u/substackcdn.com/image/fetch/$s_!i-IU!, /__u/atomic14.substack.com/w_1272, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa11a5166-e8d0-4359-8784-0f5828859469_1449x734.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!i-IU!, /__u/atomic14.substack.com/w_1456, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa11a5166-e8d0-4359-8784-0f5828859469_1449x734.webp 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!i-IU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa11a5166-e8d0-4359-8784-0f5828859469_1449x734.webp" width="1449" height="734" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a11a5166-e8d0-4359-8784-0f5828859469_1449x734.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:734,&quot;width&quot;:1449,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;It fits!&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="It fits!" title="It fits!" srcset="/__u/substackcdn.com/image/fetch/$s_!i-IU!, /__u/atomic14.substack.com/w_424, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa11a5166-e8d0-4359-8784-0f5828859469_1449x734.webp 424w, /__u/substackcdn.com/image/fetch/$s_!i-IU!, /__u/atomic14.substack.com/w_848, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa11a5166-e8d0-4359-8784-0f5828859469_1449x734.webp 848w, /__u/substackcdn.com/image/fetch/$s_!i-IU!, /__u/atomic14.substack.com/w_1272, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa11a5166-e8d0-4359-8784-0f5828859469_1449x734.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!i-IU!, /__u/atomic14.substack.com/w_1456, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa11a5166-e8d0-4359-8784-0f5828859469_1449x734.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>It fits!</em></figcaption></figure></div><p>With the speaker temporarily disconnected (to preserve my hearing), I plugged it in and&#8230; the wheels on the train went round and round. Success!</p><h1>Adding a volume knob</h1><p>Next problem: the speaker. The easy way to make something quieter is to disconnect it, but a volume control is much nicer.</p><p>The simplest approach here is to put a <strong>potentiometer in series with one speaker lead</strong>, using it as a variable resistor. With the pot turned up you get full volume; turned down it becomes civilised.</p><p>This worked immediately on the bench: at minimum it&#8217;s almost silent (you mainly hear the motor), and at maximum it&#8217;s back to the original &#8220;wow that&#8217;s a lot&#8221;.</p><h1>Please don&#8217;t judge my glue</h1><p>An internal pot is only useful if you can actually reach it. I wanted the knob accessible from the outside.</p><p>So I:</p><ul><li><p>Chopped the top off an existing plastic piece to use as a <strong>knob cap</strong></p></li><li><p>Stuck the top I chopped off onto the top of the potentiometer</p></li><li><p>Glued it all together</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!BDcN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd607cb83-ba90-4990-97f9-5e1a9b87aad8_598x436.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!BDcN!, /__u/atomic14.substack.com/w_424, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd607cb83-ba90-4990-97f9-5e1a9b87aad8_598x436.webp 424w, /__u/substackcdn.com/image/fetch/$s_!BDcN!, /__u/atomic14.substack.com/w_848, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd607cb83-ba90-4990-97f9-5e1a9b87aad8_598x436.webp 848w, /__u/substackcdn.com/image/fetch/$s_!BDcN!, /__u/atomic14.substack.com/w_1272, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd607cb83-ba90-4990-97f9-5e1a9b87aad8_598x436.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!BDcN!, /__u/atomic14.substack.com/w_1456, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd607cb83-ba90-4990-97f9-5e1a9b87aad8_598x436.webp 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!BDcN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd607cb83-ba90-4990-97f9-5e1a9b87aad8_598x436.webp" width="598" height="436" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d607cb83-ba90-4990-97f9-5e1a9b87aad8_598x436.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:436,&quot;width&quot;:598,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Hot glue saves the day&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Hot glue saves the day" title="Hot glue saves the day" srcset="/__u/substackcdn.com/image/fetch/$s_!BDcN!, /__u/atomic14.substack.com/w_424, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd607cb83-ba90-4990-97f9-5e1a9b87aad8_598x436.webp 424w, /__u/substackcdn.com/image/fetch/$s_!BDcN!, /__u/atomic14.substack.com/w_848, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd607cb83-ba90-4990-97f9-5e1a9b87aad8_598x436.webp 848w, /__u/substackcdn.com/image/fetch/$s_!BDcN!, /__u/atomic14.substack.com/w_1272, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd607cb83-ba90-4990-97f9-5e1a9b87aad8_598x436.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!BDcN!, /__u/atomic14.substack.com/w_1456, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd607cb83-ba90-4990-97f9-5e1a9b87aad8_598x436.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Hot glue saves the day</em></figcaption></figure></div><p>In the end a combination of a lot of hot glue along with superglue and patience made it all work.</p><p>I did spend a lot of time with my fingers stuck together&#8230;</p><p>In the end it&#8217;s slightly wonky, but it works, it&#8217;s solid, and a bit of gold paint hides the terrible workmanship.</p><h1>Result (and one remaining annoyance)</h1><p>The end result is exactly what I wanted:</p><ul><li><p><strong>Rechargeable</strong> power (no more burning through AAs)</p></li><li><p><strong>Adjustable volume</strong> (from &#8220;barely there&#8221; to &#8220;festival headliner&#8221;)</p></li></ul><p>The only thing I didn&#8217;t solve is the drivetrain noise: it uses plastic gears and the mechanical clatter is now the loudest thing at low volume.</p><h1>Watch the full build</h1><p>If you want to see the teardown, the battery conversion, and the volume knob bodging in real time, the full video is here:</p><div id="youtube2-RAQBaDWxRQ0" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;RAQBaDWxRQ0&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/RAQBaDWxRQ0?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div>]]></content:encoded></item><item><title><![CDATA[ESP32 Rainbow QA - A tale of three boards]]></title><description><![CDATA[We&#8217;ve now shipped a few hundred ESP32 Rainbow boards; most of the boards have worked perfectly - but there are always a few that don&#8217;t make it.]]></description><link>https://atomic14.substack.com/p/esp32-rainbow-qa-a-tale-of-three</link><guid isPermaLink="false">https://atomic14.substack.com/p/esp32-rainbow-qa-a-tale-of-three</guid><dc:creator><![CDATA[Chris Greening]]></dc:creator><pubDate>Fri, 02 Jan 2026 17:34:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!5yxi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92c17c4-1e4a-4d00-b3d7-8edd7f0446d3_2560x1440.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We&#8217;ve now shipped a few hundred ESP32 Rainbow boards; <em>most</em> of the boards have worked perfectly - but there are always a few that don&#8217;t make it.</p><p>We&#8217;ve got three units that have failed QA in different ways:</p><ul><li><p>One had <strong>no sound</strong></p></li><li><p>One had a <strong>dodgy keyboard</strong></p></li><li><p>One had <strong>no USB connection</strong></p></li></ul><p>None of these were design issues. They were all the sort of subtle manufacturing or assembly faults you only discover once real boards are powered up and tested.</p><p>Let&#8217;s take a look at each failure, what caused it, and how it can (or should) be fixed.</p><h1>Manufacturing &amp; QA</h1><p>The ESP32 Rainbow PCBs are manufactured by <strong>PCBWay</strong>, who handle:</p><ul><li><p>PCB fabrication</p></li><li><p>UV silkscreen printing</p></li><li><p>Partial component assembly</p></li></ul><p>Final assembly, inspection, and full QA are done here in Scotland.</p><p>That QA step is important - it&#8217;s where issues like these show up <em>before</em> a board ever reaches a customer.</p><h1>Failure #1: No sound output</h1><p><strong>Symptom:</strong><br>The board has been flashed and everything runs correctly, but there is no audio from the speaker.</p><h2>Debugging</h2><p>Applying gentle pressure to the headphone jack caused sound to briefly return - which is a strong hint that this is a <strong>mechanical or soldering issue</strong>.</p><h2>Root cause</h2><p>Under the microscope, the problem was obvious:</p><ul><li><p>Multiple pads on the headphone jack had <strong>lifted</strong></p></li><li><p>Only one electrical connection remained intact</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!5yxi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92c17c4-1e4a-4d00-b3d7-8edd7f0446d3_2560x1440.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!5yxi!, /__u/atomic14.substack.com/w_424, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92c17c4-1e4a-4d00-b3d7-8edd7f0446d3_2560x1440.webp 424w, /__u/substackcdn.com/image/fetch/$s_!5yxi!, /__u/atomic14.substack.com/w_848, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92c17c4-1e4a-4d00-b3d7-8edd7f0446d3_2560x1440.webp 848w, /__u/substackcdn.com/image/fetch/$s_!5yxi!, /__u/atomic14.substack.com/w_1272, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92c17c4-1e4a-4d00-b3d7-8edd7f0446d3_2560x1440.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!5yxi!, /__u/atomic14.substack.com/w_1456, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92c17c4-1e4a-4d00-b3d7-8edd7f0446d3_2560x1440.webp 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!5yxi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92c17c4-1e4a-4d00-b3d7-8edd7f0446d3_2560x1440.webp" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d92c17c4-1e4a-4d00-b3d7-8edd7f0446d3_2560x1440.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Lifted Pads&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Lifted Pads" title="Lifted Pads" srcset="/__u/substackcdn.com/image/fetch/$s_!5yxi!, /__u/atomic14.substack.com/w_424, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92c17c4-1e4a-4d00-b3d7-8edd7f0446d3_2560x1440.webp 424w, /__u/substackcdn.com/image/fetch/$s_!5yxi!, /__u/atomic14.substack.com/w_848, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92c17c4-1e4a-4d00-b3d7-8edd7f0446d3_2560x1440.webp 848w, /__u/substackcdn.com/image/fetch/$s_!5yxi!, /__u/atomic14.substack.com/w_1272, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92c17c4-1e4a-4d00-b3d7-8edd7f0446d3_2560x1440.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!5yxi!, /__u/atomic14.substack.com/w_1456, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd92c17c4-1e4a-4d00-b3d7-8edd7f0446d3_2560x1440.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Lifted Pads</em></figcaption></figure></div><p>This meant the speaker signal was effectively disconnected.</p><h2>Resolution</h2><p>This is a reasonably easy fix. We just need to reflow the solder joints, and there&#8217;s just about enough copper to reconnect the lifted pads to the ground plane. However, given the damage, this board can&#8217;t be sent out to a paying customer - we&#8217;ll use it for spare parts.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!aKtt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F172dcbd4-7f5e-4d08-874c-7f7d13014aae_2560x1440.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!aKtt!, /__u/atomic14.substack.com/w_424, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F172dcbd4-7f5e-4d08-874c-7f7d13014aae_2560x1440.webp 424w, /__u/substackcdn.com/image/fetch/$s_!aKtt!, /__u/atomic14.substack.com/w_848, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F172dcbd4-7f5e-4d08-874c-7f7d13014aae_2560x1440.webp 848w, /__u/substackcdn.com/image/fetch/$s_!aKtt!, /__u/atomic14.substack.com/w_1272, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F172dcbd4-7f5e-4d08-874c-7f7d13014aae_2560x1440.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!aKtt!, /__u/atomic14.substack.com/w_1456, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F172dcbd4-7f5e-4d08-874c-7f7d13014aae_2560x1440.webp 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!aKtt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F172dcbd4-7f5e-4d08-874c-7f7d13014aae_2560x1440.webp" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/172dcbd4-7f5e-4d08-874c-7f7d13014aae_2560x1440.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Reconnected&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Reconnected" title="Reconnected" srcset="/__u/substackcdn.com/image/fetch/$s_!aKtt!, /__u/atomic14.substack.com/w_424, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F172dcbd4-7f5e-4d08-874c-7f7d13014aae_2560x1440.webp 424w, /__u/substackcdn.com/image/fetch/$s_!aKtt!, /__u/atomic14.substack.com/w_848, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F172dcbd4-7f5e-4d08-874c-7f7d13014aae_2560x1440.webp 848w, /__u/substackcdn.com/image/fetch/$s_!aKtt!, /__u/atomic14.substack.com/w_1272, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F172dcbd4-7f5e-4d08-874c-7f7d13014aae_2560x1440.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!aKtt!, /__u/atomic14.substack.com/w_1456, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F172dcbd4-7f5e-4d08-874c-7f7d13014aae_2560x1440.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Reconnected</em></figcaption></figure></div><h1>Failure #2: USB not enumerating</h1><p><strong>Symptom:</strong><br>The board powers up correctly (3.3 V present), but the ESP32 <strong>does not appear over USB</strong>.</p><h2>Debugging</h2><p>The USB path is fairly simple:</p><p>ESP32 &#8594; ESD protection IC &#8594; USB socket</p><p>Using a continuity test, I checked each stage:</p><ul><li><p>ESP32 USB pins &#8594; protection chip &#8594; OK</p></li><li><p>Protection chip &#8594; USB socket &#8594; OK (?)</p></li></ul><h2>Root cause</h2><p>One pin on the ESD protection IC was <strong>not properly seated on its footprint</strong>.</p><p>Visually it looked <em>almost</em> fine - but one of the pins was not actually connected.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!674E!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2327d30c-d966-4b2a-901a-4b98253f4434_2560x1440.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!674E!, /__u/atomic14.substack.com/w_424, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2327d30c-d966-4b2a-901a-4b98253f4434_2560x1440.webp 424w, /__u/substackcdn.com/image/fetch/$s_!674E!, /__u/atomic14.substack.com/w_848, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2327d30c-d966-4b2a-901a-4b98253f4434_2560x1440.webp 848w, /__u/substackcdn.com/image/fetch/$s_!674E!, /__u/atomic14.substack.com/w_1272, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2327d30c-d966-4b2a-901a-4b98253f4434_2560x1440.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!674E!, /__u/atomic14.substack.com/w_1456, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2327d30c-d966-4b2a-901a-4b98253f4434_2560x1440.webp 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!674E!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2327d30c-d966-4b2a-901a-4b98253f4434_2560x1440.webp" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2327d30c-d966-4b2a-901a-4b98253f4434_2560x1440.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Dodgy ESD Soldering&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Dodgy ESD Soldering" title="Dodgy ESD Soldering" srcset="/__u/substackcdn.com/image/fetch/$s_!674E!, /__u/atomic14.substack.com/w_424, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2327d30c-d966-4b2a-901a-4b98253f4434_2560x1440.webp 424w, /__u/substackcdn.com/image/fetch/$s_!674E!, /__u/atomic14.substack.com/w_848, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2327d30c-d966-4b2a-901a-4b98253f4434_2560x1440.webp 848w, /__u/substackcdn.com/image/fetch/$s_!674E!, /__u/atomic14.substack.com/w_1272, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2327d30c-d966-4b2a-901a-4b98253f4434_2560x1440.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!674E!, /__u/atomic14.substack.com/w_1456, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2327d30c-d966-4b2a-901a-4b98253f4434_2560x1440.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Dodgy ESD Soldering</em></figcaption></figure></div><h2>Fix</h2><p>Reflow the solder and nudge the IC into the correct position. With that done, we have continuity from the ESP32 USB pins &#8594; USB socket.</p><p>The board now appears over USB and can be flashed. Everything else works perfectly - we can ship this board to a paying customer.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!FWcE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38710b9c-73c6-47d2-a26e-21469dab4848_707x162.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!FWcE!, /__u/atomic14.substack.com/w_424, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38710b9c-73c6-47d2-a26e-21469dab4848_707x162.webp 424w, /__u/substackcdn.com/image/fetch/$s_!FWcE!, /__u/atomic14.substack.com/w_848, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38710b9c-73c6-47d2-a26e-21469dab4848_707x162.webp 848w, /__u/substackcdn.com/image/fetch/$s_!FWcE!, /__u/atomic14.substack.com/w_1272, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38710b9c-73c6-47d2-a26e-21469dab4848_707x162.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!FWcE!, /__u/atomic14.substack.com/w_1456, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38710b9c-73c6-47d2-a26e-21469dab4848_707x162.webp 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!FWcE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38710b9c-73c6-47d2-a26e-21469dab4848_707x162.webp" width="707" height="162" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/38710b9c-73c6-47d2-a26e-21469dab4848_707x162.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:162,&quot;width&quot;:707,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;It's alive!&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="It's alive!" title="It's alive!" srcset="/__u/substackcdn.com/image/fetch/$s_!FWcE!, /__u/atomic14.substack.com/w_424, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38710b9c-73c6-47d2-a26e-21469dab4848_707x162.webp 424w, /__u/substackcdn.com/image/fetch/$s_!FWcE!, /__u/atomic14.substack.com/w_848, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38710b9c-73c6-47d2-a26e-21469dab4848_707x162.webp 848w, /__u/substackcdn.com/image/fetch/$s_!FWcE!, /__u/atomic14.substack.com/w_1272, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38710b9c-73c6-47d2-a26e-21469dab4848_707x162.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!FWcE!, /__u/atomic14.substack.com/w_1456, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38710b9c-73c6-47d2-a26e-21469dab4848_707x162.webp 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption"><em>It&#8217;s alive!</em></figcaption></figure></div><h1>Failure #3: Dodgy keyboard (A&#8211;G not working; maybe other keys failing as well)</h1><p><strong>Symptom:</strong><br>Several keys on the touch keyboard - specifically A through G - did not register correctly. Other keys behave strangely. The ESP32 Rainbow keyboard uses analogue multiplexers connected to the ESP32 module.</p><h2>Root Cause</h2><ul><li><p>Several pins along the bottom of one ESP32 module had <strong>poor solder joints</strong></p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!tLEw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68b1ee96-d2d5-4338-9a9e-3ff1de3a197c_2145x996.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!tLEw!, /__u/atomic14.substack.com/w_424, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68b1ee96-d2d5-4338-9a9e-3ff1de3a197c_2145x996.webp 424w, /__u/substackcdn.com/image/fetch/$s_!tLEw!, /__u/atomic14.substack.com/w_848, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68b1ee96-d2d5-4338-9a9e-3ff1de3a197c_2145x996.webp 848w, /__u/substackcdn.com/image/fetch/$s_!tLEw!, /__u/atomic14.substack.com/w_1272, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68b1ee96-d2d5-4338-9a9e-3ff1de3a197c_2145x996.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!tLEw!, /__u/atomic14.substack.com/w_1456, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68b1ee96-d2d5-4338-9a9e-3ff1de3a197c_2145x996.webp 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!tLEw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68b1ee96-d2d5-4338-9a9e-3ff1de3a197c_2145x996.webp" width="1456" height="676" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/68b1ee96-d2d5-4338-9a9e-3ff1de3a197c_2145x996.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:676,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Dodgy ESP32 Soldering&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Dodgy ESP32 Soldering" title="Dodgy ESP32 Soldering" srcset="/__u/substackcdn.com/image/fetch/$s_!tLEw!, /__u/atomic14.substack.com/w_424, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68b1ee96-d2d5-4338-9a9e-3ff1de3a197c_2145x996.webp 424w, /__u/substackcdn.com/image/fetch/$s_!tLEw!, /__u/atomic14.substack.com/w_848, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68b1ee96-d2d5-4338-9a9e-3ff1de3a197c_2145x996.webp 848w, /__u/substackcdn.com/image/fetch/$s_!tLEw!, /__u/atomic14.substack.com/w_1272, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68b1ee96-d2d5-4338-9a9e-3ff1de3a197c_2145x996.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!tLEw!, /__u/atomic14.substack.com/w_1456, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68b1ee96-d2d5-4338-9a9e-3ff1de3a197c_2145x996.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Dodgy ESP32 Soldering</em></figcaption></figure></div><h2>Fix</h2><p>A straightforward rework:</p><ul><li><p>Retouch all the pins with fresh solder</p></li></ul><p>After this, everything works fine - all keys work and the board is fully functional. We can ship this out to a paying customer.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!7oAN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe38d3f8c-5dcd-4e78-b98a-403c41a09129_1393x969.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!7oAN!, /__u/atomic14.substack.com/w_424, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe38d3f8c-5dcd-4e78-b98a-403c41a09129_1393x969.webp 424w, /__u/substackcdn.com/image/fetch/$s_!7oAN!, /__u/atomic14.substack.com/w_848, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe38d3f8c-5dcd-4e78-b98a-403c41a09129_1393x969.webp 848w, /__u/substackcdn.com/image/fetch/$s_!7oAN!, /__u/atomic14.substack.com/w_1272, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe38d3f8c-5dcd-4e78-b98a-403c41a09129_1393x969.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!7oAN!, /__u/atomic14.substack.com/w_1456, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe38d3f8c-5dcd-4e78-b98a-403c41a09129_1393x969.webp 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!7oAN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe38d3f8c-5dcd-4e78-b98a-403c41a09129_1393x969.webp" width="1393" height="969" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e38d3f8c-5dcd-4e78-b98a-403c41a09129_1393x969.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:969,&quot;width&quot;:1393,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Keyboard Working&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Keyboard Working" title="Keyboard Working" srcset="/__u/substackcdn.com/image/fetch/$s_!7oAN!, /__u/atomic14.substack.com/w_424, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe38d3f8c-5dcd-4e78-b98a-403c41a09129_1393x969.webp 424w, /__u/substackcdn.com/image/fetch/$s_!7oAN!, /__u/atomic14.substack.com/w_848, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe38d3f8c-5dcd-4e78-b98a-403c41a09129_1393x969.webp 848w, /__u/substackcdn.com/image/fetch/$s_!7oAN!, /__u/atomic14.substack.com/w_1272, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe38d3f8c-5dcd-4e78-b98a-403c41a09129_1393x969.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!7oAN!, /__u/atomic14.substack.com/w_1456, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe38d3f8c-5dcd-4e78-b98a-403c41a09129_1393x969.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Keyboard Working</em></figcaption></figure></div><h1>Watch the full debugging process</h1><p>If you want to see the full diagnosis and repair process - including microscope work, probing, and rework - the full video is here:</p><div id="youtube2-a6UyjNRPPLw" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;a6UyjNRPPLw&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/a6UyjNRPPLw?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div>]]></content:encoded></item><item><title><![CDATA[That was 2025!]]></title><description><![CDATA[Another year, another collection of projects, mishaps, and late-night debugging sessions.]]></description><link>https://atomic14.substack.com/p/that-was-2025</link><guid isPermaLink="false">https://atomic14.substack.com/p/that-was-2025</guid><dc:creator><![CDATA[Chris Greening]]></dc:creator><pubDate>Wed, 31 Dec 2025 03:40:46 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!u8Oj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fbe45db-3212-49a7-84b3-f20ffe2638ac_1456x819.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Another year, another collection of projects, mishaps, and late-night debugging sessions. But 2025 wasn&#8217;t just another year of tinkering - it was the year I shipped a real hardware product to paying customers around the world.</p><p><a href="https://www.atomic14.com/2025/12/31/and-that-was-2025">You can also read this post on the blog.</a></p><h1>The Big One: ESP32 Rainbow Goes Live</h1><p>If you&#8217;d asked me in early 2024 what my biggest achievement would be in 2025, &#8220;successfully completing a crowdfunding campaign&#8221; wouldn&#8217;t have been on the list. But here we are.</p><h2>What is the ESP32 Rainbow?</h2><p>It&#8217;s a recreation of the iconic Sinclair Spectrum, but with modern internals: an ESP32-S3 brain, full-color UV silk screen printing, capacitive touch keys, and a built-in display and speaker.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!u8Oj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fbe45db-3212-49a7-84b3-f20ffe2638ac_1456x819.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!u8Oj!, /__u/atomic14.substack.com/w_424, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fbe45db-3212-49a7-84b3-f20ffe2638ac_1456x819.webp 424w, /__u/substackcdn.com/image/fetch/$s_!u8Oj!, /__u/atomic14.substack.com/w_848, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fbe45db-3212-49a7-84b3-f20ffe2638ac_1456x819.webp 848w, /__u/substackcdn.com/image/fetch/$s_!u8Oj!, /__u/atomic14.substack.com/w_1272, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fbe45db-3212-49a7-84b3-f20ffe2638ac_1456x819.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!u8Oj!, /__u/atomic14.substack.com/w_1456, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fbe45db-3212-49a7-84b3-f20ffe2638ac_1456x819.webp 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!u8Oj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fbe45db-3212-49a7-84b3-f20ffe2638ac_1456x819.webp" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7fbe45db-3212-49a7-84b3-f20ffe2638ac_1456x819.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;ESP32 Rainbow&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="ESP32 Rainbow" title="ESP32 Rainbow" srcset="/__u/substackcdn.com/image/fetch/$s_!u8Oj!, /__u/atomic14.substack.com/w_424, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fbe45db-3212-49a7-84b3-f20ffe2638ac_1456x819.webp 424w, /__u/substackcdn.com/image/fetch/$s_!u8Oj!, /__u/atomic14.substack.com/w_848, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fbe45db-3212-49a7-84b3-f20ffe2638ac_1456x819.webp 848w, /__u/substackcdn.com/image/fetch/$s_!u8Oj!, /__u/atomic14.substack.com/w_1272, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fbe45db-3212-49a7-84b3-f20ffe2638ac_1456x819.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!u8Oj!, /__u/atomic14.substack.com/w_1456, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7fbe45db-3212-49a7-84b3-f20ffe2638ac_1456x819.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em><a href="https://www.atomic14.com/2025/07/21/crowd-funding-retro">ESP32 Rainbow</a></em></figcaption></figure></div><h2>The Journey: 13 Months from Idea to Shipping</h2><ul><li><p><strong>June 2024</strong>: The idea sparked - what if we could do full-color silk screen on a PCB?</p></li><li><p><strong>November 2024</strong>: Campaign launched on <a href="https://www.crowdsupply.com/atomic14/esp32-rainbow">Crowd Supply</a></p></li><li><p><strong>December 2024</strong>: Hit 146% funding - 118 backers plus a crucial 118-unit house order</p></li><li><p><strong>January 2025</strong>: Funds received, production started</p></li><li><p><strong>July 2025</strong>: All orders shipped to backers worldwide</p></li><li><p><strong>Novemebr 2025</strong>: Follow-up order deliverd to Mouser deliverd (100 additional units)</p></li><li><p><strong>December 2025</strong>: Additional follow-up order sent to production (40 additional units)</p></li></ul><h2>The Numbers</h2><p>Let&#8217;s pull back the curtain on what a &#8220;successful&#8221; crowdfunding campaign actually looks like:</p><ul><li><p><strong>Total Revenue</strong>: &#163;12,839.57</p></li><li><p><strong>Cost of Goods Sold</strong>: &#163;8,565.66 (for 280 sellable units)</p></li><li><p><strong>Gross Profit</strong>: &#163;4,273.91</p></li><li><p><strong>Labor Hours</strong>: 436 hours (that&#8217;s 54 eight-hour days)</p></li><li><p><strong>True Profit After Labor</strong>: -&#163;1,049.65 (or +&#163;1,000.35 if remaining stock sells)</p></li></ul><p>Not exactly retirement money, but that was never the point.</p><h2>The Real Challenges</h2><p><strong>Pricing</strong>: Wanted to charge &#163;49.99 (very Clive Sinclair), but the economics forced &#163;99. Bottom-up pricing (&#163;30.60 COGS + margin) met top-down pricing (what people would pay) somewhere in the middle.</p><p><strong>Certification</strong>: &#163;506.05 for CE/UKCA certification. Turns out selling to consumers requires actual compliance, even if you&#8217;re using a pre-certified module. Thanks to <a href="https://early.smander.com/simple-start/">Smander&#8217;s Simple Start service</a> for making this painless.</p><p><strong>Tariffs</strong>: The specter of Trump&#8217;s tariff talk loomed large. Shipping everything to the US as DDP (Delivered Duty Paid) meant <em>I</em> paid import duties. Fortunately, I could argue UK Country of Origin, but that was pure luck.</p><p><strong>International Shipping</strong>: A month-long odyssey of mysterious tracking pages, support tickets, and boxes that wouldn&#8217;t move. If you&#8217;re shipping from the UK, get yourself an EORI number before you start.</p><p><strong>What did I learn?</strong></p><p>This project taught me:</p><ul><li><p>Crowd funded hardware prices aren&#8217;t a rip-off - there are real costs behind every product</p></li><li><p>Building an audience before launch is crucial (thanks YouTube/blog/newsletter)</p></li><li><p>AI tooling made the impossible possible (emscripten? no way without AI help)</p></li><li><p>Open source builds community - people love your terrible code</p></li><li><p>Working with a distributor (Crowd Supply/Mouser) handles complexity but eats margin</p></li></ul><p>Would I do it again? Maybe. With a very compelling idea and a large customer base. But for now, the ESP32 Rainbow is real, it&#8217;s shipping, and there&#8217;s a community forming around it. That&#8217;s the achievement.</p><ul><li><p>&#128250; <a href="https://www.youtube.com/watch?v=HgIxnpIiDv8">Watch the full crowdfunding retrospective video</a></p></li><li><p>&#128221; <a href="https://www.atomic14.com/2025/07/21/crowd-funding-retro">Read the detailed crowdfunding breakdown</a></p></li></ul><div id="youtube2-HgIxnpIiDv8" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;HgIxnpIiDv8&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/HgIxnpIiDv8?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h1>Other 2025 Highlights</h1><p>While the ESP32 Rainbow dominated the year, there were plenty of other projects worth mentioning:</p><h2>&#128268; High Voltage Adventures</h2><p>What started with <a href="https://www.atomic14.com/2025/03/16/whats-wrong-with-my-lightbulbs">failed LED lightbulbs</a> turned into a series of high-voltage experiments. Salvaged LED filaments, 800V DC-DC converters with spectacular failures, and eventually a <a href="https://www.atomic14.com/2025/06/14/more-high-voltage">$2 board generating 787V</a>. The pinnacle was a <a href="https://www.atomic14.com/2025/09/26/high-voltage-coine-cell">27V Joule thief running from a CR2025 coin cell</a>, eventually becoming a <a href="https://www.atomic14.com/2025/11/07/27v-pcb">drop-in replacement for broken Bistable Choldesteric writing tablet</a>.</p><div id="youtube2-APdd-vGW-Jg" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;APdd-vGW-Jg&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/APdd-vGW-Jg?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2>&#127925; The 10&#162; Microcontroller Series</h2><p>The CH32V003 RISC-V chip costs ten cents. <strong>Ten. Cents.</strong> With 16K flash and 2K RAM, it shouldn&#8217;t be capable of much. But it turns out you can:</p><ul><li><p><a href="https://www.atomic14.com/2025/10/18/CH32V003-music">Play polyphonic music on a piezo buzzer</a> powered by a coin cell</p></li><li><p><a href="https://www.atomic14.com/2025/10/24/brain-surgery">Perform brain surgery on Halloween toys</a> to make them scream</p></li><li><p><a href="https://www.atomic14.com/2025/10/29/CH32V003-talking">Synthesize speech using 2-bit ADPCM and LPC</a></p></li></ul><div id="youtube2-RZvX95aXSdM" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;RZvX95aXSdM&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/RZvX95aXSdM?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>All running on deep sleep drawing just 7&#181;A between beeps. The future is ridiculously cheap.</p><h2>&#128027; Escaping Printf Hell</h2><p>After years of <code>Serial.println("Here 1")</code> and blinking LEDs, I finally embraced proper debugging. The ESP32-S3&#8217;s built-in USB/JTAG support means you can set breakpoints, inspect variables, and use conditional debugging right in the Arduino IDE. The <a href="https://www.atomic14.com/2025/12/18/the-six-stages-of-debugging">Six Stages of Debugging</a> post captures the journey from &#8220;That can&#8217;t happen&#8221; to &#8220;How did this ever work?&#8221;</p><div id="youtube2-zyxAkQznIVM" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;zyxAkQznIVM&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/zyxAkQznIVM?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Bonus discovery: <a href="https://www.atomic14.com/2025/08/12/this-number-does-nothing">That serial baud rate number does nothing</a> on ESP32-S3 with native USB. It&#8217;s actually running at 7MB/s, not 115200.</p><div id="youtube2-vTLCWy7jDfM" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;vTLCWy7jDfM&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/vTLCWy7jDfM?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2>&#128736;&#65039; Repairs, Teardowns, and Bodge Wires</h2><ul><li><p><strong><a href="https://www.atomic14.com/2025/08/01/oops-i-did-it-again">Oops I Did It Again</a></strong>: Mixed up common anode vs cathode LEDs, requiring creative <a href="https://www.atomic14.com/2025/08/07/nicer-repair">bodge wire repairs</a></p></li><li><p><strong><a href="https://www.atomic14.com/2025/09/14/red-arcade-thin-fixes">Red Arcade Thing</a></strong>: Diagnosed and fixed a dodgy AliExpress handheld with a failed voltage regulator</p></li><li><p><strong><a href="https://www.atomic14.com/2025/08/27/bistable-cholesteric-display">Bistable Cholesteric Display</a></strong>: Teardown of an LCD writing tablet, discovering it needs 27V to clear</p></li></ul><div id="youtube2-lc25sFKWhxE" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;lc25sFKWhxE&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/lc25sFKWhxE?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h2>&#129302; AI-Assisted Hardware Development</h2><p>Two experiments with AI generating hardware:</p><ul><li><p><strong><a href="https://www.atomic14.com/2025/07/04/just-vibe-it">Vibe-coded one-button keyboard</a></strong>: ESP32-S3 mechanical keyboard with AI-assisted firmware</p></li><li><p><strong><a href="https://www.atomic14.com/2025/07/12/vibing-hardware">Atopile-generated dev board</a></strong>: Claude AI selected components and generated schematics</p></li></ul><div id="youtube2-SV0bM1FkdLY" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;SV0bM1FkdLY&quot;,&quot;startTime&quot;:&quot;1s&quot;,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/SV0bM1FkdLY?start=1s&amp;rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Surprisingly not terrible.</p><h2>&#127760; Web Serial Plotter</h2><p>Forget the Arduino Serial Plotter - <a href="https://www.atomic14.com/2025/09/03/web-serial-plotter">this browser-based version</a> offers real-time graphing, zoom, export, and a signal generator. No installation required.</p><div id="youtube2-MEQCPBF99FQ" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;MEQCPBF99FQ&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/MEQCPBF99FQ?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h1>2025 By The Numbers</h1><ul><li><p><strong>26 blog posts</strong> (plus this one)</p></li><li><p><strong>32 YouTube videos</strong></p></li><li><p><strong>Busiest months</strong>: August, September, October</p></li><li><p><strong>Top topics</strong>: ESP32/ESP32-S3 (14), High Voltage (6), CH32V003 (4), Repairs (6), PCB Design (5)</p></li><li><p><strong>1 successful crowdfunding campaign</strong> &#9989;</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!J8nC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c144eed-4e55-4ce9-80ec-4860360c2046_1287x942.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!J8nC!, /__u/atomic14.substack.com/w_424, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c144eed-4e55-4ce9-80ec-4860360c2046_1287x942.webp 424w, /__u/substackcdn.com/image/fetch/$s_!J8nC!, /__u/atomic14.substack.com/w_848, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c144eed-4e55-4ce9-80ec-4860360c2046_1287x942.webp 848w, /__u/substackcdn.com/image/fetch/$s_!J8nC!, /__u/atomic14.substack.com/w_1272, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c144eed-4e55-4ce9-80ec-4860360c2046_1287x942.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!J8nC!, /__u/atomic14.substack.com/w_1456, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_webp, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c144eed-4e55-4ce9-80ec-4860360c2046_1287x942.webp 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!J8nC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c144eed-4e55-4ce9-80ec-4860360c2046_1287x942.webp" width="1287" height="942" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1c144eed-4e55-4ce9-80ec-4860360c2046_1287x942.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:942,&quot;width&quot;:1287,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;A lot of videos!&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A lot of videos!" title="A lot of videos!" srcset="/__u/substackcdn.com/image/fetch/$s_!J8nC!, /__u/atomic14.substack.com/w_424, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c144eed-4e55-4ce9-80ec-4860360c2046_1287x942.webp 424w, /__u/substackcdn.com/image/fetch/$s_!J8nC!, /__u/atomic14.substack.com/w_848, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c144eed-4e55-4ce9-80ec-4860360c2046_1287x942.webp 848w, /__u/substackcdn.com/image/fetch/$s_!J8nC!, /__u/atomic14.substack.com/w_1272, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c144eed-4e55-4ce9-80ec-4860360c2046_1287x942.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!J8nC!, /__u/atomic14.substack.com/w_1456, /__u/atomic14.substack.com/c_limit, /__u/atomic14.substack.com/f_auto, /__u/atomic14.substack.com/q_auto:good, /__u/atomic14.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c144eed-4e55-4ce9-80ec-4860360c2046_1287x942.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em><a href="https://www.youtube.com/@atomic14">A lot of videos!</a></em></figcaption></figure></div><h1>Looking Forward to 2026</h1><p>2025 proved that one person can still build real hardware products and ship them worldwide. The economics are brutal, the challenges are real, but the satisfaction of seeing your creation in the wild makes it worthwhile.</p><p>For 2026? More ESP32 experiments, more ridiculous high-voltage projects, and probably more bodge wires than I&#8217;d like to admit. The ESP32 Rainbow continues to be available on <a href="https://www.crowdsupply.com/atomic14/esp32-rainbow">Crowd Supply</a> - I&#8217;ve had to do two follow up production runs - so keep on ordering!</p><p>But the biggest lesson from 2025 wasn&#8217;t about hardware or firmware or certification. It was this: <strong>build things that bring joy, share your process (even the failures), and don&#8217;t be afraid to show your terrible code</strong>. The community that forms around that honesty is worth more than any profit margin.</p><p>Here&#8217;s to 2026. Let&#8217;s see what catches fire next.</p>]]></content:encoded></item><item><title><![CDATA[Stop Using printf() - Debug ESP32 the Right Way]]></title><description><![CDATA[Printf and GPIO pin waggling - you might think that's the only option for debugging your ESP32 projects...]]></description><link>https://atomic14.substack.com/p/stop-using-printf-debug-esp32-the</link><guid isPermaLink="false">https://atomic14.substack.com/p/stop-using-printf-debug-esp32-the</guid><dc:creator><![CDATA[Chris Greening]]></dc:creator><pubDate>Thu, 18 Dec 2025 15:44:40 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/zyxAkQznIVM" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>You can watch the video here:</p><div id="youtube2-zyxAkQznIVM" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;zyxAkQznIVM&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/zyxAkQznIVM?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>And read the short blog post <a href="https://www.atomic14.com/2025/11/13/the-six-stages-of-debugging">here</a>.</p>]]></content:encoded></item><item><title><![CDATA[ESP32-S3 Dev Board Assembly]]></title><description><![CDATA[And it blinks...]]></description><link>https://atomic14.substack.com/p/esp32-s3-dev-board-assembly</link><guid isPermaLink="false">https://atomic14.substack.com/p/esp32-s3-dev-board-assembly</guid><dc:creator><![CDATA[Chris Greening]]></dc:creator><pubDate>Thu, 13 Nov 2025 10:54:31 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/KziOUBjNtWw" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I finally got some time to assemble the ESP32-S3 dev boards we designed in this <a href="https://www.atomic14.com/2025/09/20/esp32-dev-board">post</a>.</p><div id="youtube2-KziOUBjNtWw" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;KziOUBjNtWw&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/KziOUBjNtWw?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>You can read the full post <a href="https://www.atomic14.com/2025/11/13/dev-board-assemble">here</a>. Or just watch the video above ^^.</p>]]></content:encoded></item><item><title><![CDATA[I Built a 27V PCB to Fix This $3 Display...]]></title><description><![CDATA[Was it really worth it?]]></description><link>https://atomic14.substack.com/p/i-built-a-27v-pcb-to-fix-this-3-display</link><guid isPermaLink="false">https://atomic14.substack.com/p/i-built-a-27v-pcb-to-fix-this-3-display</guid><dc:creator><![CDATA[Chris Greening]]></dc:creator><pubDate>Fri, 07 Nov 2025 16:46:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/APdd-vGW-Jg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div id="youtube2-APdd-vGW-Jg" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;APdd-vGW-Jg&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/APdd-vGW-Jg?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>You can read the full details here: https://www.atomic14.com/2025/11/07/27v-pcb</p>]]></content:encoded></item><item><title><![CDATA[I made a 10¢ MCU Talk ]]></title><description><![CDATA[TLDR: Yes, you can fit about 7 seconds of audio into 16K of flash and still have room for code. And you can even play LPC encoded audio on a 10&#162; MCU.]]></description><link>https://atomic14.substack.com/p/i-made-a-10-mcu-talk</link><guid isPermaLink="false">https://atomic14.substack.com/p/i-made-a-10-mcu-talk</guid><dc:creator><![CDATA[Chris Greening]]></dc:creator><pubDate>Wed, 29 Oct 2025 14:12:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/RZvX95aXSdM" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div id="youtube2-RZvX95aXSdM" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;RZvX95aXSdM&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/RZvX95aXSdM?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Full details on cramming audio data in to 16KB of flash and recreating the Speak and Spell experience <a href="https://www.atomic14.com/2025/10/29/CH32V003-talking">here</a>.</p>]]></content:encoded></item></channel></rss>