<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
  <title>uvdn7.github.io</title>
  <link>https://aggr.aymericbeaumet.com/sources/uvdn7.github.io/</link>
  <description>Browse aymeric&#39;s, an independent, searchable archive of readable snapshots from followed feeds, preserved in Git with aggr.</description>
  <language>en</language>
  <atom:link href="https://aggr.aymericbeaumet.com/sources/uvdn7.github.io/rss.xml" rel="self" type="application/rss+xml"/>
  <lastBuildDate>Sat, 31 Oct 2026 22:54:55 +0000</lastBuildDate>
  <generator>aggr</generator>
  <item>
    <title>Altoids Project</title>
    <link>https://aggr.aymericbeaumet.com/items/hnrss-org/2026-10-31-altoids-project/</link>
    <guid isPermaLink="false">urn:aggr:item:8e203ebc4c6f9661e373bde7ef6926a5748dfc36</guid>
    <atom:link href="https://uvdn7.github.io/altoids-project/" rel="via" type="text/html"/>
    <pubDate>Sat, 31 Oct 2026 22:54:55 +0000</pubDate>
    <dc:creator>uvdn7</dc:creator>
    <description>My 12-year-old son and I spent about two months on, what we call, the Altoids project. Here is the final product (video): It all started when I took him to MIT Swapfest for the first time. We saw an assembled robot from a couple’s booth;…</description>
    <content:encoded>&lt;p&gt;My 12-year-old son and I spent about two months on, what we call, the Altoids project. Here is the final product (&lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot; href=&quot;https://uvdn7.github.io/assets/altoids_final_product.mp4&quot;&gt;video&lt;/a&gt;): &lt;picture class=&quot;article-picture article-picture-fallback&quot; style=&quot;--image-ratio:16 / 9&quot;&gt;&lt;img src=&quot;https://uvdn7.github.io/assets/altoids_final_product.jpg&quot; alt=&quot;final_product&quot; loading=&quot;eager&quot; decoding=&quot;async&quot; fetchpriority=&quot;high&quot; referrerpolicy=&quot;no-referrer&quot; class=&quot;progressive-image&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;It all started when I took him to &lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot; href=&quot;https://w1mx.mit.edu/flea-at-mit/&quot;&gt;MIT Swapfest&lt;/a&gt; for the first time. We saw an assembled robot from a couple’s booth; later we learned that it was from a &lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot; href=&quot;https://arcbotics.com/products/sparki/&quot;&gt;kit&lt;/a&gt;. It was built by their daughter many years ago. After realizing I had come with my son, they gave us the robot for free. We also picked up a used ThinkPad laptop at a very reasonable price, which we used for the project. &lt;picture class=&quot;article-picture article-picture-fallback&quot; style=&quot;--image-ratio:16 / 9&quot;&gt;&lt;img src=&quot;https://uvdn7.github.io/assets/altoids_mit_swap.jpg&quot; alt=&quot;mit_swap&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;low&quot; referrerpolicy=&quot;no-referrer&quot; class=&quot;progressive-image&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;As any curious mind would, we disassembled the robot. Noticing that we were missing the control, we wanted to see which parts we could reuse. We took the 128x64 display off. But we couldn’t find the pinout for the display. We tried using AI, but it hallucinated so badly that it gave us a 20-pin pinout when the display only has 10 pins. &lt;picture class=&quot;article-picture article-picture-fallback&quot; style=&quot;--image-ratio:16 / 9&quot;&gt;&lt;img src=&quot;https://uvdn7.github.io/assets/altoids_no_pinout.jpg&quot; alt=&quot;no_pinout&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;low&quot; referrerpolicy=&quot;no-referrer&quot; class=&quot;progressive-image&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;After hours of searching around, we found the exact schematic posted on &lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot; href=&quot;https://forum.arduino.cc/t/how-do-i-interface-with-this-board/1081036/6&quot;&gt;Arduino’s forum&lt;/a&gt; by a stranger on the Internet. God bless him. With the pinout, we finally made the display show something. We ran the Space Trash game from the &lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot; href=&quot;https://docs.arduino.cc/libraries/u8g2/&quot;&gt;U8g2 library&lt;/a&gt;. Let’s call this v1. &lt;picture class=&quot;article-picture article-picture-fallback&quot; style=&quot;--image-ratio:16 / 9&quot;&gt;&lt;img src=&quot;https://uvdn7.github.io/assets/altoids_space_trash.jpg&quot; alt=&quot;space_trash&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;low&quot; referrerpolicy=&quot;no-referrer&quot; class=&quot;progressive-image&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;I had just watched a YouTube video where someone built a tiny computer and fit everything inside an Altoids tin (&lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot; href=&quot;https://www.youtube.com/watch?v=j262kCYZxZI&quot;&gt;video&lt;/a&gt;). Inspired by the YouTube video, we grabbed a random tin found in the house and moved the project to the workbench. &lt;picture class=&quot;article-picture article-picture-fallback&quot; style=&quot;--image-ratio:16 / 9&quot;&gt;&lt;img src=&quot;https://uvdn7.github.io/assets/altoids_workbench.jpg&quot; alt=&quot;workbench&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;low&quot; referrerpolicy=&quot;no-referrer&quot; class=&quot;progressive-image&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;To reduce the form factor, we switched to an &lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot; href=&quot;https://store-usa.arduino.cc/products/arduino-nano?srsltid=AYCX9vLszB_8WKeidrfy7vbkKgllZJpfZjhisB8bArShU57nL3MPkvbe&quot;&gt;Arduino Nano&lt;/a&gt;, and ordered LiPo batteries and &lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot; href=&quot;https://www.adafruit.com/product/2030?srsltid=AYCX9vLchbg7UqiSZzji1AcykGcQKI_v7FP2HFBV0wcIXu_S1kUjgqqI&quot;&gt;PowerBoost&lt;/a&gt; for power supply. Everything needed to fit in the tin. My son did all the CAD and 3D printing. &lt;picture class=&quot;article-picture article-picture-fallback&quot; style=&quot;--image-ratio:16 / 9&quot;&gt;&lt;img src=&quot;https://uvdn7.github.io/assets/altoids_3d_print.jpg&quot; alt=&quot;3d&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;low&quot; referrerpolicy=&quot;no-referrer&quot; class=&quot;progressive-image&quot;&gt;&lt;/picture&gt; Here is what v2 looked like. The lid did not close. It felt like playing 3D chess to fit everything in. &lt;picture class=&quot;article-picture article-picture-fallback&quot; style=&quot;--image-ratio:16 / 9&quot;&gt;&lt;img src=&quot;https://uvdn7.github.io/assets/altoids_v2.jpg&quot; alt=&quot;altoids_v2&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;low&quot; referrerpolicy=&quot;no-referrer&quot; class=&quot;progressive-image&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;We ordered solderable breadboards to avoid the messy wires. It was looking promising. We also bought a real tin of Altoids from a grocery store, since the Altoids tin is actually a little taller than the one we were using earlier. This is what v3 looked like. The lid did not close, but we were getting closer. &lt;picture class=&quot;article-picture article-picture-fallback&quot; style=&quot;--image-ratio:16 / 9&quot;&gt;&lt;img src=&quot;https://uvdn7.github.io/assets/altoids_v3.jpg&quot; alt=&quot;altoids_v3&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;low&quot; referrerpolicy=&quot;no-referrer&quot; class=&quot;progressive-image&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;The display was connected to a tiny solderable breadboard. We wanted to remove it and connect the wires to the display directly. But we had a really hard time with desoldering. We accidentally pulled one copper pad off the display, making it unusable. We might be possible to salvage it, but we just ordered a new display from Adafruit instead. &lt;picture class=&quot;article-picture article-picture-fallback&quot; style=&quot;--image-ratio:16 / 9&quot;&gt;&lt;img src=&quot;https://uvdn7.github.io/assets/altoids_damaged_display.jpg&quot; alt=&quot;damaged_display&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;low&quot; referrerpolicy=&quot;no-referrer&quot; class=&quot;progressive-image&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;At this point, I wanted to avoid desoldering as much as possible. So we got those tiny hooks for testing the display (&lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot; href=&quot;https://uvdn7.github.io/assets/altoids_display.mp4&quot;&gt;video&lt;/a&gt;). This is when we realized the new display does not default to SPI mode. We did not want to make more changes to the wiring, so we still had to desolder two jumpers.&lt;/p&gt;
&lt;p&gt;I suspected our soldering iron was heating unevenly. We ordered a new soldering iron and it made all the difference. With the new iron, we made rapid progress. We hot-glued the display onto the lid. Everything worked for the first time. This is what v4 looked like. The lid did close with some struggle. &lt;picture class=&quot;article-picture article-picture-fallback&quot; style=&quot;--image-ratio:16 / 9&quot;&gt;&lt;img src=&quot;https://uvdn7.github.io/assets/altoids_v4.jpg&quot; alt=&quot;altoids_v4&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;low&quot; referrerpolicy=&quot;no-referrer&quot; class=&quot;progressive-image&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;Two wires connecting the microcontroller and the display broke the next day. We did many hacks, one of which is to extend the wires by soldering two wires together. It did not work well, obviously. We got some ultra-fine (30 AWG) wires to replace them. At this point, my son did most of the desoldering and soldering work. He actually connected one wire incorrectly, so it did not work at first. It is a good debugging and learning experience.&lt;/p&gt;
&lt;p&gt;As a final touch, we got tiny 1x1-inch ziploc bags and put two actual Altoids in the tin. And here we have the final product, after five iterations. None of the components used in the first iteration survived. &lt;picture class=&quot;article-picture article-picture-fallback&quot; style=&quot;--image-ratio:16 / 9&quot;&gt;&lt;img src=&quot;https://uvdn7.github.io/assets/altoids_final_product.jpg&quot; alt=&quot;final_product&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;low&quot; referrerpolicy=&quot;no-referrer&quot; class=&quot;progressive-image&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content:encoded>
    <category>news</category>
  </item>
</channel>
</rss>
