<?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>Crash Space &#187; How To</title>
	<atom:link href="http://blog.crashspace.org/category/how-to/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.crashspace.org</link>
	<description>A Los Angeles hackerspace</description>
	<lastBuildDate>Sun, 15 Jan 2012 07:38:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Double Rainbow All The Way &#8212; An HTML5/canvas tutorial by Jim Bumgardner</title>
		<link>http://blog.crashspace.org/2011/10/double-rainbow-all-the-way-an-html5canvas-tutorial-by-jim-bumgardner/</link>
		<comments>http://blog.crashspace.org/2011/10/double-rainbow-all-the-way-an-html5canvas-tutorial-by-jim-bumgardner/#comments</comments>
		<pubDate>Fri, 21 Oct 2011 04:42:56 +0000</pubDate>
		<dc:creator>at0mbxmb</dc:creator>
				<category><![CDATA[How To]]></category>

		<guid isPermaLink="false">http://blog.crashspace.org/?p=2137</guid>
		<description><![CDATA[In this tutorial, we&#8217;re going to make an animated double rainbow in HTML5 / Canvas. I&#8217;m doing this to teach you about the HSL color space, and to show you a more sophisticated way of using it. I&#8217;ll soon have another tutorial which recreates the same examples in Processing.js. Some aspects of this are easier [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://krazydad.com/tutorials/rainbow/rainbow_150.jpg" alt="What does it mean!?" /><br />
In this tutorial, we&#8217;re going to make an animated double rainbow in HTML5 / Canvas. I&#8217;m doing this to teach you about the HSL color space, and to show you a more sophisticated way of using it.</p>
<p>I&#8217;ll soon have another tutorial which recreates the same examples in Processing.js. Some aspects of this are easier in Processing, and some are easier in HTML5/Canvas &#8211; the difficulty is roughly the same for both, I&#8217;ve found.</p>
<p>To draw a rainbow, we need a graphics framework to work with. In this tutorial, I&#8217;m going to draw everything using the Canvas APIs which are part of HTML5. This means that if you are using an older web browser, like IE 8 or earlier, you&#8217;re not going to see anything! </p>
<p><b><a href="http://krazydad.com/tutorials/rainbow/" target="newwww">Keep Reading this Tutorial at KrazyDad.com&#8230;</a></b></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.crashspace.org/2011/10/double-rainbow-all-the-way-an-html5canvas-tutorial-by-jim-bumgardner/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Boxes! (How to design and build a box in a half hour)</title>
		<link>http://blog.crashspace.org/2011/08/boxes-how-to-design-and-build-a-box-in-a-half-hour/</link>
		<comments>http://blog.crashspace.org/2011/08/boxes-how-to-design-and-build-a-box-in-a-half-hour/#comments</comments>
		<pubDate>Sun, 14 Aug 2011 06:06:35 +0000</pubDate>
		<dc:creator>theron</dc:creator>
				<category><![CDATA[How To]]></category>

		<guid isPermaLink="false">http://blog.crashspace.org/?p=1963</guid>
		<description><![CDATA[The rather makeshift laser cutter payment box that had been taped to the wall served us well, but it gave up the ghost today. Which gave me the perfect excuse to use the Rahulbotics BoxMaker to make a new one. BoxMaker is a simple little app that you tell how big to make a box [...]]]></description>
			<content:encoded><![CDATA[<p>The rather makeshift laser cutter payment box that had been taped to the wall served us well, but it gave up the ghost today. Which gave me the perfect excuse to use the <a href="http://www.rahulbotics.com/personal-projects/boxmaker/">Rahulbotics BoxMaker</a> to make a new one.</p>
<p>BoxMaker is a simple little app that you tell how big to make a box and it generates a PDF that you can load into the laser cutter and make the box. It lets you specify the size, thickness of material, and even the laser kerf. It uses finger joints to hold the sides together without fasteners. If you set the kerf right, the box won&#8217;t even need glue. BoxMaker is free (postcard-ware) and runs on Windows, Mac, and Linux. But there&#8217;s also a <a href="http://boxmaker.rahulbotics.com/">online version</a> so you don&#8217;t even have to install anything.</p>
<p>I had the box designed, cut, and hung on the wall within a half hour, thanks to BoxMaker.</p>
<p><a href="http://www.flickr.com/photos/crashspacela/6040022889/" title="IMG_7108.JPG by CRASHSpace, on Flickr"><img src="http://farm7.static.flickr.com/6147/6040022889_0cc3c9dab5.jpg" width="375" height="500" alt="IMG_7108.JPG"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.crashspace.org/2011/08/boxes-how-to-design-and-build-a-box-in-a-half-hour/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Cinefamily Valentine&#8217;s Day LED Heart</title>
		<link>http://blog.crashspace.org/2011/02/the-cinefamily-valentines-day-led-heart/</link>
		<comments>http://blog.crashspace.org/2011/02/the-cinefamily-valentines-day-led-heart/#comments</comments>
		<pubDate>Wed, 16 Feb 2011 02:32:32 +0000</pubDate>
		<dc:creator>carlyn</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[How To]]></category>

		<guid isPermaLink="false">http://blog.crashspace.org/?p=1609</guid>
		<description><![CDATA[This past weekend we participated in the Cinefamily Pajama Party screening of Electric Dreams. There was dancing, smashed-monitor-into-valentine&#8217;s-day-card making, photo booth action, etc. Rusty Lemorande even put in an appearance, answering questions about some of the behind the scenes action of how things went down (note to self, knowing Barbra Streisand, not a bad idea) [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://farm6.static.flickr.com/5296/5440792649_2c4aceb7b9.jpg" alt="Cinefamily Electric Dreams pajama party" width="375" height="500" /></p>
<p>This past weekend we participated in the <a href="http://www.cinefamily.org/index.html">Cinefamily </a>Pajama Party screening of Electric Dreams. There was dancing, smashed-monitor-into-valentine&#8217;s-day-card making, photo booth action, etc. Rusty Lemorande even put in an appearance, answering questions about some of the behind the scenes action of how things went down (note to self, knowing Barbra Streisand, not a bad idea)</p>
<p>One of the things we brought to the table(s) were these little LED Hearts Lights. We&#8217;ve put them on <a href="http://www.thingiverse.com/thing:6447">Thingiverse</a> and on <a href="http://www.flickr.com/photos/crashspacela/sets/72157625937579403/">Flickr</a>. This is our first thing on Thingaverse officially. Don&#8217;t worry. We&#8217;ll make more.</p>
<p><object width="500" height="600"><param name="flashvars" value="offsite=true&#038;lang=en-us&#038;page_show_url=%2Fphotos%2Fcrashspacela%2Fsets%2F72157625937579403%2Fshow%2F&#038;page_show_back_url=%2Fphotos%2Fcrashspacela%2Fsets%2F72157625937579403%2F&#038;set_id=72157625937579403&#038;jump_to="></param><param name="movie" value="http://www.flickr.com/apps/slideshow/show.swf?v=71649"></param><param name="allowFullScreen" value="true"></param><embed type="application/x-shockwave-flash" src="http://www.flickr.com/apps/slideshow/show.swf?v=71649" allowFullScreen="true" flashvars="offsite=true&#038;lang=en-us&#038;page_show_url=%2Fphotos%2Fcrashspacela%2Fsets%2F72157625937579403%2Fshow%2F&#038;page_show_back_url=%2Fphotos%2Fcrashspacela%2Fsets%2F72157625937579403%2F&#038;set_id=72157625937579403&#038;jump_to=" width="500" height="600"></embed></object></p>
<p>If you haven&#8217;t heard of Electric Dreams, here is the Culture Club video of one of the songs they have on the Soundtrack.</p>
<p><object width="500" height="400"><param name="movie" value="http://www.youtube.com/e/t5Tm0iFKhjo"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/e/t5Tm0iFKhjo" type="application/x-shockwave-flash" width="500" height="400" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>[Update 2011-02-15] We&#8217;ve added our extras to our store for for anyone who would like an original of their own: <a href="http://store.crashspacela.com/index.php?main_page=product_info&#038;cPath=1&#038;products_id=24">CRASHSpace LED Heart</a> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.crashspace.org/2011/02/the-cinefamily-valentines-day-led-heart/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Journey into TouchDesigner:</title>
		<link>http://blog.crashspace.org/2011/01/touch-designer-101/</link>
		<comments>http://blog.crashspace.org/2011/01/touch-designer-101/#comments</comments>
		<pubDate>Thu, 13 Jan 2011 23:40:29 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Local Resources]]></category>
		<category><![CDATA[News & Updates]]></category>
		<category><![CDATA[Services]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[touch]]></category>
		<category><![CDATA[TouchDesigner]]></category>

		<guid isPermaLink="false">http://blog.crashspace.org/?p=1436</guid>
		<description><![CDATA[A Realtime Multi-Media System What will we do? You will learn the basics, workflow and methods of this programming environment and paradigm through a few simple examples. From there you’ll start to see the innumerable possibilities and get a glimpse under the covers. We will really start to see how it is changing our approach [...]]]></description>
			<content:encoded><![CDATA[<h2>A Realtime Multi-Media System</h2>
<p>
<a href="http://www.derivative.ca/Blog/default.asp#Oct2210"><img alt="" src="http://www.derivative.ca/Blog/Images/Guggenheim/Guggenheim1.jpg" title="TouchDesigner at the Guggenheim" class="alignnone"  height="150" /></a><a href="http://www.derivative.ca/Blog/default.asp#May1710"><img src="http://www.derivative.ca/Blog/Images/VSquaredLabs/images/DSC_0185.jpg"  height="150" /></a><a href="http://www.flickr.com/photos/ark_o_pete/sets/72157625664140261/" title="TouchDesigner Interface 002 by ark_o_pete, on Flickr"><img src="http://dl.dropbox.com/u/382210/Screen%20shot%202011-01-13%20at%202.33.16%20PM.png" height="150" alt="TouchDesigner Interface 002" /></a>
</p>
<h3>What will we do?</h3>
<p>
You will learn the basics, workflow and methods of this programming environment and paradigm through a few simple examples.<br />
From there you’ll start to see the innumerable possibilities and get a glimpse under the covers. We will really start to see how it is changing our approach to large installation based projects, performance based art pieces and other realtime digital media. Getting a feel for this environment will no doubt inspire more questions and ideas which will dictate where we more deeply explore. Expect a great collaborative learning environment as dynamic as TouchDesigner itself.
</p>
<p>
<a href="http://www.flickr.com/photos/bm05/5351103689/" title="kinect components in TouchDesigner by spacehippymatt, on Flickr"><img src="http://farm6.static.flickr.com/5123/5351103689_60b2142ef9.jpg" height="150" alt="kinect components in TouchDesigner" /></a><a href="http://www.flickr.com/photos/misfitsherry/3596530925/"><img src="http://farm3.static.flickr.com/2458/3596530925_04426fbf0c.jpg"  height="150" /></a><a href="http://www.derivative.ca/Blog/"><img src="http://www.derivative.ca/blog/images/rockheim.jpg"  height="150" /></a>
</p>
<p>
Have a look at the <a href="http://www.derivative.ca/Forum/index.php">forums</a> and you will see that the community is small, but steadily growing. You can find answers to many initial questions there. One can also find a great repository of shared files and components offered by users and developers in an effort to connect TouchDesigner with a slew of amazing technologies being explored in digital creativity.
</p>
<h3>Explore the following:</h3>
<p><ul>
- implementing a <a href="http://vimeo.com/17232563">Kinect</a> to create an interactive game or control device<br />
- <a href="http://blog.crashspace.org/2011/01/a-wing-xbee-controller/">getting an arduino input working for an accelerometer</a><br />
- light sensor feedback fun???<br />
- a user interface to control a robot?<br />
- a musical instrument that creates tones based on camera input???<br />
- an interactive graphical environment or data visualization
</ul>
</p>
<p></br></p>
<p>
<a href="http://www.flickr.com/photos/ark_o_pete/5352569975/" title="TouchDesigner Interface 004 by ark_o_pete, on Flickr"><img src="http://farm6.static.flickr.com/5043/5352569975_7b80cb2812_m.jpg" width="240" height="153" alt="TouchDesigner Interface 004" /></a><a href="http://www.flickr.com/photos/ark_o_pete/5352580767/in/set-72157625664140261/" title="TouchDesigner Interface 005 by ark_o_pete, on Flickr"><img src="http://farm6.static.flickr.com/5287/5352580767_e1d2c3dcbb_m.jpg" width="240" height="153" alt="TouchDesigner Interface 005" /></a><a href="http://www.flickr.com/photos/ark_o_pete/5353195334/" title="TouchDesigner Interface 006 by ark_o_pete, on Flickr"><img src="http://farm6.static.flickr.com/5245/5353195334_bc805b8eef_m.jpg" width="240" height="153" alt="TouchDesigner Interface 006" /></a>
</p>
<h3>So what is it really?</h3>
<p>The interface is similar to <a href="http://blog.crashspace.org/2010/12/intro-to-maxmsp-programming-for-musicians/">Max/MSP</a> or <a href="http://puredata.info/">Pure Data</a>, in that it is a visual, node-based programming environment. The objects at your disposal range from simple mathematical operations to complex OpenGL texture generators. There are several ways to customize and hand-code your own methods, as well as extend and connect to external generators, controllers, sensors, cameras, etc. You could look at it like a custom rigged combination of openFrameworks, processing and <a href="http://blog.crashspace.org/2010/12/intro-to-maxmsp-programming-for-musicians/">Max/MSP</a> with a focus on creating real-time OpenGL based graphics.
</p>
<h3>Who is our guide? </h3>
<p>
The class will be led by <a href="http://www.petersistrom.com/">Peter Sistrom</a>. Peter is an architectural designer by trade, who&#8217;s interests have been veering towards generative art, realtime graphics and media environments for the last 3 years. He has worked in designing, installing and performing interactive and media based projects. These days, Peter devotes his free time to creating abstract visual animations and actively developing realtime media for live performance with TouchDesigner.
</p>
<h3>Of TouchDesigner Peter says:</h3>
<p>
<blockquote>In the last year I have been using TouchDesigner for my <a href="http://vimeo.com/groups/touchdesigner/videos/11080106">personal</a> <a href="http://vimeo.com/groups/touchdesigner/videos/18654246">art</a> making and some production work. In this time, I have grown more and more convinced of its place at the top of the new wave of multi-media art and production tools.  This year has also seen the program used in several rather high profile productions, ranging from <a href="http://www.derivative.ca//Blog/default.asp#Oct2210">YouTube’s Guggenheim awards ceremony</a>  to the <a href="http://www.derivative.ca/Plastikman/  ">Plastikman</a> (Richie Hawtin) world tour video system.  Aside from full blown production, TouchDesigner has also been used in interactive installations and <a href="http://www.derivative.ca/Events/2010/NEDM">collaborative art making at MIT</a>.  TouchDesigner is also quite a pleasure when used for smaller personal projects, whether it be a music visualization, as the backbone for some fun I/O hacking, or just about anything else you can think of!
</p></blockquote>
<h4>
<a href="https://www.google.com/calendar/event?eid=dGhiZzVlNTQya2JrZzRkajJ1YTBsNTBoNXMgY3Jhc2hzcGFjZWxhQG0&#038;ctz=America/Los_Angeles">Come to Crash Space on February 23rd at 8p (cal link)<br />
We&#8217;re asking non-members for a $10 donation to pay the instructor and keep the space open.</a><br />
</h4>
<h3>Want to start now?</h3>
<p><ul>
 &#8211; Derivative’s TouchDesigner has an extensive <a href="http://www.touch077.com/Products/">feature list</a>.<br />
 &#8211; Other Derivative <a href="http://www.touch077.com/Applications/">applications</a><br />
 &#8211; Derivative has produced some great <a href="http://vimeo.com/groups/insidetouchdesigner/videos/10056323">video</a> <a href="http://vimeo.com/groups/insidetouchdesigner/videos/10106354">tutorials</a>.<br />
 &#8211; Check the system requirements and <a href="http://www.touch077.com/Downloads/">download</a> the free edition
</ul>
</p>
<p></br></p>
<p>[Updated 2011-11-13] fixed formatting and product name to &#8220;TouchDesigner&#8221;</p>
<p>[Updated 2011-11-21] updated link for Arduino-TouchDesigner interfacing</p>
<p>[Updated 2011-02-15] RSVP, invite your friends, or just see who&#8217;ll be there with the facebook: <a href="http://www.facebook.com/event.php?eid=110587359019435">http://www.facebook.com/event.php?eid=110587359019435</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.crashspace.org/2011/01/touch-designer-101/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>LED Throwie Laser Glasses</title>
		<link>http://blog.crashspace.org/2011/01/laser-glasses/</link>
		<comments>http://blog.crashspace.org/2011/01/laser-glasses/#comments</comments>
		<pubDate>Tue, 04 Jan 2011 02:48:27 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[News & Updates]]></category>

		<guid isPermaLink="false">http://blog.crashspace.org/?p=1329</guid>
		<description><![CDATA[This project was an adventure to say the least. The ideation was much longer than typically allow. Inspiration came from: The Eye who gifted many laser creation at Burning Man Bernard whom I met at RoboExoica with his LayerBot Thingiverse gave me the chutzpah to think I could complete something cool on Xmas afternoon. Truth [...]]]></description>
			<content:encoded><![CDATA[<p><a title="NYE UV LED laser glasses (final version) by spacehippymatt, on Flickr" href="http://www.flickr.com/photos/bm05/5321850329/"><img title="NYE UV LED laser glasses (final version)" src="http://farm6.static.flickr.com/5164/5321850329_fbeabed993_z.jpg" alt="NYE UV LED laser glasses (final version)" width="580"  /></a></p>
<p>This project was an adventure to say the least. The ideation was much longer than typically allow. Inspiration came from:</p>
<ul>
<li><a href="http://www.flyvision.org/the_eye/03/">The Eye</a> who gifted many laser creation at <a href="http://tickets.burningman.com/">Burning Man</a></li>
<li><a href="http://metalab.at/wiki/Benutzer:Bkubicek">Bernard</a> whom I met at <a href="http://www.roboexotica.org/">RoboExoica</a> with his <a href="http://www.youtube.com/watch?v=1VS5coL1uU8">LayerBot</a></li>
<li><a href="http://www.thingiverse.com/thing:5405">Thingiverse</a> gave me the chutzpah to think I could complete something cool on Xmas afternoon.</li>
</ul>
<p><a title="IMG_1018.JPG by CRASHSpace, on Flickr" href="http://www.flickr.com/photos/crashspacela/5291268865/"><img class="alignnone" title="v1" src="http://farm6.static.flickr.com/5243/5291268865_006b06fc1a_m.jpg" alt="v1" width="150" height="130" /></a><a title="LED throwie laser glasses v3.2.2 by CRASHSpace, on Flickr" href="http://www.flickr.com/photos/crashspacela/5302430611/"><img src="http://farm6.static.flickr.com/5164/5302430611_8e1b6515e3_m.jpg" alt="LED throwie laser glasses v3.2.2" height="130" /></a><a title="LED laser glasses (thing:5405) by spacehippymatt, on Flickr" href="http://www.thingiverse.com/thing:5405"><img src="http://farm6.static.flickr.com/5167/5322197560_692bd414e9_m.jpg" alt="LED laser glasses (thing:5405)" height="130" /></a></p>
<p>Truth be told I did complete something cool, but it was only the  beginning. It was Christmas day. I was on server watch for my company  (we doubled our traffic that day). I had my folks in town. What better  place to entertain them while maintaining vigilance then at <a href="http://twitter.com/#%21/crashspaceLA">@crashspacela</a> ?  This first pair of glasses made a great demo of the power of <a href="http://www.thingiverse.com/thing:5405">open  hardware</a> and our tools at crashspace. I designed and lased out the pair  while we were skyping with far away friends.</p>
<p><a title="kitty by spacehippymatt, on Flickr" href="http://www.flickr.com/photos/bm05/5313527952/"><img src="http://farm6.static.flickr.com/5083/5313527952_a5e16e8b4d_m.jpg" alt="kitty" height="135" /></a><a title="internal reflection is sweeeeeeet by spacehippymatt, on Flickr" href="http://www.flickr.com/photos/bm05/5322378330/"><img src="http://farm6.static.flickr.com/5210/5322378330_e1a51cca37_m.jpg" alt="internal reflection is sweeeeeeet" width="240" height="135" /></a><a href="http://www.flickr.com/photos/bm05/5314546346/" title="kelly by spacehippymatt, on Flickr"><img src="http://farm6.static.flickr.com/5286/5314546346_faaa3b7496_m.jpg"  height="135" alt="kelly" /></a></p>
<p>I already knew I&#8217;d be iterating on the design to add LEDs similarly to how Bkubicek had, but my folk were hungry and we had Xmas dinner to attend to. After I safely put my folks to bed that night I went out dancing with some friends and blacklights. Immediately start discovering other necessary improvements that were sorely needed. The wire joints broke. They didn&#8217;t stay on ones face. The florescent orange acrylic turns kinda green in a nice mercury vapor black light. Even given this initially failed first attempt people loved it.</p>
<p><a href="http://www.flickr.com/photos/bm05/5313951377/" title="robo by spacehippymatt, on Flickr"><img src="http://farm6.static.flickr.com/5047/5313951377_afc0ae3326_m.jpg"  height="135" alt="robo" /></a><a href="http://www.flickr.com/photos/bm05/5321776577/" title="a clip for a throwie switch by spacehippymatt, on Flickr"><img src="http://farm6.static.flickr.com/5083/5321776577_d03bb311d4_m.jpg" width="240" height="135" alt="a clip for a throwie switch" /></a><a href="http://www.flickr.com/photos/bm05/5318004892/" title="me_wShariAndLaserGlasses by spacehippymatt, on Flickr"><img src="http://farm6.static.flickr.com/5166/5318004892_59e3f85a36_m.jpg" height="135" alt="me_wShariAndLaserGlasses" /></a></p>
<p>On sunday, I was back at the space designing the LED holding portion and a new joint. The joint proved very weak, so I opted for thicker acrylic.  The local plastic shop was again open on Monday, so I grabbed some 1/4 inch florescent red. At this point I realized I lacked any UV LEDs and started begging everyone I knew to scrounge some up. I started taking stock in all the other parts I&#8217;d need to complete a single pair to figure how many I could make. At this point we had plenty of flashing and orange LEDs on hand, so I knew in the worst case it wouldn&#8217;t be an issue. My limiting part turned out to be the CR2032 batteries of which each pair requires two. I could grab some at radio shack or whereever, but the cost online is about 90% less so didn&#8217;t feel like rewarding the locals for their gouging. Luckily I happen to have 16 of these so 8 pairs were possible. Definitely enough for a sizable NYE crew.</p>
<p>Tuesday I was back in the lab design the LED holder with the 1/4 inch acrylic, tuning the battery placement, adding an option gusset, and adding a hole for a strap. This makes em a little more like goggles. I came out with the lased parts for single pair pretty close to final. </p>
<p>Wednesday I was working on sourcing LEDs and straps and figuring how to best tie a strap conveniently.On a trip to the $99 cent store where there was rumored to be some sweet day-glo glasses straps. The straps didn&#8217;t work at all, but in my searching I found these little plastic clips. I&#8217;m clueless as to what for they&#8217;re originally intended. They make a nice battery clip and switch. Bonus!  Again I brought out a pair to show and pass around. Again they broke. I decided then to thicken the arm piece to completely enclose the battery. </p>
<p>Thursday, I lased parts for all 8 pairs and on the way out of the space I found someone had left me UV LEDs. I love my hackspace!  I had to help with the decorations for a NYE event, so ran off to that. I brought along enough parts to complete a single pair and it took a lot longer to assemble than I&#8217;d hoped. I again found an opportunity to gift a pair and road test. Success! no breakage. Given that it took a while to assembly I was up that night tying the knots, force fitting LEDs, and taping batteries in place. Good times!</p>
<p><object type="application/x-shockwave-flash" width="400" height="300" data="http://www.flickr.com/apps/video/stewart.swf?v=71377" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"><param name="flashvars" value="intl_lang=en-us&#038;photo_secret=38e78dee6d&#038;photo_id=5302544453"></param><param name="movie" value="http://www.flickr.com/apps/video/stewart.swf?v=71377"></param><param name="bgcolor" value="#000000"></param><param name="allowFullScreen" value="true"></param><embed type="application/x-shockwave-flash" src="http://www.flickr.com/apps/video/stewart.swf?v=71377" bgcolor="#000000" allowfullscreen="true" flashvars="intl_lang=en-us&#038;photo_secret=38e78dee6d&#038;photo_id=5302544453" height="300" width="400"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.crashspace.org/2011/01/laser-glasses/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>RoboHeart</title>
		<link>http://blog.crashspace.org/2011/01/roboheart/</link>
		<comments>http://blog.crashspace.org/2011/01/roboheart/#comments</comments>
		<pubDate>Mon, 03 Jan 2011 10:01:59 +0000</pubDate>
		<dc:creator>theron</dc:creator>
				<category><![CDATA[How To]]></category>

		<guid isPermaLink="false">http://blog.crashspace.org/?p=1302</guid>
		<description><![CDATA[For Christmas, I hacked my wife&#8217;s Jim Bauer robot sculpture. It had a red plastic heart that flickered when switched on. The bulb had burned out, and it would have been easy enough to replace, but why do that when I could make it better? All I would need is a BlinkM, an Arduino, and [...]]]></description>
			<content:encoded><![CDATA[<p>For Christmas, I hacked my wife&#8217;s <a href="http://www.amesgallery.com/ArtistPages/Bauer.html">Jim Bauer robot sculpture</a>.  It had a red plastic heart that flickered when switched on.  The bulb had burned out, and it would have been easy enough to replace, but why do that when I could make it better?</p>
<p>All I would need is a <a href="http://thingm.com/products/blinkm-maxm.html">BlinkM</a>, an <a href="http://arduino.cc">Arduino</a>, and a Wi-Fi router.</p>
<p><a href="http://www.flickr.com/photos/therontrowbridge/5295615127/" title="RoboHeart Green by Theron Trowbridge, on Flickr"><img src="http://farm6.static.flickr.com/5243/5295615127_5b3650df1c.jpg" width="333" height="500" alt="RoboHeart Green" /></a></p>
<p>I replaced the candelabra bulb inside the robot with a ThingM BlinkM MaxM, printed a new heart on the MakerBot, and used an Arduino to drive the whole thing.  By hooking it up to a Asus WL-520gU Wi-Fi router, I can control it over Wi-Fi.</p>
<p>The Wi-Fi part was the complicated part, but fortunately Todbot figured it out already, so I was able to rely on his <a href="http://todbot.com/blog/2010/12/16/wifi-for-arduino-with-asus-wl-520gu/">excellent blog post</a>.</p>
<p><a href="http://blog.bangsplatpresents.com/?p=849">See the full details on my blog</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.crashspace.org/2011/01/roboheart/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MakerBot DishWasher Repair</title>
		<link>http://blog.crashspace.org/2010/08/makerbot-dishwasher-repair/</link>
		<comments>http://blog.crashspace.org/2010/08/makerbot-dishwasher-repair/#comments</comments>
		<pubDate>Sun, 01 Aug 2010 23:38:30 +0000</pubDate>
		<dc:creator>Daryll</dc:creator>
				<category><![CDATA[How To]]></category>

		<guid isPermaLink="false">http://blog.crashspace.org/?p=939</guid>
		<description><![CDATA[This is a broken piece from my Frigidaire dishwasher. It connects the rotating upper spray arm to the dishwasher. You can see the wear on it by looking at the large ring at the bottom of the image. It should go all the way around, but a portion has broken off. You can also see [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.crashspacela.com/wp-content/uploads/2010/08/original1.jpg"><img class="alignleft size-medium wp-image-941" src="http://blog.crashspace.org/wp-content/uploads/2010/08/original-300x205.jpg" alt="" width="300" height="205" /></a>This is a broken piece from my Frigidaire dishwasher. It connects the rotating upper spray arm to the dishwasher. You can see the wear on it by looking at the large ring at the bottom of the image. It should go all the way around, but a portion has broken off. You can also see additional wear on the upper right of the part.</p>
<p>The piece no longer fits properly, and the spray arm fails to spin and rinse the dishes in the upper shelf.</p>
<p>Disassembling the arm was very easy. The problem was getting the replacement part from Frigidaire. We tried several times, got the wrong part once, and ended up with an utter failure. I&#8217;m sure a repairman would have been more successful, but given how simple this repair is, why should I have to pay for that? This is where the MakerBot at <a href="http://crashspace.org">CrashSpace</a> comes in to the story.</p>
<h4>click to <a href="http://blog.daryll.net/2010/08/makerbot-dishwasher-repair/">READ THE REST OF THE STORY</a> at my blog</h4>
]]></content:encoded>
			<wfw:commentRss>http://blog.crashspace.org/2010/08/makerbot-dishwasher-repair/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Take Apart Tuesday No. 8: Saw III Digital Voice Recorder &amp; LOST Homage</title>
		<link>http://blog.crashspace.org/2010/05/take-apart-tuesday-no-8/</link>
		<comments>http://blog.crashspace.org/2010/05/take-apart-tuesday-no-8/#comments</comments>
		<pubDate>Tue, 18 May 2010 08:00:12 +0000</pubDate>
		<dc:creator>carlyn</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[How To]]></category>

		<guid isPermaLink="false">http://blog.crashspace.org/?p=669</guid>
		<description><![CDATA[Yay! Another Take-Apart-Tuesday write up! I&#8217;ve been distracted by CRASH Space meta, but here&#8217;s one of the several dismantlings we&#8217;ve done since the last time I posted. I&#8217;ve written about how nice it is to be able to buy electronics supplies locally a few times.  All Electronics is one of those LA vendors. Tom brought [...]]]></description>
			<content:encoded><![CDATA[<p><a title="SAW III Digital Voice Recorder Circuit Board, all spilling out by carlynorama, on Flickr" href="http://www.flickr.com/photos/carlynorama/4607542242/"><img class="alignleft" style="margin: 5px" src="http://farm4.static.flickr.com/3329/4607542242_ff089259de_m.jpg" alt="SAW III Digital Voice Recorder Circuit Board, all spilling out" width="240" height="180" /></a>Yay! Another Take-Apart-Tuesday write up! I&#8217;ve been distracted by CRASH Space meta, but here&#8217;s one of the several dismantlings we&#8217;ve done since the last time I posted.</p>
<p>I&#8217;ve written about how nice it is to be able to buy electronics supplies locally a few times. <a href="http://www.allelectronics.com/"> All Electronics</a> is one of those LA vendors. Tom brought in one of the <a href="http://www.allelectronics.com/make-a-store/item/SAW-3/SAW-3-DIGITAL-VOICE-RECORDER/1.html">SAW III digital voice recorders</a> they sell for around 2 bucks in January, but, lets face it, it creeped me out. So what better to do than to Take it Apart!</p>
<p>Toys and random schwag are great resources for hacking projects. Frequently you can get whole working circuits for cheaper than an IC alone.  I tried to source comparable boards / chips and the next cheapest thing I found in a board was $6.95 (What looks like the <a href="http://www.aplusinc.com.tw/pro-recording.htm#">Aplus APR9301</a> at  <a href="http://bit.ly/d8Jwlu">Electronics123</a>). I found a chip alone at <a href="http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&amp;name=ISD1730PY-ND">Digikey</a> for $3.84 (<a href="http://www.nuvoton.com/hq/enu/ProductAndSales/ProductLines/ConsumerElectronicsIC/ISDVoiceIC/ISDChipCorder/Pages/default.aspx">The Nuvoton ISD1700 ChipCorder® Series</a>)</p>
<p>As <a href="http://blog.makezine.com/archive/2008/07/how_to_circuitbend_a_chea.html">Make Magazine</a> pointed out back in 2008, <a href="http://www.getlofi.com/?p=1152">GetLoFi</a> has a write up showing what resistor to replace with a potentiometer for pitch control (R4) how to add a phono jack, etc.  Briefly mentioned is hooking one of these up to an Arduino board via transistors, so that&#8217;s what I&#8217;m going to show in this article.</p>
<p><span id="more-669"></span></p>
<h2>A word (or two) on transistors</h2>
<p>Ahh transistors. Transistors are the electrical components making the information age possible. For example, they are what<a href="http://en.wikipedia.org/wiki/Moore%27s_law"> Moore&#8217;s Law</a> is all about. Computer chip manufacturers keep figuring out  ways to double the number of transistors fitting on the same surface area every 18/20 months. This means exponential leaps in memory, sensor accuracy, processor speed, etc.  In other words, it is how we get so much fun obsolete-6-months-after-purchase stuff to take apart.</p>
<p>What can transistors do that make them vital to the cause? Well,  in the beginning, there was the button. And the button had to be pushed by a person in order to make anything happen.  And that was bad because we&#8217;re a slow and distractable sort of species with more fun stuff to do than pushing buttons and flipping switches. Do you watch LOST? Do you know how they spent season two pressing a button every 108 minutes? Well, if they had had an Arduino board and a transistor they could have written a quick little program and the darn hatch never would have blown up and maybe we could have had at least another season and I wouldn&#8217;t be so sad this week&#8230; But I digress.</p>
<p>So the magic of a transistor is that you can have one circuit &#8220;press a button&#8221; in a separate circuit which may have different voltages, current flows and other properties with no human actively involved.</p>
<table align="center">
<tbody>
<tr>
<td><a title="Sad Button Presser by carlynorama, on Flickr" href="http://www.flickr.com/photos/carlynorama/4607229905/"><img src="http://farm5.static.flickr.com/4018/4607229905_103f928b82_m.jpg" alt="Sad Button Presser" width="240" height="215" /></a></td>
<td><a title="Happy Chip by carlynorama, on Flickr" href="http://www.flickr.com/photos/carlynorama/4607229957/"><img src="http://farm5.static.flickr.com/4024/4607229957_95c3bfd86b_m.jpg" alt="Happy Chip" width="240" height="215" /></a></td>
</tr>
</tbody>
</table>
<p>Transistors are made by combining semiconducting materials.  Semiconductors come in two flavors. The N type and the P type. N type semiconductors tend to have extra electrons that they are happy to give away. They get the extra electrons because the silicon used to make them has been &#8220;doped&#8221; with phosphorous or arsenic.</p>
<p>In P type semiconductors boron or gallium are added to the silicon. Those additives cause cozy little holes in the silicon lattice. These holes make great homes for the overcrowded electrons in N type semiconductors.</p>
<p>When you put a layer of N-type next to a layer of P-type and apply current in the correct direction, the electrons will move from the N Type to the P type. Many diodes are made this way.  Think of them as taking advantage of a kind of electrical <a href="http://www.boingboing.net/2009/07/20/ink-calendar-paper-t.html">capillary action</a>.  When you slap on an extra N-type layer you get an NPN transistor.  One N-layer is connected to a pin called an Emitter. Another N-layer is connected to a pin called a Collector. The P-layer is connected to the pin commonly known as the Base.</p>
<p>When you apply a current via a positive voltage to the P-type layer through the Base of an NPN transistor you&#8217;re basically flooding the porous P-type material so it is electrically-wet enough to allow electrons to pass from the Emitter N-layer to the Collector N-layer. If it sound weird for electrons to go in the Emitter and out the Collector, remember <a href="http://www.rare-earth-magnets.com/t-conventional-vs-electron-flow.aspx">the direction of electrons is the opposite of how we talk about current</a>.</p>
<p style="text-align: left">Here is an example schematic of how you might wire something up. The gray circuit controls the teal circuit.<br />
<a title="Using an NPN transistor with a microcontroller by carlynorama, on Flickr" href="http://www.flickr.com/photos/carlynorama/4607112855/"><img class="aligncenter" style="margin: 5px" src="http://farm2.static.flickr.com/1329/4607112855_a54c4cf8c8_o.png" alt="Using an NPN transistor with a microcontroller" width="394" height="323" /></a><br />
What does all this actually look like in a pretending-to-be-practical application?</p>
<h2>Back to Our Saw Doll</h2>
<h3>Step 1: Take It Apart</h3>
<p><object width="500" height="600"><param name="flashvars" value="offsite=true&#038;lang=en-us&#038;page_show_url=%2Fphotos%2Fcarlynorama%2Fsets%2F72157624061380850%2Fshow%2F&#038;page_show_back_url=%2Fphotos%2Fcarlynorama%2Fsets%2F72157624061380850%2F&#038;set_id=72157624061380850&#038;jump_to="></param><param name="movie" value="http://www.flickr.com/apps/slideshow/show.swf?v=71649"></param><param name="allowFullScreen" value="true"></param><embed type="application/x-shockwave-flash" src="http://www.flickr.com/apps/slideshow/show.swf?v=71649" allowFullScreen="true" flashvars="offsite=true&#038;lang=en-us&#038;page_show_url=%2Fphotos%2Fcarlynorama%2Fsets%2F72157624061380850%2Fshow%2F&#038;page_show_back_url=%2Fphotos%2Fcarlynorama%2Fsets%2F72157624061380850%2F&#038;set_id=72157624061380850&#038;jump_to=" width="500" height="600"></embed></object></p>
<p>The circuit board for the the digital recorder has a few things coming off of it:</p>
<p>- a Microphone<br />
- a speaker<br />
- Leads to the power supply</p>
<p>A heads up: all of the leads are very fragile. I had to replace/re-solder a few several times while I was mucking about with it.</p>
<p>Additionally there are two buttons: S1 for record and S2 for playback</p>
<h3>Step 2: Prep for Use with Arduino</h3>
<p>So there are a few things that need to be done if you want to pirate a battery powered device with switches for use with a microcontroller.</p>
<ul>
<li>Step 2a: <a href="http://www.hardwaresecrets.com/article/164">Desolder the buttons</a> and replace with wire leads (shown below already attached to breadboard)</li>
</ul>
<p style="padding-left: 30px"><a title="Inside SAW III digital voice recorder wired to Arduino by carlynorama, on Flickr" href="http://www.flickr.com/photos/carlynorama/4606930481/"><img src="http://farm5.static.flickr.com/4011/4606930481_ab7f3e8e66_m.jpg" alt="Inside SAW III digital voice recorder wired to Arduino" width="240" height="180" /></a></p>
<ul>
<li>Step 2b: Remove the power supply and either replace the existing leads with 22 AWG wire or solder the existing wires to headers.</li>
</ul>
<p style="padding-left: 30px"><a title="Power leads soldered to headers by carlynorama, on Flickr" href="http://www.flickr.com/photos/carlynorama/4606931305/"><img src="http://farm5.static.flickr.com/4015/4606931305_6f4287816d_m.jpg" alt="Power leads soldered to headers" width="180" height="240" /></a><br />
If you wanted to you could also replace R4 with a potentiometer like in the GetLoFi example, but I didn&#8217;t do that.</p>
<h3>Step 3: Wire it up</h3>
<p>Here is an illustration of the basic wiring.</p>
<p><a title="Schematic of SAW III Recorder w/ Arduino by carlynorama, on Flickr" href="http://www.flickr.com/photos/carlynorama/4569941022/"><img src="http://farm4.static.flickr.com/3511/4569941022_9aae688e39.jpg" alt="Schematic of SAW III Recorder w/ Arduino" width="500" height="261" /></a></p>
<p>The big things to notice:</p>
<p>- Power to the breadboard is from the Arduino 3.3 V supply</p>
<p>- When having one circuit communicate with another circuit, the most important thing is that they agree on where ground is. There are two wires going to the SAW III board from the breadboard to make that common ground connection. The first is part of the power supply hook up. The second is an extra wire that is wired into the ground plane at a separate position. I made it dark green in the picture. This wire could be used to create the common ground while using the original battery supply to drive the digital recording circuit if you want to go that route instead.</p>
<p>- There is a 1k current limiting resistor connecting the signal lines from the Arduino to the base of the PN2222 transistors.</p>
<h3>Step 4: Code it Up</h3>
<p>Here is the most basic code that records a sample, then plays it, records, then plays, records than plays, etc.  It is suuuuuuuper annoying. Just so you know. And here is the video to prove it!</p>
<p><object width="500" height="400"><param name="movie" value="http://www.youtube.com/v/lvtTitu86uM&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/lvtTitu86uM&#038;fs=1" type="application/x-shockwave-flash" width="500" height="400" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><a href="http://23longacre.com/sharedFiles/code/arduino/TakeApartTuesdays/0008_sawDoll/sawDoll_loopedControl">Get Code Here</a></p>
<h3>Homage to LOST project</h3>
<p>Because I&#8217;m going to miss LOST so much, I went ahead and wrote a little program that will play a recorded clip every 108 minutes.  Thrown in is  record-on-button-release functionality to reset the message meant for use with a the same wiring as above with a momentary switch added to pin 2. I suggest &#8220;DON&#8217;T DO IT JACK&#8221;</p>
<p><a href="http://23longacre.com/sharedFiles/code/arduino/TakeApartTuesdays/0008_sawDoll/_108Minutes">Get Code Here</a></p>
<p>If people have their own projects that they&#8217;ve done with these things, I&#8217;d love to see them.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.crashspace.org/2010/05/take-apart-tuesday-no-8/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Home Depot Rocket Science</title>
		<link>http://blog.crashspace.org/2010/05/home-depot-rocket-science/</link>
		<comments>http://blog.crashspace.org/2010/05/home-depot-rocket-science/#comments</comments>
		<pubDate>Fri, 07 May 2010 19:51:21 +0000</pubDate>
		<dc:creator>Sean Bonner</dc:creator>
				<category><![CDATA[How To]]></category>

		<guid isPermaLink="false">http://blog.crashspace.org/?p=667</guid>
		<description><![CDATA[In this clip, Crash Space member and founder of Acceleren, Clive shows how to make a basic rocket out of under $100 worth of parts from Home Depot. As you can see he&#8217;s doing a lot of this at the space and we&#8217;ll likely have some kind of a rocket night in the very near [...]]]></description>
			<content:encoded><![CDATA[<p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/fVhQ1fvDb04&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/fVhQ1fvDb04&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>
<p>In this clip, Crash Space member and founder of <a href="http://www.acceleren.com/">Acceleren</a>, Clive shows how to make a basic rocket out of under $100 worth of parts from Home Depot. As you can see he&#8217;s doing a lot of this at the space and we&#8217;ll likely have some kind of a rocket night in the very near future. Check out the <a href="http://www.youtube.com/user/AccelerenKinetics">Acceleren YouTube channel</a> for more vlogs and updates.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.crashspace.org/2010/05/home-depot-rocket-science/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Take Apart Tuesday No. 7: Keypad from Canon MP27D</title>
		<link>http://blog.crashspace.org/2010/03/take-apart-tuesday-no-7/</link>
		<comments>http://blog.crashspace.org/2010/03/take-apart-tuesday-no-7/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 06:48:32 +0000</pubDate>
		<dc:creator>carlyn</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[How To]]></category>

		<guid isPermaLink="false">http://blog.crashspace.org/?p=433</guid>
		<description><![CDATA[Running way behind, but I think y&#8217;all will forgive me. We&#8217;ve been doing some great Put-Together-Tuesdays since the last time I posted with a SpeedMake on March 2nd and BrushBot assembling on the 9th. If you&#8217;ll look waaaay back with me to February 23rd, though, I&#8217;ll tell you about the Canon MP27D. While there is [...]]]></description>
			<content:encoded><![CDATA[<p>Running way behind, but I think y&#8217;all will forgive me. We&#8217;ve been doing some great Put-Together-Tuesdays since the last time I posted with a SpeedMake on March 2nd and BrushBot assembling on the 9th. If you&#8217;ll look waaaay back with me to February 23rd, though, I&#8217;ll tell you about the Canon MP27D.</p>
<table>
<tbody>
<tr>
<td><a title="IMG_5831 by carlynorama, on Flickr" href="http://www.flickr.com/photos/carlynorama/4439261375/"><img src="http://farm5.static.flickr.com/4034/4439261375_ae572bb6b5_m.jpg" alt="IMG_5831" width="180" height="240" /></a></td>
<td><a title="IMG_5857 copy by carlynorama, on Flickr" href="http://www.flickr.com/photos/carlynorama/4402960742/"><img style="margin: 5px" src="http://farm3.static.flickr.com/2693/4402960742_5d9db28eee_m.jpg" alt="Image of the parts of an adding machine" width="180" height="240" /></a></td>
</tr>
</tbody>
</table>
<p>While there is some fabulous motor fun in this machine, there is also a keypad that uses something called row column scanning to do it&#8217;s business. I bring this up because it is pretty common to want more buttons in your project than your micro-controller has pins.    Also, the board they&#8217;re using is one of the easiest circuit boards to completely reverse engineer that I&#8217;ve seen in awhile because it has no parts on it.   So for keypad circuit stealing, keep reading.</p>
<p><span id="more-433"></span></p>
<h2>How did I know it was Row Column Scanning?</h2>
<p>There are 3 general sections to the circuitry in this machine. The first chunk is the main circuit board with the logic chip and display on it. The second unit is the printer. The third is the keypad.</p>
<p>The adding machine keypad holds 37 momentary buttons. Additionally there are 6 switches that have a total of 20 possible positions between them.  This means there are 57 input readings the micro-controller needs to collect at any given moment .  The gray cable wire between the keypad board and the main logic board only has 30 wires, almost half of what you&#8217;d need to transmit the key/switch information directly.  There are no mysterious black-box ICs anywhere on the keypad board to do any compression, so something else has to be happening.  The most likely candidate: Row Column Scanning</p>
<h2>What is Row Column Scanning?</h2>
<p>Row Column Scanning basically takes any group of information and gives each item in the group a unique identifier by combining a row coordinate with a column coordinate.  For those of you who remember, this is exactly how you play the game Battleships.</p>
<p>To review: lets say you have 16 items and want to represent them row-column style using a 4&#215;4 matrix</p>
<pre>     <strong>1     2     3     4</strong>
<strong>A</strong>    A1    A2    A3    A4
<strong>B</strong>    B1    B2    B3    B4
<strong>C</strong>    C1    C2    C3    C4
<strong>D</strong>    D1    D2    D3    D4</pre>
<p>In other words 1 = A1, 2 = A2, etc.</p>
<p>1       2       3       4       5      6      7       8       9     …    16<br />
A1    A2    A3    A4    B1    B2    B3    B4    C1    …    D4</p>
<p>This can seem pretty overwrought, but it means getting 16 digital inputs (or outputs) while only using up 8 pins on your micro-controller.</p>
<p>How&#8217;s that you say?</p>
<p>Instead of thinking &#8220;rows&#8221; think output pins. Instead of thinking &#8220;columns&#8221; think input pins. In other words, each row is attached to a different pin on the micro controller and each column has it&#8217;s own pin, too.</p>
<p>So if you wanted to see if button B3 was being pressed you&#8217;d light up row B and listen on the pin attached to column 3. If you get a reading, the switch at that intersection is closed.</p>
<pre>     1     2     <span style="color: #ff0000">3</span>     4
A    A1    A2    <span style="color: #ff0000">A3</span>    A4
<span style="color: #00ccff">B    B1    B2    <span style="color: #cc99ff">B3</span>    B4</span>
C    C1    C2    <span style="color: #ff0000">C3</span>    C4
D    D1    D2    <span style="color: #ff0000">D3</span>    D4</pre>
<p>The process is called Row-Column-Scanning because it&#8217;s more typical to scan through all the inputs at once rather than to check each button individually.  Programmaticly this requires one to:</p>
<ul>
<li>set the pin attached to Row A high,</li>
<li>then sweep through a check all the columns</li>
<li>set Row A back to low</li>
<li>set Row B high</li>
<li>and then check all the columns again, etc.</li>
</ul>
<h2>Identifying Rows and Columns in Real Hardware</h2>
<p>To steal this key pad, I needed to identify the rows and columns electrically.  The physical buttons are in a nice little grid pattern, but the underlying circuit doesn&#8217;t have to follow the same layout.</p>
<p>The mechanical engineering for the buttons on the adding machine follows a typical formula for keypads by using 3 three layers: a hard outer shell, a flexible layer with conductive material selectively applied and a circuit board with contacts exposed.   Pressing the button deforms the flexible layer, mushing the conductive material into the contacts on the board, thereby closing the circuit.</p>
<table border="0">
<tbody>
<tr>
<td><a title="IMG_5842 copy by carlynorama, on Flickr" href="http://www.flickr.com/photos/carlynorama/4402964132/"><img src="http://farm5.static.flickr.com/4035/4402964132_1b2b36abf0_t.jpg" alt="IMG_5842 copy" width="75" height="100" /></a></td>
<td><a title="IMG_5859 copy by carlynorama, on Flickr" href="http://www.flickr.com/photos/carlynorama/4402963170/"><img src="http://farm5.static.flickr.com/4041/4402963170_ce4fa85e91_t.jpg" alt="IMG_5859 copy" width="75" height="100" /></a></td>
<td><a title="IMG_5892 copy by carlynorama, on Flickr" href="http://www.flickr.com/photos/carlynorama/4402200823/"><img src="http://farm3.static.flickr.com/2782/4402200823_f719b895ed_t.jpg" alt="IMG_5892 copy" width="100" height="75" /></a></td>
<td><a title="IMG_5871 copy by carlynorama, on Flickr" href="http://www.flickr.com/photos/carlynorama/4402962548/"><img src="http://farm3.static.flickr.com/2766/4402962548_09d5d7823c_t.jpg" alt="IMG_5871 copy" width="100" height="75" /></a></td>
<td><a title="IMG_5875 copy by carlynorama, on Flickr" href="http://www.flickr.com/photos/carlynorama/4402198789/"><img src="http://farm5.static.flickr.com/4043/4402198789_9a5165e365_t.jpg" alt="IMG_5875 copy" width="100" height="75" /></a></td>
</tr>
</tbody>
</table>
<p>To properly map out the board I needed to test continuity between each exposed contact and the pins across the top.  What I did was place one probe of my multimeter on a contact and then run the other across the top.</p>
<p><object width="500" height="400"><param name="movie" value="http://www.youtube.com/v/-S7ja6RCkxg&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/-S7ja6RCkxg&#038;fs=1" type="application/x-shockwave-flash" width="500" height="400" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>This is the board numbered out:</p>
<p><a title="IMG_5893 by carlynorama, on Flickr" href="http://www.flickr.com/photos/carlynorama/4439537221/"><img src="http://farm5.static.flickr.com/4042/4439537221_95e50deb7b.jpg" alt="IMG_5893" width="500" height="353" /></a></p>
<p>Once I had that done all that I put my pin info in a spread sheet that looked like this:<br />
<a title="Pin Data TAT 0007 by carlynorama, on Flickr" href="http://www.flickr.com/photos/carlynorama/4440342218/"><img src="http://farm3.static.flickr.com/2743/4440342218_0f87c72032_m.jpg" alt="Pin Data TAT 0007" width="177" height="240" /></a></p>
<p>And then it looked like this:</p>
<table border="0">
<tbody>
<tr>
<td><a title="buttons_TAT0007_leftSort by carlynorama, on Flickr" href="http://www.flickr.com/photos/carlynorama/4440336190/"><img src="http://farm5.static.flickr.com/4001/4440336190_1ceabf3b60_m.jpg" alt="buttons_TAT0007_leftSort" width="240" height="185" /></a></td>
<td><a title="buttons_TAT0007_mixed2 by carlynorama, on Flickr" href="http://www.flickr.com/photos/carlynorama/4439558867/"><img src="http://farm5.static.flickr.com/4059/4439558867_23d7a48bb9_m.jpg" alt="buttons_TAT0007_mixed2" width="240" height="185" /></a></td>
</tr>
<tr>
<td><a title="buttons_TAT0007__rightsort by carlynorama, on Flickr" href="http://www.flickr.com/photos/carlynorama/4439558701/"><img src="http://farm5.static.flickr.com/4018/4439558701_104bc18381_m.jpg" alt="buttons_TAT0007__rightsort" width="240" height="185" /></a></td>
<td><a title="buttons_TAT0007_mixedSort by carlynorama, on Flickr" href="http://www.flickr.com/photos/carlynorama/4439558533/"><img src="http://farm5.static.flickr.com/4072/4439558533_58451b9570_m.jpg" alt="buttons_TAT0007_mixedSort" width="240" height="185" /></a></td>
</tr>
</tbody>
</table>
<p>And then I fiddled around with it until it looked like this:</p>
<p><a title="buttons_TAT0007_myCodeSort by carlynorama, on Flickr" href="http://www.flickr.com/photos/carlynorama/4440361914/"><img src="http://farm5.static.flickr.com/4049/4440361914_be47ea6417.jpg" alt="buttons_TAT0007_myCodeSort" width="500" height="386" /></a></p>
<p>Doing this helped me see relationships between the pins and make decisions as to what the most effective way to code a scan would be.</p>
<p>To do the wiring I desoldered the ribbon cable and soldered in 22 AWG solid-core wire which is easier to use with a breadboard. I didn&#8217;t solder up all the leads, just the ones I thought I might use in the code. I used yellow for &#8220;Rows&#8221; and red for &#8220;Columns&#8221;</p>
<p>I wrote up two Arduino code examples. One that prints out a &#8220;picture&#8221; of the rows and columns via a serial connection, Sending a 0 when there is no button press found and 1 when there is a press detected.</p>
<table border="0">
<tbody>
<tr>
<td><a title="IMG_5902 copy by carlynorama, on Flickr" href="http://www.flickr.com/photos/carlynorama/4402969656/"><img src="http://farm5.static.flickr.com/4034/4402969656_7e88e55552_m.jpg" alt="IMG_5902 copy" width="240" height="180" /></a></td>
<td><a href="http://www.flickr.com/photos/carlynorama/4402969904/" title="TAT_0007_screenshotArduino by carlynorama, on Flickr"><img src="http://farm5.static.flickr.com/4027/4402969904_718e721596_m.jpg" width="240" height="167" alt="TAT_0007_screenshotArduino" /></a></td>
</tr>
</tbody>
</table>
<p>The other is a quick example of how you might integrate Row Column Scanning with a switch / case statement. The CS column in the last table I included are what the case statement numbers would be for each button if I had finished writing it out.</p>
<p>They both use nested for loops where the outer loop is the one that sets the Row/Output pins high and the inner loop sweeps the columns.</p>
<p>Just a reminder, to use this code you&#8217;ll have to put up with yet another layer of abstraction.  Each button now has yet another set of coordinates &#8211; which ARDUINO pins they map to. Circuit boards pins 1, 2, 3, 4 are Arduino pins 10, 11, 12, 13 for example.  Pins 10, 11, 12, 13, 18, 19, 20 and 21 on the keypad board are attached to pins 9, 8, 7, 6, 5, 4, 3 ,2 respectively.</p>
<p>Good luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.crashspace.org/2010/03/take-apart-tuesday-no-7/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.356 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-02-02 18:54:08 -->

