<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>atoms&#38;electrons</title>
	<atom:link href="http://atomsandelectrons.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://atomsandelectrons.com/blog</link>
	<description>software in the service of making real things</description>
	<lastBuildDate>Tue, 05 Jul 2011 17:18:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>When Life Gives You Lemons&#8230;</title>
		<link>http://atomsandelectrons.com/blog/2011/07/when-life-gives-you-lemons/</link>
		<comments>http://atomsandelectrons.com/blog/2011/07/when-life-gives-you-lemons/#comments</comments>
		<pubDate>Mon, 04 Jul 2011 22:01:06 +0000</pubDate>
		<dc:creator>yergacheffe</dc:creator>
				<category><![CDATA[atoms]]></category>
		<category><![CDATA[pop culture]]></category>
		<category><![CDATA[laser cutter]]></category>
		<category><![CDATA[portal]]></category>
		<category><![CDATA[video games]]></category>

		<guid isPermaLink="false">http://atomsandelectrons.com/blog/2011/07/when-life-gives-you-lemons/</guid>
		<description><![CDATA[Tweet “When life gives you lemons? Don&#8217;t make lemonade. Make life take the lemons back! Get mad! I don&#8217;t want your damn lemons! What am I supposed to do with these? Demand to see life&#8217;s manager! Make life rue the day it thought it could give Cave Johnson lemons! Do you know who I am? [...]]]></description>
			<content:encoded><![CDATA[
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: right"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://atomsandelectrons.com/blog/2011/07/when-life-gives-you-lemons/" data-count="horizontal" data-via="yergacheffe">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

<div class="plus-one-wrap"><g:plusone href="http://atomsandelectrons.com/blog/2011/07/when-life-gives-you-lemons/"></g:plusone></div><p><a href="http://atomsandelectrons.com/blog/wp-content/uploads/2011/07/lemon-ade-2-edit.jpg"><img class="colorbox-104"  style="background-image: none; margin: 10px 10px 10px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; padding-top: 0px; border-width: 0px;" title="lemon-ade-2-edit" src="http://atomsandelectrons.com/blog/wp-content/uploads/2011/07/lemon-ade-2-edit_thumb.jpg" border="0" alt="lemon-ade-2-edit" width="218" height="244" align="left" /></a></p>
<p>“When life gives you lemons? Don&#8217;t make lemonade. Make life take the lemons back! Get mad!</p>
<p>I don&#8217;t want your damn lemons! What am I supposed to do with these?</p>
<p>Demand to see life&#8217;s manager! Make life rue the day it thought it could give Cave Johnson lemons! Do you know who I am? I&#8217;m the man who&#8217;s going to burn your house down! With the lemons! I&#8217;m going to get my engineers to invent a combustible lemon that burns your house down!”</p>
<p><em>&#8211; Cave Johnson’s lemon rant after realizing that it turns out ground up moon rocks are pure poison. </em></p>
<p>Inspired by the speech and the hot temperatures outside we made combustible lemon props. I even hung one on our lemon tree. For science.</p>
<p style="text-align: center;"><a href="http://atomsandelectrons.com/blog/wp-content/uploads/2011/07/lemon-ade-1-edit.jpg"><img class="size-medium wp-image-107 aligncenter colorbox-104" title="lemon-ade tree" src="http://atomsandelectrons.com/blog/wp-content/uploads/2011/07/lemon-ade-1-edit-300x225.jpg" alt="" width="300" height="225" /></a></p>
<div class="plus-one-wrap"><g:plusone href="http://atomsandelectrons.com/blog/2011/07/when-life-gives-you-lemons/"></g:plusone></div>
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: right"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://atomsandelectrons.com/blog/2011/07/when-life-gives-you-lemons/" data-count="horizontal" data-via="yergacheffe">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

]]></content:encoded>
			<wfw:commentRss>http://atomsandelectrons.com/blog/2011/07/when-life-gives-you-lemons/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Empire State of Mind</title>
		<link>http://atomsandelectrons.com/blog/2011/06/empire-state-of-mind/</link>
		<comments>http://atomsandelectrons.com/blog/2011/06/empire-state-of-mind/#comments</comments>
		<pubDate>Sun, 26 Jun 2011 06:52:00 +0000</pubDate>
		<dc:creator>yergacheffe</dc:creator>
				<category><![CDATA[atoms]]></category>
		<category><![CDATA[pop culture]]></category>
		<category><![CDATA[laser cutter]]></category>
		<category><![CDATA[star wars]]></category>

		<guid isPermaLink="false">/blog/post/Empire-State-of-Mind.aspx</guid>
		<description><![CDATA[Tweet I don’t really remember why, but for some reason I decided to create some vector artwork of a stormtrooper last weekend. I grabbed an image of a helmet and then did some tracing and editing to get a pretty good silhouette of a stormtrooper helmet. When it was done I was very happy with [...]]]></description>
			<content:encoded><![CDATA[
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: right"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://atomsandelectrons.com/blog/2011/06/empire-state-of-mind/" data-count="horizontal" data-via="yergacheffe">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

<div class="plus-one-wrap"><g:plusone href="http://atomsandelectrons.com/blog/2011/06/empire-state-of-mind/"></g:plusone></div><p><a href="http://www.atomsandelectrons.com/blog/wp-content/images/amp_1.jpg"><img class="colorbox-5"  style="margin: 0px 10px 5px 0px; display: inline; border: 0px;" title="amp" src="http://www.atomsandelectrons.com/blog/wp-content/images/amp_thumb_1.jpg" border="0" alt="amp" width="244" height="241" align="left" /></a> I don’t really remember why, but for some reason I decided to create some vector artwork of a stormtrooper last weekend. I grabbed an image of a helmet and then did some tracing and editing to get a pretty good silhouette of a stormtrooper helmet. When it was done I was very happy with the results and needed to figure out what to do with it. It turns out that once you’ve got some simple vector art you can do a lot with it.</p>
<h2>Paper Soldier</h2>
<p>I started out by cutting a piece of cardstock with the Craft Robo paper cutter to make sure that all the contours were closed, etc. I took the resulting piece of paper and stuck it on a little 15-watt keyboard amp just to butch it up a bit. Since the paper I chose was white it looks best against a black background and the amp fit the bill.</p>
<p>Next I used the vector art to cut a screen-printing mask from adhesive-backed vinyl. That plus some yellow screen printing ink applied with a gentle uneven pressure on the screen gave me a T-Shirt with a distressed looking stormtrooper on the front.</p>
<p><a href="http://www.atomsandelectrons.com/blog/wp-content/images/tshirt_1.jpg"><img class="colorbox-5"  style="display: block; float: none; margin-left: auto; margin-right: auto; border: 0px;" title="tshirt" src="http://www.atomsandelectrons.com/blog/wp-content/images/tshirt_thumb_1.jpg" border="0" alt="tshirt" width="227" height="244" /></a></p>
<h2>Big Finish</h2>
<p>The final project I did was something I’ve been thinking of for a while. It’s actually just the first prototype of a more ambitious project that involves motion and some electronics, but first I wanted to verify if the visual effect was what I had imagined. What I did was take the vector image and cut it into strips using geometrics operations in Corel Draw. These strips were then cut from 3mm thick acrylic on the laser cutter. Finally, I cut a base and frame from birch plywood and clear acrylic. The birch got 6 layers of finish and some final polishing so it took a week to complete the project. You can see a few views of it below.</p>
<p><a href="http://www.atomsandelectrons.com/blog/wp-content/images/topright-1_1.jpg"><img class="colorbox-5"  style="display: inline; border: 0px;" title="topright-1" src="http://www.atomsandelectrons.com/blog/wp-content/images/topright-1_thumb_1.jpg" border="0" alt="topright-1" width="206" height="191" /></a> <a href="http://www.atomsandelectrons.com/blog/wp-content/images/closeup_1.jpg"><img class="colorbox-5"  style="display: inline; border: 0px;" title="closeup" src="http://www.atomsandelectrons.com/blog/wp-content/images/closeup_thumb_1.jpg" border="0" alt="closeup" width="285" height="191" /></a></p>
<p><a href="http://www.atomsandelectrons.com/blog/wp-content/images/corner-34.jpg"><img class="colorbox-5"  style="display: inline; border: 0px;" title="corner-34" src="http://www.atomsandelectrons.com/blog/wp-content/images/corner-34_thumb.jpg" border="0" alt="corner-34" width="238" height="259" /></a> <a href="http://www.atomsandelectrons.com/blog/wp-content/images/off-axis-1.jpg"><img class="colorbox-5"  style="display: inline; border: 0px;" title="off-axis-1" src="http://www.atomsandelectrons.com/blog/wp-content/images/off-axis-1_thumb.jpg" border="0" alt="off-axis-1" width="253" height="259" /></a></p>
<p>The individual white acrylic slices can be rearranged in the holes at different depths, but I found that it’s best to have adjacent strips no more than one row distant from each other. Otherwise, perspective effects from the difference in distance distort things too much unless you’re very far away. I finished up with a Galactic Empire logo cut from black vinyl on the base. The display looks fairly abstract from most angles and then snaps into a stormtrooper when you square-off right in front of it.</p>
<p><a href="http://www.atomsandelectrons.com/blog/wp-content/images/front.jpg"><img class="colorbox-5"  style="display: block; float: none; margin-left: auto; margin-right: auto; border: 0px;" title="front" src="http://www.atomsandelectrons.com/blog/wp-content/images/front_thumb.jpg" border="0" alt="front" width="215" height="244" /></a></p>
<div class="plus-one-wrap"><g:plusone href="http://atomsandelectrons.com/blog/2011/06/empire-state-of-mind/"></g:plusone></div>
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: right"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://atomsandelectrons.com/blog/2011/06/empire-state-of-mind/" data-count="horizontal" data-via="yergacheffe">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

]]></content:encoded>
			<wfw:commentRss>http://atomsandelectrons.com/blog/2011/06/empire-state-of-mind/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Chocolate &amp; Peanut Butter</title>
		<link>http://atomsandelectrons.com/blog/2011/05/chocolate-peanut-butter/</link>
		<comments>http://atomsandelectrons.com/blog/2011/05/chocolate-peanut-butter/#comments</comments>
		<pubDate>Thu, 12 May 2011 08:47:21 +0000</pubDate>
		<dc:creator>yergacheffe</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[atoms]]></category>
		<category><![CDATA[electrons]]></category>

		<guid isPermaLink="false">/blog/post/Chocolate-Peanut-Butter.aspx</guid>
		<description><![CDATA[Tweet In the opening day Google I/O Keynote, Android announced numerous cool new products. I had the pleasure of introducing our new Movie Rental Service for Android Market, and we also talked about our new Music Beta service as well as the Accessory Development Kit for the first time. Combining devices with cloud services is [...]]]></description>
			<content:encoded><![CDATA[
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: right"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://atomsandelectrons.com/blog/2011/05/chocolate-peanut-butter/" data-count="horizontal" data-via="yergacheffe">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

<div class="plus-one-wrap"><g:plusone href="http://atomsandelectrons.com/blog/2011/05/chocolate-peanut-butter/"></g:plusone></div><p><a href="http://www.atomsandelectrons.com/blog/wp-content/images/chocolatepb.jpg"><img class="colorbox-6"  style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 10px 10px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px" title="chocolatepb" border="0" alt="chocolatepb" align="left" src="http://www.atomsandelectrons.com/blog/wp-content/images/chocolatepb_thumb.jpg" width="244" height="197" /></a>In the opening day <a href="http://www.google.com/events/io/2011/sessions/android-momentum-mobile-and-more-at-google-i-o.html">Google I/O Keynote</a>, Android announced numerous cool new products. I had the pleasure of introducing our new <a href="https://market.android.com/movies">Movie Rental Service</a> for Android Market, and we also talked about our new Music Beta service as well as the Accessory Development Kit for the first time. Combining devices with cloud services is a Chocolate &amp; Peanut Butter experience – each benefits from the other to create a whole larger than the sum of their parts, so I wanted to try out the ADK and do a project that captures this. My buddy Joe hooked me up with an ADK board a week before I/O so I could play around with the ADK and I did a project that combines the coolness of devices and hardware with the awesome new <a href="http://music.google.com/">Music Beta</a> service.</p>
<p>First a little background on the ADK. The board that Google was handing out at I/O is based on Arduino and has a built-in Circuits@Home USB Host shield. The details can be found at <a href="http://developer.android.com/guide/topics/usb/adk.html">the Android Open Accessory page</a> at the Android Developer portal. A library is provided for the Arduino board that allows you to identify your device and very easily detect when an Android Device is connected to it and transfer data.</p>
<p>I already had a box of Sure Electronics LED matrices left over from Maker Faire last year. That plus some ShiftBrite RGB LEDs and the judicious application of a laser beam to build an acrylic enclosure was sufficient to get the basic sign up and running. It sported a two-line display (64&#215;8 pixels each) driven by my <a href="http://www.atomsandelectrons.com/blog/post/Pushing-Pixels.aspx">LED Matrix Library</a> and a Music Beta by Google logo backlit through a diffuser panel by 6 ShiftBrites.</p>
<p>Then I linked to the Android ADK library and it was literally just a few lines of code to detect a device connection and read some data. The other very cool feature of Android Open Accessory is you can provide a URL in your device description metadata. When a user plugs in their Android Phone, if there isn’t a compatible application for your device the user can follow the link to download the supporting application directly from Android Market. In my case, I needed a simple service application that listened to the Intents the Music App sends when it changes track metadata. Then, the app writes the metadata to the Arduino board. So the end-user experience is seamless – anyone can walk up to the sign and plug in their phone and be up and running in a few seconds.</p>
<p><a href="http://www.atomsandelectrons.com/blog/wp-content/images/nowplaying-sign.jpg"><img class="colorbox-6"  style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="nowplaying-sign" border="0" alt="nowplaying-sign" src="http://www.atomsandelectrons.com/blog/wp-content/images/nowplaying-sign_thumb.jpg" width="244" height="166" /></a></p>
<p>Once I’ve decompressed from I/O a bit, I’ll publish the source code and CAD files so others can put one of these together. For now here’s a video of the Music Beta Now Playing accessory in action. The fun spectrum analyzer animation is just for effect – it’s not actually analyzing the audio, but maybe some clever person can make that part more real.</p>
<p>&#160;</p>
<div style="padding-bottom: 0px; margin: 0px auto; padding-left: 0px; width: 448px; padding-right: 0px; display: block; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:19e14604-3936-4c39-b7c9-12cc66b24c6e" class="wlWriterEditableSmartContent">
<div><object width="448" height="252"><param name="movie" value="http://www.youtube.com/v/v_bWOUUv8zo?hl=en&amp;hd=1"></param><embed src="http://www.youtube.com/v/v_bWOUUv8zo?hl=en&amp;hd=1" type="application/x-shockwave-flash" width="448" height="252"></embed></object></div>
</div>
<div class="plus-one-wrap"><g:plusone href="http://atomsandelectrons.com/blog/2011/05/chocolate-peanut-butter/"></g:plusone></div>
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: right"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://atomsandelectrons.com/blog/2011/05/chocolate-peanut-butter/" data-count="horizontal" data-via="yergacheffe">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

]]></content:encoded>
			<wfw:commentRss>http://atomsandelectrons.com/blog/2011/05/chocolate-peanut-butter/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Not Actual Size</title>
		<link>http://atomsandelectrons.com/blog/2011/02/not-actual-size/</link>
		<comments>http://atomsandelectrons.com/blog/2011/02/not-actual-size/#comments</comments>
		<pubDate>Mon, 28 Feb 2011 07:45:21 +0000</pubDate>
		<dc:creator>yergacheffe</dc:creator>
				<category><![CDATA[atoms]]></category>
		<category><![CDATA[art]]></category>
		<category><![CDATA[cnc]]></category>

		<guid isPermaLink="false">/blog/post/Not-Actual-Size.aspx</guid>
		<description><![CDATA[Tweet When I was younger I was a big fan of Peter Sellers in The Pink Panther as Chief Inspector Clouseau. One of my favorite running gags was his butler, Cato, who in addition to answering the phone and preparing meals was also responsible for attacking Clouseau without warning. These attacks were designed to keep [...]]]></description>
			<content:encoded><![CDATA[
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: right"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://atomsandelectrons.com/blog/2011/02/not-actual-size/" data-count="horizontal" data-via="yergacheffe">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

<div class="plus-one-wrap"><g:plusone href="http://atomsandelectrons.com/blog/2011/02/not-actual-size/"></g:plusone></div><p><a href="http://www.atomsandelectrons.com/blog/wp-content/images/peepers-big-sharp.jpg"><img class="colorbox-7"  style="background-image: none; margin: 20px 10px 4px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; padding-top: 0px; border-width: 0px;" title="peepers-big-sharp" src="http://www.atomsandelectrons.com/blog/wp-content/images/peepers-big-sharp_thumb.jpg" border="0" alt="peepers-big-sharp" width="204" height="271" align="left" /></a></p>
<p>When I was younger I was a big fan of Peter Sellers in <em>The Pink Panther </em>as Chief Inspector Clouseau. One of my favorite running gags was his butler, Cato, who in addition to answering the phone and preparing meals was also responsible for attacking Clouseau without warning. These attacks were designed to keep Clouseau vigilant and in fighting shape, and there were many epic battles between them. Several decades later I’ve come to realize that I have my own personal Cato in the form of my cat. Our cat is sweet and loving with everyone else in the family, but with me her favorite thing to do is attack me when I least expect it. She will literally wait by the door for hours and when I come home she jumps at me with her back arched waiting to be chased around the house. Like Clouseau, I am responsible for my attacker’s behavior – having trained her to attack me with our games.</p>
<h2>A Heartless Killing Machine</h2>
<p>As a result, when I think of the cat I don’t think of a cuddly little pet but rather a vicious killing machine. My wife took a picture of her that captures the cold depths of the cat’s evil soul and I really like it. So I decided to make a big version of it to hang on the wall using my CNC router and some custom software I wrote.</p>
<p>The idea was to do a halftone-style picture by cutting circles of varying size in a panel of wood that would show through a black background. I modified my <a href="http://www.atomsandelectrons.com/blog/post/Paper-Pixels.aspx">Paper Pixels</a> software to take a picture of the cat and sample the average brightness in a grid pattern and then turn this into an array of circles. Large circles for dark areas (which thus show more of the black background) and small circles for light areas (which thus show the light birch wood I was planning to use). The picture on the left below is the original image I started with and the one on the right it the output after my software processed it.</p>
<p><a href="http://www.atomsandelectrons.com/blog/wp-content/images/peepers-original.jpg"><img class="colorbox-7"  style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="peepers-original" src="http://www.atomsandelectrons.com/blog/wp-content/images/peepers-original_thumb.jpg" border="0" alt="peepers-original" width="236" height="236" /></a><a href="http://www.atomsandelectrons.com/blog/wp-content/images/peepers-circles.jpg"><img class="colorbox-7"  style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="peepers-circles" src="http://www.atomsandelectrons.com/blog/wp-content/images/peepers-circles_thumb.jpg" border="0" alt="peepers-circles" width="240" height="236" /></a></p>
<h2>We Love Constraints</h2>
<p>My CNC router has a table size of 24” x 16” and I wanted the resulting picture to be larger than that. I was going for 3 feet square, so I chopped the picture up into 6s panels of different sizes that I would assemble to make the finished picture. I’ve spoken many times about the fact that constraints like these can be used to improve the result. So rather than try to hide the fact that I cut the image up I accented it by splitting the panels up with space between them. I used 1/4” thick birch plywood sheets and finished them with several coats of amber Shellac to give a nice warm color. Then I <a href="http://www.youtube.com/watch?v=KJv5N3Rwg1c">cut each panel out with the router</a>, after producing toolpaths with CAM software. Some of the holes ended up with ragged edges depending on how worn the tool was but some light sanding fixed things up quickly.</p>
<p><a href="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_20110108_164322.jpg"><img class="colorbox-7"  style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="IMG_20110108_164322" src="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_20110108_164322_thumb.jpg" border="0" alt="IMG_20110108_164322" width="204" height="154" /></a><a href="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_20110108_164354.jpg"><img class="colorbox-7"  style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="IMG_20110108_164354" src="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_20110108_164354_thumb.jpg" border="0" alt="IMG_20110108_164354" width="204" height="154" /></a></p>
<p><a href="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_20110108_164307.jpg"><img class="colorbox-7"  style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="IMG_20110108_164307" src="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_20110108_164307_thumb.jpg" border="0" alt="IMG_20110108_164307" width="404" height="222" /></a></p>
<p>Once all 6 panels were cut, I sprayed the back with tacky adhesive from the local art supply store and glued thick black posterboard to the back. I mounted the panels to the wall right above the bed where the cat sleeps. The result is a nice combination of a geometric/abstract form with a somewhat photographic effect the further away you get from it.</p>
<p><a href="http://www.atomsandelectrons.com/blog/wp-content/images/peepers-small.jpg"><img class="colorbox-7"  style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="peepers-small" src="http://www.atomsandelectrons.com/blog/wp-content/images/peepers-small_thumb.jpg" border="0" alt="peepers-small" width="229" height="233" /></a></p>
<div class="plus-one-wrap"><g:plusone href="http://atomsandelectrons.com/blog/2011/02/not-actual-size/"></g:plusone></div>
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: right"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://atomsandelectrons.com/blog/2011/02/not-actual-size/" data-count="horizontal" data-via="yergacheffe">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

]]></content:encoded>
			<wfw:commentRss>http://atomsandelectrons.com/blog/2011/02/not-actual-size/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Birthday Laser</title>
		<link>http://atomsandelectrons.com/blog/2011/02/birthday-laser/</link>
		<comments>http://atomsandelectrons.com/blog/2011/02/birthday-laser/#comments</comments>
		<pubDate>Sat, 26 Feb 2011 09:13:00 +0000</pubDate>
		<dc:creator>yergacheffe</dc:creator>
				<category><![CDATA[atoms]]></category>
		<category><![CDATA[laser cutter]]></category>

		<guid isPermaLink="false">/blog/post/Birthday-Laser.aspx</guid>
		<description><![CDATA[Tweet For my birthday last year I decided to get a new toy for my workshop &#8211; a laser cutter. I spent a fair amount of time researching various options and eventually decided on a 40 Watt CO2 laser. I purchased an inexpensive Chinese laser cutter from Full Spectrum Engineering. FSE imports them and then [...]]]></description>
			<content:encoded><![CDATA[
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: right"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://atomsandelectrons.com/blog/2011/02/birthday-laser/" data-count="horizontal" data-via="yergacheffe">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

<div class="plus-one-wrap"><g:plusone href="http://atomsandelectrons.com/blog/2011/02/birthday-laser/"></g:plusone></div><p style="clear: both"><img class="colorbox-8"  style="margin: 0px 10px 5px 0px; display: inline; float: left" src="http://www.atomsandelectrons.com/blog/wp-content/images/image-thumb_1.jpg" alt="" width="248" height="168" align="left" />For my birthday last year I decided to get a new toy for my workshop &ndash; a laser cutter. I spent a fair amount of time researching various options and eventually decided on a 40 Watt CO2 laser. I purchased an inexpensive Chinese laser cutter from Full Spectrum Engineering. FSE imports them and then sells them from their US offices, which means you get to deal with a local US-based company. For just under $2K at the time you got a 40 Watt CO2 laser with approximately 12&#8243; x 11&#8243; cutting area. The specs have only improved since then. Mine also came with an upgraded controller card that allows the laser to be driven from Mach3 or other CNC control software.</p>
<p style="clear: both">My machine needed a bit of TLC after unpacking. The mirrors and laser lenses needed alignment, which I fixed using thermal imprint paper and a very low power setting to figure out where the laser was pointing at each point along the path. At times the answer was &#8212; pointed directly at my hands. Good times. This is pretty typical of these imported machines, but the good news is it&#8217;s quite straightforward to get them set up and working well.</p>
<p style="clear: both">Once I was done and got it running, I tried the included software and was horrified by what I saw. The circle I drew to test cut out of paper had jagged edges looking like it was at about 75 dpi resolution, which was much worse than the stated 1000dpi. It turns out the included software (NewlyDraw) is complete junk, and the machine is capable of much better results.</p>
<p style="clear: both">By switching out the controller card with the upgraded Mach3-compatible card and driving it with Mach3 I was able to get it running very accurately and smoothly. But there wasn&#8217;t a great solution for creating GCode files from CorelDraw or other vector art, so it was tedious to prepare cutting jobs for the laser.I ended up writing software to make this pretty seamless. My software takes an SVG file and converts it to GCode usable by Mach3. When I used it to test the same circles picture I did before the results were stunning. Everything was smooth and the steppers even sounded happier and less jerky being driven by Mach3. So you can edit directly in CorelDraw and then save as SVG and the LaserCAM software spits out GCode.</p>
<p style="clear: both">The pictures below show the software running and then the final results cut from 3mm white acrylic. The file as I edit it in CorelDraw is upright, but it shows up flipped vertically in the LaserCAM software because of how my Y-Axis is mapped on my laser cutter.</p>
<p style="clear: both">&nbsp;</p>
<p style="clear: both"><img class="colorbox-8"  style="text-align: center; margin: 0px auto 10px; display: block" title="lasercam.PNG" src="http://www.atomsandelectrons.com/blog/wp-content/images/lasercam.PNG" border="0" alt="Lasercam" width="400" height="342" /></p>
<p style="clear: both"><img class="colorbox-8"  style="text-align: center; margin: 0px auto 10px; display: block" title="IMG_20110225_233228.jpg" src="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_20110225_233228_1.jpg" border="0" alt="IMG 20110225 233228" width="400" height="300" />The software is available on my GitHub at<a href="https://github.com/yergacheffe/lasercam">https://github.com/yergacheffe/lasercam</a>and could be adapted for other brands of laser cutters. It&#8217;s still a far cry from the nice printer driver interface that an Epilog laser cutter provides, but at 1/10th the cost this is a pretty good alternative for the hobbyist.</p>
<p style="clear: both">&nbsp;</p>
<p><br class="final-break" style="clear: both" /></p>
<div class="plus-one-wrap"><g:plusone href="http://atomsandelectrons.com/blog/2011/02/birthday-laser/"></g:plusone></div>
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: right"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://atomsandelectrons.com/blog/2011/02/birthday-laser/" data-count="horizontal" data-via="yergacheffe">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

]]></content:encoded>
			<wfw:commentRss>http://atomsandelectrons.com/blog/2011/02/birthday-laser/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Corporate Art</title>
		<link>http://atomsandelectrons.com/blog/2010/08/corporate-art/</link>
		<comments>http://atomsandelectrons.com/blog/2010/08/corporate-art/#comments</comments>
		<pubDate>Sun, 15 Aug 2010 10:21:00 +0000</pubDate>
		<dc:creator>yergacheffe</dc:creator>
				<category><![CDATA[atoms]]></category>
		<category><![CDATA[electrons]]></category>
		<category><![CDATA[pop culture]]></category>
		<category><![CDATA[art]]></category>
		<category><![CDATA[star trek]]></category>

		<guid isPermaLink="false">/blog/post/Corporate-Art.aspx</guid>
		<description><![CDATA[Tweet The company-for-which-I-used-to-work has quite a nice art collection. There is a wide variety of art in all the buildings ranging from paintings, prints, sculpture, mixed media, etc. I just ran across some photos I took about a year ago when I travelled to a remote office. This was a building that had just been [...]]]></description>
			<content:encoded><![CDATA[
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: right"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://atomsandelectrons.com/blog/2010/08/corporate-art/" data-count="horizontal" data-via="yergacheffe">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

<div class="plus-one-wrap"><g:plusone href="http://atomsandelectrons.com/blog/2010/08/corporate-art/"></g:plusone></div><p><a href="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_0070_1.jpg"><img class="colorbox-9"  style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 5px 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0070" border="0" alt="IMG_0070" align="left" src="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_0070_thumb_1.jpg" width="244" height="242" /></a> </p>
<p>The company-for-which-I-used-to-work has quite a nice art collection. There is a wide variety of art in all the buildings ranging from paintings, prints, sculpture, mixed media, etc. I just ran across some photos I took about a year ago when I travelled to a remote office. This was a building that had just been finished and they commissioned some very cool artwork for it.</p>
<p>The first is an interactive multi-story LED wall that hangs from the atrium ceiling. At varying times of the day you will find different animations and other abstract graphics being displayed on the wall. It turns out that it’s interactive and uses microphones and video cameras to pick up input from the seating area in the atrium that sometimes affects what’s displayed.</p>
<p>I took some close-up pictures of the LED elements themselves from the second-floor walkway that goes closest to the wall. Unfortunately you can’t see much detail from the fuzzy mobile phone picture, but it consists of a series of discrete LED modules in long plastic tubes.</p>
<p><a href="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_0071.jpg"><img class="colorbox-9"  style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="IMG_0071" border="0" alt="IMG_0071" src="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_0071_thumb.jpg" width="504" height="448" /></a>There was a particle effect animation running the day I was there. I’ve since seen a number of other animations and abstract images displayed there, some of which react to the sound and movement. The video below gives a decent idea of the size and bad-assedness of this installation.</p>
<div style="padding-bottom: 0px; margin: 0px auto; padding-left: 0px; width: 425px; padding-right: 0px; display: block; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:de4546ab-0b10-48c6-9c98-dae38de7232a" class="wlWriterEditableSmartContent">
<div><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/T-U7RrWH4wE&amp;hl=en"></param><embed src="http://www.youtube.com/v/T-U7RrWH4wE&amp;hl=en" type="application/x-shockwave-flash" width="425" height="355"></embed></object></div>
</div>
<p>But my favorite by far is not the wall of LEDs, but rather a piece of artwork made from beads. No, my blog password was not stolen by a 70 year old cat lady. I was truly awestruck when I saw the bead art in the lobby, as it presses a couple of my joy buttons simultaneously. First, it’s got the “things as pixels” vibe going on. The pictures are essentially 2D raster graphics rendered with 5mm acrylic beads strung on fishing wire. Second, it’s subject matter is Star Trek. And finally it uses the constraints of the medium to its advantage – the semi-transparent beads used to capture an image of Kirk, Spock and McCoy materializing in the Transporter.</p>
<p><a href="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_0068.jpg"><img class="colorbox-9"  style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="IMG_0068" border="0" alt="IMG_0068" src="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_0068_thumb.jpg" width="428" height="484" /></a> </p>
<p>The photo doesn’t do it justice. From afar the shimmering images are stunning and very realistic looking, while close up they turn abstract and all you can see is the process and materials. I’m not sure why the artist decided to use the metal spacers between the beads – perhaps to make it more transparent? Or maybe to make the pixels have a square aspect ratio? The spacers make the vertical distance between “pixels” approximately the same as the horizontal distance.</p>
<p><a href="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_0069.jpg"><img class="colorbox-9"  style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="IMG_0069" border="0" alt="IMG_0069" src="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_0069_thumb.jpg" width="404" height="537" /></a> </p>
<p>I’m not above stealing a fantastic idea like this, and bought a bunch of acrylic faceted beads which I sorted by color with the help of my family. I haven’t gotten around to doing one yet, but hope to soon.</p>
<div class="plus-one-wrap"><g:plusone href="http://atomsandelectrons.com/blog/2010/08/corporate-art/"></g:plusone></div>
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: right"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://atomsandelectrons.com/blog/2010/08/corporate-art/" data-count="horizontal" data-via="yergacheffe">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

]]></content:encoded>
			<wfw:commentRss>http://atomsandelectrons.com/blog/2010/08/corporate-art/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>It’s A Good Life</title>
		<link>http://atomsandelectrons.com/blog/2010/08/it%e2%80%99s-a-good-life/</link>
		<comments>http://atomsandelectrons.com/blog/2010/08/it%e2%80%99s-a-good-life/#comments</comments>
		<pubDate>Sun, 15 Aug 2010 02:29:00 +0000</pubDate>
		<dc:creator>yergacheffe</dc:creator>
				<category><![CDATA[atoms]]></category>
		<category><![CDATA[cnc]]></category>
		<category><![CDATA[twilight zone]]></category>

		<guid isPermaLink="false">/blog/post/Ite28099s-A-Good-Life.aspx</guid>
		<description><![CDATA[Tweet One of my favorite episodes of The Twilight Zone is “It’s a Good Life.” In it, Billy Mumy plays a 6-year old with godlike powers. Anything he can think of he can instantly materialize and transform, whether they be objects, animals or even some unfortunate people. Whether it’s a gopher with two heads, a [...]]]></description>
			<content:encoded><![CDATA[
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: right"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://atomsandelectrons.com/blog/2010/08/it%e2%80%99s-a-good-life/" data-count="horizontal" data-via="yergacheffe">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

<div class="plus-one-wrap"><g:plusone href="http://atomsandelectrons.com/blog/2010/08/it%e2%80%99s-a-good-life/"></g:plusone></div><p><a href="http://www.atomsandelectrons.com/blog/wp-content/images/It's_A_Good_Life.jpg"><img class="colorbox-10"  style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 5px 0px; display: inline; border-top: 0px; border-right: 0px" title="It&#39;s_A_Good_Life" border="0" alt="It&#39;s_A_Good_Life" align="left" src="http://www.atomsandelectrons.com/blog/wp-content/images/It's_A_Good_Life_thumb.jpg" width="244" height="234" /></a> </p>
<p>One of my favorite episodes of <em>The Twilight Zone</em> is “It’s a Good Life.” In it, Billy Mumy plays a 6-year old with godlike powers. Anything he can think of he can instantly materialize and transform, whether they be objects, animals or even some unfortunate people. Whether it’s a gopher with two heads, a jack-in-the-box toy made out of one of the neighbors, or an impromptu snow-storm, all Billy has to do is imagine it and it happens.</p>
<p>Rapid prototyping and personal fabrication technologies are creating a Good Life for all of us. The path from idea to physical object is becoming shorter and cheaper, with sub-$1000 3D printers and afforable CNC machines of ever-increasing quality. While not quite godlike and far less terrifying, the power to imagine an object and hold it in your hand 30 minutes later is quite awesome. Here’s an example from today.</p>
<p>One of my Saturday chores was to add a lock to a set of drawers. I purchased a generic lock assembly, but it didn’t quite fit the piece of furniture I was working with. I needed to assemble some standoffs and drawer tabs to make it work. I took a few measurements, drew the design in a CAD program, turned it into toolpaths with a CAM program and then cut it on a CNC router. Measure, Draw, CAM, Cut…the 4 steps are shown below.</p>
<p><a href="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_0365.jpg"><img class="colorbox-10"  style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0365" border="0" alt="IMG_0365" src="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_0365_thumb.jpg" width="244" height="184" /></a> <a href="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_0367.jpg"><img class="colorbox-10"  style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0367" border="0" alt="IMG_0367" src="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_0367_thumb.jpg" width="244" height="184" /></a> </p>
<p><a href="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_0366.jpg"><img class="colorbox-10"  style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0366" border="0" alt="IMG_0366" src="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_0366_thumb.jpg" width="244" height="184" /></a> <a href="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_0372.jpg"><img class="colorbox-10"  style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0372" border="0" alt="IMG_0372" src="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_0372_thumb.jpg" width="244" height="185" /></a></p>
</p>
</p>
<p>The process could be streamlined significantly. The conversion of my CAD drawing to gcode in a CAM program always feels like a tedious and unnecessary step. It’s the part where you specify important cutting parameters like speed, size of your tool, etc. so it is truly necessary but I can’t help but wonder how most of this info couldn’t be captured in the drawing itself. What I want to do is simply “Print” from the drawing program and get an object out of it. The interface to Epilog laser cutters is like this and it feels very natural.</p>
<p><a href="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_0375.jpg"><img class="colorbox-10"  style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 5px 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0375" border="0" alt="IMG_0375" align="left" src="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_0375_thumb.jpg" width="304" height="229" /></a>Minor complaints aside, it’s very empowering. Since you can knock out test parts quickly, it’s not the end of the world when something doesn’t fit quite right. I had to wish a few early designs into the cornfield today, but was able to iterate 3 versions on the most important parts within the span of an hour or so. The tolerances for the locking tabs on each drawer were very tight, and I was able to build something that was <em>exactly</em> what I needed without having to drive all over town looking for it. The width and thickness of the tabs had to be very precise to engage the locking mechanism while still allowing the drawers to close. I was able to do this and have a recessed slot so the screws would sit flush. In fact, the job took longer because of old habits. I spent half an hour looking for angle brackets or other parts I could use because it would be “easier” than fabbing some up. None of the existing things worked, but the custom parts came together quickly and performed just as well.</p>
<div style="padding-bottom: 0px; margin: 0px auto; padding-left: 0px; width: 425px; padding-right: 0px; display: block; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:746cb8b7-60fb-4aa4-a03d-97b760d571cd" class="wlWriterEditableSmartContent">
<div><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/84GvCamYROg&amp;hl=en"></param><embed src="http://www.youtube.com/v/84GvCamYROg&amp;hl=en" type="application/x-shockwave-flash" width="425" height="355"></embed></object></div>
</div>
<p>To my knowledge there’s no Gopher extruder available for the Makerbot yet, so nothing particularly menacing is likely to come from your local fablab. But just in case be sure to think only happy thoughts and be careful not to sing.</p>
<div class="plus-one-wrap"><g:plusone href="http://atomsandelectrons.com/blog/2010/08/it%e2%80%99s-a-good-life/"></g:plusone></div>
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: right"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://atomsandelectrons.com/blog/2010/08/it%e2%80%99s-a-good-life/" data-count="horizontal" data-via="yergacheffe">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

]]></content:encoded>
			<wfw:commentRss>http://atomsandelectrons.com/blog/2010/08/it%e2%80%99s-a-good-life/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Maker Faire 2010</title>
		<link>http://atomsandelectrons.com/blog/2010/06/maker-faire-2010/</link>
		<comments>http://atomsandelectrons.com/blog/2010/06/maker-faire-2010/#comments</comments>
		<pubDate>Sat, 12 Jun 2010 18:37:58 +0000</pubDate>
		<dc:creator>yergacheffe</dc:creator>
				<category><![CDATA[atoms]]></category>
		<category><![CDATA[electrons]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[maker faire]]></category>

		<guid isPermaLink="false">/blog/post/Maker-Faire-2010.aspx</guid>
		<description><![CDATA[Tweet What a difference a year makes. A year ago I didn’t have a TechShop membership, didn’t know what Atmel AVR or Arduino meant, didn’t own a soldering iron and had never fired a laser outside of a DVD player. That all changed last year when I attended my first Maker Faire and was overwhelmed [...]]]></description>
			<content:encoded><![CDATA[
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: right"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://atomsandelectrons.com/blog/2010/06/maker-faire-2010/" data-count="horizontal" data-via="yergacheffe">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

<div class="plus-one-wrap"><g:plusone href="http://atomsandelectrons.com/blog/2010/06/maker-faire-2010/"></g:plusone></div><p><a href="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_0271.jpg"><img class="colorbox-11"  style="border-right-width: 0px; margin: 0px 5px 5px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IMG_0271" border="0" alt="IMG_0271" align="left" src="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_0271_thumb.jpg" width="244" height="214" /></a> </p>
<p>What a difference a year makes. A year ago I didn’t have a <a href="http://www.techshop.ws">TechShop</a> membership, didn’t know what Atmel AVR or <a href="http://www.arduino.cc">Arduino</a> meant, didn’t own a soldering iron and had never fired a laser outside of a DVD player. That all changed last year when I attended my first Maker Faire and was overwhelmed by the amount of creativity and technology on display. It was almost <em>too much</em>, as I remember walking around a little dazed not sure what to look at. However, when I think back on that day one particular exhibit does stick in my memory.</p>
<p>It was what appeared to be a home-built Apple ][ computer. It turned out to be <a href="http://www.stevechamberlin.com/cpu/bmow1/">BMOW</a> (Big Mess o’ Wires). This was a guy who had built his own 8-bit computer (including a CPU largely of his own design) using wire wrap and some relatively simple components. An impressive project and he was just some random dude showing it off for fun.</p>
<p>Fast forward a year and I was a random dude with a few projects featured on Hack-A-Day and a desire to show them off for fun. I brought two existing projects: <a href="http://www.atomsandelectrons.com/blog/post/TweetWall.aspx">TweetWall</a> and the surprisingly popular <a href="http://www.atomsandelectrons.com/blog/post/Apple-t.aspx">Apple //t</a> and a new project I did special for Make Faire which was called Memewrestle. The common theme was displaying real-time data from Twitter on dedicated devices, and my exhibit was called <em>Twitter Objects</em>.</p>
<p><a href="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_0286.jpg"><img class="colorbox-11"  style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="IMG_0286" border="0" alt="IMG_0286" align="right" src="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_0286_thumb.jpg" width="244" height="184" /></a>Memewrestle was designed to show the relative popularity of two terms on Twitter. My friends at Bing hooked me up with an API that counts all mentions of two terms over the past several hours and the relative popularity is indicated on a servo-controlled dial. They tell me it’s up to date within 10 seconds or so and folks at the booth reported seeing their Tweets update the data in real-time. We compared favorite Mythbuster hosts (Adam won, but it was close in the afternoon) and American Idol finalists (we correctly predicted Lee Dewyze as the winner) on Memewrestle, among other things. The contest for “favorite Black Sabbath vocalist” took a dramatic turn when Ronnie James Dio died earlier in the week, giving him a decisive victory. And if you need me to tell you the outcome of Justin Bieber vs. Lady Gaga you’re just not paying attention.</p>
<p>In addition to the projects I did a little bit of stuff for the booth. I built a nice color-changing LED sign inspired by a design that Macetech.com used last year. I designed a logo and cut it on a CNC vinyl cutter at <a href="http://www.techshop.ws">TechShop</a>, then stuck that to a light-diffuser panel in a wood enclosure I built. The sign is illuminated by RGB LED strips and driven by an Arduino and powered via several&#160; <a href="http://macetech.com/store/index.php?main_page=product_info&amp;cPath=1&amp;products_id=10">Macetech ShiftBar</a> modules. My software can control each of 6 LED strips to do color patterns and animations.</p>
<p><a href="http://www.atomsandelectrons.com/blog/wp-content/images/sign_2.jpg"><img class="colorbox-11"  style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="sign" border="0" alt="sign" src="http://www.atomsandelectrons.com/blog/wp-content/images/sign_thumb_2.jpg" width="244" height="164" /></a>&#160; <a href="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_0268_2.jpg"><img class="colorbox-11"  style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_0268" border="0" alt="IMG_0268" src="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_0268_thumb_2.jpg" width="217" height="164" /></a> </p>
<p>The star of the show was the 30-year old Apple //e showing live Tweets. Anyone at the show who mentioned @apple2t on Twitter would see their profile picture and message displayed on the Apple. Lots of folks did so and took pictures of their tweets on display. After the show I replied to each person who mentioned @apple2t and sent them the high-res and low-res versions of their profile picture generated by my software. Here’s a mosaic of some of the folks who stopped by the booth in Apple II graphics.</p>
<p><a href="http://www.atomsandelectrons.com/blog/wp-content/images/mosaic.jpg"><img class="colorbox-11"  style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="mosaic" border="0" alt="mosaic" src="http://www.atomsandelectrons.com/blog/wp-content/images/mosaic_thumb.jpg" width="404" height="364" /></a> </p>
<p>It was an exhausting weekend, but a lot of fun. I estimate that a few thousand folks came by the booth and I met a lot of great people. One of the best experiences was meeting people in real life that I’ve come to know and respect over the internet – and this happened countless times. It was also cool to have complete strangers come up and tell me how much they like my blog. Every once in a while someone would look at me in a confused way and ask what I was selling or what the commercial angle was. To each of them I gave the same response. “All of this…” I would state, stretching my arms out and pausing for dramatic effect “…is a vast money-losing operation.” It’s a labor of love and meeting cool like-minded people is one of the fruits of that labor.</p>
<p>The cherry on top was winning an Editor’s Choice award from Make Magazine for my exhibit. It’s hanging in my workshop proudly.</p>
<p><a href="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_0304.jpg"><img class="colorbox-11"  style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="IMG_0304" border="0" alt="IMG_0304" src="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_0304_thumb.jpg" width="184" height="244" /></a></p>
<p>So will I be back next year? Absolutely, but I probably won’t be exhibiting anything. Next year I’ll be there looking at everyone else’s projects, just like the guy who wandered up to my booth wearing a BMOW T-Shirt. I realized a bit too late that this was Steve Chamberlin – the same guy that inspired me to do something last year was at my booth listening to my spiel. I <em>really</em> wanted to tell him that story but it was mobbed and couldn’t catch his attention. I recently learned he won a blue ribbon last year as well. I’m looking forward to seeing what some random dude does next year.</p>
<div class="plus-one-wrap"><g:plusone href="http://atomsandelectrons.com/blog/2010/06/maker-faire-2010/"></g:plusone></div>
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: right"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://atomsandelectrons.com/blog/2010/06/maker-faire-2010/" data-count="horizontal" data-via="yergacheffe">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

]]></content:encoded>
			<wfw:commentRss>http://atomsandelectrons.com/blog/2010/06/maker-faire-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apple //t</title>
		<link>http://atomsandelectrons.com/blog/2010/04/apple-t/</link>
		<comments>http://atomsandelectrons.com/blog/2010/04/apple-t/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 11:27:39 +0000</pubDate>
		<dc:creator>yergacheffe</dc:creator>
				<category><![CDATA[electrons]]></category>
		<category><![CDATA[80s]]></category>
		<category><![CDATA[apple2]]></category>
		<category><![CDATA[arduino]]></category>

		<guid isPermaLink="false">/blog/post/Apple-t.aspx</guid>
		<description><![CDATA[Tweet In the summer of 1980 my family took a trip to the East Coast, and we flew American Airlines. It was my first time on an airplane and I remember being very excited. I had good cause to be excited – I was about to have the entire course of my life impacted, but [...]]]></description>
			<content:encoded><![CDATA[
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: right"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://atomsandelectrons.com/blog/2010/04/apple-t/" data-count="horizontal" data-via="yergacheffe">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

<div class="plus-one-wrap"><g:plusone href="http://atomsandelectrons.com/blog/2010/04/apple-t/"></g:plusone></div><p><a href="http://www.atomsandelectrons.com/blog/wp-content/images/twitter2.jpg"><img class="colorbox-12"  style="border-right-width: 0px; margin: 0px 5px 5px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="twitter2" border="0" alt="twitter2" align="left" src="http://www.atomsandelectrons.com/blog/wp-content/images/twitter2_thumb.jpg" width="173" height="181" /></a>In the summer of 1980 my family took a trip to the East Coast, and we flew American Airlines. It was my first time on an airplane and I remember being very excited. I had good cause to be excited – I was about to have the entire course of my life impacted, but didn’t know it yet. </p>
<p>I was reading the in-flight magazine and came across something that boggled my young mind. It was a full-page advertisement for a computer – a personal computer that you could buy and use yourself. I must have sat there and stared at that page for 15 minutes studying the picture of this thing called a “personal computer”. I tore the ad out and carried it around with me for the rest of the trip. It took about a year of bugging my parents but they eventually bought me an Apple II with 16K of RAM.</p>
<p>These were my formative years and I learned that machine inside and out, making indelible memories that last to this day. I met Steve Wozniak at a book signing recently and told him I was surprised to find that nobody had yet grabbed the license plate “LDA C030” for their vehicle. [Blank stare from Woz] “You know, L..D..A..” I repeated myself more slowly and loudly, the way you might to someone who doesn’t speak Engligh in the hopes of being understood and with similar results. He had no idea what the hell I was talking about. And why should he? The obscure 6502 machine language command to make the Apple II speaker click would never have anywhere near the meaning to him as it did me. To me it was my fundamental introduction to making electronic music, whereas to him it was simply a feature he stuck in a product he built decades ago. His brain was doing the sensible thing and had purged this knowledge sometime in the past 30 years. In my case, this information was carved in stone and I put it all to use last weekend.<img class="colorbox-12"  style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="the-ad" border="0" alt="the-ad" src="http://www.atomsandelectrons.com/blog/wp-content/images/the-ad_thumb.jpg" width="244" height="236" /></p>
<p>Actually the story begins another week or two earlier at the <a href="http://www.electronicsfleamarket.com/">Silicon Valley Electronics Flea Market</a>. I came across a guy with a bunch of Apple II computers stacked up and ended up buying an Apple //e and a disk drive for $20. His prices were $10 for an Apple //e and $25 for an Apple II+. The Apple II+ is technically the lesser machine – an earlier model that lacked the features of the Apple //e but is more expensive due to scarcity. The computer my parents purchased for me was the original Apple II, an even older and more rare model. I asked him if he had any of that model and he said no, but if he did they’d run a few hundred dollars. </p>
<p>I loved that he said this, because when the Apple //e was released I recall thinking that it was an abomination. My original Apple II computer came with a full set of schematics and programming documentation. The Apple //e was the first computer Apple released that didn’t include instructions on how to program it. By that time there was enough commercially available software and, like today’s computers, it actually did useful things without the owner having to program it. At the age of 15 this felt like a change for the worse and made the Apple //e a lesser computer in my mind.</p>
<p>I brought my $20 worth of computer gear home and decided to turn it on. The sound of the beep and the noise the disk drive made instantly transported me back 30 years – it was a sound as familiar as any I’ve heard in my entire life. It was the 1980s and I was a teenager with all the 6502 opcodes memorized. Time to build something.</p>
<p>I have zero intention of becoming the Twitter Display Guy, but since I had just finished a Twitter Display project I thought it would be cool to do a Twitter/Apple II mash-up. So where to start…</p>
<h4>Bootstrap</h4>
<p>I had exactly zero software for the Apple //e I had just purchased, so I looked for a 6502 assembler that ran on the PC and was able to find several. But I needed a way to transfer the resulting binaries to the Apple and also would need a way to communicate with my PC to send the Twitter information.</p>
<p>I ended up implementing an SPI-like interface between the PC and Apple II using an FTDI USB cable in <a href="http://hackaday.com/2009/09/22/introduction-to-ftdi-bitbang-mode/">bit-bang mode</a>. This essentially gives you 4 logic lines you can control from your PC. I hooked these up to the Apple II joystick connector to the button inputs and wrote software on the Apple II to listen to the virtual button presses being hammered out by the PC. I tested this software first by just driving some LEDs with the FTDI cable to get the switching software right.</p>
<p><a href="http://www.atomsandelectrons.com/blog/wp-content/images/bitbang-leds.jpg"><img class="colorbox-12"  style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="bitbang-leds" border="0" alt="bitbang-leds" src="http://www.atomsandelectrons.com/blog/wp-content/images/bitbang-leds_thumb.jpg" width="244" height="188" /></a> Once I could reliably toggle the logic lines on the FTDI cable, I hooked wires up to the Joystick button port as seen below. I call it the Track &amp; Field protocol since it works by rapidly toggling the joystick buttons. Track &amp; Field was an Apple II game where you had to mash the buttons as fast as you could to race, and was notorious for kids breaking their keyboards by pounding the buttons so hard. I was able to get this Rube Goldberg system working reliably at 3600 baud.</p>
<p><a href="http://www.atomsandelectrons.com/blog/wp-content/images/gameport-context.jpg"><img class="colorbox-12"  style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="gameport-context" border="0" alt="gameport-context" src="http://www.atomsandelectrons.com/blog/wp-content/images/gameport-context_thumb.jpg" width="244" height="164" /></a> <a href="http://www.atomsandelectrons.com/blog/wp-content/images/gameport-closeup.jpg"><img class="colorbox-12"  style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="gameport-closeup" border="0" alt="gameport-closeup" src="http://www.atomsandelectrons.com/blog/wp-content/images/gameport-closeup_thumb.jpg" width="244" height="164" /></a> </p>
<p><a href="http://www.atomsandelectrons.com/blog/wp-content/images/ftdi-connected.jpg"><img class="colorbox-12"  style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="ftdi-connected" border="0" alt="ftdi-connected" src="http://www.atomsandelectrons.com/blog/wp-content/images/ftdi-connected_thumb.jpg" width="244" height="164" /></a>But of course the very first piece of software had to be entered by hand on the Apple II, so I wrote a <a href="http://www.atomsandelectrons.com/make/bootloader.m65">tiny bootloader</a> in about 50 bytes that will load a stream of my bit-banged data into RAM. I then used this bootloader to transfer the full program. Writing the bootloader was surprisingly easy – I did almost all of it from memory. The 6502 has 8-bit registers but 16-bit memory addresses so you can’t reference a byte of memory indirect through a register. So you either need to store the address pointer in the first 256 bytes of memory (Zero Page) or use a longer instruction with an absolute address. I dimly recalled there were limitations on which Zero Page addresses were available for your use so I wrote the program to be self-modifying with absolute addressing. </p>
<p><a href="http://www.atomsandelectrons.com/blog/wp-content/images/self-modifying.png"><img class="colorbox-12"  style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="self-modifying" border="0" alt="self-modifying" src="http://www.atomsandelectrons.com/blog/wp-content/images/self-modifying_thumb.png" width="442" height="141" /></a>This loop increments the variable PagePointer to store each successive byte received. Look closely and you’ll see that PagePointer actually points to program code. It’s pointing to where the address byte is for the STA $xxxx,Y instruction. So the code is modifying itself as it goes through the loop. Computers go out of their way to prevent you from making these kinds of “mistakes” today but back then we all did it and it was bad-ass.</p>
<h4>Not So Fast</h4>
<p>The Apple II has an 8-bit 6502 CPU running at 1 MHz, so it can literally execute thousands of instructions per second. In other words, it’s about a million times slower that the computer you are using right now. So I wasn’t about to write a networking stack or Twitter client on the Apple II itself. Just like the <a href="http://www.atomsandelectrons.com/blog/post/TweetWall.aspx">TweetWall</a> the communication with Twitter would happen on a PC and the Apple is just used for display.</p>
<p>The Apple II has 2 graphics modes. Low-resolution mode, or LORES as the cool kids call it, supports 40&#215;40 pixels with 16 fixed colors. The colors are bizarre – lots of blues but kind of short on reds. Two of the colors are the exact same shade of gray, but are shifted a half pixel from each other. The other mode is high-resolution mode (HIRES) which gives 280&#215;192 pixels and 6 colors. But you can’t just put any color anywhere you want. You kinda lose half your horizontal resolution once you start using color and even then you can’t just put a green pixel next to an orange one. It’s unbelievably complicated (cue Amiga fans to retort with tales of Hold And Modify mode). This same set of constraints is what makes the text on the Apple II have those purple and green fringes around the edges. </p>
<p>I wrote software on the PC to turn Twitter avatars into both LORES and HIRES graphic representations. The result is a cool 8-bit vibe, and in many cases the graphics are distant abstractions that bear little resemblance to the original image. Here are a few examples:</p>
<p><a href="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_2208.jpg"><img class="colorbox-12"  style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IMG_2208" border="0" alt="IMG_2208" src="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_2208_thumb.jpg" width="195" height="154" /></a>&#160; <a href="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_2245.jpg"><img class="colorbox-12"  style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IMG_2245" border="0" alt="IMG_2245" src="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_2245_thumb.jpg" width="207" height="154" /></a> </p>
<p><a href="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_2215.jpg"><img class="colorbox-12"  style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IMG_2215" border="0" alt="IMG_2215" src="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_2215_thumb.jpg" width="205" height="154" /></a> <a href="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_2241.jpg"><img class="colorbox-12"  style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IMG_2241" border="0" alt="IMG_2241" src="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_2241_thumb.jpg" width="193" height="154" /></a> </p>
<p><a href="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_2227.jpg"><img class="colorbox-12"  style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IMG_2227" border="0" alt="IMG_2227" src="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_2227_thumb.jpg" width="197" height="154" /></a> <a href="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_2217.jpg"><img class="colorbox-12"  style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IMG_2217" border="0" alt="IMG_2217" src="http://www.atomsandelectrons.com/blog/wp-content/images/IMG_2217_thumb.jpg" width="197" height="154" /></a> </p>
<p>The PC software does the conversion of images into the exact native memory-mapped graphics format needed for the Apple II. Then it uses the bit-bang joystick protocol to pump the graphics buffers over directly to the screen. There is some additional software on the Apple II that can scroll the bottom text or the LORES graphics for transition effects.</p>
<h4>Fragile</h4>
<p>Once I got it working it was nice but I didn’t have a good way to save it. If I turned off the Apple //e I would have to re-enter the bootloader by hand and then re-download the software. I tried using the tape-recorder save/load interface but it wasn’t reliable.</p>
<p>I managed to win an auction on eBay for some blank 5.25” floppies and was able to download an image of the DOS 3.3 system disk for the Apple II. I used my bootloader to load this disk into memory the first time and once I had that going I was able to use it to initialize one of my blank eBay floppies and then I was golden. The video below shows the end result – a bootable Twitter floppy that shows old-school tweets. I recommend playing Rush while watching this.</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:ba477616-37c0-4636-98d5-2b01fc69f9d6" class="wlWriterSmartContent">
<div><embed height="355" type="application/x-shockwave-flash" width="425" src="http://www.youtube.com/v/j622EyPX6lM&amp;hl=en" /></div>
</p></div>
<div class="plus-one-wrap"><g:plusone href="http://atomsandelectrons.com/blog/2010/04/apple-t/"></g:plusone></div>
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: right"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://atomsandelectrons.com/blog/2010/04/apple-t/" data-count="horizontal" data-via="yergacheffe">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

]]></content:encoded>
			<wfw:commentRss>http://atomsandelectrons.com/blog/2010/04/apple-t/feed/</wfw:commentRss>
		<slash:comments>41</slash:comments>
		</item>
		<item>
		<title>Pushing Pixels</title>
		<link>http://atomsandelectrons.com/blog/2010/04/pushing-pixels/</link>
		<comments>http://atomsandelectrons.com/blog/2010/04/pushing-pixels/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 08:29:26 +0000</pubDate>
		<dc:creator>yergacheffe</dc:creator>
				<category><![CDATA[electrons]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[led]]></category>

		<guid isPermaLink="false">/blog/post/Pushing-Pixels.aspx</guid>
		<description><![CDATA[Tweet I’ve gotten quite a few questions regarding how to hook up and drive the Sure Electronics LED matrices I use in some of my projects, so here’s a quick brain dump on what you need to do. First off you’ll need to purchase some of the LED matrices. Sure Electronics has a storefront on [...]]]></description>
			<content:encoded><![CDATA[
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: right"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://atomsandelectrons.com/blog/2010/04/pushing-pixels/" data-count="horizontal" data-via="yergacheffe">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

<div class="plus-one-wrap"><g:plusone href="http://atomsandelectrons.com/blog/2010/04/pushing-pixels/"></g:plusone></div><p><a href="http://www.atomsandelectrons.com/blog/wp-content/images/sure-2416.jpg"><img class="colorbox-13"  style="border-right-width: 0px; margin: 0px 10px 5px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="sure-2416" border="0" alt="sure-2416" align="left" src="http://www.atomsandelectrons.com/blog/wp-content/images/sure-2416_thumb.jpg" width="200" height="178" /></a> </p>
<p>I’ve gotten quite a few questions regarding how to hook up and drive the Sure Electronics LED matrices I use in some of my projects, so here’s a quick brain dump on what you need to do.</p>
<p>First off you’ll need to purchase some of the LED matrices. Sure Electronics has a <a href="http://stores.ebay.com/Sure-Electronics">storefront on eBay</a>. There are 2 models of LED panel I’ve used: a <a href="http://stores.ebay.com/Sure-Electronics__W0QQ_sidZ208644246?_nkw=2416">24&#215;16</a> panel and a <a href="http://stores.ebay.com/Sure-Electronics__W0QQ_sidZ208644246?_nkw=0832">32&#215;8</a> panel. Prices are usually around $10-$12 each and depending on the day you check are available in various colors.</p>
<p>There are a variety of libraries that will drive these displays, so generally speaking you won’t need to know all the details on the interface protocol. But it’s useful to have the reference material available should you need it.</p>
<p>The Sure Electronics datasheet covers the cable pin connections and a high level overview of how to drive the display: <a title="http://www.sure-electronics.net/download/DE-DP017_Ver1.0_EN.pdf" href="http://www.sure-electronics.net/download/DE-DP017_Ver1.0_EN.pdf">http://www.sure-electronics.net/download/DE-DP017_Ver1.0_EN.pdf</a></p>
<p>Both of these displays use a Holtek HT1632 LED driver. The <a href="http://www.holtek.com/pdf/consumer/1632v120.pdf">HT1632 datasheet</a> goes into a bit more detail on how the chip works and the various modes, initialization procedure, etc.</p>
<h4>Wiring Them Up</h4>
<p>The displays come with a pair of ribbon cables which allows you to daisy-chain the displays together. So you only need the first display wired up to your microcontroller and the rest of them will chain off the first. Since they are all wired up to the same signals you need a way to identify the displays to address them from your code. This is handled with jumper switches on the front.</p>
<p><a href="http://www.atomsandelectrons.com/blog/wp-content/images/jumper.jpg"><img class="colorbox-13"  style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="jumper" border="0" alt="jumper" src="http://www.atomsandelectrons.com/blog/wp-content/images/jumper_thumb.jpg" width="240" height="177" /></a>The jumpers are labeled CS1 through CS4. Each display should have one and only one of these switches flipped to the On position to set its ID. If two displays have the same ID, they will act as clones of each other and the same image will appear on both.</p>
<p><a href="http://www.atomsandelectrons.com/blog/wp-content/images/cable.jpg"><img class="colorbox-13"  style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="cable" border="0" alt="cable" src="http://www.atomsandelectrons.com/blog/wp-content/images/cable_thumb.jpg" width="396" height="175" /></a> </p>
<p>The way I wire them up to my Arduino boards is as follows:</p>
<table border="0" cellspacing="0" cellpadding="2" width="534">
<tbody>
<tr>
<td valign="top" width="100"><strong>Signal</strong></td>
<td valign="top" width="100"><strong>LED Matrix Pin</strong></td>
<td valign="top" width="83"><strong>Arduino Pin</strong></td>
<td valign="top" width="249"><strong>Notes</strong></td>
</tr>
<tr>
<td valign="top" width="100">+5V</td>
<td valign="top" width="100">16</td>
<td valign="top" width="83">5V</td>
<td valign="top" width="249">Data sheet indicates this can pull 350mA of current max so make sure your regulator is up to the task.</td>
</tr>
<tr>
<td valign="top" width="100">GND</td>
<td valign="top" width="100">15</td>
<td valign="top" width="83">GND</td>
<td valign="top" width="249">&#160;</td>
</tr>
<tr>
<td valign="top" width="100">WR</td>
<td valign="top" width="100">5</td>
<td valign="top" width="83">Any Digital I/O</td>
<td valign="top" width="249">Write clock</td>
</tr>
<tr>
<td valign="top" width="100">Data</td>
<td valign="top" width="100">7</td>
<td valign="top" width="83">Any Digital I/O</td>
<td valign="top" width="249">Data to write</td>
</tr>
<tr>
<td valign="top" width="100">CS1..4</td>
<td valign="top" width="100">1..4</td>
<td valign="top" width="83">Any Digital I/O</td>
<td valign="top" width="249">You’ll need to connect a CS pin to a discrete digital I/O pin for each display you are driving</td>
</tr>
</tbody>
</table>
<h4>Software &amp; Support</h4>
<p>You’re spoiled for choice here – there are numerous libraries floating around.</p>
<p>There’s an <a href="http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1225239439/0">epic thread</a> on the Arduino forums covering how to interface to these displays. Among the 17 pages of posts are a variety of demos and sample libraries to use.</p>
<p>Adam Lloyd has a library that he maintains at <a href="http://github.com/devdsp/HT1632-AVR">http://github.com/devdsp/HT1632-AVR</a> that supports reading from the display’s backbuffer as well as writing to it. If you do this you’ll need to wire up pin 6 on the matrix as well. </p>
<p>My library is available as well: <a title="SureLEDMatrix.zip" href="http://www.atomsandelectrons.com/make/arduino/SureLEDMatrix.zip">SureLEDMatrix.zip</a> and here’s a quick example on how to use it:</p>
<p><font size="1" face="Courier">#include &lt;SureLEDMatrix.h&gt; </font></p>
<p><font size="1" face="Courier">// &#8212;&#8211; PIN Constants &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-     <br />int PIN_CHIPSELECT_1 = 5;&#160; // CS for LED matrix 1      <br />int PIN_CHIPSELECT_2 = 6;&#160; // CS for LED matrix 2      <br />int PIN_WRITE = 7;      <br />int PIN_DATA = 8; </font></p>
<p><font size="1" face="Courier">// Instance of LED matrices     <br />SureLEDMatrix matrix1(PIN_CHIPSELECT_1, PIN_WRITE, PIN_DATA, kMatrixType_24x16);      <br />SureLEDMatrix matrix2(PIN_CHIPSELECT_2, PIN_WRITE, PIN_DATA, kMatrixType_24x16); </font></p>
<p><font size="1" face="Courier">int scroll = 0;     <br />int maxscroll = 200; </font></p>
<p><font size="1" face="Courier">void setup()     <br />{&#160;&#160; <br />&#160; // Initialize I/O pins      <br />&#160; pinMode(PIN_CHIPSELECT_1, OUTPUT);      <br />&#160; pinMode(PIN_CHIPSELECT_2, OUTPUT);      <br />&#160; pinMode(PIN_WRITE, OUTPUT);      <br />&#160; pinMode(PIN_DATA, OUTPUT); </font></p>
<p><font size="1" face="Courier">&#160; // Initialize the LED matrices     <br />&#160; matrix1.Initialize();&#160; <br />&#160; matrix1.SetBrightness(2);      <br />&#160; matrix2.Initialize();&#160; <br />&#160; matrix2.SetBrightness(2);&#160; <br />} </font></p>
<p><font size="1" face="Courier">void loop()     <br />{&#160;&#160;&#160; <br />&#160;&#160;&#160; // Draw the text on the right screen      <br />&#160;&#160;&#160; matrix1.DrawText(&quot;Hello Cleveland!&quot;, 7, scroll, false);      <br />&#160;&#160;&#160; // Draw the text on the left screen (24 pixels to the left)      <br />&#160;&#160;&#160; matrix2.DrawText(&quot;Hello Cleveland!&quot;, 7, scroll-24, false);      <br />&#160;&#160;&#160; // Scroll 1 pixel to the left      <br />&#160;&#160;&#160; scroll = scroll-1;      <br />&#160;&#160;&#160; if (scroll &lt; -maxscroll)      <br />&#160;&#160;&#160; {      <br />&#160;&#160;&#160;&#160;&#160; scroll = 100;      <br />&#160;&#160;&#160; }      <br />}</font></p>
<div class="plus-one-wrap"><g:plusone href="http://atomsandelectrons.com/blog/2010/04/pushing-pixels/"></g:plusone></div>
<!-- This is the start of the WP Twitter Button code -->
<div id="rk_wp_twitter_button" style="margin: 0px 0px 0px 0px; float: right"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://atomsandelectrons.com/blog/2010/04/pushing-pixels/" data-count="horizontal" data-via="yergacheffe">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>
<!-- This is the end of the WP Twitter Button code -->

]]></content:encoded>
			<wfw:commentRss>http://atomsandelectrons.com/blog/2010/04/pushing-pixels/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
	</channel>
</rss>

