<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>tpolecat industries –</title><link>https://tpolecat.github.io/www/docs/</link><description>Recent content on tpolecat industries</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Fri, 18 Sep 2026 17:54:31 -0500</lastBuildDate><atom:link href="https://tpolecat.github.io/www/docs/index.xml" rel="self" type="application/rss+xml"/><item><title>Main Build, Part 1</title><link>https://tpolecat.github.io/www/docs/altair-8800c/main/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tpolecat.github.io/www/docs/altair-8800c/main/</guid><description>
&lt;h3 data-hextra-search-id="the-plan"&gt;The Plan&lt;span class="hx:absolute hx:-mt-20" id="the-plan"&gt;&lt;/span&gt;
&lt;a href="#the-plan" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;My goal for the build was a machine that could boot CP/M from floppy, which requires a &lt;em&gt;lot&lt;/em&gt; of stuff to work. But fortunately there were
a number of satisfying intermediate goals and I also had pretty good luck.&lt;/p&gt;
&lt;p&gt;So I bought a cabinet and front panel boards from &lt;a
href="https://deramp.com"target="_blank" rel="noopener"&gt;Mike Douglas&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; and got building.&lt;/p&gt;
&lt;h3 data-hextra-search-id="power-supplies"&gt;Power Supplies&lt;span class="hx:absolute hx:-mt-20" id="power-supplies"&gt;&lt;/span&gt;
&lt;a href="#power-supplies" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Cards in the Altair generally need +5V and ±12V, regulated down from +7.5V and ±15V bus power. I used switching supplies from Mean Well (10A for 7.5V and 1A for 15V), which are very efficient, and my machine has not required active cooling.&lt;/p&gt;
&lt;p&gt;Mean Well has good mechanical drawings of their power supplies so I was able to create a drilling template and had no trouble getting the power supplies where I wanted them. The end result (third tab below) was satisfying and I think keeping it neat has paid off.&lt;/p&gt;
&lt;div class="hextra-scrollbar hx:overflow-x-auto hx:overflow-y-hidden hx:overscroll-x-contain"&gt;
&lt;div class="hx:mt-4 hx:flex hx:w-max hx:min-w-full hx:border-b hx:border-gray-200 hx:pb-px hx:dark:border-neutral-800" role="tablist"&gt;&lt;button class="hextra-tabs-toggle hx:cursor-pointer hx:data-[state=selected]:border-primary-500 hx:data-[state=selected]:text-primary-600 hx:data-[state=selected]:dark:border-primary-500 hx:data-[state=selected]:dark:text-primary-600 hx:mr-2 hx:rounded-t hx:p-2 hx:font-medium hx:leading-5 hx:transition-colors hx:-mb-0.5 hx:select-none hx:border-b-2 hx:border-transparent hx:text-gray-600 hx:hover:border-gray-200 hx:hover:text-black hx:dark:text-gray-200 hx:dark:hover:border-neutral-800 hx:dark:hover:text-white hx:hextra-focus-visible-inset" id="tabs-tab-tabs-00-0" role="tab" type="button" aria-controls="tabs-panel-tabs-00-0" aria-selected="true" tabindex="0" data-state="selected"&gt;&lt;span class="hx:inline-flex hx:items-center hx:gap-1.5"&gt;&lt;span&gt;Placement&lt;/span&gt;&lt;/span&gt;&lt;/button&gt;&lt;button class="hextra-tabs-toggle hx:cursor-pointer hx:data-[state=selected]:border-primary-500 hx:data-[state=selected]:text-primary-600 hx:data-[state=selected]:dark:border-primary-500 hx:data-[state=selected]:dark:text-primary-600 hx:mr-2 hx:rounded-t hx:p-2 hx:font-medium hx:leading-5 hx:transition-colors hx:-mb-0.5 hx:select-none hx:border-b-2 hx:border-transparent hx:text-gray-600 hx:hover:border-gray-200 hx:hover:text-black hx:dark:text-gray-200 hx:dark:hover:border-neutral-800 hx:dark:hover:text-white hx:hextra-focus-visible-inset" id="tabs-tab-tabs-00-1" role="tab" type="button" aria-controls="tabs-panel-tabs-00-1" aria-selected="false" tabindex="-1"&gt;&lt;span class="hx:inline-flex hx:items-center hx:gap-1.5"&gt;&lt;span&gt;Drilling Template&lt;/span&gt;&lt;/span&gt;&lt;/button&gt;&lt;button class="hextra-tabs-toggle hx:cursor-pointer hx:data-[state=selected]:border-primary-500 hx:data-[state=selected]:text-primary-600 hx:data-[state=selected]:dark:border-primary-500 hx:data-[state=selected]:dark:text-primary-600 hx:mr-2 hx:rounded-t hx:p-2 hx:font-medium hx:leading-5 hx:transition-colors hx:-mb-0.5 hx:select-none hx:border-b-2 hx:border-transparent hx:text-gray-600 hx:hover:border-gray-200 hx:hover:text-black hx:dark:text-gray-200 hx:dark:hover:border-neutral-800 hx:dark:hover:text-white hx:hextra-focus-visible-inset" id="tabs-tab-tabs-00-2" role="tab" type="button" aria-controls="tabs-panel-tabs-00-2" aria-selected="false" tabindex="-1"&gt;&lt;span class="hx:inline-flex hx:items-center hx:gap-1.5"&gt;&lt;span&gt;Final Wiring&lt;/span&gt;&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;div class="hextra-tabs-panel hx:rounded-sm hx:pt-6 hx:hidden hx:data-[state=selected]:block" id="tabs-panel-tabs-00-0" role="tabpanel" aria-labelledby="tabs-tab-tabs-00-0" aria-hidden="false" tabindex="0" data-state="selected"&gt;&lt;figure&gt;
&lt;img src="power_1.png" title="Trying out power supply placements." alt="" loading="lazy" /&gt;
&lt;figcaption&gt;Trying out power supply placements.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/div&gt;&lt;div class="hextra-tabs-panel hx:rounded-sm hx:pt-6 hx:hidden hx:data-[state=selected]:block" id="tabs-panel-tabs-00-1" role="tabpanel" aria-labelledby="tabs-tab-tabs-00-1" aria-hidden="true"&gt;&lt;figure&gt;
&lt;img src="power_2.png" title="Drilling template, from Mean Well mechanical drawings." alt="" loading="lazy" /&gt;
&lt;figcaption&gt;Drilling template, from Mean Well mechanical drawings.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/div&gt;&lt;div class="hextra-tabs-panel hx:rounded-sm hx:pt-6 hx:hidden hx:data-[state=selected]:block" id="tabs-panel-tabs-00-2" role="tabpanel" aria-labelledby="tabs-tab-tabs-00-2" aria-hidden="true"&gt;&lt;figure&gt;
&lt;img src="power_3.png" title="Obsessive wiring detected." alt="" loading="lazy" /&gt;
&lt;figcaption&gt;Obsessive wiring detected.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;
&lt;h3 data-hextra-search-id="backplane"&gt;Backplane&lt;span class="hx:absolute hx:-mt-20" id="backplane"&gt;&lt;/span&gt;
&lt;a href="#backplane" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;There are a few common S-100 backplane designs available online. The original Altair came with a 4-slot backplane, which everyone agreed was entirely inadequate, so I got a 9-slot variant. There is room in the cabinet for a larger one, but having the extra room behind the IO connectors has been useful and I haven&amp;rsquo;t yet run out of card slots.&lt;/p&gt;
&lt;p&gt;The Altair uses a totally passive backplane, so the only things I needed to populate were the power connector, fuses, and LEDs with their resistors. And of course nine expensive connectors, each with ONE HUNDRED PINS. It took a few evenings to get this soldered.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://tpolecat.github.io/www/docs/altair-8800c/main/backplane.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;h3 data-hextra-search-id="front-panel"&gt;Front Panel&lt;span class="hx:absolute hx:-mt-20" id="front-panel"&gt;&lt;/span&gt;
&lt;a href="#front-panel" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Somehow I don&amp;rsquo;t have any photos of the front panel board under construction, but the process is documented well in other places (including the excellent &lt;a
href="https://deramp.com/downloads/altair/hardware/altair_8800c/Front%20Panel%20Manual.pdf"target="_blank" rel="noopener"&gt;manual&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;). It&amp;rsquo;s a lot of soldering and getting all the LEDs and switches lined up is very important to the final look, so I took it slow and it came out well.&lt;/p&gt;
&lt;div class="hextra-scrollbar hx:overflow-x-auto hx:overflow-y-hidden hx:overscroll-x-contain"&gt;
&lt;div class="hx:mt-4 hx:flex hx:w-max hx:min-w-full hx:border-b hx:border-gray-200 hx:pb-px hx:dark:border-neutral-800" role="tablist"&gt;&lt;button class="hextra-tabs-toggle hx:cursor-pointer hx:data-[state=selected]:border-primary-500 hx:data-[state=selected]:text-primary-600 hx:data-[state=selected]:dark:border-primary-500 hx:data-[state=selected]:dark:text-primary-600 hx:mr-2 hx:rounded-t hx:p-2 hx:font-medium hx:leading-5 hx:transition-colors hx:-mb-0.5 hx:select-none hx:border-b-2 hx:border-transparent hx:text-gray-600 hx:hover:border-gray-200 hx:hover:text-black hx:dark:text-gray-200 hx:dark:hover:border-neutral-800 hx:dark:hover:text-white hx:hextra-focus-visible-inset" id="tabs-tab-tabs-01-0" role="tab" type="button" aria-controls="tabs-panel-tabs-01-0" aria-selected="true" tabindex="0" data-state="selected"&gt;&lt;span class="hx:inline-flex hx:items-center hx:gap-1.5"&gt;&lt;span&gt;Inside&lt;/span&gt;&lt;/span&gt;&lt;/button&gt;&lt;button class="hextra-tabs-toggle hx:cursor-pointer hx:data-[state=selected]:border-primary-500 hx:data-[state=selected]:text-primary-600 hx:data-[state=selected]:dark:border-primary-500 hx:data-[state=selected]:dark:text-primary-600 hx:mr-2 hx:rounded-t hx:p-2 hx:font-medium hx:leading-5 hx:transition-colors hx:-mb-0.5 hx:select-none hx:border-b-2 hx:border-transparent hx:text-gray-600 hx:hover:border-gray-200 hx:hover:text-black hx:dark:text-gray-200 hx:dark:hover:border-neutral-800 hx:dark:hover:text-white hx:hextra-focus-visible-inset" id="tabs-tab-tabs-01-1" role="tab" type="button" aria-controls="tabs-panel-tabs-01-1" aria-selected="false" tabindex="-1"&gt;&lt;span class="hx:inline-flex hx:items-center hx:gap-1.5"&gt;&lt;span&gt;Outside&lt;/span&gt;&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;div class="hextra-tabs-panel hx:rounded-sm hx:pt-6 hx:hidden hx:data-[state=selected]:block" id="tabs-panel-tabs-01-0" role="tabpanel" aria-labelledby="tabs-tab-tabs-01-0" aria-hidden="false" tabindex="0" data-state="selected"&gt;&lt;img src="fp_inside.png" alt="" loading="lazy" /&gt;&lt;/div&gt;&lt;div class="hextra-tabs-panel hx:rounded-sm hx:pt-6 hx:hidden hx:data-[state=selected]:block" id="tabs-panel-tabs-01-1" role="tabpanel" aria-labelledby="tabs-tab-tabs-01-1" aria-hidden="true"&gt;&lt;img src="fp_outside.png" alt="" loading="lazy" /&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;The front panel connects via a 50-pin ribbon cable to the front panel interface card, which in turn connects to the CPU card with an additional 8-pin cable (for signals it needs that are not exposed on the bus). Assembly of this interface card must have been uneventful because I don&amp;rsquo;t have any photos.&lt;/p&gt;
&lt;h3 data-hextra-search-id="cpu-card"&gt;CPU Card&lt;span class="hx:absolute hx:-mt-20" id="cpu-card"&gt;&lt;/span&gt;
&lt;a href="#cpu-card" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;The CPU card (from eBay) is a reproduction of the original card from MITS, which calls for some parts that are very obsolete and are hard to find. These I got from eBay (US sellers only; obsolete parts from Chinese sellers are almost always fake) and from &lt;a
href="https://unicornelectronics.com"target="_blank" rel="noopener"&gt;Unicorn Electronics&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;, which is a strange business but the parts did eventually show up. For instructions I used the original Altair assembly manual from 1975.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://tpolecat.github.io/www/docs/altair-8800c/main/cpu.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;The Intel 8080 has an asymmetric two-phase clock with fairly strict timing requirements, which is a challenge on this board because the clock circuit is dependent on slow mid-70s switching speeds. This is apparently a common point of frustration, so for the benefit of future builders: I got good clock timing with a 7404 (not LS, plain 7404) and 74LS123 for ICs P and Q; with 5.6k and 4.3k for R41 and R42.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://tpolecat.github.io/www/docs/altair-8800c/main/timing.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;With the CPU card installed I was able to use the front panel to step through addresses, which doesn&amp;rsquo;t sound like much but it was very exciting. Next up was getting some memory in the machine.&lt;/p&gt;
&lt;h3 data-hextra-search-id="fdc"&gt;FDC+&lt;span class="hx:absolute hx:-mt-20" id="fdc"&gt;&lt;/span&gt;
&lt;a href="#fdc" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;The disk controller card I bought was an &lt;a
href="https://deramp.com/fdc_plus.html"target="_blank" rel="noopener"&gt;FDC+&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; in part because it can be configured to act like several kinds of disk controllers, but also because it includes 64k of RAM and an EEPROM containing a memory monitor and boot loader. So this is a drop-in replacement for what would have been six cards back in the 70s. This card was only available fully assembled, which is the only point at which I felt I was kind of cheating.&lt;/p&gt;
&lt;p&gt;In any case I installed this card to get some memory going, and was finally able to toggle in and play Kill the Bit!&lt;/p&gt;
&lt;p&gt;&lt;video src="kill-the-bit.mp4" controls&gt;Your browser does not support the video tag.&lt;/video&gt;&lt;/p&gt;
&lt;h3 data-hextra-search-id="88-2siojp"&gt;88-2SIOJP&lt;span class="hx:absolute hx:-mt-20" id="88-2siojp"&gt;&lt;/span&gt;
&lt;a href="#88-2siojp" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Next up was getting serial communication working. For this I built up an &lt;a
href="https://deramp.com/2SIOJP.html"target="_blank" rel="noopener"&gt;88-2SIOJP&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. This card is a drop-in replacement for the MITS 88-2SIO with some extra conveniences like DIP switches for setting baud rates (the original card required soldering to do this).&lt;/p&gt;
&lt;p&gt;&lt;img src="https://tpolecat.github.io/www/docs/altair-8800c/main/88-2SIOJP.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;This board went together without undue drama and soon I was able to run the ROM monitor. Don&amp;rsquo;t worry, I did manage to fix the cataracts on the ADM-3A.&lt;/p&gt;
&lt;p&gt;&lt;video src="monitor.mp4" controls&gt;Your browser does not support the video tag.&lt;/video&gt;&lt;/p&gt;
&lt;p&gt;So that&amp;rsquo;s it for part one! Next up is getting floppies working, in &lt;a
href="../main_2/"&gt;part two&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Main Build, Part 2</title><link>https://tpolecat.github.io/www/docs/altair-8800c/main_2/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tpolecat.github.io/www/docs/altair-8800c/main_2/</guid><description>
&lt;h3 data-hextra-search-id="authentic-floppy-drives"&gt;Authentic Floppy Drives&lt;span class="hx:absolute hx:-mt-20" id="authentic-floppy-drives"&gt;&lt;/span&gt;
&lt;a href="#authentic-floppy-drives" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;In order to attach floppy drives to an Altair, one must first have some floppy drives. I got this DEC RX-180 on eBay with no real expectation that it would work, but it wasn&amp;rsquo;t super hard to get it going. These are single-sided, single-density drives that give you about 90k each using the Altair Minidisk adapter (or in my case the &lt;a
href="https://deramp.com/fdc_plus.html"target="_blank" rel="noopener"&gt;FDC+&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; in Minidisk mode).&lt;/p&gt;
&lt;p&gt;&lt;img src="https://tpolecat.github.io/www/docs/altair-8800c/main_2/rx180.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;The rear connector is a DB-25 instead of a ribbon cable, which is much nicer to work with when you&amp;rsquo;re running cables around in a rack, but I had to figure out what was connected to what. It turns out they used the same pin numbering as on the standard ribbon connector, so it ended up not being a big deal. Other than a shorted tantalum capacitor and the drives being out of alignment it ended up being pretty easy to get going.&lt;/p&gt;
&lt;div class="hextra-scrollbar hx:overflow-x-auto hx:overflow-y-hidden hx:overscroll-x-contain"&gt;
&lt;div class="hx:mt-4 hx:flex hx:w-max hx:min-w-full hx:border-b hx:border-gray-200 hx:pb-px hx:dark:border-neutral-800" role="tablist"&gt;&lt;button class="hextra-tabs-toggle hx:cursor-pointer hx:data-[state=selected]:border-primary-500 hx:data-[state=selected]:text-primary-600 hx:data-[state=selected]:dark:border-primary-500 hx:data-[state=selected]:dark:text-primary-600 hx:mr-2 hx:rounded-t hx:p-2 hx:font-medium hx:leading-5 hx:transition-colors hx:-mb-0.5 hx:select-none hx:border-b-2 hx:border-transparent hx:text-gray-600 hx:hover:border-gray-200 hx:hover:text-black hx:dark:text-gray-200 hx:dark:hover:border-neutral-800 hx:dark:hover:text-white hx:hextra-focus-visible-inset" id="tabs-tab-tabs-00-0" role="tab" type="button" aria-controls="tabs-panel-tabs-00-0" aria-selected="true" tabindex="0" data-state="selected"&gt;&lt;span class="hx:inline-flex hx:items-center hx:gap-1.5"&gt;&lt;span&gt;Connections&lt;/span&gt;&lt;/span&gt;&lt;/button&gt;&lt;button class="hextra-tabs-toggle hx:cursor-pointer hx:data-[state=selected]:border-primary-500 hx:data-[state=selected]:text-primary-600 hx:data-[state=selected]:dark:border-primary-500 hx:data-[state=selected]:dark:text-primary-600 hx:mr-2 hx:rounded-t hx:p-2 hx:font-medium hx:leading-5 hx:transition-colors hx:-mb-0.5 hx:select-none hx:border-b-2 hx:border-transparent hx:text-gray-600 hx:hover:border-gray-200 hx:hover:text-black hx:dark:text-gray-200 hx:dark:hover:border-neutral-800 hx:dark:hover:text-white hx:hextra-focus-visible-inset" id="tabs-tab-tabs-00-1" role="tab" type="button" aria-controls="tabs-panel-tabs-00-1" aria-selected="false" tabindex="-1"&gt;&lt;span class="hx:inline-flex hx:items-center hx:gap-1.5"&gt;&lt;span&gt;Bad Capacitor&lt;/span&gt;&lt;/span&gt;&lt;/button&gt;&lt;button class="hextra-tabs-toggle hx:cursor-pointer hx:data-[state=selected]:border-primary-500 hx:data-[state=selected]:text-primary-600 hx:data-[state=selected]:dark:border-primary-500 hx:data-[state=selected]:dark:text-primary-600 hx:mr-2 hx:rounded-t hx:p-2 hx:font-medium hx:leading-5 hx:transition-colors hx:-mb-0.5 hx:select-none hx:border-b-2 hx:border-transparent hx:text-gray-600 hx:hover:border-gray-200 hx:hover:text-black hx:dark:text-gray-200 hx:dark:hover:border-neutral-800 hx:dark:hover:text-white hx:hextra-focus-visible-inset" id="tabs-tab-tabs-00-2" role="tab" type="button" aria-controls="tabs-panel-tabs-00-2" aria-selected="false" tabindex="-1"&gt;&lt;span class="hx:inline-flex hx:items-center hx:gap-1.5"&gt;&lt;span&gt;Drive Alignment&lt;/span&gt;&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;div class="hextra-tabs-panel hx:rounded-sm hx:pt-6 hx:hidden hx:data-[state=selected]:block" id="tabs-panel-tabs-00-0" role="tabpanel" aria-labelledby="tabs-tab-tabs-00-0" aria-hidden="false" tabindex="0" data-state="selected"&gt;&lt;figure&gt;
&lt;img src="wires.png" title="Discovering the pinout." alt="" loading="lazy" /&gt;
&lt;figcaption&gt;Discovering the pinout.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/div&gt;&lt;div class="hextra-tabs-panel hx:rounded-sm hx:pt-6 hx:hidden hx:data-[state=selected]:block" id="tabs-panel-tabs-00-1" role="tabpanel" aria-labelledby="tabs-tab-tabs-00-1" aria-hidden="true"&gt;&lt;figure&gt;
&lt;img src="tantalum.png" title="The culprit is found." alt="" loading="lazy" /&gt;
&lt;figcaption&gt;The culprit is found.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/div&gt;&lt;div class="hextra-tabs-panel hx:rounded-sm hx:pt-6 hx:hidden hx:data-[state=selected]:block" id="tabs-panel-tabs-00-2" role="tabpanel" aria-labelledby="tabs-tab-tabs-00-2" aria-hidden="true"&gt;&lt;figure&gt;
&lt;img src="alignment.png" title="Trying to align the drives without an alignment disk." alt="" loading="lazy" /&gt;
&lt;figcaption&gt;Trying to align the drives without an alignment disk.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;
&lt;h3 data-hextra-search-id="bootstrapping"&gt;Bootstrapping&lt;span class="hx:absolute hx:-mt-20" id="bootstrapping"&gt;&lt;/span&gt;
&lt;a href="#bootstrapping" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;So, the most interesting part of this process (to me) was bootstrapping. I have a computer that can boot from floppy (via the EEPROM bootloader) and I have a pair of floppy drives, but I don&amp;rsquo;t have a boot disk. Fortunately Mike Douglas (again) wrote an Altair program called &lt;code&gt;pc2flop&lt;/code&gt;, which is assembled for various disk adapters (I chose the Minidisk version). Assuming you can get this program to run somehow, it lets you send a flux image via XMODEM and streams it directly onto a floppy for a perfect copy.&lt;/p&gt;
&lt;p&gt;To get it running I hooked up minicom on my Mac to the first serial port and started up the ROM monitor. From there I was able to tell the monitor I wanted to load a program in Intel Hex format, then used minicom to send &lt;code&gt;pc2flop.hex&lt;/code&gt; as a straight ASCII transfer, as if I were typing it in. Once it was in I jumped to 0x100 and was up and running. I made a bunch of disks from various images available online.&lt;/p&gt;
&lt;p&gt;At this point I could boot Disk Basic and various flavors of CP/M.&lt;/p&gt;
&lt;p&gt;&lt;video src="boot.mp4" controls&gt;Your browser does not support the video tag.&lt;/video&gt;&lt;/p&gt;
&lt;h3 data-hextra-search-id="inauthentic-floppy-drives"&gt;Inauthentic Floppy Drives&lt;span class="hx:absolute hx:-mt-20" id="inauthentic-floppy-drives"&gt;&lt;/span&gt;
&lt;a href="#inauthentic-floppy-drives" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;At some point I started trying to write nontrivial programs on the Altair and was immediatly hitting the limits of the low-density disks. Not wanting to invest in 8&amp;quot; drives and the associated suffering, I instead decided to get a pair of 5.25&amp;quot; HD drives (Teac FD-55GFR specifically), which the FDC+ can present to the Altair as 8&amp;quot; drives. From the machine&amp;rsquo;s point of view there is no difference; I can write 8&amp;quot; flux images onto 5.25&amp;quot; floppies and nobody can tell the difference.&lt;/p&gt;
&lt;p&gt;Of course the eBay drives were filthy and needed a deep cleaning, so I had to do a full disassembly.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://tpolecat.github.io/www/docs/altair-8800c/main_2/teac_1.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;I also needed to figure out an enclosure for them, but I had an old Compaq DLT drive whith a chassis that seemed to be the right size, and with some dremeling it all came together.&lt;/p&gt;
&lt;div class="hextra-scrollbar hx:overflow-x-auto hx:overflow-y-hidden hx:overscroll-x-contain"&gt;
&lt;div class="hx:mt-4 hx:flex hx:w-max hx:min-w-full hx:border-b hx:border-gray-200 hx:pb-px hx:dark:border-neutral-800" role="tablist"&gt;&lt;button class="hextra-tabs-toggle hx:cursor-pointer hx:data-[state=selected]:border-primary-500 hx:data-[state=selected]:text-primary-600 hx:data-[state=selected]:dark:border-primary-500 hx:data-[state=selected]:dark:text-primary-600 hx:mr-2 hx:rounded-t hx:p-2 hx:font-medium hx:leading-5 hx:transition-colors hx:-mb-0.5 hx:select-none hx:border-b-2 hx:border-transparent hx:text-gray-600 hx:hover:border-gray-200 hx:hover:text-black hx:dark:text-gray-200 hx:dark:hover:border-neutral-800 hx:dark:hover:text-white hx:hextra-focus-visible-inset" id="tabs-tab-tabs-01-0" role="tab" type="button" aria-controls="tabs-panel-tabs-01-0" aria-selected="true" tabindex="0" data-state="selected"&gt;&lt;span class="hx:inline-flex hx:items-center hx:gap-1.5"&gt;&lt;span&gt;One&lt;/span&gt;&lt;/span&gt;&lt;/button&gt;&lt;button class="hextra-tabs-toggle hx:cursor-pointer hx:data-[state=selected]:border-primary-500 hx:data-[state=selected]:text-primary-600 hx:data-[state=selected]:dark:border-primary-500 hx:data-[state=selected]:dark:text-primary-600 hx:mr-2 hx:rounded-t hx:p-2 hx:font-medium hx:leading-5 hx:transition-colors hx:-mb-0.5 hx:select-none hx:border-b-2 hx:border-transparent hx:text-gray-600 hx:hover:border-gray-200 hx:hover:text-black hx:dark:text-gray-200 hx:dark:hover:border-neutral-800 hx:dark:hover:text-white hx:hextra-focus-visible-inset" id="tabs-tab-tabs-01-1" role="tab" type="button" aria-controls="tabs-panel-tabs-01-1" aria-selected="false" tabindex="-1"&gt;&lt;span class="hx:inline-flex hx:items-center hx:gap-1.5"&gt;&lt;span&gt;Two&lt;/span&gt;&lt;/span&gt;&lt;/button&gt;&lt;button class="hextra-tabs-toggle hx:cursor-pointer hx:data-[state=selected]:border-primary-500 hx:data-[state=selected]:text-primary-600 hx:data-[state=selected]:dark:border-primary-500 hx:data-[state=selected]:dark:text-primary-600 hx:mr-2 hx:rounded-t hx:p-2 hx:font-medium hx:leading-5 hx:transition-colors hx:-mb-0.5 hx:select-none hx:border-b-2 hx:border-transparent hx:text-gray-600 hx:hover:border-gray-200 hx:hover:text-black hx:dark:text-gray-200 hx:dark:hover:border-neutral-800 hx:dark:hover:text-white hx:hextra-focus-visible-inset" id="tabs-tab-tabs-01-2" role="tab" type="button" aria-controls="tabs-panel-tabs-01-2" aria-selected="false" tabindex="-1"&gt;&lt;span class="hx:inline-flex hx:items-center hx:gap-1.5"&gt;&lt;span&gt;Three&lt;/span&gt;&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;div class="hextra-tabs-panel hx:rounded-sm hx:pt-6 hx:hidden hx:data-[state=selected]:block" id="tabs-panel-tabs-01-0" role="tabpanel" aria-labelledby="tabs-tab-tabs-01-0" aria-hidden="false" tabindex="0" data-state="selected"&gt;&lt;figure&gt;
&lt;img src="teac_2.png" title="Does it even work?" alt="" loading="lazy" /&gt;
&lt;figcaption&gt;Does it even work?&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/div&gt;&lt;div class="hextra-tabs-panel hx:rounded-sm hx:pt-6 hx:hidden hx:data-[state=selected]:block" id="tabs-panel-tabs-01-1" role="tabpanel" aria-labelledby="tabs-tab-tabs-01-1" aria-hidden="true"&gt;&lt;figure&gt;
&lt;img src="teac_3.png" title="Ok seems to fit." alt="" loading="lazy" /&gt;
&lt;figcaption&gt;Ok seems to fit.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/div&gt;&lt;div class="hextra-tabs-panel hx:rounded-sm hx:pt-6 hx:hidden hx:data-[state=selected]:block" id="tabs-panel-tabs-01-2" role="tabpanel" aria-labelledby="tabs-tab-tabs-01-2" aria-hidden="true"&gt;&lt;figure&gt;
&lt;img src="teac_4.png" title="The final product." alt="" loading="lazy" /&gt;
&lt;figcaption&gt;The final product.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;An issue I haven&amp;rsquo;t been able to resolve to my satisfaction is alignment for these drives. I don&amp;rsquo;t have an alignment disk and my best efforts have yielded drives that work but are incompatible with each other. So for now what&amp;rsquo;s formatted on A: stays on A:, and the same for B:.&lt;/p&gt;</description></item><item><title/><link>https://tpolecat.github.io/www/docs/lab/cleaning-tools/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tpolecat.github.io/www/docs/lab/cleaning-tools/</guid><description>
&lt;h1 data-hextra-search-id="cleaning-tools-and-supplies"&gt;Cleaning Tools and Supplies&lt;/h1&gt;&lt;ul&gt;
&lt;li&gt;[&lt;strong&gt;Soft Paint Brush&lt;/strong&gt;]. A soft-bristled paintbrush is good for loosening dust from old PCBs and for sweeping off my benchtop.&lt;/li&gt;
&lt;li&gt;[&lt;strong&gt;DeoxIT Contact Cleaner&lt;/strong&gt;]. I really like this stuff for cleaning up crusty switches, potentiometers, sockets, etc., on old things I&amp;rsquo;m trying to repair. Seems to be made of magic.&lt;/li&gt;
&lt;li&gt;[&lt;strong&gt;99% Isopropyl Alcohol&lt;/strong&gt;]. I keep little spray and squirt bottles of this on my bench and use it for cleaning up flux, loosening stickers, spot cleaning, etc. I started with rubbing alcohol, but the 99% stuff evaporates much more quickly. I also keep a spray bottle and microfiber cloth next to my 3D printer so I can clean the build plate after every print.&lt;/li&gt;
&lt;li&gt;[&lt;strong&gt;Acetone&lt;/strong&gt;]. Acetone is a strong solvent that will damage a lot of materials, so I don&amp;rsquo;t use it much. But it&amp;rsquo;s great for deep-cleaning my 3D printer&amp;rsquo;s build plate and for getting superglue off my fingers.&lt;/li&gt;
&lt;li&gt;[&lt;strong&gt;Simple Green&lt;/strong&gt;]. This seems to be the cleaner of choice for electronics restoration, so I use it on keycaps and cases and grimy things and it works fine. I don&amp;rsquo;t like the smell.&lt;/li&gt;
&lt;li&gt;[&lt;strong&gt;Air Canister&lt;/strong&gt;]. It&amp;rsquo;s fun to blow dust out of stuff but I need to remember to do it outside.&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://www.amazon.com/dp/B00DK2AY1U"target="_blank" rel="noopener"&gt;&lt;strong&gt;Chemtronics Flux Remover&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. I kind of want to get an [&lt;strong&gt;ultrasonic cleaner&lt;/strong&gt;] to clean off PCBs, but for now I&amp;rsquo;m using this flux cleaner when I need to clean an entire board and it works well, but it smells like poison so definitely use outside. Probably kills grass.&lt;/li&gt;
&lt;li&gt;Toothbrush&lt;/li&gt;
&lt;li&gt;Shop Towels&lt;/li&gt;
&lt;li&gt;Cotton Swabs&lt;/li&gt;
&lt;li&gt;Toothpicks&lt;/li&gt;
&lt;li&gt;Kimwipes&lt;/li&gt;
&lt;li&gt;Towel things&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title/><link>https://tpolecat.github.io/www/docs/lab/hand-tools/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tpolecat.github.io/www/docs/lab/hand-tools/</guid><description>
&lt;h1 data-hextra-search-id="hand-tools"&gt;Hand Tools&lt;/h1&gt;&lt;p&gt;I didn&amp;rsquo;t need many tools when I started out because I was mostly breadboarding with Arduinos and sensors and so on. But as I started working more with old hardware I have accumulated more hand tools.&lt;/p&gt;
&lt;h2 data-hextra-search-id="bending-tools"&gt;Bending Tools&lt;span class="hx:absolute hx:-mt-20" id="bending-tools"&gt;&lt;/span&gt;
&lt;a href="#bending-tools" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a
href="https://www.amazon.com/gp/product/B0006N73BU"target="_blank" rel="noopener"&gt;&lt;strong&gt;Narrow&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; and &lt;a
href="https://www.amazon.com/gp/product/B07BGZ3LBK"target="_blank" rel="noopener"&gt;&lt;strong&gt;Wide&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; Flat Pliers&lt;/strong&gt;. These are very useful for bending/straightening wires, and for straightening IC pins. I use these continuously when I&amp;rsquo;m working.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Grippy Long-Nose Pliers&lt;/strong&gt;. Every once in a while I need grippy pliers. I got some at Harbor Freight and they&amp;rsquo;re bad but I haven&amp;rsquo;t bothered replacing them yet.&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://www.amazon.com/CANADUINO-Bender-Resistors-Diode-Capacitor/dp/B089NZVB7S"target="_blank" rel="noopener"&gt;&lt;strong&gt;Lead Forming Tool&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. When I&amp;rsquo;m building boards I like through-hole components to line up nicely.&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://www.adafruit.com/product/5682"target="_blank" rel="noopener"&gt;&lt;strong&gt;Engineer PA-24 Crimping Tool&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. I had a hell of a time attaching Dupont and JST connectors until I got this crimping tool, and now it&amp;rsquo;s a breeze and is no longer a point of anxiety. Highly, highly recommend.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-hextra-search-id="grabbing-tools"&gt;Grabbing Tools&lt;span class="hx:absolute hx:-mt-20" id="grabbing-tools"&gt;&lt;/span&gt;
&lt;a href="#grabbing-tools" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a
href="https://www.amazon.com/gp/product/B07RNVXXV1?th=1"target="_blank" rel="noopener"&gt;&lt;strong&gt;Cheap Tweezers&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. I use cheap tweezers to fish parts out of containers and to hold/push on things when I&amp;rsquo;m soldering. Curved ones are also great for levering ICs out of breadboards. They get bent up and I bend them back.&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://www.adafruit.com/product/3096"target="_blank" rel="noopener"&gt;&lt;strong&gt;Rhino SW-11 Precision Straight Tweezers&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. These are good Swiss tweezers that I only use to pick up SMD components. I find that cheap tweezers don&amp;rsquo;t apply pressure evenly and cause parts to fly away.&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://www.amazon.com/gp/product/B006C4BCAK"target="_blank" rel="noopener"&gt;&lt;strong&gt;Jonard S-340 IC Puller&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. I much prefer levering ICs out with a screwdriver, but sometimes it&amp;rsquo;s not possible to get in there and I have to pull them up from the top. These work but I end up bending pins 90% of the time so I&amp;rsquo;m not convinced this is actually a good tool.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-hextra-search-id="screwdrivers"&gt;Screwdrivers&lt;span class="hx:absolute hx:-mt-20" id="screwdrivers"&gt;&lt;/span&gt;
&lt;a href="#screwdrivers" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;I like individual screwdrivers better than the kind where you can swap out tips. They take up much more space, but they allow me to reach for exactly the one I need and switch between them without a fiddly subtask.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a
href="https://www.amazon.com/Wera-Kraftform-Micro-Big-Pack/dp/B07X7JSBHG"target="_blank" rel="noopener"&gt;&lt;strong&gt;Wera Kraftform Micro Precision Screwdrivers&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. I got this huge set as a gift and they&amp;rsquo;re awesome. I have added more from this series, in larger sizes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Big Screwdrivers&lt;/strong&gt;. I have a few big (i.e., normal-sized) screwdrivers for flat, Phillips, and Torx. I will probably end up needing more shapes and sizes of these.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-hextra-search-id="cutting-tools"&gt;Cutting Tools&lt;span class="hx:absolute hx:-mt-20" id="cutting-tools"&gt;&lt;/span&gt;
&lt;a href="#cutting-tools" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a
href="https://www.amazon.com/gp/product/B09R1JW8KF"target="_blank" rel="noopener"&gt;&lt;strong&gt;Flush Wire Cutters&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. I use one pair for copper wire and another pair for everthing else. They get dull pretty fast but they&amp;rsquo;re cheap.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a
href="https://www.amazon.com/gp/product/B005JVJDIA"target="_blank" rel="noopener"&gt;Small&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; and &lt;a
href="https://www.amazon.com/gp/product/B073YG65N2"target="_blank" rel="noopener"&gt;Large&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; Wire Strippers&lt;/strong&gt;. I like these simple tools.&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://www.amazon.com/gp/product/B09CM14CBH"target="_blank" rel="noopener"&gt;&lt;strong&gt;Pink Box Cutter&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. Doing electronics means opening a lot of boxes. Pink so it&amp;rsquo;s easy to find.&lt;/li&gt;
&lt;li&gt;Scissors&lt;/li&gt;
&lt;li&gt;Xacto Knife&lt;/li&gt;
&lt;li&gt;Cutting Mat&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-hextra-search-id="poking-prying-and-scraping-tools"&gt;Poking, Prying, and Scraping Tools&lt;span class="hx:absolute hx:-mt-20" id="poking-prying-and-scraping-tools"&gt;&lt;/span&gt;
&lt;a href="#poking-prying-and-scraping-tools" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a
href="https://www.amazon.com/gp/product/B07RNVXXV1?th=1"target="_blank" rel="noopener"&gt;&lt;strong&gt;Cheap Tweezers&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. As above. They double as poking and levering tools.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a
href="https://www.amazon.com/iFixit-Jimmy-Electronics-Opening-Tool/dp/B00NCFIVH4"target="_blank" rel="noopener"&gt;iFixit Jimmy&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; and &lt;a
href="https://www.amazon.com/Universal-Spudger-Opening-Tablets-MacBook/dp/B01DGNCNR0"target="_blank" rel="noopener"&gt;Spudgers&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;/strong&gt;. Useful for prying, scraping, levering, etc., without causing a lot of damage.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dental Picks&lt;/strong&gt;. I got a little set of tooth pokers and they&amp;rsquo;re more useful than I expected.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Plastic Razor Blades&lt;/strong&gt;. Good tip from &lt;a
href=""&gt;IMSAI Guy&lt;/a&gt;. These are great for scraping off stickers without scratching the underlying paint/plastic.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-hextra-search-id="tapes-and-adhesives"&gt;Tapes and Adhesives&lt;span class="hx:absolute hx:-mt-20" id="tapes-and-adhesives"&gt;&lt;/span&gt;
&lt;a href="#tapes-and-adhesives" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Kapton Tape. See [&lt;strong&gt;Soldering Supplies&lt;/strong&gt;]&lt;/li&gt;
&lt;li&gt;Blue Tape&lt;/li&gt;
&lt;li&gt;Electric Tape&lt;/li&gt;
&lt;li&gt;Foam Tape&lt;/li&gt;
&lt;li&gt;Superglue&lt;/li&gt;
&lt;li&gt;UV Resin&lt;/li&gt;
&lt;li&gt;Hot Glue&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-hextra-search-id="loser-hand-tools"&gt;Loser Hand Tools&lt;span class="hx:absolute hx:-mt-20" id="loser-hand-tools"&gt;&lt;/span&gt;
&lt;a href="#loser-hand-tools" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Here are some hand tools and supplies that didn&amp;rsquo;t work out.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a
href="https://www.amazon.com/Glarks-Crimper-Connector-Crimping-AWG28-18/dp/B07VQ6YNSC"target="_blank" rel="noopener"&gt;&lt;strong&gt;SN-28B Crimping Tool&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. I don&amp;rsquo;t like this tool because it crimps the conductor and insulation at the same time, and variations in insulation thickness means it&amp;rsquo;s very easy for the crimping to be uneven. They also don&amp;rsquo;t work at all with Dupont connectors because the insulation-crimping die is the wrong shape. The PS-24 above solves this by having both round and cardiod dies, and by crimping the conductor and insulation independently.&lt;/li&gt;
&lt;li&gt;[&lt;strong&gt;Cheap Screwdrivers&lt;/strong&gt;]. I found that it&amp;rsquo;s really easy to break cheap screwdrivers. I went through three sets from discount stores before putting the Wera set on my Christmas list.&lt;/li&gt;
&lt;li&gt;Harbor Freight wire stripper. This thing is miserable. I have regretted 100% of my purchases there.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title/><link>https://tpolecat.github.io/www/docs/lab/inspection-tools/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tpolecat.github.io/www/docs/lab/inspection-tools/</guid><description>
&lt;h1 data-hextra-search-id="measuring-and-inspection-tools"&gt;Measuring and Inspection Tools&lt;/h1&gt;&lt;h2 data-hextra-search-id="measuring-tools"&gt;Measuring Tools&lt;span class="hx:absolute hx:-mt-20" id="measuring-tools"&gt;&lt;/span&gt;
&lt;a href="#measuring-tools" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Rulers (plus good ruler)&lt;/li&gt;
&lt;li&gt;Scale Lupe&lt;/li&gt;
&lt;li&gt;Caliper&lt;/li&gt;
&lt;li&gt;Tape Measure&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-hextra-search-id="inspection-tools"&gt;Inspection Tools&lt;span class="hx:absolute hx:-mt-20" id="inspection-tools"&gt;&lt;/span&gt;
&lt;a href="#inspection-tools" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Binocular Microscope&lt;/strong&gt;. See the [dedicated page] on this.&lt;/li&gt;
&lt;li&gt;&lt;a
href=""&gt;&lt;strong&gt;IR Camera&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://www.lowes.com/pd/Hillman-Retro-Black-3-0-Magnification-2-Pair-2-Soft-Cases/5001940057"target="_blank" rel="noopener"&gt;&lt;strong&gt;Drugstore Reading Glasses&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. I use 3.0 magnification reading glasses when I&amp;rsquo;m working at the bench. They work great for me. If I need more magnification I swing the microscope over.&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://www.amazon.com/gp/product/B09DP33SC9"target="_blank" rel="noopener"&gt;&lt;strong&gt;Mini LED Flashlight&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. I got a 10-pack of these because flashlights seem to disappear around here. They&amp;rsquo;re super useful for reading markings on parts and for finding things that roll under the table.&lt;/li&gt;
&lt;li&gt;[&lt;strong&gt;Illuminated Loupe&lt;/strong&gt;]&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title/><link>https://tpolecat.github.io/www/docs/lab/organization/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tpolecat.github.io/www/docs/lab/organization/</guid><description>
&lt;h1 data-hextra-search-id="organization-strategies"&gt;Organization Strategies&lt;/h1&gt;&lt;h2 data-hextra-search-id="workbench"&gt;Workbench&lt;span class="hx:absolute hx:-mt-20" id="workbench"&gt;&lt;/span&gt;
&lt;a href="#workbench" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;I&amp;rsquo;m really happy with my little workbench. It was very inexpensive and easy to build.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The bench surface is an IKEA Ingo dining table with a grounded [&lt;strong&gt;Anti-Static Mat&lt;/strong&gt;] on top.&lt;/li&gt;
&lt;li&gt;The shelf brackets are attached to a backboard, which is in turn attached to the window frame. The workbench table isn&amp;rsquo;t attached to anything and can be pulled out to access wiring.&lt;/li&gt;
&lt;li&gt;The shelf has a routed-out groove on the bottom with an LED light strip.&lt;/li&gt;
&lt;li&gt;The overhead light is clamped onto the shelf. It&amp;rsquo;s okay. Not great.&lt;/li&gt;
&lt;li&gt;The backboard has an integrated power strip with USB power.&lt;/li&gt;
&lt;li&gt;Wires from instruments on the shelf are hidden behind the backboard, and behind another board attached to the rear table legs.&lt;/li&gt;
&lt;li&gt;If I run out of room to work I have another table I can roll over, but it doesn&amp;rsquo;t happen very often.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-hextra-search-id="toolsupply-storage"&gt;Tool/Supply Storage&lt;span class="hx:absolute hx:-mt-20" id="toolsupply-storage"&gt;&lt;/span&gt;
&lt;a href="#toolsupply-storage" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;I keep most of my tools and supplies on or near my bench so everything within easy reach.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Little lucite shelves on the backboard are great for supplies.&lt;/li&gt;
&lt;li&gt;I love stackable trays for holding screws and things. Anything that can possibly roll away goes straight into a tray.&lt;/li&gt;
&lt;li&gt;IKEA SKADIS pegboard is easy to reconfigure and it&amp;rsquo;s easy to design and print custom hangers. I designed the wire spool holders and found most of the others online.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-hextra-search-id="large-item-storage"&gt;Large Item Storage&lt;span class="hx:absolute hx:-mt-20" id="large-item-storage"&gt;&lt;/span&gt;
&lt;a href="#large-item-storage" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;For larger hardware I have four small server racks on wheels that I can roll out when I&amp;rsquo;m working on the Altair or the teletype or whatever. Each has its own power strip so it&amp;rsquo;s pretty easy to get up and running. They can all fit in my closet in a pinch but I usually have one or two of them out. This was kind of expensive and I&amp;rsquo;m not 100% convinced it was the best strategy.&lt;/p&gt;
&lt;h2 data-hextra-search-id="small-parts-storage"&gt;Small Parts Storage&lt;span class="hx:absolute hx:-mt-20" id="small-parts-storage"&gt;&lt;/span&gt;
&lt;a href="#small-parts-storage" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;I have found that &lt;strong&gt;flexibility&lt;/strong&gt; is the most important design consideration for parts storage. If everything has its own space and everything is sorted and individually labeled it&amp;rsquo;s a nightmare when it comes time to integrate new stuff. I have found that for most parts it works great to put them all labeled bins and then rummage briefly to find what I need. When new parts arrive it&amp;rsquo;s usuallty just a matter of dropping then into bins and I&amp;rsquo;m done.&lt;/p&gt;
&lt;h3 data-hextra-search-id="bins-of-bagsboxes"&gt;Bins of Bags/Boxes&lt;span class="hx:absolute hx:-mt-20" id="bins-of-bagsboxes"&gt;&lt;/span&gt;
&lt;a href="#bins-of-bagsboxes" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;I use this setup for almost all my parts.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Loose parts go into &lt;strong&gt;poly bags&lt;/strong&gt;, with labels when it&amp;rsquo;s not obvious what&amp;rsquo;s inside.&lt;/li&gt;
&lt;li&gt;Bags and assortment boxes go into &lt;strong&gt;bins&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Bins are &lt;strong&gt;labeled&lt;/strong&gt;. Categories don&amp;rsquo;t matter. &amp;ldquo;Capacitors and Screws&amp;rdquo; is fine. The point is to split things up among bins in a way that uses the space efficiently.&lt;/li&gt;
&lt;li&gt;Labels are &lt;strong&gt;removable&lt;/strong&gt;. When a bin gets ovefull and needs to be split up, make new labels for the new categories.&lt;/li&gt;
&lt;li&gt;I have a bin labeled &lt;strong&gt;To Be Put Away&lt;/strong&gt;, for times when I don&amp;rsquo;t have time to put things away properly. When I&amp;rsquo;m bored I get that bin out and put everything where it goes.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I have two such setups:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For things I use a lot, I have A4-size trays from Daiso on an IKEA Kallax shelf next to my workbench.&lt;/li&gt;
&lt;li&gt;For things I use less often, I have lidded tubs (also from Daiso) on a closet shelf.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-hextra-search-id="box-of-boxes"&gt;Box of Boxes&lt;span class="hx:absolute hx:-mt-20" id="box-of-boxes"&gt;&lt;/span&gt;
&lt;a href="#box-of-boxes" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Connectors are often big and awkward and come in a million types so my bins of bags strategy stopped working … it required two bins and way too much rummaging. So I recently moved them into a couple box-of-boxes organizers and it&amp;rsquo;s working well so far.&lt;/p&gt;
&lt;h3 data-hextra-search-id="drawer-organizer"&gt;Drawer Organizer&lt;span class="hx:absolute hx:-mt-20" id="drawer-organizer"&gt;&lt;/span&gt;
&lt;a href="#drawer-organizer" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;For mechanical parts (mostly nuts, bolts, and washers) I&amp;rsquo;m slowly filling up an Agro-Mils drawer organizer, which I probably wouldn&amp;rsquo;t have gotten otherwise but it was free so I took it. The drawers are pretty big so I print subdivider inserts as needed.&lt;/p&gt;
&lt;p&gt;I recently added another of these for MCUs, modules, and breakouts because the bins were becoming overfull and hard to rummage through.&lt;/p&gt;
&lt;h3 data-hextra-search-id="sorted-storage"&gt;Sorted Storage&lt;span class="hx:absolute hx:-mt-20" id="sorted-storage"&gt;&lt;/span&gt;
&lt;a href="#sorted-storage" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;I try to avoid sorted storage because maintaining ordering can be a lot of work. But for resistors in particular it&amp;rsquo;s easy and works well for me.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Resistors go into &lt;strong&gt;poly bags&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Bags are &lt;strong&gt;labeled&lt;/strong&gt; with restance and tolerance.&lt;/li&gt;
&lt;li&gt;Bags go into a &lt;a
href="https://www.amazon.com/dp/B08XJ4QTSQ"target="_blank" rel="noopener"&gt;&lt;strong&gt;business card organizer&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;, in order.&lt;/li&gt;
&lt;li&gt;Organizer goes into a &lt;strong&gt;cubby&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I only have an organizer for 1/4W resistors. I use larger values much less frequently so hunting for them in a box isn&amp;rsquo;t much of an issue.&lt;/p&gt;
&lt;h3 data-hextra-search-id="indexed-storage"&gt;Indexed Storage&lt;span class="hx:absolute hx:-mt-20" id="indexed-storage"&gt;&lt;/span&gt;
&lt;a href="#indexed-storage" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;I have many hundreds of ICs at this point and it&amp;rsquo;s impossible to keep track of them without some extra structure. So my strategy for these is:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;ICs go into &lt;strong&gt;grid divider boxes&lt;/strong&gt;. The boxes I use can hold a dozen ICs in each cell. For larger ICs I can take out dividers to make larger cells. Texas is humid so I don&amp;rsquo;t worry about static buildup and haven&amp;rsquo;t had any issues.&lt;/li&gt;
&lt;li&gt;Boxes are &lt;strong&gt;numbered&lt;/strong&gt;. This is like a database key; the numbers have no meaning. I messsed up here when I started so I have several &amp;ldquo;series&amp;rdquo; of boxes. This was dumb but isn&amp;rsquo;t easily fixable with the software I&amp;rsquo;m using.&lt;/li&gt;
&lt;li&gt;Cells are referenced by sight and are &lt;strong&gt;not labeled&lt;/strong&gt;. My boxes are 2x5 cells so I call them 1A, 1B, 2A, 2B, etc.&lt;/li&gt;
&lt;li&gt;I use [&lt;strong&gt;Partsbox&lt;/strong&gt;] to assign parts to locations (i.e., box+cell) and track inventory. It could be done with a spreadsheet but Partsbox automatically links datasheets and does other useful things. But either way it needs to be computerized or indexed with a card catalog because parts aren&amp;rsquo;t sorted.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Additional rules that have worked well:&lt;/p&gt;
&lt;ol start="2"&gt;
&lt;li&gt;All ICs in a cell have &lt;strong&gt;identical markings&lt;/strong&gt;; i.e., otherwise identical chips from different manufacturers go into different bins.&lt;/li&gt;
&lt;li&gt;If I have too many of a given part to fit in a cell, they go in a &lt;strong&gt;labeled bag&lt;/strong&gt; in an &lt;strong&gt;overstock&lt;/strong&gt; bin in the closet.&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title/><link>https://tpolecat.github.io/www/docs/lab/parts/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tpolecat.github.io/www/docs/lab/parts/</guid><description>
&lt;h1 data-hextra-search-id="parts"&gt;Parts&lt;/h1&gt;&lt;p&gt;See the &lt;a
href=""&gt;organization&lt;/a&gt; page for my thoughts on parts storage.&lt;/p&gt;
&lt;h2 data-hextra-search-id="breadboards-and-wire"&gt;Breadboards and Wire&lt;span class="hx:absolute hx:-mt-20" id="breadboards-and-wire"&gt;&lt;/span&gt;
&lt;a href="#breadboards-and-wire" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;I prototype most things on breadboards.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;BB830 and BB400&lt;/li&gt;
&lt;li&gt;Breadboard Wires&lt;/li&gt;
&lt;li&gt;Hookup Wire&lt;/li&gt;
&lt;li&gt;Dupont wires&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Things that &lt;strong&gt;didn&amp;rsquo;t work out&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;cheap breadboards&lt;/li&gt;
&lt;li&gt;silicone hookup wire&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-hextra-search-id="assortments"&gt;Assortments&lt;span class="hx:absolute hx:-mt-20" id="assortments"&gt;&lt;/span&gt;
&lt;a href="#assortments" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;I&amp;rsquo;m a big fan of parts assortments from Amazon. My favorite supplier is a company called &lt;a
href="https://www.amazon.com/stores/EEEEE/page/0DDAEA46-863D-4737-92DE-C8CDFAB4A93E?ref_=ast_bln"target="_blank" rel="noopener"&gt;EEEEE&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; but I have also had good luck with [Bojack]. I use the following assortments &lt;strong&gt;all the time&lt;/strong&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a
href="https://www.amazon.com/EEEEE-Resistor-Compliant-resistors-Assortment/dp/B08BNDL6DS?ref_=ast_sto_dp"target="_blank" rel="noopener"&gt;1/4 Watt Resistors&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. I really like this assortment because I can flip through the book to find the values I need. The values are accurate, but the legs are very thin and I find it hard to read the color bands on metal film resistors because of the blue background. So as I use these up I&amp;rsquo;m replacing them with carbon film resistors.&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://www.amazon.com/EEEEE-Potentiometer-Assortment-Individual-Compartment/dp/B09HJTGB7R?ref_=ast_sto_dp&amp;amp;th=1"target="_blank" rel="noopener"&gt;Potentiometers&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. I end up using these pretty often, but they&amp;rsquo;re not super breadboard friendly.&lt;/li&gt;
&lt;li&gt;[Trimmers]&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://www.amazon.com/EEEEE-Multilayer-Monolithic-assortment-Individual/dp/B09H2N3L4B?ref_=ast_sto_dp&amp;amp;th=1"target="_blank" rel="noopener"&gt;Ceramic capacitors&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. Great assortment. Most breadboard projects call for capacitors in this range.&lt;/li&gt;
&lt;li&gt;[Film Capacitors]&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://www.amazon.com/BOJACK-Electrolytic-Capacitor-Assortment-0-1uF%ef%bc%8d1000uF/dp/B07PBQXQNQ/ref=sr_1_3?crid=25Q5U42T8KB8L&amp;amp;keywords=electrolytic&amp;#43;capacitor&amp;#43;kit&amp;amp;qid=1707757239&amp;amp;s=industrial&amp;amp;sprefix=electrolyic&amp;#43;capacitor&amp;#43;kit%2Cindustrial%2C101&amp;amp;sr=1-3"target="_blank" rel="noopener"&gt;Electrolytic Capacitors&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://www.amazon.com/TWTADE-Yellow-Orange-6x6x5mm-Tactile/dp/B07C7211PJ/ref=sr_1_51?crid=23HHTF2WUYJVB&amp;amp;keywords=tactile&amp;#43;switch&amp;#43;assortment&amp;amp;qid=1707758236&amp;amp;s=industrial&amp;amp;sprefix=tactile&amp;#43;switch&amp;#43;assortment%2Cindustrial%2C104&amp;amp;sr=1-51"target="_blank" rel="noopener"&gt;Tactile Switches&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. The box is cute and I really like having a bunch of colors.&lt;/li&gt;
&lt;li&gt;LEDs. I like 3mm LEDs for breadboarding.&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://www.amazon.com/EEEEE-Transistors-Transistor-Assortment-Compartment/dp/B095NMT2SL?ref_=ast_sto_dp&amp;amp;th=1"target="_blank" rel="noopener"&gt;BJT Transistors&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; and &lt;a
href="https://www.amazon.com/EEEEE-Transistor-Assortment-Channel-RFP30N06LE/dp/B09K3T5LSN?ref_=ast_sto_dp"target="_blank" rel="noopener"&gt;Mosfets&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. It took a while for me to learn how to use these parts I&amp;rsquo;m using them more and more now.&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://www.amazon.com/EEEEE-Assortment-Rectifier-Recovery-Switching/dp/B08SBTS2KZ?ref_=ast_sto_dp"target="_blank" rel="noopener"&gt;Diodes&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; and Zener Diodes. I use these less often than I expected, but they still come up from time to time.&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://www.amazon.com/EEEEE-Assortment-Resistance-Individual-Compartment/dp/B09HKNT59M?ref_=ast_sto_dp"target="_blank" rel="noopener"&gt;Inductors&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. I have only used these for experiments so far.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-hextra-search-id="integrated-circuits"&gt;Integrated Circuits&lt;span class="hx:absolute hx:-mt-20" id="integrated-circuits"&gt;&lt;/span&gt;
&lt;a href="#integrated-circuits" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;[ACR story]&lt;/p&gt;
&lt;p&gt;For new parts I prefer to order from Mouser because their cheapest shipping gets here overnight, and their site is much less overwhelming than DigiKey (where I will go if I need a larger selection). For obsolete parts I have had good luck with Unicorn Electronics and North American suppliers on eBay. I have gotten a few batches of fake parts from Chinese suppliers on eBay and AliExpress, so I avoid them now.&lt;/p&gt;
&lt;h2 data-hextra-search-id="microcontrollers"&gt;Microcontrollers&lt;span class="hx:absolute hx:-mt-20" id="microcontrollers"&gt;&lt;/span&gt;
&lt;a href="#microcontrollers" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;[Arduino UNO]&lt;/li&gt;
&lt;li&gt;[Arduino Mega]&lt;/li&gt;
&lt;li&gt;[Seeeduino Xiao]&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-hextra-search-id="other-parts"&gt;Other Parts&lt;span class="hx:absolute hx:-mt-20" id="other-parts"&gt;&lt;/span&gt;
&lt;a href="#other-parts" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;[Rectangular LEDs]&lt;/li&gt;
&lt;li&gt;[Linear Voltage Regulators]&lt;/li&gt;
&lt;li&gt;[Mini360]&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 data-hextra-search-id="wire"&gt;Wire&lt;/h1&gt;</description></item><item><title/><link>https://tpolecat.github.io/www/docs/lab/soldering-tools/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tpolecat.github.io/www/docs/lab/soldering-tools/</guid><description>
&lt;h1 data-hextra-search-id="soldering-tools-and-supplies"&gt;Soldering Tools and Supplies&lt;/h1&gt;&lt;p&gt;I do a lot of soldering (the Altair 8800c alone was more than 2500 solder joints) and I&amp;rsquo;m really happy with this relatively inexpensive setup.&lt;/p&gt;
&lt;h2 data-hextra-search-id="tools"&gt;Tools&lt;span class="hx:absolute hx:-mt-20" id="tools"&gt;&lt;/span&gt;
&lt;a href="#tools" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;[&lt;strong&gt;Geeboon&lt;/strong&gt;]&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://www.amazon.com/YIHUA-959D-Digital-Efficiency-212%c2%b0F-932%c2%b0F-Iron-burn/dp/B08BK3M6YW"target="_blank" rel="noopener"&gt;&lt;strong&gt;Yihua 959D Hot Air Station&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. I got this for SMD soldering when I was making [&lt;strong&gt;Numitron clocks&lt;/strong&gt;] and it works fine. I also use it for heat-shrink tubing and loosening up stiff PVC cables.&lt;/li&gt;
&lt;li&gt;&lt;a
href=""&gt;&lt;strong&gt;xxx Hot Plate&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Magnet Board Thing.&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://www.amazon.com/gp/product/B002MJMXD4"target="_blank" rel="noopener"&gt;&lt;strong&gt;Engineer Solder Sucker&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. All metal except for the bendy silicone &lt;a
href="https://www.amazon.com/gp/product/B003K0B3HG"target="_blank" rel="noopener"&gt;&lt;strong&gt;tip&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. I like the stubby size because I have small hands. I found that solder suckers create enough vacuum pressure to lift pads on old boards, so I try to use wick when I can.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-hextra-search-id="supplies"&gt;Supplies&lt;span class="hx:absolute hx:-mt-20" id="supplies"&gt;&lt;/span&gt;
&lt;a href="#supplies" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a
href="https://www.amazon.com/gp/product/B004L4VHJE"target="_blank" rel="noopener"&gt;&lt;strong&gt;Kester 24-6337-8807 Solder&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. This is 0.5mm 63/37 leaded solder wire and I really like it for PCB work. I initially got a spool of thicker (0.8mm) &lt;a
href="https://www.amazon.com/gp/product/B00068IJOU"target="_blank" rel="noopener"&gt;&lt;strong&gt;24-6337-8800&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; wire but it didn&amp;rsquo;t work well with the tip I normally use, which sucks because it&amp;rsquo;s an expensive spool of solder. I still use it when I switch to the big tip, which isn&amp;rsquo;t very often.&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://www.amazon.com/gp/product/B0186IM0P0"target="_blank" rel="noopener"&gt;&lt;strong&gt;Chip Quik SMD291AX Solder Paste&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. I use this for SMD soldering and it works well. Very easy to deal with.&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://www.amazon.com/gp/product/B00CM2A97S"target="_blank" rel="noopener"&gt;&lt;strong&gt;Chip Quik Tack Flux&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. Good sticky flux. Solves all problems.&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://www.amazon.com/dp/B095KXMGT5"target="_blank" rel="noopener"&gt;&lt;strong&gt;Chip Quik Liquid Flux&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. Good liquid flux. Solves all problems.&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://www.amazon.com/gp/product/B00424MWHO"target="_blank" rel="noopener"&gt;&lt;strong&gt;MG Chemicals Super Wick&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. This stuff is magic. It&amp;rsquo;s nothing at all like cheap braid. It works amazingly well.&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://www.amazon.com/gp/product/B002V7QDZQ"target="_blank" rel="noopener"&gt;&lt;strong&gt;Weller Tip Tinner&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. Sometimes a tip gets into a state where the surface immediately oxidizes after cleaning, so solder won&amp;rsquo;t stick to it. This stuff smells like Satan when it burns but it fixes the problem.&lt;/li&gt;
&lt;li&gt;heat sink compound&lt;/li&gt;
&lt;li&gt;paste flux&lt;/li&gt;
&lt;li&gt;solder reel&lt;/li&gt;
&lt;li&gt;Kapton Tape&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-hextra-search-id="retired-tools"&gt;Retired Tools&lt;span class="hx:absolute hx:-mt-20" id="retired-tools"&gt;&lt;/span&gt;
&lt;a href="#retired-tools" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a
href="https://www.amazon.com/Hakko-FX888D-23BY-Digital-Soldering-Station/dp/B00ANZRT4M"target="_blank" rel="noopener"&gt;&lt;strong&gt;Hakko FX-888 Soldering Station&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. This was the first &amp;ldquo;expensive&amp;rdquo; tool I bought, and I was really worried that it wouldn&amp;rsquo;t work out because I had never really soldered before. It worked out well and if you can get one for free, go for it. But if you&amp;rsquo;re buying one now I would go for a JBC-style iron like the Geeboon above.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-hextra-search-id="loser-soldering-tools-and-supplies"&gt;Loser Soldering Tools and Supplies&lt;span class="hx:absolute hx:-mt-20" id="loser-soldering-tools-and-supplies"&gt;&lt;/span&gt;
&lt;a href="#loser-soldering-tools-and-supplies" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Here are come soldering tools and supplies that didn&amp;rsquo;t work out.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a
href="https://www.amazon.com/gp/product/B000P42O3C"target="_blank" rel="noopener"&gt;&lt;strong&gt;Helping Hands&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. Everybody sells these in their soldering kits, so I got one thinking it would be good. It was not. Literally nothing about it is good.&lt;/li&gt;
&lt;li&gt;blue tack&lt;/li&gt;
&lt;li&gt;cheap solder&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://www.amazon.com/gp/product/B081ZRY3T3"target="_blank" rel="noopener"&gt;&lt;strong&gt;Cheap Solder Suckers&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. The cheap blue solder suckers clog easily and the tip is not very heat-resistant. Also hard for me to use one-handed.&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://www.amazon.com/gp/product/B081ZRY3T3"target="_blank" rel="noopener"&gt;&lt;strong&gt;Cheap Wick&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. Cheap braid doesn&amp;rsquo;t absorb solder very well so it&amp;rsquo;s frustrating to use and exposes the board to more heat.&lt;/li&gt;
&lt;li&gt;&lt;a
href=""&gt;&lt;strong&gt;Yihua 30W 929D-V Desoldering Iron&lt;/strong&gt;&lt;/a&gt;. This seemed worth a try but it doesn&amp;rsquo;t work well. Maybe I&amp;rsquo;m doing it wrong.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Scotch Tape&lt;/strong&gt;. Before I discovered Kapton tape I tried holding parts in place with Scotch tape, with predictable results.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title/><link>https://tpolecat.github.io/www/docs/lab/test-equipment/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tpolecat.github.io/www/docs/lab/test-equipment/</guid><description>
&lt;h1 data-hextra-search-id="test-equipment"&gt;Test Equipment&lt;/h1&gt;&lt;h2 data-hextra-search-id="modern-test-equipment"&gt;Modern Test Equipment&lt;span class="hx:absolute hx:-mt-20" id="modern-test-equipment"&gt;&lt;/span&gt;
&lt;a href="#modern-test-equipment" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;There&amp;rsquo;s kind of a chicken-and-egg problem with used instrumentation, because you need working instruments in order to repair and calibrate old instruments. So my approach at first was to buy new, good quality hobbyist-level instruments rather than cheaper, better, likely-broken instruments on eBay.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a
href="https://www.amazon.com/dp/B0085QLNFM?th=1"target="_blank" rel="noopener"&gt;&lt;strong&gt;Korad KA3005P&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. This is a very nice 30V, 5A linear bench power supply that&amp;rsquo;s only 10&amp;quot; deep so it fits on my shelf. I have two of them and want to get a third (a lot of old boards want +5 and then +/-12). This is still cheaper than a good 3-rail power supply.&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://eevblog.store/products/eevblog-bm786-multimeter"target="_blank" rel="noopener"&gt;&lt;strong&gt;EEVblog BM786 Multimeter&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. I use a multimeter more than any other tool and I think this is generally true for anyone who works with electronics. I started out wih a much cheaper &lt;a
href="https://www.amazon.com/gp/product/B000EX0AE4?th=1"target="_blank" rel="noopener"&gt;&lt;strong&gt;Extech EX330&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; and it&amp;rsquo;s great, but I recently got the Brymen as a gift and I really like the extra precision and faster response. I also have an inexpensive &lt;a
href=""&gt;&lt;strong&gt;xxx&lt;/strong&gt;&lt;/a&gt; clamp meter but haven&amp;rsquo;t needed to use it much. Seems to work fine.&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://www.amazon.com/gp/product/B08HQL386T"target="_blank" rel="noopener"&gt;&lt;strong&gt;Rigol DS1202Z-E Digital Oscilloscope&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. This scope works great and I love it, but I wasn&amp;rsquo;t sure what I needed at the time and I should have gotten a lower-bandwidth scope with 4 channels. I was looking specifically for a scope with protocol decoding (SPI, I2C, RS232, etc.) and I have used that feature a lot.&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://www.amazon.com/UNI-T-UTG962E-Arbitrary-Generator-Dual-Channel/dp/B0BP6TZCRK"target="_blank" rel="noopener"&gt;&lt;strong&gt;UNI-T UTG962E Arbitrary Waveform Generator&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. When I was just doing digital circuits I got by just fine using a 555 timer to generate square waves, but once I started playing around with analog I really needed a true function generator. This one works great. My only complaint is that there&amp;rsquo;s no built-in way to make it generate a set number of pulses.&lt;/li&gt;
&lt;li&gt;[&lt;strong&gt;Component Tester&lt;/strong&gt;].&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://www.amazon.com/DreamSourceLab-USB-Based-Analyzer-Sampling-Interface/dp/B08C2QN9GQ?th=1"target="_blank" rel="noopener"&gt;&lt;strong&gt;DreamSourceLab DSLogic Plus&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. Build quality is fantastic and the software works well, but keep in mind that modern logic analyzers are most intended for serial protocols like SPI and I2C; they don&amp;rsquo;t have enough probes to look at parallel buses and the software can&amp;rsquo;t deal with them anyway. So I use my HP 1661A (see below) for computer work.&lt;/li&gt;
&lt;li&gt;&lt;a
href=""&gt;&lt;strong&gt;Bus Pirate&lt;/strong&gt;&lt;/a&gt;. In principle this is a cool tool for playing around with components, but I haven&amp;rsquo;t had a lot of luck with it and the documentation isn&amp;rsquo;t very good. I like the idea though.&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://www.amazon.com/gp/product/B0BWRWMF4Y?th=1"target="_blank" rel="noopener"&gt;&lt;strong&gt;Hantek 1833C LCR Meter&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. I got this instrument specifically so I could check capacitors on old computers I&amp;rsquo;m repairing. Works great.&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://www.aliexpress.us/item/3256801412362236.html"target="_blank" rel="noopener"&gt;&lt;strong&gt;82¢ Logic Probe&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. These things are basically free and they&amp;rsquo;re great. I got a bag of them from AliExpress use them all the time.&lt;/li&gt;
&lt;li&gt;Test Leads, Mini Grabbers&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-hextra-search-id="vintage-test-equipment"&gt;Vintage Test Equipment&lt;span class="hx:absolute hx:-mt-20" id="vintage-test-equipment"&gt;&lt;/span&gt;
&lt;a href="#vintage-test-equipment" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;After a while I gained enough confidence to try out old instruments and was able to get all of them working.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a
href=""&gt;&lt;strong&gt;Tektronix 2213 Analog Oscilloscope&lt;/strong&gt;&lt;/a&gt;. Digital scopes aren&amp;rsquo;t very good for x-y displays, so I got this scope to use with my &lt;a
href=""&gt;Scopetrex&lt;/a&gt; and curve tracer (see below). Most of the knobs had broken off so I &lt;a
href=""&gt;printed&lt;/a&gt; new ones.&lt;/li&gt;
&lt;li&gt;&lt;a
href="https://www.curiousmarc.com/instruments/hp-4957a-protocol-analyzer"target="_blank" rel="noopener"&gt;&lt;strong&gt;HP 4957A Protocol Analyzer&lt;/strong&gt;&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;. I got this for debugging serial issues and also so I would have a nice portable VT-100 compatible terminal. It had a weird defect that took a long time to find, but the &lt;a
href=""&gt;repair&lt;/a&gt; was easy.&lt;/li&gt;
&lt;li&gt;&lt;a
href=""&gt;&lt;strong&gt;HP 1661A Logic Analyzer&lt;/strong&gt;&lt;/a&gt;. Modern logic analyzers like the DSLogic Plus (above) are small and very fast but don&amp;rsquo;t provide many channels. Older logic analysers on the other hand are big and slow (by modern standards) but provide a huge number of channels, allowing you to probe essentially every line in a vintage computer at the same time. This was the key to diagnosing and repairing the [GIGI].&lt;/li&gt;
&lt;li&gt;&lt;a
href=""&gt;&lt;strong&gt;Heathkit IT-1121 Semiconductor Curve Tracer&lt;/strong&gt;&lt;/a&gt;. This was in the free pile at VCFSW! It&amp;rsquo;s a really nice transistor/diode tester that uses an analog oscilloscope as its display. &amp;ldquo;Real&amp;rdquo; curve tracers like the Tektronix 576 are huge and very expensive and definitely beyond my ability to repair, so I&amp;rsquo;m really pleased to have found this one.&lt;/li&gt;
&lt;li&gt;[Heathkit IC tester]&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-hextra-search-id="loser-test-equipment"&gt;Loser Test Equipment&lt;span class="hx:absolute hx:-mt-20" id="loser-test-equipment"&gt;&lt;/span&gt;
&lt;a href="#loser-test-equipment" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Some stuff that didn&amp;rsquo;t work out:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Current-Unlimited Power Supplies&lt;/strong&gt;. When I first got started I had a bunch of little 5V power supplies to use with breadboards, and a variable power brick with a little dial for adjusting voltage. These problem is that they&amp;rsquo;re not current-limited, so it&amp;rsquo;s very easy to burn up parts when I put them in backwards.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>88-LPC-ish</title><link>https://tpolecat.github.io/www/docs/altair-8800c/88-lpce/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tpolecat.github.io/www/docs/altair-8800c/88-lpce/</guid><description>
&lt;p&gt;Life with a 70s computer was much more hardcopy-dominant than it is today. Although full-screen editing was available if you had a CRT terminal, you were still limited to maybe 25 lines of text at a time, and even with a fast serial connection the update time was very noticeable. Also a lot of software still assumed you were using a teletype and would &amp;ldquo;scroll up&amp;rdquo; by literally going through the scroll of printer paper accumulating in front of you. So to get the full experience I really needed to hook up a printer to the Altair.&lt;/p&gt;
&lt;p&gt;The 1975 MITS Line Printer Controller card (88-LPC) was a standard parallel interface for Centronics style printers like my Microline µ92, but these cards are evidently very rare. I initially thought about reverse-engineering the original from the manual and photographs, but I was too impatient and just wanted to get it working well enough to work with my specific setup. Functionally this meant I could leave out out interrupts (which CP/M doesn&amp;rsquo;t need) and buffering (which my printer already has internally).&lt;/p&gt;
&lt;h3 data-hextra-search-id="prototyping"&gt;Prototyping&lt;span class="hx:absolute hx:-mt-20" id="prototyping"&gt;&lt;/span&gt;
&lt;a href="#prototyping" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;My initial prototype was on this &lt;a
href="https://www.s100computers.com/My%20System%20Pages/Prototype%20Board/Prototype%20Board.htm"target="_blank" rel="noopener"&gt;S-100 Buffered Prototyping Board&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; with some breadboards taped to the top. It&amp;rsquo;s quite ugly but it worked pretty well.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://tpolecat.github.io/www/docs/altair-8800c/88-lpce/breadboard.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;The only tricky bit here was that the write cycle time on the Altair was also the exact minimum strobe length required when sending data to the printer, which proved to be very unreliable. My fix was to latch the data on the output cycle and then start strobing it out to the printer on the following cycle, using an LS123 to set the timing. The &lt;code&gt;OUT&lt;/code&gt; instruction takes three cycles so it&amp;rsquo;s not possible to overrun the latch unless you overclock the CPU.&lt;/p&gt;
&lt;p&gt;With this fix my prototype card worked.&lt;/p&gt;
&lt;p&gt;&lt;video src="breadboard.mp4" controls&gt;Your browser does not support the video tag.&lt;/video&gt;&lt;/p&gt;
&lt;h3 data-hextra-search-id="real-card"&gt;Real Card&lt;span class="hx:absolute hx:-mt-20" id="real-card"&gt;&lt;/span&gt;
&lt;a href="#real-card" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Time to make a real card so I could put the lid back on. I could have used the perfboard section on another protoboard, but I actually didn&amp;rsquo;t need all the bus buffering so I decided to make my own card, which only needed seven ICs. Unfortunately I managed to miss a bunch of things in my schematic and the board required a lot of bodging. I especially like the blue wire that wraps around to the back of the board.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://tpolecat.github.io/www/docs/altair-8800c/88-lpce/errors.png" title="Mistakes were made." alt="" loading="lazy" /&gt;
&lt;figcaption&gt;Mistakes were made.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Rev. B was much better, but still required a small bodge on the back. But it works fine and isn&amp;rsquo;t an embarrasment so I&amp;rsquo;m calling this one good. I have four extras if anybody wants one.&lt;/p&gt;
&lt;div class="hextra-scrollbar hx:overflow-x-auto hx:overflow-y-hidden hx:overscroll-x-contain"&gt;
&lt;div class="hx:mt-4 hx:flex hx:w-max hx:min-w-full hx:border-b hx:border-gray-200 hx:pb-px hx:dark:border-neutral-800" role="tablist"&gt;&lt;button class="hextra-tabs-toggle hx:cursor-pointer hx:data-[state=selected]:border-primary-500 hx:data-[state=selected]:text-primary-600 hx:data-[state=selected]:dark:border-primary-500 hx:data-[state=selected]:dark:text-primary-600 hx:mr-2 hx:rounded-t hx:p-2 hx:font-medium hx:leading-5 hx:transition-colors hx:-mb-0.5 hx:select-none hx:border-b-2 hx:border-transparent hx:text-gray-600 hx:hover:border-gray-200 hx:hover:text-black hx:dark:text-gray-200 hx:dark:hover:border-neutral-800 hx:dark:hover:text-white hx:hextra-focus-visible-inset" id="tabs-tab-tabs-00-0" role="tab" type="button" aria-controls="tabs-panel-tabs-00-0" aria-selected="true" tabindex="0" data-state="selected"&gt;&lt;span class="hx:inline-flex hx:items-center hx:gap-1.5"&gt;&lt;span&gt;Rev. B&lt;/span&gt;&lt;/span&gt;&lt;/button&gt;&lt;button class="hextra-tabs-toggle hx:cursor-pointer hx:data-[state=selected]:border-primary-500 hx:data-[state=selected]:text-primary-600 hx:data-[state=selected]:dark:border-primary-500 hx:data-[state=selected]:dark:text-primary-600 hx:mr-2 hx:rounded-t hx:p-2 hx:font-medium hx:leading-5 hx:transition-colors hx:-mb-0.5 hx:select-none hx:border-b-2 hx:border-transparent hx:text-gray-600 hx:hover:border-gray-200 hx:hover:text-black hx:dark:text-gray-200 hx:dark:hover:border-neutral-800 hx:dark:hover:text-white hx:hextra-focus-visible-inset" id="tabs-tab-tabs-00-1" role="tab" type="button" aria-controls="tabs-panel-tabs-00-1" aria-selected="false" tabindex="-1"&gt;&lt;span class="hx:inline-flex hx:items-center hx:gap-1.5"&gt;&lt;span&gt;Wee Bodge&lt;/span&gt;&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;div class="hextra-tabs-panel hx:rounded-sm hx:pt-6 hx:hidden hx:data-[state=selected]:block" id="tabs-panel-tabs-00-0" role="tabpanel" aria-labelledby="tabs-tab-tabs-00-0" aria-hidden="false" tabindex="0" data-state="selected"&gt;&lt;img src="revb.png" alt="" loading="lazy" /&gt;&lt;/div&gt;&lt;div class="hextra-tabs-panel hx:rounded-sm hx:pt-6 hx:hidden hx:data-[state=selected]:block" id="tabs-panel-tabs-00-1" role="tabpanel" aria-labelledby="tabs-tab-tabs-00-1" aria-hidden="true"&gt;&lt;img src="revb_bodge.png" alt="" loading="lazy" /&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;This was a fun project and it inspired me to make more cards (foreshadowing).&lt;/p&gt;</description></item><item><title>ADM-3A</title><link>https://tpolecat.github.io/www/docs/restorations/adm3a/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tpolecat.github.io/www/docs/restorations/adm3a/</guid><description>
&lt;p&gt;The ADM-A3 was an early &amp;ldquo;affordable&amp;rdquo; video terminal from the mid-1970s, a time when teletypes were still in common use. It was famously the terminal Bill Joy used to write &lt;code&gt;vi&lt;/code&gt;, which explains a few things.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://tpolecat.github.io/www/docs/restorations/adm3a/hjkl.png" title="The origin of vi&amp;#39;s navigation keys." alt="" loading="lazy" /&gt;
&lt;figcaption&gt;The origin of vi&amp;#39;s navigation keys.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Mine showed up one day a few years ago, with a message from my friend Glen to go look on the front porch. The shape and color are from an age before beige boxes. It&amp;rsquo;s really striking, but the CRT cataracts are immediately visible and will require some attention.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://tpolecat.github.io/www/docs/restorations/adm3a/porch.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;h3 data-hextra-search-id="initial-assessment"&gt;Initial Assessment&lt;span class="hx:absolute hx:-mt-20" id="initial-assessment"&gt;&lt;/span&gt;
&lt;a href="#initial-assessment" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;The terminal was dirty but mechanically in good shape and the little LSI nameplate was intact, which is rare. It opens like a clamshell, revealing a gorgeous PCB with a whole lot of 74-series logic ICs. Unlike later terminals, this one has no microprocessor inside. It&amp;rsquo;s all discrete.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://tpolecat.github.io/www/docs/restorations/adm3a/open.png" title="What&amp;#39;s up with that ribbon cable?" alt="" loading="lazy" /&gt;
&lt;figcaption&gt;What&amp;#39;s up with that ribbon cable?&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;I was puzzled by the ribbon cable wrapping around to the back of the PCB and was very surprised to find that there was another PCB underneath, as well as the UART that had been in the socket where the ribbon cable was plugged in. The surprise card is an extremely rare RG512 graphics card that hooks into the serial stream, intercepts Tektronix vector graphics commands, and draws them using its own video circuitry that&amp;rsquo;s mixed into the main signal going to the CRT. An amazing find.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://tpolecat.github.io/www/docs/restorations/adm3a/rg512.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;After disassembly this is what we&amp;rsquo;re dealing with. Some deep cleaning and lots of big capacitors to check, at the very least.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://tpolecat.github.io/www/docs/restorations/adm3a/boards.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;h3 data-hextra-search-id="initial-bring-up"&gt;Initial Bring-Up&lt;span class="hx:absolute hx:-mt-20" id="initial-bring-up"&gt;&lt;/span&gt;
&lt;a href="#initial-bring-up" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;I decided to leave the RG512 out of the equation for the initial bring-up, to simplify things. Luckily that was just a matter of plugging the UART back in and rearranging some cables. After replacing the gummed-up power switch and testing the big caps (all fine, surprisingly) I powered it up and saw a cursor, but keystrokes weren&amp;rsquo;t showing up in half-duplex mode as expected. I instrumented the baud clock and found that it was all jittery.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://tpolecat.github.io/www/docs/restorations/adm3a/jitter.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;After testing a bunch of ICs I realized that the baud clock would change whenever I &lt;em&gt;touched&lt;/em&gt; the DIP switchs! This was my introduction to &amp;ldquo;always swap out the dip switches when you&amp;rsquo;re restoring things.&amp;rdquo; After swapping the corroded blue switches for new red ones, everthing started working.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://tpolecat.github.io/www/docs/restorations/adm3a/switches.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;With the text terminal working I turned my attention to the RG512.&lt;/p&gt;
&lt;h3 data-hextra-search-id="fixing-the-rg512"&gt;Fixing the RG512&lt;span class="hx:absolute hx:-mt-20" id="fixing-the-rg512"&gt;&lt;/span&gt;
&lt;a href="#fixing-the-rg512" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Unlike the ADM-3A board, every single electrolytic capacitor on the RG512 had gone bad, so I had to replace these before moving forward.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://tpolecat.github.io/www/docs/restorations/adm3a/caps.png" title="Bad. Bad caps." alt="" loading="lazy" /&gt;
&lt;figcaption&gt;Bad. Bad caps.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;In order to test the RG512 I would need to send it graphics commands and wanted to hook it up as a terminal to my Mac. It took a while to figure out how to make &lt;code&gt;getty&lt;/code&gt; run and deal with the unusual terminal type (this is pre-ANSI) but I managed to get it working, sadly without taking notes so I&amp;rsquo;m going to have to figure it out all over again some day. I was unhappy with running a serial cable across my office so I wired up an HC-05 bluetooth modem with a MAX232 transceiver and clipped it straight to back of the the DB-25 connector. This allowed me to interact with the Mac wirelessly.&lt;/p&gt;
&lt;p&gt;&lt;video src="HC-05.mp4" controls&gt;Your browser does not support the video tag.&lt;/video&gt;&lt;/p&gt;
&lt;p&gt;The RG512 supports the Tektronix 4010 graphics language, allowing this inexpensive terminal to kind-of work with Plot 10 and other programs designed for Tektronix vector terminals. Vectors in 1024x780 are automatically scaled down to the native 512x250 raster resolution.&lt;/p&gt;
&lt;p&gt;Sending some basic commands to draw a triangle resulted in a triangle, but an extremely wobbly one.&lt;/p&gt;
&lt;p&gt;&lt;video src="wobble.mp4" controls&gt;Your browser does not support the video tag.&lt;/video&gt;&lt;/p&gt;
&lt;p&gt;Note that the ADM-3A text doesn&amp;rsquo;t wobble. It&amp;rsquo;s only the graphics &amp;ldquo;layer&amp;rdquo;, which is a separate video signal that&amp;rsquo;s mixed in before it goes to the CRT.&lt;/p&gt;
&lt;p&gt;So to get to the bottom of this I rearranged the boards to put the RG512 on top, allowing me to probe it while it was running. And oddly the rippling effect went away, only to come back several minutes later. Adding a fan delayed the regression for half an hour or so, veryfiying that the problem was thermal. After a &lt;em&gt;lot&lt;/em&gt; of probing around the video circuit I narrowed the failure down to a 7413, which the holy TTL Data Book identifies as dual 4-input positive NAND Schmitt triggers.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://tpolecat.github.io/www/docs/restorations/adm3a/7413_1.png" title="The culprit." alt="" loading="lazy" /&gt;
&lt;figcaption&gt;The culprit.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;I did not have an extra 7413, nor could I find one as they seem to have become unobtanium, but after looking more closely I realized that the way it was being used here I could hack up something equivalent using a 74LS132.&lt;/p&gt;
&lt;p&gt;&lt;video src="74132.mp4" controls&gt;Your browser does not support the video tag.&lt;/video&gt;&lt;/p&gt;
&lt;p&gt;I am not proud of this, but it did work and I was now able to draw things!&lt;/p&gt;
&lt;p&gt;&lt;video src="snoop.mp4" controls&gt;Your browser does not support the video tag.&lt;/video&gt;&lt;/p&gt;
&lt;p&gt;The next annoyance was getting past the default mode of all-uppercase.&lt;/p&gt;
&lt;h3 data-hextra-search-id="lowercase-rom"&gt;Lowercase ROM&lt;span class="hx:absolute hx:-mt-20" id="lowercase-rom"&gt;&lt;/span&gt;
&lt;a href="#lowercase-rom" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;The ADM-3A has a socket for a lowercase character generator but it wasn&amp;rsquo;t populated in mine. The original part is no longer available, but with a suitable adapter a 2716 EPROM can be used instead. I designed a little adapter board and burnt the EPROM and it worked fine, the only issue being that the TL866 can&amp;rsquo;t provide the required +25V on the programming pin. Luckily it works if you bend that pin up and feed it yourself.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://tpolecat.github.io/www/docs/restorations/adm3a/25v.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;This was an easy upgrade and it really improved the feel of the terminal.&lt;/p&gt;
&lt;p&gt;&lt;video src="lower.mp4" controls&gt;Your browser does not support the video tag.&lt;/video&gt;&lt;/p&gt;
&lt;p&gt;And now with the terminal electrically sound, it was time to face the final boss.&lt;/p&gt;
&lt;h3 data-hextra-search-id="fixing-the-cataracts"&gt;Fixing the Cataracts&lt;span class="hx:absolute hx:-mt-20" id="fixing-the-cataracts"&gt;&lt;/span&gt;
&lt;a href="#fixing-the-cataracts" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;CPU cataracts form in the adhesive gel between the CRT and the front safety glass. It may be chemical or bacterial, I don&amp;rsquo;t know, but once it starts it keeps getting worse and the screen eventually becomes unusable. My ADM-3A was pretty much at this point. I was initially very reluctant to mess with the CRT because it&amp;rsquo;s a gigantic capacitor that you have to discharge before it kills you, but after a year of consideration I convinced myself that I could do it safely, and did so without incident.&lt;/p&gt;
&lt;p&gt;Following the lead of &lt;a
href=""&gt;Usagi Electric&lt;/a&gt; I waited for a very hot day and set the screen out in the nourishing Texas sun to heat up. I started in the early morning to avoid heating the tube too quickly.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://tpolecat.github.io/www/docs/restorations/adm3a/cararact_1.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;By 9am it was quite hot, and by lunchtime the gel was starting to let go. I used a plastic spudger to dig out hunks of adhesive around the edge until I was able to &lt;em&gt;slowly&lt;/em&gt; and &lt;em&gt;very gently&lt;/em&gt; pry the safety glass up. The name of the game here is patience, and the miracle of solar energy.&lt;/p&gt;
&lt;div class="hextra-scrollbar hx:overflow-x-auto hx:overflow-y-hidden hx:overscroll-x-contain"&gt;
&lt;div class="hx:mt-4 hx:flex hx:w-max hx:min-w-full hx:border-b hx:border-gray-200 hx:pb-px hx:dark:border-neutral-800" role="tablist"&gt;&lt;button class="hextra-tabs-toggle hx:cursor-pointer hx:data-[state=selected]:border-primary-500 hx:data-[state=selected]:text-primary-600 hx:data-[state=selected]:dark:border-primary-500 hx:data-[state=selected]:dark:text-primary-600 hx:mr-2 hx:rounded-t hx:p-2 hx:font-medium hx:leading-5 hx:transition-colors hx:-mb-0.5 hx:select-none hx:border-b-2 hx:border-transparent hx:text-gray-600 hx:hover:border-gray-200 hx:hover:text-black hx:dark:text-gray-200 hx:dark:hover:border-neutral-800 hx:dark:hover:text-white hx:hextra-focus-visible-inset" id="tabs-tab-tabs-00-0" role="tab" type="button" aria-controls="tabs-panel-tabs-00-0" aria-selected="true" tabindex="0" data-state="selected"&gt;&lt;span class="hx:inline-flex hx:items-center hx:gap-1.5"&gt;&lt;span&gt;The Carnage&lt;/span&gt;&lt;/span&gt;&lt;/button&gt;&lt;button class="hextra-tabs-toggle hx:cursor-pointer hx:data-[state=selected]:border-primary-500 hx:data-[state=selected]:text-primary-600 hx:data-[state=selected]:dark:border-primary-500 hx:data-[state=selected]:dark:text-primary-600 hx:mr-2 hx:rounded-t hx:p-2 hx:font-medium hx:leading-5 hx:transition-colors hx:-mb-0.5 hx:select-none hx:border-b-2 hx:border-transparent hx:text-gray-600 hx:hover:border-gray-200 hx:hover:text-black hx:dark:text-gray-200 hx:dark:hover:border-neutral-800 hx:dark:hover:text-white hx:hextra-focus-visible-inset" id="tabs-tab-tabs-00-1" role="tab" type="button" aria-controls="tabs-panel-tabs-00-1" aria-selected="false" tabindex="-1"&gt;&lt;span class="hx:inline-flex hx:items-center hx:gap-1.5"&gt;&lt;span&gt;Close-Up&lt;/span&gt;&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;div class="hextra-tabs-panel hx:rounded-sm hx:pt-6 hx:hidden hx:data-[state=selected]:block" id="tabs-panel-tabs-00-0" role="tabpanel" aria-labelledby="tabs-tab-tabs-00-0" aria-hidden="false" tabindex="0" data-state="selected"&gt;&lt;img src="caratact_2.png" alt="" loading="lazy" /&gt;&lt;/div&gt;&lt;div class="hextra-tabs-panel hx:rounded-sm hx:pt-6 hx:hidden hx:data-[state=selected]:block" id="tabs-panel-tabs-00-1" role="tabpanel" aria-labelledby="tabs-tab-tabs-00-1" aria-hidden="true"&gt;&lt;img src="cataract_3.png" alt="" loading="lazy" /&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;The remaining adhesive came off easily with a plastic scraper and some isopropyl alcohol. It&amp;rsquo;s very important to only use plastic tools for this because everything can scratch easily, which looks bad and can weaken the CRT. I reattached the safety glass with foam tape that was a little bit thicker than the gel layer, to allow for a little compression, then wrapped the gap with kapton tape to keep insects out.&lt;/p&gt;
&lt;div class="hextra-scrollbar hx:overflow-x-auto hx:overflow-y-hidden hx:overscroll-x-contain"&gt;
&lt;div class="hx:mt-4 hx:flex hx:w-max hx:min-w-full hx:border-b hx:border-gray-200 hx:pb-px hx:dark:border-neutral-800" role="tablist"&gt;&lt;button class="hextra-tabs-toggle hx:cursor-pointer hx:data-[state=selected]:border-primary-500 hx:data-[state=selected]:text-primary-600 hx:data-[state=selected]:dark:border-primary-500 hx:data-[state=selected]:dark:text-primary-600 hx:mr-2 hx:rounded-t hx:p-2 hx:font-medium hx:leading-5 hx:transition-colors hx:-mb-0.5 hx:select-none hx:border-b-2 hx:border-transparent hx:text-gray-600 hx:hover:border-gray-200 hx:hover:text-black hx:dark:text-gray-200 hx:dark:hover:border-neutral-800 hx:dark:hover:text-white hx:hextra-focus-visible-inset" id="tabs-tab-tabs-01-0" role="tab" type="button" aria-controls="tabs-panel-tabs-01-0" aria-selected="true" tabindex="0" data-state="selected"&gt;&lt;span class="hx:inline-flex hx:items-center hx:gap-1.5"&gt;&lt;span&gt;Cleaning&lt;/span&gt;&lt;/span&gt;&lt;/button&gt;&lt;button class="hextra-tabs-toggle hx:cursor-pointer hx:data-[state=selected]:border-primary-500 hx:data-[state=selected]:text-primary-600 hx:data-[state=selected]:dark:border-primary-500 hx:data-[state=selected]:dark:text-primary-600 hx:mr-2 hx:rounded-t hx:p-2 hx:font-medium hx:leading-5 hx:transition-colors hx:-mb-0.5 hx:select-none hx:border-b-2 hx:border-transparent hx:text-gray-600 hx:hover:border-gray-200 hx:hover:text-black hx:dark:text-gray-200 hx:dark:hover:border-neutral-800 hx:dark:hover:text-white hx:hextra-focus-visible-inset" id="tabs-tab-tabs-01-1" role="tab" type="button" aria-controls="tabs-panel-tabs-01-1" aria-selected="false" tabindex="-1"&gt;&lt;span class="hx:inline-flex hx:items-center hx:gap-1.5"&gt;&lt;span&gt;Foam Tape&lt;/span&gt;&lt;/span&gt;&lt;/button&gt;&lt;button class="hextra-tabs-toggle hx:cursor-pointer hx:data-[state=selected]:border-primary-500 hx:data-[state=selected]:text-primary-600 hx:data-[state=selected]:dark:border-primary-500 hx:data-[state=selected]:dark:text-primary-600 hx:mr-2 hx:rounded-t hx:p-2 hx:font-medium hx:leading-5 hx:transition-colors hx:-mb-0.5 hx:select-none hx:border-b-2 hx:border-transparent hx:text-gray-600 hx:hover:border-gray-200 hx:hover:text-black hx:dark:text-gray-200 hx:dark:hover:border-neutral-800 hx:dark:hover:text-white hx:hextra-focus-visible-inset" id="tabs-tab-tabs-01-2" role="tab" type="button" aria-controls="tabs-panel-tabs-01-2" aria-selected="false" tabindex="-1"&gt;&lt;span class="hx:inline-flex hx:items-center hx:gap-1.5"&gt;&lt;span&gt;Mounting&lt;/span&gt;&lt;/span&gt;&lt;/button&gt;&lt;button class="hextra-tabs-toggle hx:cursor-pointer hx:data-[state=selected]:border-primary-500 hx:data-[state=selected]:text-primary-600 hx:data-[state=selected]:dark:border-primary-500 hx:data-[state=selected]:dark:text-primary-600 hx:mr-2 hx:rounded-t hx:p-2 hx:font-medium hx:leading-5 hx:transition-colors hx:-mb-0.5 hx:select-none hx:border-b-2 hx:border-transparent hx:text-gray-600 hx:hover:border-gray-200 hx:hover:text-black hx:dark:text-gray-200 hx:dark:hover:border-neutral-800 hx:dark:hover:text-white hx:hextra-focus-visible-inset" id="tabs-tab-tabs-01-3" role="tab" type="button" aria-controls="tabs-panel-tabs-01-3" aria-selected="false" tabindex="-1"&gt;&lt;span class="hx:inline-flex hx:items-center hx:gap-1.5"&gt;&lt;span&gt;Kapton Tape&lt;/span&gt;&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;div class="hextra-tabs-panel hx:rounded-sm hx:pt-6 hx:hidden hx:data-[state=selected]:block" id="tabs-panel-tabs-01-0" role="tabpanel" aria-labelledby="tabs-tab-tabs-01-0" aria-hidden="false" tabindex="0" data-state="selected"&gt;&lt;img src="safety_glass_1.png" alt="" loading="lazy" /&gt;&lt;/div&gt;&lt;div class="hextra-tabs-panel hx:rounded-sm hx:pt-6 hx:hidden hx:data-[state=selected]:block" id="tabs-panel-tabs-01-1" role="tabpanel" aria-labelledby="tabs-tab-tabs-01-1" aria-hidden="true"&gt;&lt;img src="safety_glass_2.png" alt="" loading="lazy" /&gt;&lt;/div&gt;&lt;div class="hextra-tabs-panel hx:rounded-sm hx:pt-6 hx:hidden hx:data-[state=selected]:block" id="tabs-panel-tabs-01-2" role="tabpanel" aria-labelledby="tabs-tab-tabs-01-2" aria-hidden="true"&gt;&lt;img src="safety_glass_3.png" alt="" loading="lazy" /&gt;&lt;/div&gt;&lt;div class="hextra-tabs-panel hx:rounded-sm hx:pt-6 hx:hidden hx:data-[state=selected]:block" id="tabs-panel-tabs-01-3" role="tabpanel" aria-labelledby="tabs-tab-tabs-01-3" aria-hidden="true"&gt;&lt;img src="safety_glass_4.png" alt="" loading="lazy" /&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;After reassembly the screen was crystal clear. A very sasisfying repair.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://tpolecat.github.io/www/docs/restorations/adm3a/final.png" title="Classic gaming." alt="" loading="lazy" /&gt;
&lt;figcaption&gt;Classic gaming.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;</description></item><item><title>HP 4957A</title><link>https://tpolecat.github.io/www/docs/restorations/hp-4957a/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tpolecat.github.io/www/docs/restorations/hp-4957a/</guid><description>
&lt;p&gt;The HP 4957A Protocol Analyzer is an adorable little instrument from 1991 for analyzing serial protocols including RS-232, RS-449, and V.35 (the only one I know or care about is RS-232). I learned about this instrument from CuriousMarc, who has an &lt;a
href="https://www.curiousmarc.com/instruments/hp-4957a-protocol-analyzer"target="_blank" rel="noopener"&gt;article&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; on his website about upgrading ROMs on these machines, which we will come back to.&lt;/p&gt;
&lt;p&gt;I got mine at &lt;a
href="https://www.vcfsw.org"target="_blank" rel="noopener"&gt;VCFSW&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; in 2024 for $90 if I recall correctly. It was part of a grand haul that kept me busy for some time.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://tpolecat.github.io/www/docs/restorations/hp-4957a/vcfsw.png" title="(Wee chap on the left.)" alt="" loading="lazy" /&gt;
&lt;figcaption&gt;(Wee chap on the left.)&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;h3 data-hextra-search-id="initial-assessment"&gt;Initial Assessment&lt;span class="hx:absolute hx:-mt-20" id="initial-assessment"&gt;&lt;/span&gt;
&lt;a href="#initial-assessment" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;On booting it up it made some excited beeps which I enjoyed very much, but I immediately noticed that it didn&amp;rsquo;t say &amp;ldquo;4957&amp;rdquo; like it was supposed to, and the labels for the hot keys weren&amp;rsquo;t being displayed. They appeared just fine on an external monitor though, and otherwise it seemed to be in good working order.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://tpolecat.github.io/www/docs/restorations/hp-4957a/problem.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;Further investigation confirmed that half-intensity video just wasn&amp;rsquo;t showing up anywhere. I thought it might be setting somewhere but couldn&amp;rsquo;t find anything, and also was unable to find anyone else who had encountered this issue. But I had a huge pile of new hardware to play with so I set this aside for a while.&lt;/p&gt;
&lt;h3 data-hextra-search-id="debugging"&gt;Debugging&lt;span class="hx:absolute hx:-mt-20" id="debugging"&gt;&lt;/span&gt;
&lt;a href="#debugging" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;Some months later it occurred to me that the problem could be a hardware incompatibility; perhaps the original owner had upgraded this machine to the A0002 software when it really only works with A0001. To test this I programmed the old software and tried it out.&lt;/p&gt;
&lt;div class="hextra-scrollbar hx:overflow-x-auto hx:overflow-y-hidden hx:overscroll-x-contain"&gt;
&lt;div class="hx:mt-4 hx:flex hx:w-max hx:min-w-full hx:border-b hx:border-gray-200 hx:pb-px hx:dark:border-neutral-800" role="tablist"&gt;&lt;button class="hextra-tabs-toggle hx:cursor-pointer hx:data-[state=selected]:border-primary-500 hx:data-[state=selected]:text-primary-600 hx:data-[state=selected]:dark:border-primary-500 hx:data-[state=selected]:dark:text-primary-600 hx:mr-2 hx:rounded-t hx:p-2 hx:font-medium hx:leading-5 hx:transition-colors hx:-mb-0.5 hx:select-none hx:border-b-2 hx:border-transparent hx:text-gray-600 hx:hover:border-gray-200 hx:hover:text-black hx:dark:text-gray-200 hx:dark:hover:border-neutral-800 hx:dark:hover:text-white hx:hextra-focus-visible-inset" id="tabs-tab-tabs-00-0" role="tab" type="button" aria-controls="tabs-panel-tabs-00-0" aria-selected="true" tabindex="0" data-state="selected"&gt;&lt;span class="hx:inline-flex hx:items-center hx:gap-1.5"&gt;&lt;span&gt;Programming&lt;/span&gt;&lt;/span&gt;&lt;/button&gt;&lt;button class="hextra-tabs-toggle hx:cursor-pointer hx:data-[state=selected]:border-primary-500 hx:data-[state=selected]:text-primary-600 hx:data-[state=selected]:dark:border-primary-500 hx:data-[state=selected]:dark:text-primary-600 hx:mr-2 hx:rounded-t hx:p-2 hx:font-medium hx:leading-5 hx:transition-colors hx:-mb-0.5 hx:select-none hx:border-b-2 hx:border-transparent hx:text-gray-600 hx:hover:border-gray-200 hx:hover:text-black hx:dark:text-gray-200 hx:dark:hover:border-neutral-800 hx:dark:hover:text-white hx:hextra-focus-visible-inset" id="tabs-tab-tabs-00-1" role="tab" type="button" aria-controls="tabs-panel-tabs-00-1" aria-selected="false" tabindex="-1"&gt;&lt;span class="hx:inline-flex hx:items-center hx:gap-1.5"&gt;&lt;span&gt;Installed&lt;/span&gt;&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;div class="hextra-tabs-panel hx:rounded-sm hx:pt-6 hx:hidden hx:data-[state=selected]:block" id="tabs-panel-tabs-00-0" role="tabpanel" aria-labelledby="tabs-tab-tabs-00-0" aria-hidden="false" tabindex="0" data-state="selected"&gt;&lt;img src="eeproms.png" alt="" loading="lazy" /&gt;&lt;/div&gt;&lt;div class="hextra-tabs-panel hx:rounded-sm hx:pt-6 hx:hidden hx:data-[state=selected]:block" id="tabs-panel-tabs-00-1" role="tabpanel" aria-labelledby="tabs-tab-tabs-00-1" aria-hidden="true"&gt;&lt;img src="eeproms_2.png" alt="" loading="lazy" /&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;No dice, same behavior. I swapped the ROMs back and continued poking around since I had the machine opened up, and figured out what all the potentiometers did. Unfortunately none of the adjustments helped. Half-intensity video seemed to be entirely missing, and the lack of schematics or any kind of service manual was extremely irritating.&lt;/p&gt;
&lt;div class="hextra-scrollbar hx:overflow-x-auto hx:overflow-y-hidden hx:overscroll-x-contain"&gt;
&lt;div class="hx:mt-4 hx:flex hx:w-max hx:min-w-full hx:border-b hx:border-gray-200 hx:pb-px hx:dark:border-neutral-800" role="tablist"&gt;&lt;button class="hextra-tabs-toggle hx:cursor-pointer hx:data-[state=selected]:border-primary-500 hx:data-[state=selected]:text-primary-600 hx:data-[state=selected]:dark:border-primary-500 hx:data-[state=selected]:dark:text-primary-600 hx:mr-2 hx:rounded-t hx:p-2 hx:font-medium hx:leading-5 hx:transition-colors hx:-mb-0.5 hx:select-none hx:border-b-2 hx:border-transparent hx:text-gray-600 hx:hover:border-gray-200 hx:hover:text-black hx:dark:text-gray-200 hx:dark:hover:border-neutral-800 hx:dark:hover:text-white hx:hextra-focus-visible-inset" id="tabs-tab-tabs-01-0" role="tab" type="button" aria-controls="tabs-panel-tabs-01-0" aria-selected="true" tabindex="0" data-state="selected"&gt;&lt;span class="hx:inline-flex hx:items-center hx:gap-1.5"&gt;&lt;span&gt;Focus&lt;/span&gt;&lt;/span&gt;&lt;/button&gt;&lt;button class="hextra-tabs-toggle hx:cursor-pointer hx:data-[state=selected]:border-primary-500 hx:data-[state=selected]:text-primary-600 hx:data-[state=selected]:dark:border-primary-500 hx:data-[state=selected]:dark:text-primary-600 hx:mr-2 hx:rounded-t hx:p-2 hx:font-medium hx:leading-5 hx:transition-colors hx:-mb-0.5 hx:select-none hx:border-b-2 hx:border-transparent hx:text-gray-600 hx:hover:border-gray-200 hx:hover:text-black hx:dark:text-gray-200 hx:dark:hover:border-neutral-800 hx:dark:hover:text-white hx:hextra-focus-visible-inset" id="tabs-tab-tabs-01-1" role="tab" type="button" aria-controls="tabs-panel-tabs-01-1" aria-selected="false" tabindex="-1"&gt;&lt;span class="hx:inline-flex hx:items-center hx:gap-1.5"&gt;&lt;span&gt;VSize &amp;amp; VPos&lt;/span&gt;&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;div class="hextra-tabs-panel hx:rounded-sm hx:pt-6 hx:hidden hx:data-[state=selected]:block" id="tabs-panel-tabs-01-0" role="tabpanel" aria-labelledby="tabs-tab-tabs-01-0" aria-hidden="false" tabindex="0" data-state="selected"&gt;&lt;img src="focus.png" alt="" loading="lazy" /&gt;&lt;/div&gt;&lt;div class="hextra-tabs-panel hx:rounded-sm hx:pt-6 hx:hidden hx:data-[state=selected]:block" id="tabs-panel-tabs-01-1" role="tabpanel" aria-labelledby="tabs-tab-tabs-01-1" aria-hidden="true"&gt;&lt;img src="vsize.png" alt="" loading="lazy" /&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;So I buckled down and started poking around for video and found the missing signal. I tried to reverse-engineer the circuit but I was lost in a twisty maze of analog SMD parts, all alike. As an aside, SMD marking is &lt;em&gt;extremely&lt;/em&gt; frustrating because markings are not even a little bit unique. Identically marked SOT-23 parts could be transistors, diodes, two diodes, voltage regulators, who knows. It&amp;rsquo;s really dumb.&lt;/p&gt;
&lt;p&gt;Anyway the breakthrough came when I noticed that the pads for a unpopulated part looked funny. On closer inspection it was clear that there &lt;em&gt;had been&lt;/em&gt; a part here, but it had been bashed off at some point.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://tpolecat.github.io/www/docs/restorations/hp-4957a/bash.png" title="Bashed off SOT-23 in lower left." alt="" loading="lazy" /&gt;
&lt;figcaption&gt;Bashed off SOT-23 in lower left.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;Based on similarty to a nearby circuit I just kind of guessed that this was a zener diode and just kind of guessed at the value and hacked one in.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;img src="https://tpolecat.github.io/www/docs/restorations/hp-4957a/zener.png" title="Shut up, it&amp;#39;s fine." alt="" loading="lazy" /&gt;
&lt;figcaption&gt;Shut up, it&amp;#39;s fine.&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/p&gt;
&lt;p&gt;And behold! A working instrument.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://tpolecat.github.io/www/docs/restorations/hp-4957a/working.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;I feel like I got really lucky on this one, but I will take the win any way I can get it.&lt;/p&gt;</description></item><item><title>Microscope</title><link>https://tpolecat.github.io/www/docs/lab/microscope/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tpolecat.github.io/www/docs/lab/microscope/</guid><description>
&lt;p&gt;A microscope is essential for working with SMD parts and for inspecting things up close. I use mine all the time. This is a large purchase and it took me a while to figure out what I wanted, and I&amp;rsquo;m very happy with the result.&lt;/p&gt;
&lt;p&gt;My main goal was to make it effortless to swing the scope over and start using it in less than five seconds. This means integrated lighting and cable management so I don&amp;rsquo;t need to move anything out of the way.&lt;/p&gt;</description></item><item><title>Scopetrex</title><link>https://tpolecat.github.io/www/docs/miscellaneous/scopetrex/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://tpolecat.github.io/www/docs/miscellaneous/scopetrex/</guid><description>
&lt;p&gt;The &lt;a
href="https://github.com/schlae/scopetrex"target="_blank" rel="noopener"&gt;Scopetrex&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt; is a Vectrex clone on a single board, meant to be played on an analog oscilloscope in XY mode. It&amp;rsquo;s a super fun advanced-beginner project with great documentation and a relatively cheap build cost.&lt;/p&gt;
&lt;h2 data-hextra-search-id="the-build"&gt;The Build&lt;span class="hx:absolute hx:-mt-20" id="the-build"&gt;&lt;/span&gt;
&lt;a href="#the-build" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;I ordered boards from JLCPCB and got the parts I needed from Mouser, and took my time with the build.&lt;/p&gt;
&lt;div class="hextra-scrollbar hx:overflow-x-auto hx:overflow-y-hidden hx:overscroll-x-contain"&gt;
&lt;div class="hx:mt-4 hx:flex hx:w-max hx:min-w-full hx:border-b hx:border-gray-200 hx:pb-px hx:dark:border-neutral-800" role="tablist"&gt;&lt;button class="hextra-tabs-toggle hx:cursor-pointer hx:data-[state=selected]:border-primary-500 hx:data-[state=selected]:text-primary-600 hx:data-[state=selected]:dark:border-primary-500 hx:data-[state=selected]:dark:text-primary-600 hx:mr-2 hx:rounded-t hx:p-2 hx:font-medium hx:leading-5 hx:transition-colors hx:-mb-0.5 hx:select-none hx:border-b-2 hx:border-transparent hx:text-gray-600 hx:hover:border-gray-200 hx:hover:text-black hx:dark:text-gray-200 hx:dark:hover:border-neutral-800 hx:dark:hover:text-white hx:hextra-focus-visible-inset" id="tabs-tab-tabs-00-0" role="tab" type="button" aria-controls="tabs-panel-tabs-00-0" aria-selected="true" tabindex="0" data-state="selected"&gt;&lt;span class="hx:inline-flex hx:items-center hx:gap-1.5"&gt;&lt;span&gt;Getting Started&lt;/span&gt;&lt;/span&gt;&lt;/button&gt;&lt;button class="hextra-tabs-toggle hx:cursor-pointer hx:data-[state=selected]:border-primary-500 hx:data-[state=selected]:text-primary-600 hx:data-[state=selected]:dark:border-primary-500 hx:data-[state=selected]:dark:text-primary-600 hx:mr-2 hx:rounded-t hx:p-2 hx:font-medium hx:leading-5 hx:transition-colors hx:-mb-0.5 hx:select-none hx:border-b-2 hx:border-transparent hx:text-gray-600 hx:hover:border-gray-200 hx:hover:text-black hx:dark:text-gray-200 hx:dark:hover:border-neutral-800 hx:dark:hover:text-white hx:hextra-focus-visible-inset" id="tabs-tab-tabs-00-1" role="tab" type="button" aria-controls="tabs-panel-tabs-00-1" aria-selected="false" tabindex="-1"&gt;&lt;span class="hx:inline-flex hx:items-center hx:gap-1.5"&gt;&lt;span&gt;Done!&lt;/span&gt;&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;div class="hextra-tabs-panel hx:rounded-sm hx:pt-6 hx:hidden hx:data-[state=selected]:block" id="tabs-panel-tabs-00-0" role="tabpanel" aria-labelledby="tabs-tab-tabs-00-0" aria-hidden="false" tabindex="0" data-state="selected"&gt;&lt;img src="build_1.png" alt="" loading="lazy" /&gt;&lt;/div&gt;&lt;div class="hextra-tabs-panel hx:rounded-sm hx:pt-6 hx:hidden hx:data-[state=selected]:block" id="tabs-panel-tabs-00-1" role="tabpanel" aria-labelledby="tabs-tab-tabs-00-1" aria-hidden="true"&gt;&lt;img src="build_2.png" alt="" loading="lazy" /&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;I got some sheets of 5x7&amp;quot; acrylic from Amazon and drilled matching holes so I could mount it to the top of the board using standoffs. It looks nice and protects the components from cats.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://tpolecat.github.io/www/docs/miscellaneous/scopetrex/acrylic.png" alt="" loading="lazy" /&gt;&lt;/p&gt;
&lt;p&gt;I didn&amp;rsquo;t really have any issues. Hooked it up to my Tektronix 2213 and it worked great!&lt;/p&gt;
&lt;p&gt;&lt;video src="scope.mp4" controls&gt;Your browser does not support the video tag.&lt;/video&gt;&lt;/p&gt;
&lt;p&gt;Cool and all, but I wanted it to be cooler.&lt;/p&gt;
&lt;h2 data-hextra-search-id="vectorscopes"&gt;Vectorscopes&lt;span class="hx:absolute hx:-mt-20" id="vectorscopes"&gt;&lt;/span&gt;
&lt;a href="#vectorscopes" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Enter the formidable Tektronix 1720/1721 vectorscopes. These are broadcast television insruments meant for monitoring video signal quality, but they can also operate as X/Y displays. They usually come in a pair, as mine did, for the low-low price of $60 at &lt;a
href="https://www.dougdeals.com"target="_blank" rel="noopener"&gt;Doug Deals&lt;svg class="hx:inline hx:rtl:rotate-270 hx:align-baseline" height="1em" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"&gt;
&lt;path d="m9.1716 7.7574h7.0711m0 0v7.0711m0-7.0711-8.4853 8.4853" stroke-linecap="round" stroke-linejoin="round"/&gt;
&lt;/svg&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;video src="vec1.mp4" controls&gt;Your browser does not support the video tag.&lt;/video&gt;&lt;/p&gt;
&lt;p&gt;The only problem is, the blanking signal is not passed directly through; IIRC it is mediated by a processor that needs to be put into a special mode in order to work. Lacking the patience for this kind of thing, I just bodged the signal across to where I wanted it.&lt;/p&gt;
&lt;p&gt;&lt;video src="vec2.mp4" controls&gt;Your browser does not support the video tag.&lt;/video&gt;&lt;/p&gt;
&lt;p&gt;And with this change we get two channels of Scopetrex! (Bad reflection; they&amp;rsquo;re identical in person.)&lt;/p&gt;
&lt;p&gt;&lt;video src="vec3.mp4" controls&gt;Your browser does not support the video tag.&lt;/video&gt;&lt;/p&gt;
&lt;p&gt;The only remaining issue is that the Scopetrex itself isn&amp;rsquo;t rack-mounted.&lt;/p&gt;
&lt;h2 data-hextra-search-id="rack-mounting"&gt;Rack Mounting&lt;span class="hx:absolute hx:-mt-20" id="rack-mounting"&gt;&lt;/span&gt;
&lt;a href="#rack-mounting" class="subheading-anchor" aria-label="Permalink for this section"&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Kind of excessive but I was very intent on owning the world&amp;rsquo;s only rack-mounted Scopetrex. A little drilling, a little gluing, a lot of coffee later and &amp;hellip; victory!&lt;/p&gt;
&lt;div class="hextra-scrollbar hx:overflow-x-auto hx:overflow-y-hidden hx:overscroll-x-contain"&gt;
&lt;div class="hx:mt-4 hx:flex hx:w-max hx:min-w-full hx:border-b hx:border-gray-200 hx:pb-px hx:dark:border-neutral-800" role="tablist"&gt;&lt;button class="hextra-tabs-toggle hx:cursor-pointer hx:data-[state=selected]:border-primary-500 hx:data-[state=selected]:text-primary-600 hx:data-[state=selected]:dark:border-primary-500 hx:data-[state=selected]:dark:text-primary-600 hx:mr-2 hx:rounded-t hx:p-2 hx:font-medium hx:leading-5 hx:transition-colors hx:-mb-0.5 hx:select-none hx:border-b-2 hx:border-transparent hx:text-gray-600 hx:hover:border-gray-200 hx:hover:text-black hx:dark:text-gray-200 hx:dark:hover:border-neutral-800 hx:dark:hover:text-white hx:hextra-focus-visible-inset" id="tabs-tab-tabs-01-0" role="tab" type="button" aria-controls="tabs-panel-tabs-01-0" aria-selected="true" tabindex="0" data-state="selected"&gt;&lt;span class="hx:inline-flex hx:items-center hx:gap-1.5"&gt;&lt;span&gt;Drilling&lt;/span&gt;&lt;/span&gt;&lt;/button&gt;&lt;button class="hextra-tabs-toggle hx:cursor-pointer hx:data-[state=selected]:border-primary-500 hx:data-[state=selected]:text-primary-600 hx:data-[state=selected]:dark:border-primary-500 hx:data-[state=selected]:dark:text-primary-600 hx:mr-2 hx:rounded-t hx:p-2 hx:font-medium hx:leading-5 hx:transition-colors hx:-mb-0.5 hx:select-none hx:border-b-2 hx:border-transparent hx:text-gray-600 hx:hover:border-gray-200 hx:hover:text-black hx:dark:text-gray-200 hx:dark:hover:border-neutral-800 hx:dark:hover:text-white hx:hextra-focus-visible-inset" id="tabs-tab-tabs-01-1" role="tab" type="button" aria-controls="tabs-panel-tabs-01-1" aria-selected="false" tabindex="-1"&gt;&lt;span class="hx:inline-flex hx:items-center hx:gap-1.5"&gt;&lt;span&gt;Hacking&lt;/span&gt;&lt;/span&gt;&lt;/button&gt;&lt;button class="hextra-tabs-toggle hx:cursor-pointer hx:data-[state=selected]:border-primary-500 hx:data-[state=selected]:text-primary-600 hx:data-[state=selected]:dark:border-primary-500 hx:data-[state=selected]:dark:text-primary-600 hx:mr-2 hx:rounded-t hx:p-2 hx:font-medium hx:leading-5 hx:transition-colors hx:-mb-0.5 hx:select-none hx:border-b-2 hx:border-transparent hx:text-gray-600 hx:hover:border-gray-200 hx:hover:text-black hx:dark:text-gray-200 hx:dark:hover:border-neutral-800 hx:dark:hover:text-white hx:hextra-focus-visible-inset" id="tabs-tab-tabs-01-2" role="tab" type="button" aria-controls="tabs-panel-tabs-01-2" aria-selected="false" tabindex="-1"&gt;&lt;span class="hx:inline-flex hx:items-center hx:gap-1.5"&gt;&lt;span&gt;Success&lt;/span&gt;&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;div class="hextra-tabs-panel hx:rounded-sm hx:pt-6 hx:hidden hx:data-[state=selected]:block" id="tabs-panel-tabs-01-0" role="tabpanel" aria-labelledby="tabs-tab-tabs-01-0" aria-hidden="false" tabindex="0" data-state="selected"&gt;&lt;img src="rack_1.png" alt="" loading="lazy" /&gt;&lt;/div&gt;&lt;div class="hextra-tabs-panel hx:rounded-sm hx:pt-6 hx:hidden hx:data-[state=selected]:block" id="tabs-panel-tabs-01-1" role="tabpanel" aria-labelledby="tabs-tab-tabs-01-1" aria-hidden="true"&gt;&lt;img src="rack_2.png" alt="" loading="lazy" /&gt;&lt;/div&gt;&lt;div class="hextra-tabs-panel hx:rounded-sm hx:pt-6 hx:hidden hx:data-[state=selected]:block" id="tabs-panel-tabs-01-2" role="tabpanel" aria-labelledby="tabs-tab-tabs-01-2" aria-hidden="true"&gt;&lt;img src="rack_3.png" alt="" loading="lazy" /&gt;&lt;/div&gt;&lt;/div&gt;</description></item></channel></rss>