<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Joel Bartlett]]></title><description><![CDATA[Engineer · Artist · Horticulturalist]]></description><link>https://joeleb.com/</link><image><url>https://joeleb.com/favicon.png</url><title>Joel Bartlett</title><link>https://joeleb.com/</link></image><generator>Ghost 5.88</generator><lastBuildDate>Tue, 24 Mar 2026 17:16:19 GMT</lastBuildDate><atom:link href="https://joeleb.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Safe-Cracking Robot Steals Show at DEF CON 25]]></title><description><![CDATA[<p></p><p>When your boss asks you if you want to take that safe-cracking robot you helped create to DEF CON and break open a safe live in front of hundreds of hackers, you have to say yes!</p>
<p>That was the very question I was asked and opportunity I was fortunate to</p>]]></description><link>https://joeleb.com/safe-cracking-robot-defcon/</link><guid isPermaLink="false">66be5dd0fe2e7e187f5877b7</guid><dc:creator><![CDATA[Joel Bartlett]]></dc:creator><pubDate>Thu, 02 Nov 2017 04:30:00 GMT</pubDate><media:content url="https://joeleb.com/content/images/2024/09/safe.png" medium="image"/><content:encoded><![CDATA[<img src="https://joeleb.com/content/images/2024/09/safe.png" alt="Safe-Cracking Robot Steals Show at DEF CON 25"><p></p><p>When your boss asks you if you want to take that safe-cracking robot you helped create to DEF CON and break open a safe live in front of hundreds of hackers, you have to say yes!</p>
<p>That was the very question I was asked and opportunity I was fortunate to be given. After the <a href="https://learn.sparkfun.com/tutorials/building-a-safe-cracking-robot/introduction">successful cracking of a safe</a> live on <a href="https://www.youtube.com/watch?v=AsVSEHv2N4M">YouTube</a> and an article in <a href="https://www.wired.com/story/watch-robot-crack-safe/">Wired</a>, the team was given the opportunity to perform the feat once again, only this time on a much larger stage with much higher stakes.</p>
<p><img src="https://joeleb.com/content/images/2024/09/safeCaesars_Small.jpg" alt="Safe-Cracking Robot Steals Show at DEF CON 25" loading="lazy"></p>
<center><i>The Team arrives in Las Vegas.</i></center>
<p>After flying in to Las Vegas, a safe was procured at a nearby Home Depot. The rest of the day was spent familiarizing ourselves with DEFCON and the room in which the presentation would happen and running around doing interviews with the robot in tow. Our little bot got featured on <a href="https://www.thedailybeast.com/three-words-safe-cracking-robot">The Daily Beast</a>, <a href="https://mashable.com/2017/07/28/safe-cracking-robot-defcon/#4tgFD52WIgqT">Mashable</a> and the <a href="http://www.bbc.com/news/technology-40760648">BBC</a>!</p>
<p><img src="https://joeleb.com/content/images/2024/09/safe4.jpg" alt="Safe-Cracking Robot Steals Show at DEF CON 25" loading="lazy"></p>
<center><i>A very nervous Joel setting up the robot and display. Image courtesy of Mashable.</i></center>
<p><img src="https://joeleb.com/content/images/2024/09/safe-1.png" alt="Safe-Cracking Robot Steals Show at DEF CON 25" loading="lazy"></p>
<center><i>Image courtesy of the BBC</i></center>
<p>With the interviews out of the way, it was time to take in the local flavor. The next morning was the big moment. As you can see, it was a big success!</p>
<figure class="kg-card kg-embed-card"><iframe width="200" height="113" src="https://www.youtube.com/embed/v9vIcfLrmiA?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen title="DEF CON 25 - Nathan Seidle - Open Source Safe Cracking Robots"></iframe></figure><div style="text-align: center;">
<p><img src="https://joeleb.com/content/images/2024/09/safe3.jpg" alt="Safe-Cracking Robot Steals Show at DEF CON 25" loading="lazy"></p>
</div>
<center>
    <i>Image courtesy of the BBC</i>
</center>
<p>Needless to say, this was the opportunity of a lifetime, and I could not be more excited to have been a part of it.</p>
]]></content:encoded></item><item><title><![CDATA[Propagand-Eye Soldering Workshop]]></title><description><![CDATA[Apogaea art grant to design a custom PCB for soldering workshop. ]]></description><link>https://joeleb.com/propagand-eye-soldering-workshop/</link><guid isPermaLink="false">66be5dd0fe2e7e187f5877c5</guid><dc:creator><![CDATA[Joel Bartlett]]></dc:creator><pubDate>Sun, 02 Jul 2017 04:04:00 GMT</pubDate><media:content url="https://joeleb.com/content/images/2024/09/apoboard2017-1.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://joeleb.com/content/images/2024/09/apoboard2017-1.jpg" alt="Propagand-Eye Soldering Workshop"><p>In 2017, I received an art grant from Colorado&apos;s regional Burning Man festival, <a href="http://apogaea.com/about/" rel="noreferrer">Apogaea</a>. The grant money was used to put on a soldering workshop for the Apogaea attendees. The workshop consisted of a custom printed circuit board that the participants would assemble at the event. As a special bonus, the PCBs, when finished, became badges that could be worn and interact with one another creating a scavenger hunt-like experience for the remainder of the event. </p><figure class="kg-card kg-image-card"><img src="https://joeleb.com/content/images/2024/09/apoboard2017.jpg" class="kg-image" alt="Propagand-Eye Soldering Workshop" loading="lazy" width="600" height="450" srcset="https://joeleb.com/content/images/2024/09/apoboard2017.jpg 600w"></figure><p>The Propagand-Eye, named for the that year&apos;s theme, Propaganda, is an eyeball-shaped PCB onto which participants soldered through-hole addressable LEDs as well as a variety of other components. The badges communicate with one another via infrared (IR) communication, with each badge having an IR transmitter and receiver, all powered off a single AA battery with a 5V boost converter. Each badge was initially programmed with a single LED pattern and color pallet. Once the scavenger hunt began, when two badge were brought into proximity, the LEDs would flash white indicating they &quot;saw&quot; each other. Pressing the mode button would initiate a &quot;genetic&quot; swap, and after the sequence each would have the other&apos;s pattern and pallet. This could be done with any of the badges in the wild, allowing users to collect as many modes as they liked, cycling through them with the on-board button. </p><p>What seemed like a simple task evolved into a full project with two people, one hardware and one software, putting in countless hours to create a truly interactive experience.</p><h3 id="hardware">Hardware</h3><p>As with any good hardware project, the first step was to order prototypes before the full production run. For the protos, I pitted three fab houses against one another: <a href="https://oshpark.com/">OSHPark</a>, <a href="http://www.basicpcb.com/">BasicPCB</a>, and <a href="http://www.allpcb.com/">ALLPCB</a>. You can see the results in the table below. Keep in mind that all three orders were placed on 4/11/17.</p>
<!--kg-card-begin: html-->
<style>
table, th, td {
  border:1px solid black;
}
</style>
<table style="width:100%">
  <tr>
    <th>Total Order Cost</th>
    <th># of PCBs</th>
    <th>Fab House</th>
    <th>Cost/PCB</th>
    <th>Date Arrived</th>
  </tr>
  <tr>
    <td>$39.70</td>
    <td>3</td>
    <td>OSHPARK</td>
    <td>$13.23</td>
    <td>4/21</td>
  </tr>
  <tr>
    <td>$40.46</td>
    <td>10</td>
    <td>ALLPCB<br></td>
    <td>$4.05</td>
    <td>4/17</td>
  </tr>
  <tr>
    <td>$86.75</td>
    <td>5</td>
    <td>BASICPCB<br></td>
    <td>$17.35</td>
    <td>4/17</td>
  </tr>
</table>
<!--kg-card-end: html-->
<p>ALLPCB proved to be the best option. Those boards arrived just as fast as the ones from BasicPCB, but they had more options for mask colors and board finishes than BasicPCB, which only offered traditional green.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://joeleb.com/content/images/2024/09/ApoboardProtos-1.jpg" class="kg-image" alt="Propagand-Eye Soldering Workshop" loading="lazy" width="1000" height="750" srcset="https://joeleb.com/content/images/size/w600/2024/09/ApoboardProtos-1.jpg 600w, https://joeleb.com/content/images/2024/09/ApoboardProtos-1.jpg 1000w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Prototype PCBs from three different board houses.</span></figcaption></figure><p>The final production boards were ordered through ALLPCB. Here is photos of the fron and back of the final product. To make the workshop as painless as possible, I assembled the surface mount components beforehand, leaving just the through-hole parts for the participants to solder. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://joeleb.com/content/images/2024/09/PropagandEyeFront.jpg" class="kg-image" alt="Propagand-Eye Soldering Workshop" loading="lazy" width="1000" height="681" srcset="https://joeleb.com/content/images/size/w600/2024/09/PropagandEyeFront.jpg 600w, https://joeleb.com/content/images/2024/09/PropagandEyeFront.jpg 1000w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Propagand-Eye PCB Front</span></figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://joeleb.com/content/images/2024/09/PropagandEyeRear.jpg" class="kg-image" alt="Propagand-Eye Soldering Workshop" loading="lazy" width="1000" height="632" srcset="https://joeleb.com/content/images/size/w600/2024/09/PropagandEyeRear.jpg 600w, https://joeleb.com/content/images/2024/09/PropagandEyeRear.jpg 1000w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Propagand-Eye PCB Rear</span></figcaption></figure><p>I got my stencil from <a href="https://www.oshstencils.com/">OSHStencil</a>, which I can&apos;t recommend enough. There were enough changes from the proto to the final to mandate a second order, but the stencil turnaround time was negligible to the PCB turnaround times.</p>
<p>The last major piece of hardware needed was a test fixture. One was ordered not too long ago. However, between it being combined with other orders and the most recent Chinese holidays, it got held up. With little to no time left to order one from even the fastest fab house, I set out to build my own using an OtherMill PCB mill and was able to piece together a functional pogo bed with no problem.</p>
<p>A Raspberry Pi was added, and *POOF* instant programming testing station.</p>
<p><a href="https://cdn.sparkfun.com/assets/home_page_posts/2/3/9/8/testjig.jpg"><img src="https://cdn.sparkfun.com/r/500-500/assets/home_page_posts/2/3/9/8/testjig.jpg" alt="Propagand-Eye Soldering Workshop" loading="lazy"></a></p>
<center><i>The voltmeter is attached to check the single AA boost circuitry.</i></center>
<h3 id="software">Software</h3>
<p>Adding the IR communication was in no way new or novel; the idea came from the <a href="https://github.com/thedarknet/hhvkit">DefCon 23 Hardware Hacking Village Badge</a>. And, unbeknownst to me, the Propagand-Eye was being developed around the same time as the <a href="https://www.sparkfun.com/products/14130">SparkFun Roshamglo Badge </a>, which uses IR communication to play Rock, Paper, Scissors between two users. In the case of the Propagand-Eye, the IR communication is used to participate in a &quot;gene&quot; collection game.</p>
<p>Using the 10 addressable LEDs in the center of the eye, 16 unique animations and 16 unique color sets were coded to create 256 unique gene combinations. Each board has that gene stored in EEPROM, so it always remembers its base gene. That is the only animation and color set available to the participant when his or her badge is completed and first powered. But once the badge &quot;sees&quot; another badge, they flash white to indicate that they would like to initiate an exchange of genes. All the users have to do is press the button after a white flash. That gene is then stored in EEPROM, and if/when the badges see each other again, they flash red indicating they have already exchanged genes.</p>
<p>A Python script was written to allow for batch programming of the EEPROM to give each eye a unique gene out of the bag. It uses a list of genes generated by another script.</p>
<h3 id="engineers-hate-surprises">Engineers Hate Surprises</h3>
<p>One big hiccup occurred with the ATMEGA328p&apos;s used. That chip was chosen to allow the board to be Arduino compatible and allow for both experienced and inexperienced users to hack their badges after the event.</p>
<p>The lesson, shared here first, is never mix different batches of any part if you can avoid it. Several ATMEGA328p&apos;s were scavenged to save money, and about 2/3 were bought new. When it came time to batch program, the new ones would not accept the bootloader, which resulted in a large game of find the source of the problem. The issue was overcome, but not with a solution that provided any answer as to why the ICs did not behave as the ones found so regularly elsewhere. Rather, it was a chaotic menagerie of different programmers, swapping parts and using all three major operating systems. The working theory is a bad batch of internal oscillators was plaguing the newer ICs. But what matters is that they all got programmed and are sitting here, kitted, awaiting a plethora of participants to build them, play with them, and hopefully learn from them at Apogaea.</p>
<p>Who knows what&apos;ll happen if you get a bunch of them together...</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/OSSkoki1dHA?rel=0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
<p>This project is open source under the Creative Commons license. Check out the hardware files <a href="https://github.com/apoboard/hardware/tree/master/2017">here</a> and the code <a href="https://github.com/apoboard/software/tree/master/2017">here</a>. There you can also find information about the previous years&apos; badges.</p>
<!--kg-card-begin: html-->
 <p xmlns:cc="http://creativecommons.org/ns#" xmlns:dct="http://purl.org/dc/terms/"><a property="dct:title" rel="cc:attributionURL" href="https://joeleb.com/propagand-eye-soldering-workshop/">Propagand-Eye</a> by <a rel="cc:attributionURL dct:creator" property="cc:attributionName" href="https://joeleb.com/">Joel Bartlett</a> is licensed under <a href="https://creativecommons.org/licenses/by-sa/4.0/?ref=chooser-v1" target="_blank" rel="license noopener noreferrer" style="display:inline-block;">CC BY-SA 4.0<img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/cc.svg?ref=chooser-v1" alt="Propagand-Eye Soldering Workshop"><img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/by.svg?ref=chooser-v1" alt="Propagand-Eye Soldering Workshop"><img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/sa.svg?ref=chooser-v1" alt="Propagand-Eye Soldering Workshop"></a></p> 
<!--kg-card-end: html-->
<p></p><p></p>]]></content:encoded></item></channel></rss>