<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Hack a Day &#187; buttons</title>
	<atom:link href="http://hackaday.com/tag/buttons/feed/" rel="self" type="application/rss+xml" />
	<link>http://hackaday.com</link>
	<description>Fresh hacks every day</description>
	<lastBuildDate>Sun, 12 Feb 2012 06:24:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='hackaday.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/5560f98f805877b0e332f191cb9e0af3?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Hack a Day &#187; buttons</title>
		<link>http://hackaday.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://hackaday.com/osd.xml" title="Hack a Day" />
	<atom:link rel='hub' href='http://hackaday.com/?pushpress=hub'/>
		<item>
		<title>Arcade controller will give you button envy</title>
		<link>http://hackaday.com/2012/01/03/arcade-controller-will-give-you-button-envy/</link>
		<comments>http://hackaday.com/2012/01/03/arcade-controller-will-give-you-button-envy/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 13:00:31 +0000</pubDate>
		<dc:creator>Mike Szczys</dc:creator>
				<category><![CDATA[peripherals hacks]]></category>
		<category><![CDATA[arcade]]></category>
		<category><![CDATA[buttons]]></category>
		<category><![CDATA[controller]]></category>
		<category><![CDATA[xbox 360]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=64616</guid>
		<description><![CDATA[[Aaron's] arcade controller really makes us want to put in a button order. There aren&#8217;t any secrets hidden in his design or fabrication, but he did a remarkably clean job of putting it together. The housing is a writing box he bought at the hardware store (but he also shows off an emtpy Xbox 360 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=64616&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-64617" title="xbox360-arcade-controller" src="http://hackadaycom.files.wordpress.com/2012/01/xbox360-arcade-controller.jpg" alt="" width="500" height="373" /></p>
<p><a href="http://x2jiggy.com/2012/01/xbox-pc-arcade-joystick/">[Aaron's] arcade controller</a> really makes us want to put in a button order. There aren&#8217;t any secrets hidden in his design or fabrication, but he did a remarkably clean job of putting it together.</p>
<p>The housing is a writing box he bought at the hardware store (but he also shows off an emtpy Xbox 360 case hosting the same control layout). It has a hinged cover which is perfect for getting at the components inside, and is also at a nice angle for your wrists during long gaming session.</p>
<p>An Xbox 360 controller provides the connectivity for the device. Obviously it will work with the Microsoft hardware, but all modern operating systems have methods available for interfacing with these controllers as well. In the video after the break you can see [Aaron] gut the controller, soldering wires to all of the button pads and connecting those to some terminal strips. This makes the wire organization inside quite clean. He uses crimp connectors to jumper the buttons and joy stick to the other side of the terminals. Add  a nice paint job and you&#8217;ve got a controller that will look right at home in your living room.</p>
<p><span id="more-64616"></span><span style="text-align:center; display: block;"><a href="http://hackaday.com/2012/01/03/arcade-controller-will-give-you-button-envy/"><img src="http://img.youtube.com/vi/L5qrZHVFXE0/2.jpg" alt="" /></a></span></p>
<br />Filed under: <a href='http://hackaday.com/category/peripherals-hacks/'>peripherals hacks</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/64616/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/64616/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/64616/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/64616/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/64616/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/64616/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/64616/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/64616/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/64616/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/64616/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/64616/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/64616/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/64616/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/64616/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=64616&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2012/01/03/arcade-controller-will-give-you-button-envy/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Mike Szczys</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2012/01/xbox360-arcade-controller.jpg" medium="image">
			<media:title type="html">xbox360-arcade-controller</media:title>
		</media:content>
	</item>
		<item>
		<title>Parts: 4&#215;4 RGB button pad controller SPI</title>
		<link>http://hackaday.com/2009/03/09/parts-4x4-rgb-button-pad-controller-spi/</link>
		<comments>http://hackaday.com/2009/03/09/parts-4x4-rgb-button-pad-controller-spi/#comments</comments>
		<pubDate>Mon, 09 Mar 2009 18:38:22 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[parts]]></category>
		<category><![CDATA[peripherals hacks]]></category>
		<category><![CDATA[blinkenlights]]></category>
		<category><![CDATA[bus pirate]]></category>
		<category><![CDATA[button pad]]></category>
		<category><![CDATA[buttons]]></category>
		<category><![CDATA[leds]]></category>
		<category><![CDATA[massive fail]]></category>
		<category><![CDATA[monday parts]]></category>
		<category><![CDATA[RGB LED]]></category>
		<category><![CDATA[sparkfun electronics]]></category>
		<category><![CDATA[spi]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=8609</guid>
		<description><![CDATA[We covered SparkFun&#8217;s new RGB button pad controller a few weeks ago. This is a full-color clone of the monome interface; a 4&#215;4 grid of buttons with tri-color LEDs underneath. Each LED has 24bits of color control, for more than 16million color combinations. Up to 10 panels can be chained together to create huge button [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=8609&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-8850" title="cover" src="http://hackadaycom.files.wordpress.com/2009/03/cover.jpg" alt="cover" width="450" height="315" /></p>
<p>We covered SparkFun&#8217;s new <a href="http://hackaday.com/2009/02/05/sparkfun-releases-rgb-button-controller/">RGB button pad controller</a> a few weeks ago. This is a full-color clone of the <a href="http://monome.org/">monome</a> interface; a 4&#215;4 grid of buttons with tri-color LEDs underneath. Each LED has <a href="http://en.wikipedia.org/wiki/Truecolor">24bits of color control</a>, for more than 16million color combinations. Up to 10 panels can be chained together to create huge button grids, like <a href="http://www.youtube.com/watch?v=G9RPLtAvXlE">SparkFun&#8217;s Tetris table</a>. We previously used a smaller version in our <a href="http://hackaday.com/2008/06/12/how-to-make-an-rgb-combination-door-lock-part-1/">RGB combination lock</a>.</p>
<p>We asked SparkFun to send us the SPI version of the button controller to test. This is a new product developed in-house at SparkFun, with open source hardware and software. Read about our experience interfacing this board below.</p>
<p><span id="more-8609"></span><strong>4&#215;4 RGB button pad controller SPI (SparkFun #<a href="http://www.sparkfun.com/commerce/product_info.php?products_id=9022">WIG-09022</a>, $39.95)</strong></p>
<p>The button pad controller is a bare PCB, we also received a button pad cover (SparkFun #<a href="http://www.sparkfun.com/commerce/product_info.php?products_id=7835">COM-07835</a>, $9.95), and two of each bezel (SparkFun #<a href="http://www.sparkfun.com/commerce/product_info.php?products_id=8747">COM-08747</a>, #<a href="http://www.sparkfun.com/commerce/product_info.php?products_id=8746">COM-08746</a>, $3.95).  The SPI version we&#8217;re working with can be driven directly by a microcontroller, or by a USB &#8216;master&#8217;. The USB controller version has an additional microcontroller and FTDI USB-&gt;serial converter for PC connectivity.</p>
<p>When the button pad arrived, we immediately sat down with the datasheet and tried to interface the board with our <a href="http://hackaday.com/the-bus-pirate-universal-serial-interface/">Bus Pirate universal serial interface</a>. The protocol described in version 1 of the datasheet didn&#8217;t work, at all.</p>
<p>SparkFun open sourced this project, so we determined the correct interface protocol from the source code for the <a href="http://www.sparkfun.com/Code/ButtonPadControllerSPI_v15.zip">button pad SPI</a> (ZIP) and the <a href="http://www.sparkfun.com/Code/ButtonPadControllerUSB_v15.zip">button pad USB controller</a> (ZIP). We figured out most of the protocol from the source, but it still took help from SparkFun&#8217;s engineers to uncover some of the undocumented, finer points of interfacing the board. Version 2 of the <a href="http://www.sparkfun.com/datasheets/Widgets/ButtonPadControllerSPI_UserGuide_v2.pdf">datasheet</a> (PDF) accurately depicts the interface protocol.</p>
<p><em>Connections</em></p>
<table border="0">
<tbody>
<tr>
<td><strong>Bus Pirate</strong></td>
<td><strong>Button pad</strong></td>
</tr>
<tr>
<td>MISO</td>
<td>MISO</td>
</tr>
<tr>
<td>MOSI</td>
<td>MOSI</td>
</tr>
<tr>
<td>Clock</td>
<td>SCK</td>
</tr>
<tr>
<td>CS</td>
<td>CS</td>
</tr>
<tr>
<td>+5volts</td>
<td>VCC</td>
</tr>
<tr>
<td>GND</td>
<td>GND</td>
</tr>
</tbody>
</table>
<p>The button pad&#8217;s SPI signals are described as they relate to the on-board microcontroller, which is opposite the usual notation. The MOSI (master out, slave in) signal is actually the board&#8217;s data output, and MISO (master in, slave out) is the data input.</p>
<p>We tested the button pad with the Bus Pirate, but the same basic principals apply to any custom microcontroller code. The board runs at 5volts, so we powered it from the Bus Pirate&#8217;s on-board 5volt power supply. The SPI interface operates at 5volt logic levels, so we connected the Bus Pirate&#8217;s <a href="http://en.wikipedia.org/wiki/Pull-up_resistor">pull-up resistors</a> to the 5volt power supply and enabled them on all signal lines.</p>
<p>We interfaced the button board using the Bus Pirate&#8217;s raw3wire library. Raw3wire is a software SPI library with bit-wise operations. The hardware SPI library only allows full byte operations which aren&#8217;t granular enough to interface the board. We put the Bus Pirate in raw3wire mode (menu option M), and chose the HiZ pin option because the pull-up resistors will hold the bus at 5volts.</p>
<blockquote><p>RAW3WIRE&gt;l <strong>&lt;&#8211;configure bit order</strong><br />
1. MSB first<br />
2. LSB first<br />
MODE&gt;2<strong> &lt;&#8211;least significant bit first</strong><br />
LSB SET: LEAST SIG BIT FIRST<br />
RAW3WIRE&gt;W <strong>&lt;&#8211;enable power supply</strong><br />
VOLTAGE SUPPLIES ON<br />
RAW3WIRE&gt;</p></blockquote>
<p>The button pad communicates least significant bit first, so we also configured the library to communicate LSB first. Finally, we hit capital &#8216;W&#8217; to enable the Bus Pirate&#8217;s power supplies. The button board will flash each color momentarily as part of its power-on self-test.</p>
<p><em>Single/multiple button board setup</em></p>
<p><img class="alignnone size-full wp-image-8966" title="config2" src="http://hackadaycom.files.wordpress.com/2009/03/config2.png" alt="config2" width="450" height="110" /></p>
<p>Each board needs to be configured for single or multi-board use. Boards come pre-programmed for single-board operation, but it might be a good idea to set the configuration anyways. The board configuration is permanently stored in EEPROM, so it only has to be done once.</p>
<blockquote><p>RAW3WIRE&gt;[\_ <strong>&lt;--take all signals low</strong><br />
CS ENABLED <strong>&lt;--CS enabled is 0volts</strong><br />
CLOCK, 0<br />
DATA OUTPUT, 0<br />
RAW3WIRE&gt;</p></blockquote>
<p>A special sequence places the board in configuration mode. Begin with all signal lines low (]\_).</p>
<blockquote><p>RAW3WIRE&gt;-^ 1 1 <strong>&lt;&#8211;set single board operation</strong><br />
DATA OUTPUT, 1 <strong>&lt;&#8211;data high</strong><br />
0&#215;01 CLOCK TICKS <strong>&lt;&#8211;one clock tick</strong><br />
WRITE: 0&#215;01 <strong>&lt;&#8211;config option 1, number of boards</strong><br />
WRITE: 0&#215;01 <strong>&lt;&#8211;set the number of boards</strong><br />
RAW3WIRE&gt;w <strong>&lt;&#8211;small &#8216;w&#8217;, power off</strong><br />
VOLTAGE SUPPLIES OFF<br />
RAW3WIRE&gt;W <strong>&lt;&#8211;capital &#8216;W&#8217;, power on</strong><br />
VOLTAGE SUPPLIES ON<br />
RAW3WIRE&gt;</p></blockquote>
<p>To enter configuration mode, take the data line high (-) and send one clock pulse (^), but <em>leave chip select low</em>. The board is now ready to accept configuration settings.</p>
<p>The first byte sent after entering configuration mode tells the board which setting to modify. Currently, only the number of boards can be configured (0&#215;01). Next, send the number of connected boards, between 1 and 10. we sent 1 because we&#8217;re interfacing a single board. Reset the board and it will light a LED corresponding to the programmed number of boards.</p>
<p><em>Set colors and read button status</em></p>
<p>Now we&#8217;re ready to send color data to the board and read the button status. First, note that the CS (chip select) signal is opposite normal conventions. Usually CS activates a chip when the signal is low (0volts), and idles it when the signal is high (5volts); this is usually denoted by /CS, #CS, or !CS. Instead, the button controller is active when CS is high.</p>
<p><img class="alignnone size-full wp-image-8960" title="frames" src="http://hackadaycom.files.wordpress.com/2009/03/frames.png" alt="frames" width="450" height="62" /></p>
<p>A 64byte transaction sets the LED colors and retrieves the button status. The first 16bytes program the red level for each LED, followed by 16bytes of green, and 16bytes of blue. Finish by reading 16bytes from the board to get the status of each button. Buttons data is sent as 0&#215;00 if pressed, and 0xff if not pressed. The datasheet recommends a 400us delay between writing the color frames and reading the button data, but the Bus Pirate is slow enough that we won&#8217;t worry about that.</p>
<p><img class="alignnone size-full wp-image-8961" title="inter" src="http://hackadaycom.files.wordpress.com/2009/03/inter.png" alt="inter" width="450" height="130" /></p>
<p>The protocol is simple enough, but there&#8217;s one <em>major</em> catch. The clock line <strong><em>must</em></strong> be high before raising CS, or the bytestream will be off by 1 bit. For this reason, many hardware SPI modules won&#8217;t work with the board.  This isn&#8217;t a problem if your microcontroller lets you twiddle  pins that are controlled by a hardware module, but the micros we&#8217;ve worked with <em>don&#8217;t</em> allow this.</p>
<p><img class="alignnone size-full wp-image-8848" title="white" src="http://hackadaycom.files.wordpress.com/2009/03/white.jpg" alt="white" width="450" height="338" /></p>
<blockquote><p>RAW3WIRE&gt;/]255:16 255:16 255:16 r:16[<br />
CLOCK, 1 <strong>&lt;--clock <em>must</em> be high prior to raising CS</strong><br />
CS DISABLED <strong>&lt;--CS to 5volts, opposite normal use</strong><br />
BULK WRITE 0xFF , 0x10 TIMES <strong>&lt;--red LEDs</strong><br />
BULK WRITE 0xFF , 0x10 TIMES <strong>&lt;--green LEDs</strong><br />
BULK WRITE 0xFF , 0x10 TIMES <strong>&lt;--blue LEDs</strong><br />
BULK READ 0x10 BYTES: <strong>&lt;--read button state</strong><br />
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF<br />
CS ENABLED <strong>&lt;--CS to 0volts, opposite normal use</strong><br />
RAW3WIRE&gt;</p></blockquote>
<p>This command sets every color of each LED to full, and reads back the 16 button status bytes.</p>
<p>We first set clock high (/), and only then can we raise CS to 5volts (]) and begin the data transaction. 255:16 is a repeated command that sends the value 255  sixteen times. As each color channel has 8bits of intensity control, 255 is 100% on. We send 255 a total of 48 times, once for each color of each LED. Finally, we retrieve one 16byte frame of button data (r:16) and lower CS to end the transaction ([). The button values are all 0xff, indicating that no buttons are pressed.</p>
<p><img class="alignnone size-full wp-image-8849" title="blue" src="http://hackadaycom.files.wordpress.com/2009/03/blue.jpg" alt="blue" width="450" height="310" /></p>
<blockquote><p>RAW3WIRE&gt;/] 0:16 0:16 128:16 r:16[<br />
CLOCK, 1<br />
CS DISABLED<br />
BULK WRITE 0x00 , 0x10 TIMES<br />
BULK WRITE 0x00 , 0x10 TIMES<br />
BULK WRITE 0x80 , 0x10 TIMES <strong>&lt;--all blue to 50%</strong><br />
BULK READ 0x10 BYTES:<br />
0x00 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF<br />
CS ENABLED<br />
RAW3WIRE&gt;</p></blockquote>
<p>Here, we set the blue level of every LED to 50% (128) and turn off all other colors. The button output now shows that button 0 is pressed.</p>
<p><img class="alignnone size-full wp-image-8851" title="red" src="http://hackadaycom.files.wordpress.com/2009/03/red.jpg" alt="red" width="450" height="324" /></p>
<blockquote><p>RAW3WIRE&gt;/] 0 0 0 0 255 255 255 255 0 0 0 0 0 0 0 0 0:16 0:16 r:16[<br />
CLOCK, 1<br />
CS DISABLED<br />
WRITE: 0&#215;00 <strong>&lt;&#8211; red LED 0, off</strong><br />
&#8230;<strong> &lt;&#8211;more of the same</strong><br />
WRITE: 0&#215;00 <strong>&lt;&#8211; red LED 3, off</strong><br />
WRITE: 0xFF <strong>&lt;&#8211; red LED 4, 100% on</strong><br />
WRITE: 0xFF <strong>&lt;&#8211; red LED 5, 100% on</strong><br />
WRITE: 0xFF<strong> &lt;&#8211; red LED 6, </strong><strong>100% </strong><strong>on</strong><br />
WRITE: 0xFF<strong> &lt;&#8211; red LED 7, </strong><strong>100% </strong><strong>on</strong><br />
WRITE: 0&#215;00 <strong>&lt;&#8211; red LED 8, off</strong><br />
&#8230; <strong>&lt;&#8211;more of the same</strong><br />
WRITE: 0&#215;00<strong> &lt;&#8211; red LED 15, off</strong><br />
BULK WRITE 0&#215;00 , 0&#215;10 TIMES <strong>&lt;&#8211; all green LEDs off</strong><br />
BULK WRITE 0&#215;00 , 0&#215;10 TIMES <strong>&lt;&#8211;all blue LEDs off</strong><br />
BULK READ 0&#215;10 BYTES: <strong>&lt;&#8211;read button status</strong><br />
0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF<br />
CS ENABLED<br />
RAW3WIRE&gt;</p></blockquote>
<p>This example shows how to address single LEDs. This time we actually write out all 16 bytes of the red color frame. Buttons 0-3 and 8-15 have a red value of 0 (red off), buttons 4-7 are set to 100% red (255). All green and blue LEDs are off (0, 0%).</p>
<p><em>Conclusion</em></p>
<p>It was really frustrating to get this board working because the first version of the datasheet had so many errors. SparkFun&#8217;s engineers and support were really helpful, and posted a corrected datasheet within days. As long as you have the updated datasheet, this is an easy board to work with.</p>
<p>We&#8217;d like to see a firmware update that eliminates the need to keep the clock signal high before raising CS. This quirk makes the board incompatible with many hardware SPI modules, leaving slow bit-bang routines as the only interface option. Fortunately, the source code is open and available to anyone who wants to make this change.</p>
<p>The button pad controller is a really neat board, and we look forward to using it in a future project.</p>
<p><strong>Hack a Day review disclosure</strong>: We asked for a free board and SparkFun sent it to us. We had a terrible time getting it to work with the instructions in the first version of the datasheet, we documented that experience here.</p>
<br />Posted in parts, peripherals hacks  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/8609/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/8609/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/8609/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/8609/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/8609/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/8609/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/8609/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/8609/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/8609/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/8609/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/8609/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/8609/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/8609/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/8609/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=8609&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2009/03/09/parts-4x4-rgb-button-pad-controller-spi/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Ian</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/03/cover.jpg" medium="image">
			<media:title type="html">cover</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/03/config2.png" medium="image">
			<media:title type="html">config2</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/03/frames.png" medium="image">
			<media:title type="html">frames</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/03/inter.png" medium="image">
			<media:title type="html">inter</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/03/white.jpg" medium="image">
			<media:title type="html">white</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/03/blue.jpg" medium="image">
			<media:title type="html">blue</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/03/red.jpg" medium="image">
			<media:title type="html">red</media:title>
		</media:content>
	</item>
		<item>
		<title>Parts: Tactile switches for your next project</title>
		<link>http://hackaday.com/2008/09/15/tact-switches-for-your-next-project/</link>
		<comments>http://hackaday.com/2008/09/15/tact-switches-for-your-next-project/#comments</comments>
		<pubDate>Mon, 15 Sep 2008 19:02:41 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[classic hacks]]></category>
		<category><![CDATA[misc hacks]]></category>
		<category><![CDATA[parts]]></category>
		<category><![CDATA[button]]></category>
		<category><![CDATA[buttons]]></category>
		<category><![CDATA[choosing parts]]></category>
		<category><![CDATA[components]]></category>
		<category><![CDATA[electronics]]></category>
		<category><![CDATA[tact switches]]></category>
		<category><![CDATA[tactile switch]]></category>

		<guid isPermaLink="false">http://hackadaycom.wordpress.com/?p=2919</guid>
		<description><![CDATA[Electronics parts can be a pain to choose. It&#8217;s often hard to tell from manufacturers&#8217; datasheets if a part will fit your design. We auditioned six different tactile switches to find a cheap button to use in upcoming projects. A tactile switch, also called a momentary button or push-to-make switch, is commonly used for input [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=2919&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-3151" title="buttons1" src="http://hackadaycom.files.wordpress.com/2008/09/buttons1.jpg" alt="" width="450" height="279" /></p>
<p>Electronics parts can be a pain to choose. It&#8217;s often hard to tell from manufacturers&#8217; datasheets if a part will fit your design. We auditioned six different tactile switches to find a cheap button to use in upcoming projects. A tactile switch, also called a momentary button or <a href="http://en.wikipedia.org/wiki/Switch#Biased_switches">push-to-make switch</a>, is commonly used for input and microcontroller resets. This type of button creates a temporary electrical connection when pressed.</p>
<p>Footprints for most of these buttons are available in the <a href="http://www.cadsoft.de/">Cadsoft Eagle</a> library <em>switch-tac</em>, or in the <a href="http://www.opencircuits.com/SFE_Footprint_Library_Eagle">Sparkfun parts library</a> under <em>TAC_SWITCH</em>. Buttons in the image above are discussed from left to right.<span id="more-2919"></span></p>
<p><strong><span>Through hole push button switch (6mm):</span></strong><span> </span><span>This switch will appeal to fans of through-hole parts, but you can see that it&#8217;s actually smaller than the 6x6mm surface mount buttons.</span><span> Note that it does not have the standard 0.1&#8243; straight mounting legs, and thus won&#8217;t fit in a breadboard. Common package name(s): DTS-3 (S1 above).<br />
</span></p>
<p><a href="http://www.mouser.com/Search/ProductDetail.aspx?R=MJTP1250virtualkey64200000virtualkey642-MJTP1250"><span>642-MJTP1250</span></a> (16 cents)</p>
<p><span><strong>Regular SMD tactile switches (6 X 6mm):</strong><em> </em>A 6 x 6mm tactile switch is probably the most common surface mount button. Even though it&#8217;s surface mount, it&#8217;s large and easy to solder.  The button has two pairs of leads (1&amp;2, 3&amp;4) that connect internally to the same switch &#8212; although there are four legs you only get a single switch. You only need to connect one pin from each pair to use the button, but it makes no difference if you decide to connect both. The yellow and red buttons are rated in terms of the force required for activation (gf), yellow requires the most force (520gf) and makes the loudest snap. Common package name(s): DTS-6 (S2 above).<br />
</span></p>
<p><a href="http://www.mouser.com/Search/ProductDetail.aspx?R=101-0164-EVvirtualkey12040000virtualkey101-0164-EV"><span>101-0164-EV</span></a> (22 cents)</p>
<p><a href="http://www.mouser.com/Search/ProductDetail.aspx?R=101-TS5922T5202-EVvirtualkey12040000virtualkey101-TS5922T5202-EV">101-TS5922T5202-EV</a> <span>520gf YELLOW (36 cents)</span></p>
<p><a href="http://www.mouser.com/Search/ProductDetail.aspx?R=101-TS6824T2604-EVvirtualkey12040000virtualkey101-TS6824T2604-EV">101-TS6824T2604-EV</a> <span>260gf RED SMT (51 cents)</span></p>
<p><span><strong>Small SMD tactile switches (4.5&#215;4.5&#215;0.4mm):</strong> Unlike the previous buttons, these tiny switches require practice and skill to solder. While the mounting area is only 12% smaller than the previous buttons, the leads are tiny and hidden under the package. Like the 6 x 6mm tactile switches, these are rated in terms of actuation force (gf). We were unable to find a ready-made footprint for this part.<br />
</span></p>
<p><a href="http://www.mouser.com/Search/ProductDetail.aspx?R=SKRMAAE010virtualkey68800000virtualkey688-SKRMAA"><span>688-SKRMAA</span></a><span> 160gf (30 cents)</span><a href="http://www.mouser.com/Search/ProductDetail.aspx?R=SKRMAAE010virtualkey68800000virtualkey688-SKRMAA"><span><br />
</span></a></p>
<p><a href="http://www.mouser.com/Search/ProductDetail.aspx?R=SKRMABE010virtualkey68800000virtualkey688-SKRMAB"><span>688-SKRMAB</span></a><span> </span><span>260gf (30 cents)</span><a href="http://www.mouser.com/Search/ProductDetail.aspx?R=SKRMABE010virtualkey68800000virtualkey688-SKRMAB"><span><br />
</span></a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/hackadaycom.wordpress.com/2919/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/hackadaycom.wordpress.com/2919/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/2919/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/2919/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/2919/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/2919/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/2919/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/2919/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/2919/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/2919/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/2919/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/2919/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/2919/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/2919/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/2919/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/2919/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=2919&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2008/09/15/tact-switches-for-your-next-project/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Ian</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2008/09/buttons1.jpg" medium="image">
			<media:title type="html">buttons1</media:title>
		</media:content>
	</item>
		<item>
		<title>Xbox 360 controller remixed for optimized FPS play</title>
		<link>http://hackaday.com/2008/07/01/xbox-360-controller-remixed-for-optimized-fps-play/</link>
		<comments>http://hackaday.com/2008/07/01/xbox-360-controller-remixed-for-optimized-fps-play/#comments</comments>
		<pubDate>Wed, 02 Jul 2008 04:30:00 +0000</pubDate>
		<dc:creator>Juan Aguilar</dc:creator>
				<category><![CDATA[xbox hacks]]></category>
		<category><![CDATA[buttons]]></category>
		<category><![CDATA[controller]]></category>
		<category><![CDATA[controllers]]></category>
		<category><![CDATA[xbox360]]></category>
		<category><![CDATA[xbox360controller]]></category>

		<guid isPermaLink="false">http://hackaday.iheartcashews.com:8181/2008/07/01/xbox-360-controller-remixed-for-optimized-fps-play/</guid>
		<description><![CDATA[[F00 f00] of Acidmods was not satisfied with his first-person shooter gaming experience, so he modded an Xbox 360 controller so that A, B, X and Y buttons are on the underside of the controller, on the inside edges of the wings where the player&#8217;s fingertips usually go. He also moved the right thumbstick up [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=2167&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><object width="450" height="364"><param name="movie" value="http://www.youtube.com/v/_OXZCoeOQoQ&amp;hl=en&amp;rel=0&amp;color1=0x3a3a3a&amp;color2=0x999999"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/_OXZCoeOQoQ&amp;hl=en&amp;rel=0&amp;color1=0x3a3a3a&amp;color2=0x999999" type="application/x-shockwave-flash" allowfullscreen="true" width="450" height="364"></embed></object><br />[F00 f00] of Acidmods was not satisfied with his first-person shooter gaming experience, so he <a href="http://www.acidmods.com/forum/index.php?topic=19911.0">modded an Xbox 360 controller</a> so that A, B, X and Y buttons are on the underside of the controller, on the inside edges of the wings where the player&#8217;s fingertips usually go. He also moved the right thumbstick up a bit so that it would be level with the left one. He designed it to improve his ability to play first person shooters, but the advantages go beyond one genre of game. The right thumb is free to remain on the right thumbstick, and the colored buttons can be pressed by four fingers instead of just the right thumb. We love this mod for it&#8217;s simplicity and effectiveness, and we&#8217;re eagerly awaiting the internal photos he promised. </p>
<p>[via <a href="http://gadgets.boingboing.net/2008/07/01/modded-xbox-360-cont.html">BB Gadgets</a>]</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/hackadaycom.wordpress.com/2167/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/hackadaycom.wordpress.com/2167/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/2167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/2167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/2167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/2167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/2167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/2167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/2167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/2167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/2167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/2167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/2167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/2167/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/2167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/2167/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=2167&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2008/07/01/xbox-360-controller-remixed-for-optimized-fps-play/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">juanaguilar</media:title>
		</media:content>
	</item>
		<item>
		<title>Tips on picking the right case</title>
		<link>http://hackaday.com/2008/06/06/tips-on-picking-the-right-case/</link>
		<comments>http://hackaday.com/2008/06/06/tips-on-picking-the-right-case/#comments</comments>
		<pubDate>Sat, 07 Jun 2008 05:00:00 +0000</pubDate>
		<dc:creator>Juan Aguilar</dc:creator>
				<category><![CDATA[misc hacks]]></category>
		<category><![CDATA[button]]></category>
		<category><![CDATA[buttons]]></category>
		<category><![CDATA[case]]></category>
		<category><![CDATA[casemod]]></category>
		<category><![CDATA[cases]]></category>
		<category><![CDATA[enclosure]]></category>
		<category><![CDATA[enclosures]]></category>
		<category><![CDATA[sparkfun]]></category>

		<guid isPermaLink="false">http://hackaday.iheartcashews.com:8181/2008/06/06/tips-on-picking-the-right-case/</guid>
		<description><![CDATA[Finding the right enclosure to house your latest project can be tricky, so Sparkfun wrote up some handy tips on the how to pick the right one. The most important tip is to have your components measured before acquiring a case; even being a few milimeters too small can put you back at square one. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=1940&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img width="450" vspace="4" hspace="4" height="307" border="0" alt=""  src="http://hackadaycom.files.wordpress.com/2008/06/had_project.jpg?w=450&#038;h=307" /><br />Finding the right enclosure to house your latest project can be tricky, so <a href="http://www.sparkfun.com/commerce/present.php?p=Enclosure-Modification">Sparkfun wrote up some handy tips</a> on the how to pick the right one.</p>
<p>The most important tip is to have your components measured before acquiring a case; even being a few milimeters too small can put you back at square one. To do this right, it&#8217;s useful to look at the dimensional drawings of prospective cases to get a sense for the size. These typically include recommended shapes for PCBs too. </p>
<p>You may find a case that meets your dimensional needs but doesn&#8217;t have the appropriate mounting bosses. To get the placement right, screw some plastic standoffs to the PCB, then use super glue to attach them firmly to the case. </p>
<p>Tips on button choices, hole drilling, and other typical issues with case modification can also be found in this guide. If this is something that&#8217;s been stumping you, give it a look.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/hackadaycom.wordpress.com/1940/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/hackadaycom.wordpress.com/1940/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/1940/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/1940/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/1940/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/1940/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/1940/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/1940/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/1940/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/1940/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/1940/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/1940/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/1940/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/1940/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/1940/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/1940/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=1940&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2008/06/06/tips-on-picking-the-right-case/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">juanaguilar</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2008/06/had_project.jpg" medium="image" />
	</item>
	</channel>
</rss>
