<?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[little cloud]]></title><description><![CDATA[building a device that turns your old electronics into your own little cloud]]></description><link>https://littlecloud.ngo</link><image><url>https://substackcdn.com/image/fetch/$s_!4Jip!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e917d6d-1545-4a03-8dea-ccacb924cb97_300x300.png</url><title>little cloud</title><link>https://littlecloud.ngo</link></image><generator>Substack</generator><lastBuildDate>Mon, 14 Sep 2026 01:43:34 GMT</lastBuildDate><atom:link href="https://littlecloud.ngo/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Paul Bricman]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[buildinglittlecloud@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[buildinglittlecloud@substack.com]]></itunes:email><itunes:name><![CDATA[Paul Bricman]]></itunes:name></itunes:owner><itunes:author><![CDATA[Paul Bricman]]></itunes:author><googleplay:owner><![CDATA[buildinglittlecloud@substack.com]]></googleplay:owner><googleplay:email><![CDATA[buildinglittlecloud@substack.com]]></googleplay:email><googleplay:author><![CDATA[Paul Bricman]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[build log #7 • sketching firmware, e-waste visit]]></title><description><![CDATA[This week, we dig deeper into low-level software architecture for bringing together a patchwork of old electronics.]]></description><link>https://littlecloud.ngo/p/build-log-7-sketching-firmware-e</link><guid isPermaLink="false">https://littlecloud.ngo/p/build-log-7-sketching-firmware-e</guid><dc:creator><![CDATA[Paul Bricman]]></dc:creator><pubDate>Wed, 09 Sep 2026 13:50:36 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!j9UW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe807f734-dd41-47ea-a01c-5ab1fd89c2c0_2016x1134.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong><span>daemon</span></strong></p><p><span>Thought a bit more lately about how to organize the low-level software responsible for recruiting and orchestrating diverse worker devices, such as old smartphones, tablets, laptops, desktops, and servers. This software infrastructure layer that sits below the actual user-facing apps has a few components. First, there&#8217;s some kind of daemon shipped to the worker devices to get them to participate in the cluster and listen for jobs. Second, there&#8217;s the firmware flashed onto the microcontrollers (MCU) responsible for emulating various USB devices. Third, there&#8217;s some process on the microprocessor (MPU) that&#8217;s responsible for talking to the previous two and managing them.</span></p><p><span>Let&#8217;s zoom in on the first item, the payload shipped to the worker devices. Its purpose is to tell the MPU about what sorts of resources are available locally, and be able to take on various kinds of processing job on the worker device it&#8217;s hosted on. This roughly corresponds to a Kubelet in the world of Kubernetes, but there&#8217;s no way we&#8217;ll touch that bloated unwieldy ecosystem to link up devices revived from a junk drawer. I was thinking maybe we could write a minimal worker daemon in Rust, such that we can then compile it into a lean binary for any relevant worker architecture.</span></p><p><span>To allow the worker daemon to natively tap into as much hardware as possible, we can wrap the shared logic into a minimal platform-specific wrapper. On Android smartphones and tablets, this could mean an &#8220;app&#8221; with no UI, which can nevertheless grant our daemon access to the GPU, wireless, among others. On POSIX-capable systems like laptops, desktops, and servers, this might mean a systemd service wrapping the binary. The worker daemons might, in turn, launch battle-tested tools as subprocesses, such as llama.cpp and ripgrep, as a way to harness local hardware resources using existing libraries. The worker daemon could preserve the underlying tools&#8217; standard APIs, such as the OpenAI-compatible endpoints for LLM inference, or it could abstract these into uniform jobs and resources.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9mbL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F181645bf-1fc2-40e8-b598-b30617582e0f_4032x2268.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9mbL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F181645bf-1fc2-40e8-b598-b30617582e0f_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!9mbL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F181645bf-1fc2-40e8-b598-b30617582e0f_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!9mbL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F181645bf-1fc2-40e8-b598-b30617582e0f_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!9mbL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F181645bf-1fc2-40e8-b598-b30617582e0f_4032x2268.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9mbL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F181645bf-1fc2-40e8-b598-b30617582e0f_4032x2268.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/181645bf-1fc2-40e8-b598-b30617582e0f_4032x2268.jpeg&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;:1345972,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://littlecloud.ngo/i/214888020?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F181645bf-1fc2-40e8-b598-b30617582e0f_4032x2268.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9mbL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F181645bf-1fc2-40e8-b598-b30617582e0f_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!9mbL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F181645bf-1fc2-40e8-b598-b30617582e0f_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!9mbL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F181645bf-1fc2-40e8-b598-b30617582e0f_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!9mbL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F181645bf-1fc2-40e8-b598-b30617582e0f_4032x2268.jpeg 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">Structure an on-device daemon as a shared core in a platform-specific wrapper?</figcaption></figure></div><p></p><p><strong><span>crustacean</span></strong></p><p><span>I went through the rustlings project again over a couple days, as my knowledge of the Rust language was, well, rusty. It&#8217;s a fantastic learning resource, consisting of just under 100 tiny exercises. In each exercise, you get a file with certain compiler or runtime errors, and you need to fix those issues before moving on to the next puzzle. There are a few chunkier quizes after larger groups of chapters, and each exercise also has a hint that tends to link to the relevant documentation.</span></p><p><span>Going through it again was so much fun, probably the most fun I had &#8220;at work&#8221; in a while, thanks to the self-contained nature of the puzzles, the progress bar nudging you to complete all challenges, and the smooth increase in difficulty. At the end, you get a visit from a crab in your terminal, bringing you more obligatory puns.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RxXt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F555b51a1-6095-4d8b-afe5-3a3c601e9779_3420x2146.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RxXt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F555b51a1-6095-4d8b-afe5-3a3c601e9779_3420x2146.png 424w, https://substackcdn.com/image/fetch/$s_!RxXt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F555b51a1-6095-4d8b-afe5-3a3c601e9779_3420x2146.png 848w, https://substackcdn.com/image/fetch/$s_!RxXt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F555b51a1-6095-4d8b-afe5-3a3c601e9779_3420x2146.png 1272w, https://substackcdn.com/image/fetch/$s_!RxXt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F555b51a1-6095-4d8b-afe5-3a3c601e9779_3420x2146.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RxXt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F555b51a1-6095-4d8b-afe5-3a3c601e9779_3420x2146.png" width="1456" height="914" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/555b51a1-6095-4d8b-afe5-3a3c601e9779_3420x2146.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:914,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:649131,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://littlecloud.ngo/i/214888020?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F555b51a1-6095-4d8b-afe5-3a3c601e9779_3420x2146.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!RxXt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F555b51a1-6095-4d8b-afe5-3a3c601e9779_3420x2146.png 424w, https://substackcdn.com/image/fetch/$s_!RxXt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F555b51a1-6095-4d8b-afe5-3a3c601e9779_3420x2146.png 848w, https://substackcdn.com/image/fetch/$s_!RxXt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F555b51a1-6095-4d8b-afe5-3a3c601e9779_3420x2146.png 1272w, https://substackcdn.com/image/fetch/$s_!RxXt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F555b51a1-6095-4d8b-afe5-3a3c601e9779_3420x2146.png 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">The crab.</figcaption></figure></div><p></p><p><strong><span>llms</span></strong></p><p><span>The experience above helped me realize how much I missed actual programming rather than manipulating systems by chatting with an intermediary LLM. I had a similar experience a few months ago, when I was shocked when I realized that I really enjoyed creating an actual slide deck, but mostly because of the direct interaction with the object of work. Extensive mediation makes you feel numb, while direct and reactive interfaces support states of flow.</span></p><p><span>Beyond the personal satisfaction angle, I also grew more skeptical lately about the long-term maintainability of projects developed with heavy LLM involvement. Actually sitting with the problem, even if tedious or mechanical at times, helps you incrementally build valuable context. And if you aim to be involved with maintaining a project, you might as well understand it deeply. What I can&#8217;t build, I don&#8217;t understand. And why would I take the time to use a system you haven&#8217;t taken the time to develop.</span></p><p><span>Anyway, I wanted to pull together those few strings related to using LLMs into a coherent policy for this project, partly inspired by Rust&#8217;s own. It&#8217;s okay to use LLMs to study new topics and debug systems you&#8217;ve built, but no synthetic content should end up in the final product. It&#8217;s okay to use LLMs to prototype and experiment with different ways of implementing functionality, but the end result should be completely hand-written, someone should be responsible for it. Also, even if education and experimentation are allowed uses of LLMs, the used models must be open weights. This is meant to prefigure the practice of actually relying on local compute.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pIIL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b8f71cf-73e9-46de-800f-45407c3e4586_4032x2268.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pIIL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b8f71cf-73e9-46de-800f-45407c3e4586_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!pIIL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b8f71cf-73e9-46de-800f-45407c3e4586_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!pIIL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b8f71cf-73e9-46de-800f-45407c3e4586_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!pIIL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b8f71cf-73e9-46de-800f-45407c3e4586_4032x2268.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pIIL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b8f71cf-73e9-46de-800f-45407c3e4586_4032x2268.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6b8f71cf-73e9-46de-800f-45407c3e4586_4032x2268.jpeg&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;:1333089,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://littlecloud.ngo/i/214888020?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b8f71cf-73e9-46de-800f-45407c3e4586_4032x2268.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!pIIL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b8f71cf-73e9-46de-800f-45407c3e4586_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!pIIL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b8f71cf-73e9-46de-800f-45407c3e4586_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!pIIL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b8f71cf-73e9-46de-800f-45407c3e4586_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!pIIL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b8f71cf-73e9-46de-800f-45407c3e4586_4032x2268.jpeg 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">Basically, LLMs are okay for learning and prototyping, but they must be open weights.</figcaption></figure></div><p></p><p><strong><span>firmware</span></strong></p><p><span>Here&#8217;s an example of a way in which I plan to use open weights LLMs the moment the development boards I ordered arrive. The firmware we&#8217;ll need to flash on the MCUs connected to the worker devices via USB will need to be very good at controlling the physical silicon blocks (PHYs) dedicated to USB communication. There are a few promising libraries and stacks that might be able to grant us control over the USB PHYs found in the incredibly cost-effective MCUs manufactured by WCH.</span></p><p><span>First, there are the examples shipped by WCH itself, but they appear to be little more than flaky demos. Second, there&#8217;s CherryUSB and lwIP, libraries grown out of Asian hardware communities with strong support for WCH chips, but they might be quite low-level. Third, there&#8217;s the option to use those two libraries as part of the real-time OS called RT-thread, but it might add bloat and overhead. Fourth, there&#8217;s the option to use the Rust library embassy, which would consolidate the codebase, but has only experimental support for WCH PHYs.</span></p><p><span>I&#8217;d like to have LLMs have a go at implementing dummy firmware behaviors using these various stacks, such as getting the MCU to act as a network switch across its USB ports, or emulating a dummy storage device when connected. And I&#8217;d study whether it actually worked, the number of lines of code each approach required, and the general shape of the resulting implementation. I wouldn&#8217;t use those rapid prototypes as part of the final firmware that ships with the product. Instead, I&#8217;d only throw LLMs at the problem to help triage the available options going forward based on concrete findings. And probably with a Flash or Air model variant out of the Chinese labs. Can&#8217;t wait for the development boards to arrive.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1kHL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fca11a9-22f3-4c32-a55e-7ca8a188ee98_4032x2268.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1kHL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fca11a9-22f3-4c32-a55e-7ca8a188ee98_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!1kHL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fca11a9-22f3-4c32-a55e-7ca8a188ee98_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!1kHL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fca11a9-22f3-4c32-a55e-7ca8a188ee98_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!1kHL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fca11a9-22f3-4c32-a55e-7ca8a188ee98_4032x2268.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1kHL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fca11a9-22f3-4c32-a55e-7ca8a188ee98_4032x2268.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0fca11a9-22f3-4c32-a55e-7ca8a188ee98_4032x2268.jpeg&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;:983102,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://littlecloud.ngo/i/214888020?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fca11a9-22f3-4c32-a55e-7ca8a188ee98_4032x2268.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!1kHL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fca11a9-22f3-4c32-a55e-7ca8a188ee98_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!1kHL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fca11a9-22f3-4c32-a55e-7ca8a188ee98_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!1kHL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fca11a9-22f3-4c32-a55e-7ca8a188ee98_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!1kHL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fca11a9-22f3-4c32-a55e-7ca8a188ee98_4032x2268.jpeg 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">LLMs can help look ahead on different implementation branches.</figcaption></figure></div><p></p><p><strong><span>e-waste</span></strong></p><p><span>I also had to drop by an e-waste processor this week, and I&#8217;m including it here as it&#8217;s reasonably related. We picked up a batch of servers to use it in our pilot course that will take place in three schools this coming academic year.  Each of them is a veritable mystery box, you don&#8217;t know whether you&#8217;ll get one packed with a dozen RAM sticks or whether even the fans will be missing. It&#8217;s also satisfying to learn where they came from, in our case it was mostly from a bank and a utility company.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!j9UW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe807f734-dd41-47ea-a01c-5ab1fd89c2c0_2016x1134.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!j9UW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe807f734-dd41-47ea-a01c-5ab1fd89c2c0_2016x1134.jpeg 424w, https://substackcdn.com/image/fetch/$s_!j9UW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe807f734-dd41-47ea-a01c-5ab1fd89c2c0_2016x1134.jpeg 848w, https://substackcdn.com/image/fetch/$s_!j9UW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe807f734-dd41-47ea-a01c-5ab1fd89c2c0_2016x1134.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!j9UW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe807f734-dd41-47ea-a01c-5ab1fd89c2c0_2016x1134.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!j9UW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe807f734-dd41-47ea-a01c-5ab1fd89c2c0_2016x1134.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e807f734-dd41-47ea-a01c-5ab1fd89c2c0_2016x1134.jpeg&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;:324248,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://littlecloud.ngo/i/214888020?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe807f734-dd41-47ea-a01c-5ab1fd89c2c0_2016x1134.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!j9UW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe807f734-dd41-47ea-a01c-5ab1fd89c2c0_2016x1134.jpeg 424w, https://substackcdn.com/image/fetch/$s_!j9UW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe807f734-dd41-47ea-a01c-5ab1fd89c2c0_2016x1134.jpeg 848w, https://substackcdn.com/image/fetch/$s_!j9UW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe807f734-dd41-47ea-a01c-5ab1fd89c2c0_2016x1134.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!j9UW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe807f734-dd41-47ea-a01c-5ab1fd89c2c0_2016x1134.jpeg 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">Distinguished CatOps Engineer, pictured on-call.</figcaption></figure></div><p><span>It&#8217;s interesting how some of them come preloaded with those hardware testing procedure that go beyond a basic POST. You get checks and result reports per component, down to individual fans. When recruiting worker devices in little cloud, we should probably test capabilities when trying to detect them in a similar way.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rmxf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F107c646e-b9e0-4e53-b07b-fe4ab3859772_2048x1069.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rmxf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F107c646e-b9e0-4e53-b07b-fe4ab3859772_2048x1069.jpeg 424w, https://substackcdn.com/image/fetch/$s_!rmxf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F107c646e-b9e0-4e53-b07b-fe4ab3859772_2048x1069.jpeg 848w, https://substackcdn.com/image/fetch/$s_!rmxf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F107c646e-b9e0-4e53-b07b-fe4ab3859772_2048x1069.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!rmxf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F107c646e-b9e0-4e53-b07b-fe4ab3859772_2048x1069.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rmxf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F107c646e-b9e0-4e53-b07b-fe4ab3859772_2048x1069.jpeg" width="1456" height="760" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/107c646e-b9e0-4e53-b07b-fe4ab3859772_2048x1069.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:760,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:167262,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://littlecloud.ngo/i/214888020?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F107c646e-b9e0-4e53-b07b-fe4ab3859772_2048x1069.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!rmxf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F107c646e-b9e0-4e53-b07b-fe4ab3859772_2048x1069.jpeg 424w, https://substackcdn.com/image/fetch/$s_!rmxf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F107c646e-b9e0-4e53-b07b-fe4ab3859772_2048x1069.jpeg 848w, https://substackcdn.com/image/fetch/$s_!rmxf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F107c646e-b9e0-4e53-b07b-fe4ab3859772_2048x1069.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!rmxf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F107c646e-b9e0-4e53-b07b-fe4ab3859772_2048x1069.jpeg 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">Green check mark dopamine.</figcaption></figure></div><p></p>]]></content:encoded></item><item><title><![CDATA[build log #6 • revisiting interconnects, evaluation boards]]></title><description><![CDATA[This week, we reconsider options for having worker devices communicate with little cloud&#8217;s central processor.]]></description><link>https://littlecloud.ngo/p/build-log-6-revisiting-interconnects</link><guid isPermaLink="false">https://littlecloud.ngo/p/build-log-6-revisiting-interconnects</guid><dc:creator><![CDATA[Paul Bricman]]></dc:creator><pubDate>Wed, 02 Sep 2026 12:22:42 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!gqPc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa25dfd97-db49-4bbc-9db4-052f03083616_4032x2268.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong><span>spi</span></strong></p><p><span>Having run out of ideas for simplifying the enclosure (for now), I started digging a bit deeper into the actual protocols through which little cloud&#8217;s microprocessor (MPU) could communicate with the individual port microcontrollers (MCUs). The initial idea from a couple weeks back was that the MCUs could act as software-defined USB controllers driven by the MPU, such that they could present themselves as anything from a memory stick to a network card to the worker devices.</span></p><p><span>However, I&#8217;m not sure anymore about SPI as the protocol of choice for having the MPU communicate with the port MCUs. There are a few downsides. First, SPI would require the MPU to explicitly &#8220;chip-select&#8221; and query every MCU regularly, eroding bandwidth and increasing complexity. Second, we&#8217;d need to route 5 or so pins out of each MCU. Third, the USB driver ecosystem doesn&#8217;t natively overlap with SPI all too much. I did get to order an evaluation board predicated on this approach before growing skeptical about it, though.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gqPc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa25dfd97-db49-4bbc-9db4-052f03083616_4032x2268.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gqPc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa25dfd97-db49-4bbc-9db4-052f03083616_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!gqPc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa25dfd97-db49-4bbc-9db4-052f03083616_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!gqPc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa25dfd97-db49-4bbc-9db4-052f03083616_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!gqPc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa25dfd97-db49-4bbc-9db4-052f03083616_4032x2268.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gqPc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa25dfd97-db49-4bbc-9db4-052f03083616_4032x2268.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a25dfd97-db49-4bbc-9db4-052f03083616_4032x2268.jpeg&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;:570052,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://littlecloud.ngo/i/213848437?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa25dfd97-db49-4bbc-9db4-052f03083616_4032x2268.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gqPc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa25dfd97-db49-4bbc-9db4-052f03083616_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!gqPc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa25dfd97-db49-4bbc-9db4-052f03083616_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!gqPc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa25dfd97-db49-4bbc-9db4-052f03083616_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!gqPc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa25dfd97-db49-4bbc-9db4-052f03083616_4032x2268.jpeg 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">MPU could fan out to port MCUs via SPI.</figcaption></figure></div><p></p><p><strong><span>ethernet</span></strong></p><p><span>Another option for the MPU-MCU interconnect would be Ethernet. In this arrangement, the MPU and MCUs would connect their Ethernet pins to a dedicated on-board switch chip. 100 Mbps seems quite common as a choice of Ethernet speed on MCUs that implement it, which is higher than typical SPI speeds. Plus, it natively supports many-to-many communication, unlike SPI where only the MPU could initiate exchanges as master.</span></p><p><span>There is also USB/IP, which appears to enable the MCU USB controllers to appear as local, native ports to the MPU. It works by sending USB packets over a network, in our case a network that lives entirely on a PCB. Though USB/IP appears to only handle host roles natively, not so much device roles. We&#8217;d also incur the Ethernet switch on the BOM, and Ethernet on MCUs carries a premium. Could we do better?</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OMKY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F377d6396-b624-4fd1-a292-7ba5be4ed529_4032x2268.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OMKY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F377d6396-b624-4fd1-a292-7ba5be4ed529_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!OMKY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F377d6396-b624-4fd1-a292-7ba5be4ed529_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!OMKY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F377d6396-b624-4fd1-a292-7ba5be4ed529_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!OMKY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F377d6396-b624-4fd1-a292-7ba5be4ed529_4032x2268.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OMKY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F377d6396-b624-4fd1-a292-7ba5be4ed529_4032x2268.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/377d6396-b624-4fd1-a292-7ba5be4ed529_4032x2268.jpeg&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;:993909,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://littlecloud.ngo/i/213848437?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F377d6396-b624-4fd1-a292-7ba5be4ed529_4032x2268.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!OMKY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F377d6396-b624-4fd1-a292-7ba5be4ed529_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!OMKY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F377d6396-b624-4fd1-a292-7ba5be4ed529_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!OMKY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F377d6396-b624-4fd1-a292-7ba5be4ed529_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!OMKY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F377d6396-b624-4fd1-a292-7ba5be4ed529_4032x2268.jpeg 1456w" sizes="100vw"></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">MPU could fan out to port MCUs via Ethernet.</figcaption></figure></div><p></p><p><strong><span>usb</span></strong></p><p><span>What if we used the same stack and tooling to connect the MPU with the port MCUs as we do when connecting MCUs to worker devices? The MPU could be the USB host that connects to many MCU devices. Crucially, MCUs would need to have </span><em><span>two</span></em><span> independent USB buses, a device-only one oriented towards the MPU, and a dual-role one oriented towards the worker devices. An interesting precedent here are those PC-to-PC cables that present themselves as a device to both USB hosts and shuttle data through.</span></p><p><span>If we could reduce the interconnect protocol to USB, we&#8217;d get the benefit of only having to use one stack for both interconnect on the PCB and communication with worker devices. CherryUSB appears to be a very versatile USB library, with strong support for the cheap Chinese MCUs. USB would also only require us to mostly route 2 data pins only out of an MCU, easier than 5. Most MPUs already have dedicated USB silicon, which is not the case for Ethernet. The MCUs might be able to only lightly edit USB packets shuttling through.</span></p><p><span>We would still need to use a USB hub between the MCUs and the MPU, and two USB buses on an MCU is not too common. But these parts are below 2$ still. I also realized we definitely need high-speed USB at least for having laptops or desktops potentially boot a live OS off of little cloud. Full-speed only would take forever to load the OS in memory. USB hub concurrency is also much more mature than via SPI.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!a02-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ecf59a3-b700-4c9d-a075-fcb7f6d4f234_4032x2268.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!a02-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ecf59a3-b700-4c9d-a075-fcb7f6d4f234_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!a02-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ecf59a3-b700-4c9d-a075-fcb7f6d4f234_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!a02-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ecf59a3-b700-4c9d-a075-fcb7f6d4f234_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!a02-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ecf59a3-b700-4c9d-a075-fcb7f6d4f234_4032x2268.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!a02-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ecf59a3-b700-4c9d-a075-fcb7f6d4f234_4032x2268.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3ecf59a3-b700-4c9d-a075-fcb7f6d4f234_4032x2268.jpeg&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;:632143,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://littlecloud.ngo/i/213848437?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ecf59a3-b700-4c9d-a075-fcb7f6d4f234_4032x2268.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!a02-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ecf59a3-b700-4c9d-a075-fcb7f6d4f234_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!a02-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ecf59a3-b700-4c9d-a075-fcb7f6d4f234_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!a02-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ecf59a3-b700-4c9d-a075-fcb7f6d4f234_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!a02-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ecf59a3-b700-4c9d-a075-fcb7f6d4f234_4032x2268.jpeg 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">MPU could fan out to port MCUs via USB.</figcaption></figure></div><p></p><p><strong><span>hub</span></strong></p><p><span>If we have a USB hub IC standing between the MCUs and the MPU, we could also route some of the hub buses out directly to ports. This could enable ports that can only connect to phone or tablet workers, not laptops or desktops, but for a very low cost. If MCUs with two high-speed USB buses grow into a meaningful cost center on the bill of materials, we could potentially offset this by only having </span><em><span>some</span></em><span> ports with full dual-role data capabilities. I&#8217;m not a fan of the broken symmetry across ports, although it could match the real-life e-waste distribution.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Fo9j!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e319d60-d074-4512-8a8f-2cfef82fcb1d_4032x2268.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Fo9j!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e319d60-d074-4512-8a8f-2cfef82fcb1d_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Fo9j!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e319d60-d074-4512-8a8f-2cfef82fcb1d_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Fo9j!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e319d60-d074-4512-8a8f-2cfef82fcb1d_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Fo9j!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e319d60-d074-4512-8a8f-2cfef82fcb1d_4032x2268.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Fo9j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e319d60-d074-4512-8a8f-2cfef82fcb1d_4032x2268.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8e319d60-d074-4512-8a8f-2cfef82fcb1d_4032x2268.jpeg&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;:497765,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://littlecloud.ngo/i/213848437?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e319d60-d074-4512-8a8f-2cfef82fcb1d_4032x2268.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Fo9j!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e319d60-d074-4512-8a8f-2cfef82fcb1d_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Fo9j!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e319d60-d074-4512-8a8f-2cfef82fcb1d_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Fo9j!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e319d60-d074-4512-8a8f-2cfef82fcb1d_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Fo9j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e319d60-d074-4512-8a8f-2cfef82fcb1d_4032x2268.jpeg 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">USB Hub chips are force-multipliers for USB host buses on an MPU.</figcaption></figure></div><p></p><p><strong><span>switches</span></strong></p><p><span>Another option I considered briefly that I wanted to mention in the logs was that of analog switches on the ports. Need to emulate a host? Connect the port to a hub IC. Need to emulate a storage device? Connect it to a read-only flash on the board. This would mean lowering the emulation logic down to the hardware level. Though I figured it would be unwieldy to manage and iterate on, besides disabling the option to emulate multiple devices on the same port. I&#8217;d rather stick to two-sided high-speed MCUs, potentially occupying only part of a USB hub to the MPU. Driven entirely by the MPU software.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kP0l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefbf4bea-5572-4509-afd1-222729549f80_4032x2268.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kP0l!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefbf4bea-5572-4509-afd1-222729549f80_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!kP0l!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefbf4bea-5572-4509-afd1-222729549f80_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!kP0l!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefbf4bea-5572-4509-afd1-222729549f80_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!kP0l!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefbf4bea-5572-4509-afd1-222729549f80_4032x2268.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kP0l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefbf4bea-5572-4509-afd1-222729549f80_4032x2268.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/efbf4bea-5572-4509-afd1-222729549f80_4032x2268.jpeg&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;:902361,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://littlecloud.ngo/i/213848437?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefbf4bea-5572-4509-afd1-222729549f80_4032x2268.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!kP0l!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefbf4bea-5572-4509-afd1-222729549f80_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!kP0l!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefbf4bea-5572-4509-afd1-222729549f80_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!kP0l!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefbf4bea-5572-4509-afd1-222729549f80_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!kP0l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefbf4bea-5572-4509-afd1-222729549f80_4032x2268.jpeg 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">Analog switches to physically separate USB capabilities?</figcaption></figure></div><p></p>]]></content:encoded></item><item><title><![CDATA[build log #5 • modeling enclosure, simplifying manufacturing]]></title><description><![CDATA[This week, we model a few enclosures options for a device that turns your old electronics into your own little cloud.]]></description><link>https://littlecloud.ngo/p/build-log-5-modeling-enclosure-simplifying</link><guid isPermaLink="false">https://littlecloud.ngo/p/build-log-5-modeling-enclosure-simplifying</guid><dc:creator><![CDATA[Paul Bricman]]></dc:creator><pubDate>Wed, 26 Aug 2026 10:29:19 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/210d2309-ab22-4adf-b2bd-3578e8c02b42_2448x1428.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong><span>modeling</span></strong></p><p><span>I took the general ideas for little cloud&#8217;s form factor from log entry #2 and implemented them in Onshape. The construction is pretty basic. Because we get lots of symmetry in a 1U rack-mountable box, we start by sketching out a quarter of both the inner and outer shells. We then flange from each towards the opposite plate.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IpiT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17b006bf-cac8-4a86-b02a-c7dad53b201b_3220x1214.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IpiT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17b006bf-cac8-4a86-b02a-c7dad53b201b_3220x1214.png 424w, https://substackcdn.com/image/fetch/$s_!IpiT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17b006bf-cac8-4a86-b02a-c7dad53b201b_3220x1214.png 848w, https://substackcdn.com/image/fetch/$s_!IpiT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17b006bf-cac8-4a86-b02a-c7dad53b201b_3220x1214.png 1272w, https://substackcdn.com/image/fetch/$s_!IpiT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17b006bf-cac8-4a86-b02a-c7dad53b201b_3220x1214.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IpiT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17b006bf-cac8-4a86-b02a-c7dad53b201b_3220x1214.png" width="1456" height="549" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/17b006bf-cac8-4a86-b02a-c7dad53b201b_3220x1214.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:549,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:367970,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://littlecloud.ngo/i/212824784?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17b006bf-cac8-4a86-b02a-c7dad53b201b_3220x1214.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!IpiT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17b006bf-cac8-4a86-b02a-c7dad53b201b_3220x1214.png 424w, https://substackcdn.com/image/fetch/$s_!IpiT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17b006bf-cac8-4a86-b02a-c7dad53b201b_3220x1214.png 848w, https://substackcdn.com/image/fetch/$s_!IpiT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17b006bf-cac8-4a86-b02a-c7dad53b201b_3220x1214.png 1272w, https://substackcdn.com/image/fetch/$s_!IpiT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17b006bf-cac8-4a86-b02a-c7dad53b201b_3220x1214.png 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">Quarter of the box as complementary metal sheets, plus a couple flanges on each. Bent and flat views.</figcaption></figure></div><p><span>Then, create mounting holes on the short and long sides. Also, we can remove material from the bends themselves, following the &#8220;fold it yourself&#8221; idea from a few weeks back.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nA9J!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbffac9c8-5850-45a8-9efa-f276f98c81b6_3220x1214.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nA9J!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbffac9c8-5850-45a8-9efa-f276f98c81b6_3220x1214.png 424w, https://substackcdn.com/image/fetch/$s_!nA9J!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbffac9c8-5850-45a8-9efa-f276f98c81b6_3220x1214.png 848w, https://substackcdn.com/image/fetch/$s_!nA9J!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbffac9c8-5850-45a8-9efa-f276f98c81b6_3220x1214.png 1272w, https://substackcdn.com/image/fetch/$s_!nA9J!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbffac9c8-5850-45a8-9efa-f276f98c81b6_3220x1214.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nA9J!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbffac9c8-5850-45a8-9efa-f276f98c81b6_3220x1214.png" width="1456" height="549" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bffac9c8-5850-45a8-9efa-f276f98c81b6_3220x1214.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:549,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:448352,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://littlecloud.ngo/i/212824784?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbffac9c8-5850-45a8-9efa-f276f98c81b6_3220x1214.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!nA9J!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbffac9c8-5850-45a8-9efa-f276f98c81b6_3220x1214.png 424w, https://substackcdn.com/image/fetch/$s_!nA9J!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbffac9c8-5850-45a8-9efa-f276f98c81b6_3220x1214.png 848w, https://substackcdn.com/image/fetch/$s_!nA9J!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbffac9c8-5850-45a8-9efa-f276f98c81b6_3220x1214.png 1272w, https://substackcdn.com/image/fetch/$s_!nA9J!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbffac9c8-5850-45a8-9efa-f276f98c81b6_3220x1214.png 1456w" sizes="100vw"></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">Mounting holes and bend material removal, still on a quarter of the box.</figcaption></figure></div><p><span>Then, mirror both inner and outer shells across the two base axes to get the actual clamshell box. Finally, create a through-all hole and pattern it linearly across the same axes to implement the modular mounting interface idea.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Yq0D!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fa4e7d9-df7a-4ebd-bbbf-5e16184ed688_3220x1214.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Yq0D!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fa4e7d9-df7a-4ebd-bbbf-5e16184ed688_3220x1214.png 424w, https://substackcdn.com/image/fetch/$s_!Yq0D!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fa4e7d9-df7a-4ebd-bbbf-5e16184ed688_3220x1214.png 848w, https://substackcdn.com/image/fetch/$s_!Yq0D!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fa4e7d9-df7a-4ebd-bbbf-5e16184ed688_3220x1214.png 1272w, https://substackcdn.com/image/fetch/$s_!Yq0D!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fa4e7d9-df7a-4ebd-bbbf-5e16184ed688_3220x1214.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Yq0D!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fa4e7d9-df7a-4ebd-bbbf-5e16184ed688_3220x1214.png" width="1456" height="549" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9fa4e7d9-df7a-4ebd-bbbf-5e16184ed688_3220x1214.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:549,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1712781,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://littlecloud.ngo/i/212824784?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fa4e7d9-df7a-4ebd-bbbf-5e16184ed688_3220x1214.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Yq0D!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fa4e7d9-df7a-4ebd-bbbf-5e16184ed688_3220x1214.png 424w, https://substackcdn.com/image/fetch/$s_!Yq0D!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fa4e7d9-df7a-4ebd-bbbf-5e16184ed688_3220x1214.png 848w, https://substackcdn.com/image/fetch/$s_!Yq0D!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fa4e7d9-df7a-4ebd-bbbf-5e16184ed688_3220x1214.png 1272w, https://substackcdn.com/image/fetch/$s_!Yq0D!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fa4e7d9-df7a-4ebd-bbbf-5e16184ed688_3220x1214.png 1456w" sizes="100vw"></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">Mirror it two times and you get the full box.</figcaption></figure></div><p></p><p><strong><span>simpler</span></strong></p><p><span>After seeing it take shape and bouncing ideas off of others, I decided to push for modifications related to the grill, supports, and size. When it comes to the grill, I realized that sheet metal costs are partially a function of the perimeter length of all cuts. A grill with a gazillion holes takes a toolhead more to cut out, keeping it busy instead of fulfilling other jobs. Also, even if punctured by a lot of holes, the grill&#8217;s remaining material might still pose resistance to the fans, reducing the volume of air they manage to move around worker devices per unit time. So we&#8217;ll go for a basic large hole instead.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4GUR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a587c18-a5fd-4447-8040-51a229040251_3200x1226.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4GUR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a587c18-a5fd-4447-8040-51a229040251_3200x1226.png 424w, https://substackcdn.com/image/fetch/$s_!4GUR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a587c18-a5fd-4447-8040-51a229040251_3200x1226.png 848w, https://substackcdn.com/image/fetch/$s_!4GUR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a587c18-a5fd-4447-8040-51a229040251_3200x1226.png 1272w, https://substackcdn.com/image/fetch/$s_!4GUR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a587c18-a5fd-4447-8040-51a229040251_3200x1226.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4GUR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a587c18-a5fd-4447-8040-51a229040251_3200x1226.png" width="1456" height="558" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1a587c18-a5fd-4447-8040-51a229040251_3200x1226.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:558,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:581114,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://littlecloud.ngo/i/212824784?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a587c18-a5fd-4447-8040-51a229040251_3200x1226.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4GUR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a587c18-a5fd-4447-8040-51a229040251_3200x1226.png 424w, https://substackcdn.com/image/fetch/$s_!4GUR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a587c18-a5fd-4447-8040-51a229040251_3200x1226.png 848w, https://substackcdn.com/image/fetch/$s_!4GUR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a587c18-a5fd-4447-8040-51a229040251_3200x1226.png 1272w, https://substackcdn.com/image/fetch/$s_!4GUR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a587c18-a5fd-4447-8040-51a229040251_3200x1226.png 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">Basic fan cut-outs instead of galaxy-brained modular grids.</figcaption></figure></div><p><span>When it comes to the supports, I realized that it would be simpler to get hold of them through the same manufacturing process as the enclosure itself. We might as well just build them out of sheet metal while we&#8217;re at it, consolidating our supply chain. I played around with a few possible geometries, some requiring more material and bends than others, some requiring additional screws for mounting. I quite like the simplest one, two bends and no screws required. Instead, it seems to allow worker devices to securely rest on one side because of its bottom geometry and how it interacts with the enclosure. Move it around in your head.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1pPd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc896efd-bda8-4f2d-9953-3516afcbbcde_3196x1144.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1pPd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc896efd-bda8-4f2d-9953-3516afcbbcde_3196x1144.png 424w, https://substackcdn.com/image/fetch/$s_!1pPd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc896efd-bda8-4f2d-9953-3516afcbbcde_3196x1144.png 848w, https://substackcdn.com/image/fetch/$s_!1pPd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc896efd-bda8-4f2d-9953-3516afcbbcde_3196x1144.png 1272w, https://substackcdn.com/image/fetch/$s_!1pPd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc896efd-bda8-4f2d-9953-3516afcbbcde_3196x1144.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1pPd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc896efd-bda8-4f2d-9953-3516afcbbcde_3196x1144.png" width="1456" height="521" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cc896efd-bda8-4f2d-9953-3516afcbbcde_3196x1144.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:521,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:554669,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://littlecloud.ngo/i/212824784?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc896efd-bda8-4f2d-9953-3516afcbbcde_3196x1144.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1pPd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc896efd-bda8-4f2d-9953-3516afcbbcde_3196x1144.png 424w, https://substackcdn.com/image/fetch/$s_!1pPd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc896efd-bda8-4f2d-9953-3516afcbbcde_3196x1144.png 848w, https://substackcdn.com/image/fetch/$s_!1pPd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc896efd-bda8-4f2d-9953-3516afcbbcde_3196x1144.png 1272w, https://substackcdn.com/image/fetch/$s_!1pPd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc896efd-bda8-4f2d-9953-3516afcbbcde_3196x1144.png 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">Have worker device supports share the same sheet metal process instead of galaxy-brained handle compatibility.</figcaption></figure></div><p><span>When it comes to size, I realized we can maintain server rack compatibility while making the enclosure smaller. A smaller enclosure appears more manageable for end-users, more in line with household e-waste statistics, and of course it would cost a bit less. We can then recover the rack-mountable property through a separate face plate that attaches to both the enclosure and the server rack, but only if needed. For lack of a more principled constraint, I then opted for the general size of &#8220;fits two standard fans side-by-side&#8221; for the main enclosure.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MS2L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a503cc4-da1d-4e5a-b193-b53b70b49f3c_3196x1144.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MS2L!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a503cc4-da1d-4e5a-b193-b53b70b49f3c_3196x1144.png 424w, https://substackcdn.com/image/fetch/$s_!MS2L!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a503cc4-da1d-4e5a-b193-b53b70b49f3c_3196x1144.png 848w, https://substackcdn.com/image/fetch/$s_!MS2L!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a503cc4-da1d-4e5a-b193-b53b70b49f3c_3196x1144.png 1272w, https://substackcdn.com/image/fetch/$s_!MS2L!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a503cc4-da1d-4e5a-b193-b53b70b49f3c_3196x1144.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MS2L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a503cc4-da1d-4e5a-b193-b53b70b49f3c_3196x1144.png" width="1456" height="521" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9a503cc4-da1d-4e5a-b193-b53b70b49f3c_3196x1144.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:521,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:424584,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://littlecloud.ngo/i/212824784?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a503cc4-da1d-4e5a-b193-b53b70b49f3c_3196x1144.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!MS2L!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a503cc4-da1d-4e5a-b193-b53b70b49f3c_3196x1144.png 424w, https://substackcdn.com/image/fetch/$s_!MS2L!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a503cc4-da1d-4e5a-b193-b53b70b49f3c_3196x1144.png 848w, https://substackcdn.com/image/fetch/$s_!MS2L!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a503cc4-da1d-4e5a-b193-b53b70b49f3c_3196x1144.png 1272w, https://substackcdn.com/image/fetch/$s_!MS2L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a503cc4-da1d-4e5a-b193-b53b70b49f3c_3196x1144.png 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">Relaxing constraints, the box itself doesn&#8217;t need to be rack-mountable if we could optionally get a face plate adapter.</figcaption></figure></div><p></p><p><strong><span>quote</span></strong></p><p><span>I was curious to run the current 3D models through JLCCNC for an instant quote at 1K volume. If we go for 1mm aluminum for the shells, we get a bit over 3$ per shell. Opting to laser-engrave the outer shell as a finish gets us instead to 5$. That finish seems cheaper, more durable, and more recyclable than layering silkscreen paint on the enclosure, and it would be neat to be able to make the device explain itself through labels and visual cues. The supports would be a bit over 0.5$ per piece, perhaps these could be stainless steel. The cheapest delivery option is in the same ballpark as the shells, but it would take forever to arrive. I signed up for a course on operating the CNCs at a local makerspace to be able to prototype faster. I&#8217;ll share how that goes in a future update.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!55JE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa500ff1e-b8c0-4b3f-babe-f73a263af30c_2876x1238.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!55JE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa500ff1e-b8c0-4b3f-babe-f73a263af30c_2876x1238.png 424w, https://substackcdn.com/image/fetch/$s_!55JE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa500ff1e-b8c0-4b3f-babe-f73a263af30c_2876x1238.png 848w, https://substackcdn.com/image/fetch/$s_!55JE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa500ff1e-b8c0-4b3f-babe-f73a263af30c_2876x1238.png 1272w, https://substackcdn.com/image/fetch/$s_!55JE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa500ff1e-b8c0-4b3f-babe-f73a263af30c_2876x1238.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!55JE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa500ff1e-b8c0-4b3f-babe-f73a263af30c_2876x1238.png" width="1456" height="627" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a500ff1e-b8c0-4b3f-babe-f73a263af30c_2876x1238.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:627,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:409926,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://littlecloud.ngo/i/212824784?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa500ff1e-b8c0-4b3f-babe-f73a263af30c_2876x1238.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!55JE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa500ff1e-b8c0-4b3f-babe-f73a263af30c_2876x1238.png 424w, https://substackcdn.com/image/fetch/$s_!55JE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa500ff1e-b8c0-4b3f-babe-f73a263af30c_2876x1238.png 848w, https://substackcdn.com/image/fetch/$s_!55JE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa500ff1e-b8c0-4b3f-babe-f73a263af30c_2876x1238.png 1272w, https://substackcdn.com/image/fetch/$s_!55JE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa500ff1e-b8c0-4b3f-babe-f73a263af30c_2876x1238.png 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">Getting a sense of enclosure costs at 1K volume with the approach above. Yikes for the weight.</figcaption></figure></div><p></p><p><strong><span>simplest</span></strong></p><p><span>Then I thought, what if the case would just be the bare PCB and a top cover on standoff spacers? It seems there&#8217;s no hard regulatory requirement for a box to explicitly be enclosed on all sides. The PCB would match the footprint of a flat metal sheet sitting above it on 4-6 standoffs. The sheet would retain the fan cut-outs and support mounts. Though, if we use standoffs, we might as well use them as supports, too.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ooyV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98d5089d-ef8d-4c84-a682-977609442a81_2364x1248.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ooyV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98d5089d-ef8d-4c84-a682-977609442a81_2364x1248.png 424w, https://substackcdn.com/image/fetch/$s_!ooyV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98d5089d-ef8d-4c84-a682-977609442a81_2364x1248.png 848w, https://substackcdn.com/image/fetch/$s_!ooyV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98d5089d-ef8d-4c84-a682-977609442a81_2364x1248.png 1272w, https://substackcdn.com/image/fetch/$s_!ooyV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98d5089d-ef8d-4c84-a682-977609442a81_2364x1248.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ooyV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98d5089d-ef8d-4c84-a682-977609442a81_2364x1248.png" width="1456" height="769" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/98d5089d-ef8d-4c84-a682-977609442a81_2364x1248.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:769,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:381560,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://littlecloud.ngo/i/212824784?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98d5089d-ef8d-4c84-a682-977609442a81_2364x1248.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ooyV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98d5089d-ef8d-4c84-a682-977609442a81_2364x1248.png 424w, https://substackcdn.com/image/fetch/$s_!ooyV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98d5089d-ef8d-4c84-a682-977609442a81_2364x1248.png 848w, https://substackcdn.com/image/fetch/$s_!ooyV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98d5089d-ef8d-4c84-a682-977609442a81_2364x1248.png 1272w, https://substackcdn.com/image/fetch/$s_!ooyV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98d5089d-ef8d-4c84-a682-977609442a81_2364x1248.png 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">Can it get any simpler?</figcaption></figure></div><p><span>I&#8217;d rather have the whole arrangement be incredibly cheap than feel premium, given it&#8217;s intended for reviving e-waste. Running the only metal plate through JLCCNC, we get an instant quote of about 1.5$ at 1K volume for no finish. The 4-layer PCB with the same outer dimensions is a bit pricier at around 4$, but I think it would still be cheaper than a smaller PCB combined with an extra metal plate on the bottom and more stand-offs involved. Same rack-mountable face plate adaptation as above, but hugging the top and bottom sides with some tiny flanges instead.</span></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Gjx_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dd2d113-0b36-411b-a8d3-ad145aa4afd4_2868x472.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Gjx_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dd2d113-0b36-411b-a8d3-ad145aa4afd4_2868x472.png 424w, https://substackcdn.com/image/fetch/$s_!Gjx_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dd2d113-0b36-411b-a8d3-ad145aa4afd4_2868x472.png 848w, https://substackcdn.com/image/fetch/$s_!Gjx_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dd2d113-0b36-411b-a8d3-ad145aa4afd4_2868x472.png 1272w, https://substackcdn.com/image/fetch/$s_!Gjx_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dd2d113-0b36-411b-a8d3-ad145aa4afd4_2868x472.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Gjx_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dd2d113-0b36-411b-a8d3-ad145aa4afd4_2868x472.png" width="1456" height="240" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5dd2d113-0b36-411b-a8d3-ad145aa4afd4_2868x472.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:240,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:220724,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://littlecloud.ngo/i/212824784?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dd2d113-0b36-411b-a8d3-ad145aa4afd4_2868x472.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Gjx_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dd2d113-0b36-411b-a8d3-ad145aa4afd4_2868x472.png 424w, https://substackcdn.com/image/fetch/$s_!Gjx_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dd2d113-0b36-411b-a8d3-ad145aa4afd4_2868x472.png 848w, https://substackcdn.com/image/fetch/$s_!Gjx_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dd2d113-0b36-411b-a8d3-ad145aa4afd4_2868x472.png 1272w, https://substackcdn.com/image/fetch/$s_!Gjx_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dd2d113-0b36-411b-a8d3-ad145aa4afd4_2868x472.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">The bottom face could just be the main PCB, here with a quote at 1K volume.</figcaption></figure></div><p></p>]]></content:encoded></item><item><title><![CDATA[build log #4 • hardware requirements, data flow]]></title><description><![CDATA[This week, we dive into the kinds of chips we need for a device that turns your old electronics into your own little cloud.]]></description><link>https://littlecloud.ngo/p/build-log-4-hardware-requirements</link><guid isPermaLink="false">https://littlecloud.ngo/p/build-log-4-hardware-requirements</guid><dc:creator><![CDATA[Paul Bricman]]></dc:creator><pubDate>Wed, 19 Aug 2026 09:08:07 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qWK_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42f9a8d8-9a65-4d83-b20d-022c90b48fde_4032x2268.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong><span>data</span></strong></p><p><span>Let&#8217;s think through the structure of the printed circuit board (PCB) that will act as the physical core of little cloud. We likely need an array of USB ports through which diverse worker devices will be recruited into a unified cluster. USB is very versatile, as it can support internet tethering, storage media, debug shells, keyboard input, video output, and many others. To decouple hardware requirements from the exact software methods we&#8217;ll end up using for handling various classes of worker devices, we can keep our options open and simply mandate that every port should be able to present itself as anything the USB standard supports.</span></p><p><span>USB is an asymmetric protocol that requires an explicit host and device. Most laptops, and virtually all desktops and servers, are hard-coded to only act as hosts. Old smartphones and tablets are hard-coded to only act as devices, while modern versions can act as both. The chips behind standard USB hubs are typically hard-coded to connect many USB devices to one USB host. This means we can&#8217;t really get away with just using one hub chip to back all our ports, because then little cloud wouldn&#8217;t be able to easily connect to many laptops, desktops, and servers over USB.</span></p><p><span>What we could do is have one cheap &#8220;dual-role data&#8221; microcontroller (MCU) per port, whose role would only be to present itself as anything that&#8217;s needed and act as a simple bridge to some beefier integrated circuit (IC) that manages them all. Typical USB connections span &#8220;full speed&#8221; (12 Mbps), &#8220;high speed&#8221; (480 Mbps), and &#8220;super speed&#8221; (5 Gbps). The upstream link from the port MCU to its beefier manager might be SPI (1 to 100 Mbps), on-board Ethernet (100 or 1000 Mbps), or actually one of the same USB variants above. I think we could go for high speed on the port and SPI on the manager link initially.</span></p><p><span>That said, I did manage to find a very narrow niche of MCUs that manage to pack insanely many USB buses on the same chip. WCH&#8217;s </span><a href="https://www.wch.cn/products/CH645.html"><span>CH645</span></a><span> for instance, whose product page isn&#8217;t even available in English at the moment, boasts 8 independent buses, 4 of which can effectively be dual-role data, with the other 4 host-only. With a niche MCU like this, we&#8217;d get extreme design consolidation and cost reduction, at the cost of a more brittle supply chain. Would it be worth it? Not sure, we might regret going for this if supply suddenly becomes unavailable. But only needing one dirt-cheap MCU </span><em><span>per product</span></em><span> instead of one </span><em><span>per port</span></em><span> is appealing for sure.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qWK_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42f9a8d8-9a65-4d83-b20d-022c90b48fde_4032x2268.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qWK_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42f9a8d8-9a65-4d83-b20d-022c90b48fde_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qWK_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42f9a8d8-9a65-4d83-b20d-022c90b48fde_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qWK_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42f9a8d8-9a65-4d83-b20d-022c90b48fde_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qWK_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42f9a8d8-9a65-4d83-b20d-022c90b48fde_4032x2268.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qWK_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42f9a8d8-9a65-4d83-b20d-022c90b48fde_4032x2268.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/42f9a8d8-9a65-4d83-b20d-022c90b48fde_4032x2268.jpeg&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;:615790,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://littlecloud.ngo/i/211829323?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42f9a8d8-9a65-4d83-b20d-022c90b48fde_4032x2268.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!qWK_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42f9a8d8-9a65-4d83-b20d-022c90b48fde_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qWK_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42f9a8d8-9a65-4d83-b20d-022c90b48fde_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qWK_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42f9a8d8-9a65-4d83-b20d-022c90b48fde_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qWK_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F42f9a8d8-9a65-4d83-b20d-022c90b48fde_4032x2268.jpeg 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">Thinking through how the USB ports could be independently customized, based on the kinds of worker device connected to them. </figcaption></figure></div><p></p><p><strong><span>power</span></strong></p><p><span>Not only is USB versatile in terms of what kind of data is being transferred, but it is also versatile in terms of what power it can carry. Older USB can do 5V@0.5A (2.5W) all the way to 5V@1.5A (7.5W). On a Type-C connector with a proper power delivery (PD) controller behind it, two devices can negotiate dynamically up to 20V@3A (60W), and even higher if the cable itself is marked electronically.</span></p><p><span>In addition, modern USB can flip power direction relative to data roles, such that the device can power the host. It can also negotiate an emergency contract where power flips if the wall-plugged device loses its power while a battery-enabled one carries on. As with data, let&#8217;s reduce coupling between hardware and software constraints and push for ports that are able to simply do whatever is needed when it comes to power.</span></p><p><span>However, we can cut a corner here and limit ourselves to 5V only across ports. This is partly to avoid having to add DC-DC converters and further support circuitry on each separate port that would&#8217;ve allowed it to independently climb up to 20V. After all, we need to charge phones and tablets as slowly as possible anyway, in order to avoid heat buildup and maintain battery life. We need to be able to dynamically charge them a bit faster than they drain, though, so hard-coding 5V@0.5A wouldn&#8217;t cut it. The 5V simplification largely does lock us out of being able to power laptops through vendor-specific adapters, though I think the vast majority of people just use the original power-brick cables. We&#8217;re not touching AC in this version, so anything other than a phone or tablet needs to separately plug into its own power outlet.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GJ1J!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d8300f5-a03b-43e5-bd6f-0190eb7ff25a_4032x2268.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GJ1J!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d8300f5-a03b-43e5-bd6f-0190eb7ff25a_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!GJ1J!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d8300f5-a03b-43e5-bd6f-0190eb7ff25a_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!GJ1J!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d8300f5-a03b-43e5-bd6f-0190eb7ff25a_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!GJ1J!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d8300f5-a03b-43e5-bd6f-0190eb7ff25a_4032x2268.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GJ1J!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d8300f5-a03b-43e5-bd6f-0190eb7ff25a_4032x2268.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3d8300f5-a03b-43e5-bd6f-0190eb7ff25a_4032x2268.jpeg&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;:499321,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://littlecloud.ngo/i/211829323?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d8300f5-a03b-43e5-bd6f-0190eb7ff25a_4032x2268.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!GJ1J!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d8300f5-a03b-43e5-bd6f-0190eb7ff25a_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!GJ1J!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d8300f5-a03b-43e5-bd6f-0190eb7ff25a_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!GJ1J!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d8300f5-a03b-43e5-bd6f-0190eb7ff25a_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!GJ1J!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d8300f5-a03b-43e5-bd6f-0190eb7ff25a_4032x2268.jpeg 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">Thinking through how little cloud could power worker devices, and how it could rely on them if its own power goes out.</figcaption></figure></div><p></p><p><strong><span>manager</span></strong></p><p><span>The manager chip needs to be a bit beefier than the port-facing MCU(s). One option is to go with a tiny Linux-capable microprocessor (MPU) with co-packaged RAM to avoid having to route (and buy) dedicated RAM chips. Allwinner MPUs seem decent at  around 4$ at 1K volume via Chinese distributor LCSC, depending on the exact model. They have 64-256 MB of RAM, &gt;1GHz processing, and all kinds of handy peripherals. Our bill of materials (BOM) could swallow ~4$ given it&#8217;d be a single MPU per board. Compare that to per-port MCUs that plummet under ~1$ really fast at higher volumes.</span></p><p><span>We could also just go with a beefier MCU for the manager. There are ecosystems like Zephyr OS, backed by the Linux Foundation, which provide mature networking stacks and other handy utilities designed to fit in the KBs of RAM of an MCU. Going for an MCU brain would also consolidate the software toolchain, and might constantly force the removal of non-essential features to keep things lean. I&#8217;m not sure if it&#8217;d be beefy enough to orchestrate and network the worker devices, though. Plus I think targeting an MCU with an Yggdrasil build would be extremely difficult, even though WireGuard has been ported to MCUs successfully as another VPN technology.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Yj1G!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F436a74d0-250e-44cf-bb4a-b32c8e856fb3_4032x2268.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Yj1G!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F436a74d0-250e-44cf-bb4a-b32c8e856fb3_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Yj1G!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F436a74d0-250e-44cf-bb4a-b32c8e856fb3_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Yj1G!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F436a74d0-250e-44cf-bb4a-b32c8e856fb3_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Yj1G!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F436a74d0-250e-44cf-bb4a-b32c8e856fb3_4032x2268.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Yj1G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F436a74d0-250e-44cf-bb4a-b32c8e856fb3_4032x2268.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/436a74d0-250e-44cf-bb4a-b32c8e856fb3_4032x2268.jpeg&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;:846268,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://littlecloud.ngo/i/211829323?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F436a74d0-250e-44cf-bb4a-b32c8e856fb3_4032x2268.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Yj1G!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F436a74d0-250e-44cf-bb4a-b32c8e856fb3_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Yj1G!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F436a74d0-250e-44cf-bb4a-b32c8e856fb3_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Yj1G!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F436a74d0-250e-44cf-bb4a-b32c8e856fb3_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Yj1G!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F436a74d0-250e-44cf-bb4a-b32c8e856fb3_4032x2268.jpeg 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">Thinking through the brains of the operation, probably some microcontroller or microprocessor.</figcaption></figure></div><p></p><p><strong><span>auxiliary</span></strong></p><p><span>Besides the port MCUs and the manager MPU, the top signal layer will likely need to be populated with a few other things as well. A few gigabytes of persistent storage in some flash chip would be handy for storing prebuilt images or binaries for pushing on worker devices during recruitment. We&#8217;d also have the miniPCIe slot gated by a pin multiplexer for accommodating future long-range radio, as foreshadowed in earlier updates. We could also throw in an RJ45 port, integrated into a MagJack to avoid worrying about magnetics ourselves, as an internet uplink for when we lack worker devices equiped with radios of their own, such as some desktops and most servers.</span></p><p><span>We also need some components to handle the incoming power responsible for little cloud&#8217;s own chips, as well as for any phone and tablet workers it powers. We settled on having laptops, desktops, and servers get their own power separately, though maybe we could at least integrate some hidden tray for storing the laptop power-bricks. Little cloud should be able to negotiate as much power as it needs via PD from its upstream USB-C power supply, such that it can charge phones and tablets a hair faster than they drain. It can locally negotiate above 5V, but we should clean that up and convert it to 5V as soon as possible.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!T6ll!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28dd6f10-72fc-4714-8107-c380442574ba_4032x2268.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!T6ll!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28dd6f10-72fc-4714-8107-c380442574ba_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!T6ll!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28dd6f10-72fc-4714-8107-c380442574ba_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!T6ll!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28dd6f10-72fc-4714-8107-c380442574ba_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!T6ll!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28dd6f10-72fc-4714-8107-c380442574ba_4032x2268.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!T6ll!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28dd6f10-72fc-4714-8107-c380442574ba_4032x2268.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/28dd6f10-72fc-4714-8107-c380442574ba_4032x2268.jpeg&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;:769414,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://littlecloud.ngo/i/211829323?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28dd6f10-72fc-4714-8107-c380442574ba_4032x2268.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!T6ll!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28dd6f10-72fc-4714-8107-c380442574ba_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!T6ll!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28dd6f10-72fc-4714-8107-c380442574ba_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!T6ll!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28dd6f10-72fc-4714-8107-c380442574ba_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!T6ll!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28dd6f10-72fc-4714-8107-c380442574ba_4032x2268.jpeg 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">Thinking through what other kinds of components we&#8217;d need on the circuit board given our constraints.</figcaption></figure></div><p></p><p><strong><span>stackup</span></strong></p><p><span>It might drastically simplify routing to then dedicate an entire internal PCB layer to our unified 5V, turning it into our power plane. Then, from anywhere on the top signal layer, we can use several vias and a copper pour to tap into 5V directly. Similarly, a ground plane would also be pretty handy for routing, and also useful for shielding during certification tests. We mainly get the bottom signal layer for crossing below other intersecting traces, maybe also with some extra writing on that bottom silkscreen. We&#8217;d try to use co-packaged RAM and avoid ultra-dense footprints in order to get away with just two signal layers and simpler signal routing. This gets us better hand-solderability and repairability as a bonus.</span></p><p><span>That would leave us with four PCB layers in total. Even if a bit more expensive than bare 2-layer boards, I think it&#8217;d vastly simplify the design, especially given the non-trivial currents we&#8217;d be moving around. These would have otherwise required chunky traces all over the place if it weren&#8217;t for a dedicated power plane. Plugging some numbers into JLCPCB&#8217;s online price calculator, we find that a 45 x 5 cm 4-layer board with default settings is around 2.5$ at 1K volume, compared to 1.7$ for a 2-layer one. I&#8217;ll take the easier power routing, especially given the MCUs and MPU would probably be at least 10$ together.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dsmW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb47fa5a0-e500-4dde-925c-d243ef648a4c_4032x2268.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dsmW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb47fa5a0-e500-4dde-925c-d243ef648a4c_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!dsmW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb47fa5a0-e500-4dde-925c-d243ef648a4c_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!dsmW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb47fa5a0-e500-4dde-925c-d243ef648a4c_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!dsmW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb47fa5a0-e500-4dde-925c-d243ef648a4c_4032x2268.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dsmW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb47fa5a0-e500-4dde-925c-d243ef648a4c_4032x2268.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b47fa5a0-e500-4dde-925c-d243ef648a4c_4032x2268.jpeg&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;:599702,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://littlecloud.ngo/i/211829323?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb47fa5a0-e500-4dde-925c-d243ef648a4c_4032x2268.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dsmW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb47fa5a0-e500-4dde-925c-d243ef648a4c_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!dsmW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb47fa5a0-e500-4dde-925c-d243ef648a4c_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!dsmW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb47fa5a0-e500-4dde-925c-d243ef648a4c_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!dsmW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb47fa5a0-e500-4dde-925c-d243ef648a4c_4032x2268.jpeg 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">Thinking through the circuit board layer stackup, probably two outer signal planes, and two internal power ones.</figcaption></figure></div>]]></content:encoded></item><item><title><![CDATA[build log #3 · user journey, network topology]]></title><description><![CDATA[This week, we'll sketch out the way users would actually reach services hosted on their little clouds.]]></description><link>https://littlecloud.ngo/p/build-log-3-user-journey-network</link><guid isPermaLink="false">https://littlecloud.ngo/p/build-log-3-user-journey-network</guid><dc:creator><![CDATA[Paul Bricman]]></dc:creator><pubDate>Wed, 12 Aug 2026 07:39:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!CGwL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff34bd2d0-99e6-4874-9022-5829e2c65df6_4032x2268.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong><span>fork</span></strong></p><p><span>I&#8217;ve recently been thinking about a tension inherent to little cloud and how to resolve it. On one hand, it&#8217;s important for it to be convenient to set up and use, such that anyone could turn their unused electronics into platforms they can use and rely on. On the other hand, the spirit of the project is in large part about resilience: hardware you own, not corporate data centers; mesh networks, not internet service providers; solar panels, not the energy grid.</span></p><p><span>Here&#8217;s my current best guess as to how to get both the convenience of an integrated solution and the resilience of grassroots infrastructure. There could be two ways for someone to access the platforms hosted on their own little cloud or those of their friends. On one hand, consider a seamless option that can be configured in under a minute, but against which companies and governments still hold the leverage of a kill switch. On the other hand, consider a resilient option that takes ten minutes to initially set up, but which then runs entirely independent from mainstream internet infrastructure.</span></p><p><span>Crucially, it would be possible to upgrade your setup to resilient mode later, such as during an internet blackout or under a compute surveillance regime, based on instructions bundled with the device itself. The mere presence of a credible option to switch away from classic infrastructure might be a partial deterrent against overreaching authorities.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CGwL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff34bd2d0-99e6-4874-9022-5829e2c65df6_4032x2268.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CGwL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff34bd2d0-99e6-4874-9022-5829e2c65df6_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!CGwL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff34bd2d0-99e6-4874-9022-5829e2c65df6_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!CGwL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff34bd2d0-99e6-4874-9022-5829e2c65df6_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!CGwL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff34bd2d0-99e6-4874-9022-5829e2c65df6_4032x2268.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CGwL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff34bd2d0-99e6-4874-9022-5829e2c65df6_4032x2268.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f34bd2d0-99e6-4874-9022-5829e2c65df6_4032x2268.jpeg&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;:485707,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://littlecloud.ngo/i/210866071?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff34bd2d0-99e6-4874-9022-5829e2c65df6_4032x2268.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CGwL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff34bd2d0-99e6-4874-9022-5829e2c65df6_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!CGwL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff34bd2d0-99e6-4874-9022-5829e2c65df6_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!CGwL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff34bd2d0-99e6-4874-9022-5829e2c65df6_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!CGwL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff34bd2d0-99e6-4874-9022-5829e2c65df6_4032x2268.jpeg 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">Splitting the journey across equivalent seamless and resilient paths.</figcaption></figure></div><p></p><p><strong><span>seamless</span></strong></p><p><span>For the seamless path, I&#8217;m thinking of something along the following vignette. Your little cloud has picked a random identifier during its initial setup, and you can now use your phone to access it by heading over to the matching subdomain of littlecloud.ngo. Because your phone has been previously bound to your little cloud&#8217;s account using passkeys, you can then sign in without using a password or magic link. That&#8217;s it.</span></p><p><span>On this seamless path, however, we rely on: third-party DNS resolvers to recognize the domain, third-party certificate authorities for the HTTPS certificate, a centralized gateway into the little network, as well as the tons of third-party plumbing between these components. But this allows us to simply visit our URL from any device and just sign in, all without having to remember a password.</span></p><p><span>Unbeknownst to disinterested users, the random identifier of their little cloud simply encodes its Yggdrasil address. Yggdrasil is similar to a VPN like Tailscale, in that it allows nodes across different local networks to talk to each other. However, unlike Tailscale, it has no centralized coordination server. Who gives out names to each node then? They pick their own random names. Who tells nodes what other nodes are on the network? They gossip with each other automatically to discover peers. The subdomain namespace in the vignette above simply acts as a convenient gateway into the Yggdrasil network, analogous to Tailscale Funnel or Cloudflare Tunnels.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vC_s!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf48dea0-a56c-4edf-bcb5-a73907f641d5_4032x2268.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vC_s!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf48dea0-a56c-4edf-bcb5-a73907f641d5_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!vC_s!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf48dea0-a56c-4edf-bcb5-a73907f641d5_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!vC_s!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf48dea0-a56c-4edf-bcb5-a73907f641d5_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!vC_s!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf48dea0-a56c-4edf-bcb5-a73907f641d5_4032x2268.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vC_s!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf48dea0-a56c-4edf-bcb5-a73907f641d5_4032x2268.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bf48dea0-a56c-4edf-bcb5-a73907f641d5_4032x2268.jpeg&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;:580332,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://littlecloud.ngo/i/210866071?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf48dea0-a56c-4edf-bcb5-a73907f641d5_4032x2268.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vC_s!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf48dea0-a56c-4edf-bcb5-a73907f641d5_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!vC_s!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf48dea0-a56c-4edf-bcb5-a73907f641d5_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!vC_s!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf48dea0-a56c-4edf-bcb5-a73907f641d5_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!vC_s!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf48dea0-a56c-4edf-bcb5-a73907f641d5_4032x2268.jpeg 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">Drawing inspiration from tunneling solutions for the seamless path.</figcaption></figure></div><p></p><p><strong><span>resilient</span></strong></p><p><span>Okay, so you can head over to a URL and sign into your little cloud. But you&#8217;re still at the mercy of various corporate and government actors when trying to remotely access your own tiny cluster or that of your friends. That doesn&#8217;t feel quite right. Fortunately, it only takes ten minutes to make your connection truly resilient, and you&#8217;d be guided step-by-step along the process.</span></p><p><span>First, install Yggdrasil to be able to bypass the gateway and connect directly to little clouds. Second, register a private certificate authority in your device settings, to be able to recognize certificates burned into the little clouds directly. Third, configure your device to use your little cloud&#8217;s own DNS resolver to be able to reach the same domains as before. Assume further that you have a wired, WiFi, or long-distance radio connection to a little cloud, and that it has been equipped with long-distance radio to reach your own one over the mesh network.</span></p><p><span>With such a setup, you&#8217;d be able to sign into your little cloud or those of your friends in the same exact way you were doing before. Only that in this advanced mode, you wouldn&#8217;t encounter any of the traditional third-party middlemen of mainstream internet. And it&#8217;d be okay to ignore this more involved process until the situation actually calls for it. Until then, just go to your URL and press a button to sign in.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!D9Bq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F565e1cc3-42ee-4d46-b6ba-d095eb1b99f0_4032x2268.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!D9Bq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F565e1cc3-42ee-4d46-b6ba-d095eb1b99f0_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!D9Bq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F565e1cc3-42ee-4d46-b6ba-d095eb1b99f0_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!D9Bq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F565e1cc3-42ee-4d46-b6ba-d095eb1b99f0_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!D9Bq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F565e1cc3-42ee-4d46-b6ba-d095eb1b99f0_4032x2268.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!D9Bq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F565e1cc3-42ee-4d46-b6ba-d095eb1b99f0_4032x2268.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/565e1cc3-42ee-4d46-b6ba-d095eb1b99f0_4032x2268.jpeg&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;:423847,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://littlecloud.ngo/i/210866071?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F565e1cc3-42ee-4d46-b6ba-d095eb1b99f0_4032x2268.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!D9Bq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F565e1cc3-42ee-4d46-b6ba-d095eb1b99f0_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!D9Bq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F565e1cc3-42ee-4d46-b6ba-d095eb1b99f0_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!D9Bq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F565e1cc3-42ee-4d46-b6ba-d095eb1b99f0_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!D9Bq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F565e1cc3-42ee-4d46-b6ba-d095eb1b99f0_4032x2268.jpeg 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">The resilient path should be able to run on grassroots infrastructure.</figcaption></figure></div><p></p><p><strong><span>binding</span></strong></p><p><span>What about the initial sign up before being able to sign into your account? One option would be to allow the owners of a little cloud to configure it such that anyone who can reach it can create an account. I&#8217;d personally not be too fond of this setup, but people should be free to decide what they&#8217;re willing to do with the devices they own.</span></p><p><span>Another option would be to take advantage of the inherent access controls inherent to the physical device. If it&#8217;s running inside a home, for instance, physical access is already restricted to a trusted circle of family and friends. So what if you had to initially be present near little cloud for getting access to it? Inherit the culture-specific access controls implicit to different types of spaces directly.</span></p><p><span>Maybe to bind your client device to little cloud, you initially need a wired connection to one of its many ports. For adding new devices, maybe you either connect your already-paired and not-yet-paired devices at the same time. Or scan a code between them. Either way, identity should remain federated to avoid having to &#8220;sign in with&#8221; a centralized identity provider.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GC5o!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06ea68f7-2349-4f56-8c67-e9a3fb166c77_4032x2268.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GC5o!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06ea68f7-2349-4f56-8c67-e9a3fb166c77_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!GC5o!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06ea68f7-2349-4f56-8c67-e9a3fb166c77_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!GC5o!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06ea68f7-2349-4f56-8c67-e9a3fb166c77_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!GC5o!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06ea68f7-2349-4f56-8c67-e9a3fb166c77_4032x2268.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GC5o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06ea68f7-2349-4f56-8c67-e9a3fb166c77_4032x2268.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/06ea68f7-2349-4f56-8c67-e9a3fb166c77_4032x2268.jpeg&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;:496156,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://littlecloud.ngo/i/210866071?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06ea68f7-2349-4f56-8c67-e9a3fb166c77_4032x2268.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!GC5o!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06ea68f7-2349-4f56-8c67-e9a3fb166c77_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!GC5o!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06ea68f7-2349-4f56-8c67-e9a3fb166c77_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!GC5o!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06ea68f7-2349-4f56-8c67-e9a3fb166c77_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!GC5o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06ea68f7-2349-4f56-8c67-e9a3fb166c77_4032x2268.jpeg 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">Physical proximity to little cloud as authorization gate.</figcaption></figure></div><p></p><p><strong><span>setup</span></strong></p><p><span>Before you can sign into your account, and before you can create an account, you need to first turn your little cloud on and configure it in the first place. This boils down to connecting it to the network and adding your old electronics as worker devices.</span></p><p><span>There are a few options I considered for a setup wizard. Maybe you turn a worker device with a screen into a control panel. But that requires you to have already recruited it and to have such a screen-enabled worker device. Maybe you hook it up to a monitor or TV to double as a media system. But then you might also need a keyboard, which gets awkward. I&#8217;d like to avoid dedicated WiFi or Bluetooth for the first version, which rules out access points and smart-home-like apps as setup pathways. On-device screens and buttons might be frustratingly tiny on a 1U-tall rack-mountable box.</span></p><p><span>The more promising option is inspired by reMarkable&#8217;s tablet ecosystem. It has this interesting web interface that you can access from any browser once you have a wired connection to the tablet. People could use their existing daily-driver devices to configure little cloud by simply connecting to it via a single USB cable and visiting a URL. There, you could handle these initial device setup issues, such as adding worker devices or using their existing radios to connect to WiFi or mobile data.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JPM4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8690a5ca-781a-4df1-86db-ece87503e4a8_4032x2268.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JPM4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8690a5ca-781a-4df1-86db-ece87503e4a8_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!JPM4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8690a5ca-781a-4df1-86db-ece87503e4a8_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!JPM4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8690a5ca-781a-4df1-86db-ece87503e4a8_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!JPM4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8690a5ca-781a-4df1-86db-ece87503e4a8_4032x2268.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JPM4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8690a5ca-781a-4df1-86db-ece87503e4a8_4032x2268.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8690a5ca-781a-4df1-86db-ece87503e4a8_4032x2268.jpeg&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;:498006,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://littlecloud.ngo/i/210866071?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8690a5ca-781a-4df1-86db-ece87503e4a8_4032x2268.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!JPM4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8690a5ca-781a-4df1-86db-ece87503e4a8_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!JPM4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8690a5ca-781a-4df1-86db-ece87503e4a8_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!JPM4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8690a5ca-781a-4df1-86db-ece87503e4a8_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!JPM4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8690a5ca-781a-4df1-86db-ece87503e4a8_4032x2268.jpeg 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">Drawing inspiration from reMarkable for web interfaces over USB tethering.</figcaption></figure></div>]]></content:encoded></item><item><title><![CDATA[build log #2 · form factor, enclosure process]]></title><description><![CDATA[This week, we explore possible form factors for the device that turns your old electronics into your own little cloud.]]></description><link>https://littlecloud.ngo/p/build-log-2</link><guid isPermaLink="false">https://littlecloud.ngo/p/build-log-2</guid><dc:creator><![CDATA[Paul Bricman]]></dc:creator><pubDate>Wed, 05 Aug 2026 08:38:04 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!OR56!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a1399d5-c89e-44a8-92b8-f1a26b8a4932_4032x2268.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong><span>bays</span></strong></p><p><span>These first few log entries will continue to break down the concept of a device that turns your old devices into a personal cloud.</span></p><p><span>One option I&#8217;ve considered for the form factor of &#8220;little cloud&#8221; is that of a network-attached storage unit, or NAS. These typically house a bunch of HDDs or SSDs in neat little bays. The idea here was that you could slot in your old smartphones, tablets, and laptops into dedicated bays. The upside being that it would wrap the mess of different devices into a visually coherent system of matching containers.</span></p><p><span>However, there are quite a few downsides. First, each worker device would require its own bay, increasing the manufacturing costs of a product that is explicitly about reviving e-waste. Second, because smartphones, tablets, and laptops would require bays of different sizes, it would add friction to the process of integrating a patchwork of worker devices. Third, I don&#8217;t think wrapping each device into its own container is too useful for airflow and cooling.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OR56!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a1399d5-c89e-44a8-92b8-f1a26b8a4932_4032x2268.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OR56!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a1399d5-c89e-44a8-92b8-f1a26b8a4932_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!OR56!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a1399d5-c89e-44a8-92b8-f1a26b8a4932_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!OR56!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a1399d5-c89e-44a8-92b8-f1a26b8a4932_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!OR56!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a1399d5-c89e-44a8-92b8-f1a26b8a4932_4032x2268.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OR56!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a1399d5-c89e-44a8-92b8-f1a26b8a4932_4032x2268.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5a1399d5-c89e-44a8-92b8-f1a26b8a4932_4032x2268.jpeg&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;:697184,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://littlecloud.ngo/i/209896856?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a1399d5-c89e-44a8-92b8-f1a26b8a4932_4032x2268.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!OR56!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a1399d5-c89e-44a8-92b8-f1a26b8a4932_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!OR56!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a1399d5-c89e-44a8-92b8-f1a26b8a4932_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!OR56!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a1399d5-c89e-44a8-92b8-f1a26b8a4932_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!OR56!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a1399d5-c89e-44a8-92b8-f1a26b8a4932_4032x2268.jpeg 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">NAS bays as inspiration for housing multiple devices.</figcaption></figure></div><p></p><p><strong><span>stations</span></strong></p><p><span>Another possible form factor would be the general category of charging stations, docks, and stands. Many of these are already trying to accommodate a range of consumer devices with different form factors, if you think about it. They also tend to have many ports, such that they can physically connect to each and every device, though newer ones lean into wireless charging.</span></p><p><span>In contrast to the bay systems, these charging stations are quite efficient in terms of material. Each device barely gets a flap to rest on. Because of that, they&#8217;re also not too prescriptive about exactly what kind of device you&#8217;re allowed to connect where.</span></p><p><span>When it comes to cooling, I&#8217;m not too sure. This would be a situation where the components that dissipate heat (i.e., the worker devices) would be somewhat outside of our device&#8217;s main enclosure, merely resting on top of it. Contrast this to desktop cases or rack-mounted servers, where the hot components are often in the middle of an air tunnel whose geometry has been carefully tuned. Exposing junk electronics right on top might also create some amount of visual clutter, though maybe at least cables could run down the back side.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mEwB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58227410-8960-4ff7-812c-81a93e11db34_4032x2268.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mEwB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58227410-8960-4ff7-812c-81a93e11db34_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!mEwB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58227410-8960-4ff7-812c-81a93e11db34_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!mEwB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58227410-8960-4ff7-812c-81a93e11db34_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!mEwB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58227410-8960-4ff7-812c-81a93e11db34_4032x2268.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mEwB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58227410-8960-4ff7-812c-81a93e11db34_4032x2268.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/58227410-8960-4ff7-812c-81a93e11db34_4032x2268.jpeg&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;:510402,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://littlecloud.ngo/i/209896856?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58227410-8960-4ff7-812c-81a93e11db34_4032x2268.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!mEwB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58227410-8960-4ff7-812c-81a93e11db34_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!mEwB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58227410-8960-4ff7-812c-81a93e11db34_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!mEwB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58227410-8960-4ff7-812c-81a93e11db34_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!mEwB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58227410-8960-4ff7-812c-81a93e11db34_4032x2268.jpeg 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">Charging stations as inspiration for connecting diverse devices.</figcaption></figure></div><p></p><p><strong><span>racks</span></strong></p><p><span>In the previous log entry, we emphasized the overlap in responsibility between little cloud and traditional enterprise equipment, such as network switches. Rack-mountable equipment has been optimized to allow for connectivity between densely packed devices. Accordingly, they tend to boast dozens of ports on their front and back panels, always accompanied by clear labels and grouped using visual cues.</span></p><p><span>It would be nice if little cloud adopted the general form of a charging station, but whose base housing happened to also be compatible with rack-mounted standards. This would allow it to be used at home by placing small consumer e-waste on top of it, but it would also allow it to be used in actual racks filled with enterprise e-waste.</span></p><p><span>The latter would make this product slot right into a </span><a href="https://aptecom.org/cursuri/"><span>related initiative</span></a><span> I&#8217;m involved with, where we&#8217;re redirecting data center e-waste into high schools and universities for students to run their own local platforms on them. We&#8217;d get a unified plug-and-play device for reviving e-waste ranging from smartphone all the way to server caliber. That level of consolidation would be pretty sweet.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-4Ow!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd70389c9-e848-464b-8af9-1344e9c1331e_4032x2268.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-4Ow!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd70389c9-e848-464b-8af9-1344e9c1331e_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!-4Ow!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd70389c9-e848-464b-8af9-1344e9c1331e_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!-4Ow!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd70389c9-e848-464b-8af9-1344e9c1331e_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!-4Ow!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd70389c9-e848-464b-8af9-1344e9c1331e_4032x2268.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-4Ow!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd70389c9-e848-464b-8af9-1344e9c1331e_4032x2268.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d70389c9-e848-464b-8af9-1344e9c1331e_4032x2268.jpeg&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;:503842,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://littlecloud.ngo/i/209896856?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd70389c9-e848-464b-8af9-1344e9c1331e_4032x2268.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-4Ow!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd70389c9-e848-464b-8af9-1344e9c1331e_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!-4Ow!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd70389c9-e848-464b-8af9-1344e9c1331e_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!-4Ow!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd70389c9-e848-464b-8af9-1344e9c1331e_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!-4Ow!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd70389c9-e848-464b-8af9-1344e9c1331e_4032x2268.jpeg 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">Rack-mountable equipment as inspiration for managing dense connectivity.</figcaption></figure></div><p></p><p><strong><span>process</span></strong></p><p><span>3D printing the enclosure won&#8217;t cut it, both because it doesn&#8217;t scale favorably with volume, but also because we might be dealing with quite a bit of power inside this enclosure. Typical filament isn&#8217;t really well-suited for this, and this would turn into a real liability during product safety certification. Injection molding is how plastic enclosures scale instead, but the upfront cost for a production run is prohibitive.</span></p><p><span>Sheet metal is quite interesting here, it&#8217;s a bit like folding cardboard but instead with aluminum or steel. Excellent thermal conductivity. Cheap to prototype, but also scales favorably with higher volumes. If our geometry boils down to a basic box with maybe some flaps and legs, then manufacturability wouldn&#8217;t be an issue. We don&#8217;t really need the ability of 3D printing to create intricate internal structures.</span></p><p><span>I found some fascinating precedents from Teenage Engineering that exploit the similarity between sheet metal and folding cardboard. Their </span><a href="https://teenage.engineering/products/computer-1"><span>computer-1</span></a><span> desktop case ships with metal sheets that they&#8217;ve cut with a CNC, but that they haven&#8217;t yet actually bent. The end-user is able to bend the sheets and screw them together, probably creating some degree of Ikea effect in the process. They did the same with their </span><a href="https://teenage.engineering/products/po/modular"><span>pocket operator modular</span></a><span> series, they ship the flat sheets and call on the end-user for the final assembly. Such a DIY option might simplify manufacturing and delivery.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Nb-Q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe727d519-8216-48ea-a053-5735fa3a4492_4032x2268.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Nb-Q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe727d519-8216-48ea-a053-5735fa3a4492_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Nb-Q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe727d519-8216-48ea-a053-5735fa3a4492_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Nb-Q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe727d519-8216-48ea-a053-5735fa3a4492_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Nb-Q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe727d519-8216-48ea-a053-5735fa3a4492_4032x2268.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Nb-Q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe727d519-8216-48ea-a053-5735fa3a4492_4032x2268.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e727d519-8216-48ea-a053-5735fa3a4492_4032x2268.jpeg&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;:633042,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://littlecloud.ngo/i/209896856?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe727d519-8216-48ea-a053-5735fa3a4492_4032x2268.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Nb-Q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe727d519-8216-48ea-a053-5735fa3a4492_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Nb-Q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe727d519-8216-48ea-a053-5735fa3a4492_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Nb-Q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe727d519-8216-48ea-a053-5735fa3a4492_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Nb-Q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe727d519-8216-48ea-a053-5735fa3a4492_4032x2268.jpeg 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">Unfolding a rack-mountable box in different ways.</figcaption></figure></div><p></p><p><strong><span>modularity</span></strong></p><p><span>For computer-1, the top handles mount to a grill pattern drilled into the metal sheet. I think it was just a neat way for them to mount the handles without digging further holes outside the regular grid. However, think about what such geometry could enable in our case. You could move the flaps for worker devices around freely, depending on their unique shapes and sizes. You could also take them off entirely if doing a rack-mounted setup with servers only.</span></p><p><span>If mirrored on the bottom side, the hole matrix could also allow the legs to be adjusted. This could make little cloud sit well on either a flat surface or an old desktop that has been recruited into the cluster, as well. Internally, you could also mount stand-offs against the same grill to hold circuit boards, fans, and other components. Not to speak of the original purpose of the computer-1 grill, which was probably airflow.</span></p><p><span>Pulling these threads back together, we get to what looks like a somewhat large charging station built out of sheet metal, whose base enclosure happens to be rack-mountable. Its top and bottom sides are perforated to allow for flexible mounting options, while its front and back sides have clear labels that organize its many ports. Finally, it might be available in the form of a cheaper DIY kit that you assemble yourself.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JFJZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32008042-2c0b-45de-b234-783a9cd251b2_4032x2268.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JFJZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32008042-2c0b-45de-b234-783a9cd251b2_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!JFJZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32008042-2c0b-45de-b234-783a9cd251b2_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!JFJZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32008042-2c0b-45de-b234-783a9cd251b2_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!JFJZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32008042-2c0b-45de-b234-783a9cd251b2_4032x2268.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JFJZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32008042-2c0b-45de-b234-783a9cd251b2_4032x2268.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/32008042-2c0b-45de-b234-783a9cd251b2_4032x2268.jpeg&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;:618238,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://littlecloud.ngo/i/209896856?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32008042-2c0b-45de-b234-783a9cd251b2_4032x2268.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!JFJZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32008042-2c0b-45de-b234-783a9cd251b2_4032x2268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!JFJZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32008042-2c0b-45de-b234-783a9cd251b2_4032x2268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!JFJZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32008042-2c0b-45de-b234-783a9cd251b2_4032x2268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!JFJZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32008042-2c0b-45de-b234-783a9cd251b2_4032x2268.jpeg 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">Thinking through the functionality that grill patterns could unlock.</figcaption></figure></div><p></p>]]></content:encoded></item><item><title><![CDATA[build log #1 · product brief, development roadmap]]></title><description><![CDATA[This week, we lay out a roadmap for building a device that turns your old electronics into your own little cloud.]]></description><link>https://littlecloud.ngo/p/build-log-1</link><guid isPermaLink="false">https://littlecloud.ngo/p/build-log-1</guid><dc:creator><![CDATA[Paul Bricman]]></dc:creator><pubDate>Wed, 29 Jul 2026 15:13:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Ybg2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb72394a-6d82-40db-a78d-c85a38fe1494_2000x1126.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>focus</strong></p><p><span>This newsletter is about the journey of bringing to life a physical product from scratch, from concept all the way to manufacturing.</span></p><p><span>The product we&#8217;ll be building along the way is a device that allows you to take your existing, old electronics and instantly turn them into your own little cloud.</span></p><p><span>Think about all the smartphones, tablets, laptops, and maybe even desktops that are sitting in your junk drawer and simply collecting dust. What if you could connect these devices you already own into a cluster of tiny computers that can host all kinds of platforms for you? What if you didn&#8217;t have to be a sysadmin professional to do it, and instead you had a plug-and-play experience? Maybe you could get these to handle cloud storage, music streaming, or even language models, all without relying on subscriptions to Big Tech. That&#8217;s the pitch, that&#8217;s what we&#8217;re building.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Ybg2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb72394a-6d82-40db-a78d-c85a38fe1494_2000x1126.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ybg2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb72394a-6d82-40db-a78d-c85a38fe1494_2000x1126.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Ybg2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb72394a-6d82-40db-a78d-c85a38fe1494_2000x1126.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Ybg2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb72394a-6d82-40db-a78d-c85a38fe1494_2000x1126.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Ybg2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb72394a-6d82-40db-a78d-c85a38fe1494_2000x1126.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ybg2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb72394a-6d82-40db-a78d-c85a38fe1494_2000x1126.jpeg" width="1456" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/db72394a-6d82-40db-a78d-c85a38fe1494_2000x1126.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:201637,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://thelittlecloud.substack.com/i/208985745?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb72394a-6d82-40db-a78d-c85a38fe1494_2000x1126.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Ybg2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb72394a-6d82-40db-a78d-c85a38fe1494_2000x1126.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Ybg2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb72394a-6d82-40db-a78d-c85a38fe1494_2000x1126.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Ybg2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb72394a-6d82-40db-a78d-c85a38fe1494_2000x1126.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Ybg2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb72394a-6d82-40db-a78d-c85a38fe1494_2000x1126.jpeg 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">I&#8217;ll share snippets from my notebook here and there.</figcaption></figure></div><p></p><p><strong><span>background</span></strong></p><p><span>If you&#8217;ve got a bunch of old devices stuffed in a drawer somewhere, you&#8217;re not alone. Surveys </span><a href="https://www.securedatarecovery.com/blog/states-most-and-worst-tech-hoarders"><span>estimate</span></a><span> that around four out of five US residents hoard unused smartphones. For tablets, the figure is around two out of three. Similar for laptops. That&#8217;s a lot of devices.</span></p><p><span>Even when electronics are recycled at authorized e-waste processors, </span><a href="https://www.rreuse.org/publications/rreuse-s-call-for-a-right-to-reuse-in-the-weee-directive#:~:text=The%20current%20directive%20falls%20short,%2C%20at%20less%20than%202%25."><span>less than 2%</span></a><span> actually get reused in the EU. Most of them are reduced to raw metals, even if the majority of devices are still functional.</span></p><p><span>You can also ask language models to deep research the total processing power of hoarded devices and e-waste, and compare that to Big Tech data centers. It turns out that the sum total of consumer junk and e-waste lands comfortably above the largest data center, and around the total amount of compute across flagship AI data centers. But it is much more scattered and diverse, and so difficult to coordinate.</span></p><p><span>Now, you might be skeptical that your smartphone can compare to a GPU. Let&#8217;s use a concrete example, take my Pixel 8 from a few years back and an Nvidia GTX 1070 I pulled from a desktop. Both of them can have around 8 GB of GPU-available memory. The Pixel&#8217;s GPU has around 30x more half-precision throughput, while at the same time drawing 30x less power. However, the Nvidia card has 5x higher bandwidth between its memory and the actual cores, and much better cooling. It&#8217;s fair to say they&#8217;re at least trading blows, and both can run tiny language models alright.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lyhr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40d754f4-007a-4423-83a2-585761121416_2000x1126.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lyhr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40d754f4-007a-4423-83a2-585761121416_2000x1126.jpeg 424w, https://substackcdn.com/image/fetch/$s_!lyhr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40d754f4-007a-4423-83a2-585761121416_2000x1126.jpeg 848w, https://substackcdn.com/image/fetch/$s_!lyhr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40d754f4-007a-4423-83a2-585761121416_2000x1126.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!lyhr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40d754f4-007a-4423-83a2-585761121416_2000x1126.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lyhr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40d754f4-007a-4423-83a2-585761121416_2000x1126.jpeg" width="1456" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/40d754f4-007a-4423-83a2-585761121416_2000x1126.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:153297,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://thelittlecloud.substack.com/i/208985745?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40d754f4-007a-4423-83a2-585761121416_2000x1126.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lyhr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40d754f4-007a-4423-83a2-585761121416_2000x1126.jpeg 424w, https://substackcdn.com/image/fetch/$s_!lyhr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40d754f4-007a-4423-83a2-585761121416_2000x1126.jpeg 848w, https://substackcdn.com/image/fetch/$s_!lyhr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40d754f4-007a-4423-83a2-585761121416_2000x1126.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!lyhr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40d754f4-007a-4423-83a2-585761121416_2000x1126.jpeg 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">Smartphone running a language model locally, next to a dedicated GPU.</figcaption></figure></div><p></p><p><strong><span>features</span></strong></p><p><span>Let&#8217;s get back to the product we&#8217;ll be building. To recap, &#8220;little cloud&#8221; will be a device that can physically connect to a bunch of other devices with wildly different form factors and computational resources.</span></p><p><span>On a hardware level, this new device will be responsible for handling the power, network, control, and cooling of the tiny computers attached to it. It effectively needs to bundle together the roles of several traditional pieces of enterprise equipment: a power distribution unit, a network switch, a KVM switch, and a coolant distribution unit.</span></p><p><span>On a software level, it will be responsible for automatically &#8220;recruiting&#8221; the diverse worker devices into a unified cluster, across which it can then orchestrate workloads to ensure users gain access to the platforms they want. It effectively needs to handle the job of traditional on-premises tooling used to define and run bare metal fleets, such as Talos and Kubernetes.</span></p><p><span>We&#8217;ll partially rule out some features to preserve focus for an initial version. First, we&#8217;ll leave an expansion slot for an eventual long-distance radio module, such that people will be able to connect their tiny personal clusters into a &#8220;little network&#8221; without relying on their internet service providers. Second, we&#8217;ll avoid adding connectors specific to solar power, but we&#8217;ll make sure portable panels with USB-C outputs can still be used to help people partially power their little clouds without relying on the grid.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!y-a8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8c1a3bc-1757-4ec0-9bb1-8b1210e64513_2000x1126.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!y-a8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8c1a3bc-1757-4ec0-9bb1-8b1210e64513_2000x1126.jpeg 424w, https://substackcdn.com/image/fetch/$s_!y-a8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8c1a3bc-1757-4ec0-9bb1-8b1210e64513_2000x1126.jpeg 848w, https://substackcdn.com/image/fetch/$s_!y-a8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8c1a3bc-1757-4ec0-9bb1-8b1210e64513_2000x1126.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!y-a8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8c1a3bc-1757-4ec0-9bb1-8b1210e64513_2000x1126.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!y-a8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8c1a3bc-1757-4ec0-9bb1-8b1210e64513_2000x1126.jpeg" width="1456" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f8c1a3bc-1757-4ec0-9bb1-8b1210e64513_2000x1126.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:196925,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://thelittlecloud.substack.com/i/208985745?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8c1a3bc-1757-4ec0-9bb1-8b1210e64513_2000x1126.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!y-a8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8c1a3bc-1757-4ec0-9bb1-8b1210e64513_2000x1126.jpeg 424w, https://substackcdn.com/image/fetch/$s_!y-a8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8c1a3bc-1757-4ec0-9bb1-8b1210e64513_2000x1126.jpeg 848w, https://substackcdn.com/image/fetch/$s_!y-a8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8c1a3bc-1757-4ec0-9bb1-8b1210e64513_2000x1126.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!y-a8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8c1a3bc-1757-4ec0-9bb1-8b1210e64513_2000x1126.jpeg 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">WiFi HaLow card attached to an mPCIe slot, enabling long-range networking.</figcaption></figure></div><p></p><p><strong><span>development</span></strong></p><p><span>We want to build towards a collection of files that can then be sent directly to manufacturing houses. These standardized files taken together specify the entire product, from the enclosure through the printed circuit board to the firmware, and allow the product to be manufactured reproducibly across fabs. This is known as &#8220;digital fabrication,&#8221; and allows us to avoid having to rely on any one particular manufacturing business.</span></p><p><span>We&#8217;ll use Onshape for modeling the enclosure and KiCAD for the printed circuit board, mostly because they&#8217;re the only CAD tools I know for these respective jobs. Here&#8217;s a picture of an open frame rig for which I used Onshape to model the mounts for the computer parts, it was pretty okay to work with. We&#8217;ll use Rust for low-level software, as it seems to have a decent path to native hardware on mobile devices, and because it&#8217;s the only language I used to get language models to run on consumer devices. It was GPT-2 </span><a href="https://github.com/paulbricman/dual-server/blob/master/src/nlp.rs"><span>back then</span></a><span>, simpler times.</span></p><p><span>The design files would be open. The litmus test for openness here is whether someone has all the files they need get their own device built directly with a turnkey manufacturer. However, economies of scale help drive down costs significantly at higher volumes, and so people should be able to participate in those savings. We&#8217;ll probably aim for a first real production run through a platform like Crowdsupply, which helps open hardware projects with crowdfunding and fulfillment logistics.</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RrMt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90f0de50-94f1-4f73-a3cc-547a104d27a5_2000x1126.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RrMt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90f0de50-94f1-4f73-a3cc-547a104d27a5_2000x1126.jpeg 424w, https://substackcdn.com/image/fetch/$s_!RrMt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90f0de50-94f1-4f73-a3cc-547a104d27a5_2000x1126.jpeg 848w, https://substackcdn.com/image/fetch/$s_!RrMt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90f0de50-94f1-4f73-a3cc-547a104d27a5_2000x1126.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!RrMt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90f0de50-94f1-4f73-a3cc-547a104d27a5_2000x1126.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RrMt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90f0de50-94f1-4f73-a3cc-547a104d27a5_2000x1126.jpeg" width="1456" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/90f0de50-94f1-4f73-a3cc-547a104d27a5_2000x1126.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:195628,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://thelittlecloud.substack.com/i/208985745?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90f0de50-94f1-4f73-a3cc-547a104d27a5_2000x1126.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!RrMt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90f0de50-94f1-4f73-a3cc-547a104d27a5_2000x1126.jpeg 424w, https://substackcdn.com/image/fetch/$s_!RrMt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90f0de50-94f1-4f73-a3cc-547a104d27a5_2000x1126.jpeg 848w, https://substackcdn.com/image/fetch/$s_!RrMt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90f0de50-94f1-4f73-a3cc-547a104d27a5_2000x1126.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!RrMt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90f0de50-94f1-4f73-a3cc-547a104d27a5_2000x1126.jpeg 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">Open frame rig with mounts and brackets I modeled in Onshape.</figcaption></figure></div><p></p><p><strong><span>format</span></strong></p><p><span>I&#8217;m pretty excited about building this in public, both for the accountability pressure and as a way to meet people who might be interested in this little device. I&#8217;ll try sharing weekly build logs in here, first time publishing on Substack. We might occasionally visit places like makerspaces, e-waste processors, manufacturing houses, or repair workshops to mix things up.</span></p><p><span>If you&#8217;d like to follow along the full journey of bringing a product to life, including different kinds of engineering that go into it, consider subscribing! If you&#8217;re curious about this actual product and want to steer its development, use the comments to share feedback and suggestions. Either way, looking forward to seeing you around!</span></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!92jR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17ce54d5-3163-4b0c-80dd-0fb558f50dcf_2000x1126.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!92jR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17ce54d5-3163-4b0c-80dd-0fb558f50dcf_2000x1126.jpeg 424w, https://substackcdn.com/image/fetch/$s_!92jR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17ce54d5-3163-4b0c-80dd-0fb558f50dcf_2000x1126.jpeg 848w, https://substackcdn.com/image/fetch/$s_!92jR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17ce54d5-3163-4b0c-80dd-0fb558f50dcf_2000x1126.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!92jR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17ce54d5-3163-4b0c-80dd-0fb558f50dcf_2000x1126.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!92jR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17ce54d5-3163-4b0c-80dd-0fb558f50dcf_2000x1126.jpeg" width="1456" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/17ce54d5-3163-4b0c-80dd-0fb558f50dcf_2000x1126.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:209439,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://thelittlecloud.substack.com/i/208985745?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17ce54d5-3163-4b0c-80dd-0fb558f50dcf_2000x1126.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!92jR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17ce54d5-3163-4b0c-80dd-0fb558f50dcf_2000x1126.jpeg 424w, https://substackcdn.com/image/fetch/$s_!92jR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17ce54d5-3163-4b0c-80dd-0fb558f50dcf_2000x1126.jpeg 848w, https://substackcdn.com/image/fetch/$s_!92jR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17ce54d5-3163-4b0c-80dd-0fb558f50dcf_2000x1126.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!92jR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17ce54d5-3163-4b0c-80dd-0fb558f50dcf_2000x1126.jpeg 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">Stacks of servers I saw at an e-waste facility.</figcaption></figure></div>]]></content:encoded></item></channel></rss>