<?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; parts monday</title>
	<atom:link href="http://hackaday.com/tag/parts-monday/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; parts monday</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>Parts: AT keyboard</title>
		<link>http://hackaday.com/2009/01/26/parts-at-keyboard/</link>
		<comments>http://hackaday.com/2009/01/26/parts-at-keyboard/#comments</comments>
		<pubDate>Mon, 26 Jan 2009 17:38:33 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[parts]]></category>
		<category><![CDATA[peripherals hacks]]></category>
		<category><![CDATA[at keyboard]]></category>
		<category><![CDATA[bus pirate]]></category>
		<category><![CDATA[interfacing]]></category>
		<category><![CDATA[keyboard]]></category>
		<category><![CDATA[parts monday]]></category>
		<category><![CDATA[scancode]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=8058</guid>
		<description><![CDATA[Last week we introduced a new version of the Bus Pirate universal serial interface tool. The last firmware update included an AT keyboard decoder library for both hardware versions. There&#8217;s a ton of old AT keyboards making their way to the landfill. We&#8217;ll show you how to recycle one as an input device for your [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=8058&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-8200" title="atkeyboard" src="http://hackadaycom.files.wordpress.com/2009/01/atkeyboard.jpg" alt="atkeyboard" width="450" height="336" /></p>
<p>Last week we introduced <a href="http://hackaday.com/2009/01/22/how-to-bus-pirate-v1-improved-universal-serial-interface/">a new version</a> of the <a href="http://hackaday.com/the-bus-pirate-universal-serial-interface/">Bus Pirate universal serial interface tool</a>. The last firmware update included an AT keyboard decoder library for both hardware versions.</p>
<p>There&#8217;s a ton of old AT keyboards making their way to the landfill. We&#8217;ll show you how to recycle one as an input device for your next project.</p>
<p><span id="more-8058"></span><strong>Connection</strong></p>
<table border="0">
<tbody>
<tr>
<td><strong>Bus Pirate</strong></td>
<td><strong>PC AT keyboard (pin #)</strong></td>
</tr>
<tr>
<td>SDA</td>
<td>KBD Data (3)</td>
</tr>
<tr>
<td>SCL</td>
<td>KBD Clock (1)</td>
</tr>
<tr>
<td>+5volts</td>
<td>VDD (5)</td>
</tr>
<tr>
<td>GND</td>
<td>GND (2)</td>
</tr>
</tbody>
</table>
<p>AT keyboards communicate over a bidirectional two-wire interface. The bus is <a href="http://en.wikipedia.org/wiki/Open_collector">open collector</a>, but keyboards already have internal <a href="http://en.wikipedia.org/wiki/Pull-up_resistor">pull-up resistors</a>. The PC AT keyboard protocol is described <a href="http://www.beyondlogic.org/keyboard/keybrd.htm">here</a>. We used our Bus Pirate tool to demonstrate the keyboard protocol, but the same basic principals apply to any microcontroller.</p>
<p>We connected the Bus Pirate to the keyboard as outlined in the table. We believe that <a href="http://www.mouser.com/Search/ProductDetail.aspx?R=161-2306virtualkey11180000virtualkey161-2306">this</a> is a through-hole female AT keyboard jack, but we haven&#8217;t tested it. Do you know of a source for new sockets?</p>
<p><strong>Protocol</strong></p>
<p>The keyboard provides the clock signal for <em>all</em> data transfers; the PC side resembles a slave device. None of the existing Bus Pirate interface libraries work with an external clock, so we wrote a simple AT keyboard decoder library. The library depends on the keyboard&#8217;s clock signal, and it&#8217;ll hang if the keyboard fails or isn&#8217;t connected. If you use our library in your own project, consider adding a timeout delay in the readbit() and writebit() functions.</p>
<p><em>PC to keyboard command codes</em></p>
<table border="0">
<tbody>
<tr>
<td><strong>Code</strong></td>
<td><strong>Command</strong></td>
</tr>
<tr>
<td>0xed</td>
<td>Set status LEDs</td>
</tr>
<tr>
<td>0xee</td>
<td>Echo 0xee</td>
</tr>
<tr>
<td>0xf0</td>
<td>Set scancode type</td>
</tr>
<tr>
<td>0xf3</td>
<td>Set repeat rate</td>
</tr>
<tr>
<td>0xf4</td>
<td>Keyboard enable</td>
</tr>
<tr>
<td>0xf5</td>
<td>Keyboard disable</td>
</tr>
<tr>
<td>0xfe</td>
<td>Resend last byte</td>
</tr>
<tr>
<td>0xff</td>
<td>Reset keyboard</td>
</tr>
</tbody>
</table>
<p>A PC uses these commands to control various functions of an AT keyboard. The keyboard responds to commands with an acknowledge byte (oxfa). In our experience, the keyboard will reset if the response byte is not read shortly after the command is sent.</p>
<p><em>Keyboard to PC response codes</em></p>
<table border="0">
<tbody>
<tr>
<td><strong>Code</strong></td>
<td><strong>Response</strong></td>
</tr>
<tr>
<td>0xfa</td>
<td>Acknowledge</td>
</tr>
<tr>
<td>0xaa</td>
<td>Self test passed</td>
</tr>
<tr>
<td>0xee</td>
<td>Echo response</td>
</tr>
<tr>
<td>0xfe</td>
<td>Resend last byte</td>
</tr>
<tr>
<td>0&#215;00 or 0xff</td>
<td>Error or buffer overflow</td>
</tr>
</tbody>
</table>
<p>The keyboard has a number of single byte response codes.  Most PC commands are acknowledged with 0xfa. 0xaa is sent after a keyboard reset.</p>
<p><strong>Setup the Bus Pirate</strong><em><br />
</em></p>
<blockquote><p>HiZ&gt;m<br />
1. HiZ<br />
&#8230;<br />
9. PC AT KEYBOARD<br />
MODE&gt;9<strong> &lt;&#8211;set mode</strong><br />
900 MODE SET<br />
X02 PC AT KB DECODER READY<br />
PC AT KEYBOARD&gt;</p></blockquote>
<p>First, we setup the the Bus Pirate for AT keyboard mode, option 9.</p>
<blockquote><p>PC AT KEYBOARD&gt;p<strong> &lt;&#8211;power supply setup</strong><br />
W/w toggles 3.3volt supply?<br />
1. NO<br />
2. YES<br />
MODE&gt;1<strong> &lt;&#8211;no 3.3volt supply</strong><br />
W/w toggles 5volt supply?<br />
1. NO<br />
2. YES<br />
MODE&gt;2<strong> &lt;&#8211;use the 5volt supply</strong><br />
9xx SUPPLY CONFIGURED, USE W/w TO TOGGLE<br />
9xx VOLTAGE MONITOR: 5V: 0.0 | 3.3V: 0.0 | VPULLUP: 0.0 |<br />
PC AT KEYBOARD&gt;W <strong>&lt;&#8211;capital &#8216;W&#8217;, turn supply on</strong><br />
9xx 5VOLT SUPPLY ON<br />
PC AT KEYBOARD&gt;</p></blockquote>
<p>Next, we configure the Bus Pirate&#8217;s power supply to provide 5volts for the AT keyboard.</p>
<blockquote><p>PC AT KEYBOARD&gt;r<strong> &lt;&#8211;read byte from keyboard</strong><br />
x30 PCATKB READ:  NONE<strong> &lt;&#8211;no data available</strong><br />
PC AT KEYBOARD&gt;</p></blockquote>
<p>The AT keyboard library follows the standard Bus Pirate syntax. Numeric values are sent to the keyboard as bytes, &#8216;r&#8217; reads a byte from the keyboard. The protocol is clocked by the keyboard so bitwise operations are disabled.  If no data is available, the read will return &#8216;NONE&#8217;.</p>
<p><strong>Setup the keyboard<br />
</strong></p>
<blockquote><p>PC AT KEYBOARD&gt;0xee r <strong>&lt;&#8211;send 0xee, read one byte</strong><br />
X20 PCATKB WRITE: 0xEE GOT ACK <strong>&lt;&#8211;write oxee, got ack bit</strong><br />
x30 PCATKB READ: 0xEE <strong>&lt;&#8211;read 0xee, echo was successful</strong><br />
PC AT KEYBOARD&gt;</p></blockquote>
<p>We can test the connection to the AT keyboard using the echo command, 0xee. The keyboard will respond 0xee if our connections are correct.</p>
<p>The keyboard responds to commands with an ACK bit at the protocol level, and then again with an ACK byte. We found that our test keyboards reset automatically if the ACK byte wasn&#8217;t read immediately after sending the command.</p>
<blockquote><p>PC AT KEYBOARD&gt;0xee<strong> &lt;&#8211;echo command</strong><br />
X20 PCATKB WRITE: 0xEE GOT ACK <strong>&lt;&#8211;wrote echo, got ACK</strong><br />
PC AT KEYBOARD&gt;r <strong>&lt;&#8211;read one byte</strong><br />
x30 PCATKB READ: 0xAA<strong> &lt;&#8211;read 0xaa, reset indicator</strong><br />
PC AT KEYBOARD&gt;</p></blockquote>
<p>Here, we tried to send the echo command and then read the reply later. The keyboard reset automatically and replies 0xaa, self-test passed.</p>
<blockquote><p>PC AT KEYBOARD&gt;0xff r r <strong>&lt;&#8211;reset command, read two bytes</strong><br />
X20 PCATKB WRITE: 0xFF GOT ACK<strong> &lt;&#8211;write reset command, got ACK</strong><br />
x30 PCATKB READ: 0xFA<strong> &lt;&#8211;command ACK byte</strong><br />
x30 PCATKB READ:  NONE<strong> &lt;&#8211;read once more to reset</strong><br />
PC AT KEYBOARD&gt;</p></blockquote>
<p>The keyboard is reset by writing the command 0xff, and reading two bytes. The Keyboard won&#8217;t reset until the second byte is read.</p>
<blockquote><p>PC AT KEYBOARD&gt;r<strong> &lt;&#8211;read a byte</strong><br />
x30 PCATKB READ: 0xAA<strong> &lt;&#8211;reset success</strong><br />
PC AT KEYBOARD&gt;</p></blockquote>
<p>A short period after reset we can read the power on self test (POST) results, 0xaa indicates POST success.</p>
<blockquote><p>PC AT KEYBOARD&gt;0xf5 r <strong>&lt;&#8211;disable the keyboard</strong><br />
X20 PCATKB WRITE: 0xF5 GOT ACK <strong>&lt;&#8211;wrote command</strong><br />
x30 PCATKB READ: 0xFA<strong> &lt;&#8211;read ACK byte</strong><br />
PC AT KEYBOARD&gt;0xf4 r<strong> &lt;&#8211;enable keyboard</strong><br />
X20 PCATKB WRITE: 0xF4 GOT ACK<strong> &lt;&#8211;wrote command</strong><br />
x30 PCATKB READ: 0xFA<strong> &lt;&#8211;read ACK byte</strong><br />
PC AT KEYBOARD&gt;</p></blockquote>
<p>0xf5 disables keyboard input. 0xf4 enables the keyboard and clears the buffer.</p>
<blockquote><p>PC AT KEYBOARD&gt;0xed r 0b111 r <strong>&lt;&#8211;set indicator LEDs</strong><br />
X20 PCATKB WRITE: 0xED GOT ACK <strong>&lt;&#8211;set LED command</strong><br />
x30 PCATKB READ: 0xFA<strong> &lt;&#8211;command acknowledged</strong><br />
X20 PCATKB WRITE: 0&#215;07 GOT ACK <strong>&lt;&#8211;send LED value</strong><br />
x30 PCATKB READ: 0xFA<strong> &lt;&#8211;value acknowledged</strong><br />
PC AT KEYBOARD&gt;</p></blockquote>
<p>The num, caps, and scroll lock LEDs are controlled by the 0xed command. The last three bits of a second byte (ob111) indicate which LEDs to light. It&#8217;s very important to perform all four byte operations within the keyboard timeout period, or the keyboard will reset.</p>
<blockquote><p>PC AT KEYBOARD&gt;0xee r<strong> &lt;&#8211;echo test command</strong><br />
X20 PCATKB WRITE: 0xEE GOT ACK<br />
x30 PCATKB READ: 0xEE<br />
PC AT KEYBOARD&gt;0xfe r<strong> &lt;&#8211;repeat last byte command</strong><br />
X20 PCATKB WRITE: 0xFE GOT ACK<strong> &lt;&#8211;write repeat command</strong><br />
x30 PCATKB READ: 0xEE<strong> &lt;&#8211;previous byte is repeated</strong><br />
PC AT KEYBOARD&gt;</p></blockquote>
<p>The last interesting keyboard command is the repeat byte command. 0xfe causes the keyboard to send the last byte again. This is a useful command if there was a error in the previous transmission.</p>
<p><strong>Read key presses<br />
</strong></p>
<p>Key presses are buffered by the keyboard until we read them.</p>
<blockquote><p>PC AT KEYBOARD&gt;r<strong> &lt;&#8211;read byte</strong><br />
x30 PCATKB READ: 0&#215;29<strong> &lt;&#8211;space scancode</strong><br />
PC AT KEYBOARD&gt;r<strong> &lt;&#8211;read byte</strong><br />
x30 PCATKB READ: 0xF0<strong> &lt;&#8211;key release scancode</strong><br />
PC AT KEYBOARD&gt;r <strong>&lt;&#8211;read byte</strong><br />
x30 PCATKB READ: 0&#215;29<strong>&lt;&#8211;space scancode</strong><br />
PC AT KEYBOARD&gt;</p></blockquote>
<p>A key press sends <a href="http://www.barcodeman.com/altek/mule/scandoc.php">scancodes</a>, multi-byte sequences that represent the key presses. In the example, we pressed space which has the scancode 0&#215;29. When a key is released, the keyboard sends 0xf0 and the scancode for the key (0&#215;29). Each key press results in a similar three part sequence.</p>
<blockquote><p>PC AT KEYBOARD&gt;r:4 <strong>&lt;&#8211;read 4 bytes</strong><br />
x31 PCATKB BULK READ, 0&#215;04 BYTES:<br />
0&#215;29  0xF0  0&#215;29   NONE<strong> &lt;&#8211;space scancode</strong><br />
PC AT KEYBOARD&gt;</p></blockquote>
<p>This is just a simplified version of the previous example. Rather than read three bytes individually, we used the bulk read command. Again, we get the space scancode sequence. Our attempt to read a non-existant fourth byte fails.</p>
<br />Posted in parts, peripherals hacks  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/8058/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/8058/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/8058/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/8058/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/8058/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/8058/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/8058/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/8058/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/8058/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/8058/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/8058/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/8058/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/8058/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/8058/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=8058&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2009/01/26/parts-at-keyboard/feed/</wfw:commentRss>
		<slash:comments>15</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/01/atkeyboard.jpg" medium="image">
			<media:title type="html">atkeyboard</media:title>
		</media:content>
	</item>
		<item>
		<title>Parts: Chip sockets for dual in-line package (DIP)</title>
		<link>http://hackaday.com/2008/10/20/parts-chip-sockets-for-dual-in-line-package-dip/</link>
		<comments>http://hackaday.com/2008/10/20/parts-chip-sockets-for-dual-in-line-package-dip/#comments</comments>
		<pubDate>Mon, 20 Oct 2008 14:15:31 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[classic hacks]]></category>
		<category><![CDATA[misc hacks]]></category>
		<category><![CDATA[parts]]></category>
		<category><![CDATA[chip holders]]></category>
		<category><![CDATA[chip sockets]]></category>
		<category><![CDATA[choosing parts]]></category>
		<category><![CDATA[dil chip]]></category>
		<category><![CDATA[dip chip]]></category>
		<category><![CDATA[dual in-line chip sockets]]></category>
		<category><![CDATA[parts monday]]></category>

		<guid isPermaLink="false">http://hackadaycom.wordpress.com/?p=4974</guid>
		<description><![CDATA[DIP through-hole chips are an old package with instantly recognizable dual in-line pin rows.  Beginners love these chips because they&#8217;re large and look easy to solder; we abhor them because we hate messing around with the drill. Whatever your motivation for using a through-hole chip, use a socket whenever possible. A circuit board with socketed [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=4974&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-4979" title="ic-sockets" src="http://hackadaycom.files.wordpress.com/2008/10/ic-sockets.jpg" alt="" width="450" height="386" /></p>
<p>DIP through-hole chips are an old package with instantly recognizable <a href="http://en.wikipedia.org/wiki/Dual_in-line_package">dual in-line</a> pin rows.  Beginners love these chips because they&#8217;re large and look easy to solder; we abhor them because we hate messing around with the drill. Whatever your motivation for using a through-hole chip, use a socket whenever possible. A circuit board with socketed chips is easy to test without endangering the parts, and ICs can be removed, tested, and replaced, without resorting to a soldering iron. This week, by request, we looked at several common through-hole chip sockets.<span id="more-4974"></span></p>
<p>DIP sockets are available in almost any pin-count, or you can use individual strips to make a custom size (Mouser #<a href="http://www.mouser.com/Search/ProductDetail.aspx?qs=WZRMhwwaLl%252bdHc6CCcV20A%3d%3d">40-0518-10</a>). ICs with less than 40 pins usually have .300&#8243; row spacing, but many 40+ pin ICs are .600&#8243; wide. Footprints are included in the  <a href="http://www.cadsoft.de">Cadsoft Eagle</a> default <em>ic-package</em> library as DIL<em>xx</em>. Below is a list of our most commonly used DIP sockets.</p>
<p><strong>8 pin .300&#8243; socket</strong> (Mouser#<a href="http://www.mouser.com/Search/ProductDetail.aspx?R=571-1-390261-2"><span>571-1-390261-2</span></a>, $0.<span>14)</span> This socket is useful for <a href="http://en.wikipedia.org/wiki/Operational_amplifier">op-amps</a> and small microcontrollers, like the <a href="http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en010113">12F629</a> used in the <a href="http://hackaday.com/2008/10/14/how-to-make-an-e-paper-clock-and-hack-esquire-magazine/">Esquire e-paper cover</a>.</p>
<p><strong>14 pin .300&#8243; socket</strong> (<span>Mouser #</span><a href="http://www.mouser.com/Search/ProductDetail.aspx?R=571-1-390261-3"><span>571-1-390261-3</span></a><span>, $0.15) </span>Another small socket we occasionally need.</p>
<p><strong>18 pin .300&#8243; socket </strong>(<span>Mouser #</span><a href="http://www.mouser.com/Search/ProductDetail.aspx?R=571-1-390261-5"><span>571-1-390261-5</span></a><span>, $0.18)</span> A very common chip size for lots of microcontrollers and <a href="http://en.wikipedia.org/wiki/7400_series">7400 series</a> parts</p>
<p><strong>28 pin .300&#8243; socket </strong>(<span>Mouser #<a href="http://www.mouser.com/Search/ProductDetail.aspx?R=571-1-390261-9">571-1-390261-9</a>, $0.30)</span> Another common size for through-hole microcontrollers, and chips like the <a href="http://focus.ti.com/docs/prod/folders/print/tlc5940.html">TLC5940</a> 16 channel <a href="http://en.wikipedia.org/wiki/Pulse-width_modulation">pulse-width modulator</a>. Check your datasheet because a .600&#8243; row spacing 28 pin DIP package also exists.</p>
<p><strong>40 pin .600&#8243; socket</strong> (<span>Mouser #</span><a href="http://www.mouser.com/Search/ProductDetail.aspx?R=571-1-390262-5"><span>571-1-390262-5</span></a><span>, $0.41</span><span>)</span> Watch out, this is a wide socket for chips with .600&#8243; row spacing. Fits common 40 pin chips, like the <a href="http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en010293">PIC 18F4455</a> USB microcontroller.</p>
<p>Don&#8217;t forget to check out our previous <a href="http://hackaday.com/category/parts/">parts</a> posts.</p>
<br />Posted in classic hacks, misc hacks, parts  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/4974/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/4974/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/4974/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/4974/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/4974/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/4974/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/4974/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/4974/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/4974/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/4974/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/4974/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/4974/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/4974/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/4974/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=4974&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2008/10/20/parts-chip-sockets-for-dual-in-line-package-dip/feed/</wfw:commentRss>
		<slash:comments>13</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/10/ic-sockets.jpg" medium="image">
			<media:title type="html">ic-sockets</media:title>
		</media:content>
	</item>
		<item>
		<title>Parts: LM317 adjustable voltage regulator</title>
		<link>http://hackaday.com/2008/09/22/parts-lm317-adjustable-voltage-regulator/</link>
		<comments>http://hackaday.com/2008/09/22/parts-lm317-adjustable-voltage-regulator/#comments</comments>
		<pubDate>Mon, 22 Sep 2008 19:24:41 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[classic hacks]]></category>
		<category><![CDATA[misc hacks]]></category>
		<category><![CDATA[parts]]></category>
		<category><![CDATA[7805]]></category>
		<category><![CDATA[adjustable voltage regulator]]></category>
		<category><![CDATA[LM317]]></category>
		<category><![CDATA[parts monday]]></category>
		<category><![CDATA[voltage regulator]]></category>

		<guid isPermaLink="false">http://hackadaycom.wordpress.com/?p=3523</guid>
		<description><![CDATA[Every project needs a power supply. As 3.3volt logic replaces 5volt systems, we&#8217;re reaching for the LM317 adjustable voltage regulator, rather than the classic 7805. We&#8217;ve found four different hobbyist-friendly packages for different situations. A simple voltage divider (R1,R2) sets the LM317 output between 1.25volts and 37volts; use this handy LM317 calculator to find resistor [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=3523&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-3535" title="lm317" src="http://hackadaycom.files.wordpress.com/2008/09/lm317.jpg" alt="" width="450" height="406" /></p>
<p>Every project needs a power supply. As 3.3volt logic replaces 5volt systems, we&#8217;re reaching for the <a href="http://en.wikipedia.org/wiki/LM317">LM317 adjustable voltage regulator</a>, rather than the <a href="http://en.wikipedia.org/wiki/78xx">classic 7805</a>. We&#8217;ve found four different hobbyist-friendly packages for different situations.</p>
<p>A simple <a href="http://en.wikipedia.org/wiki/Voltage_divider">voltage divider</a> (R1,R2) sets the LM317 output between 1.25volts and 37volts; use this handy <a href="http://www.cpemma.co.uk/317calc.html">LM317 calculator</a> to find resistor values. The regulator does its best to maintain 1.25volts on the adjust pin (ADJ), and converts any excess voltage to heat. Not all packages are the same. Choose a part that can supply enough current for your project, but make sure the package has <a href="http://www.pic101.com/why_is_my_regulator_getting_hot.htm">sufficient heat dissipation properties</a> to burn off the difference between the input and output voltages.</p>
<p><span id="more-3523"></span></p>
<p>Here is a breakdown of the voltage regulators illustrated above:</p>
<p>IC1 <a href="http://www.mouser.com/Search/ProductDetail.aspx?qs=yAkVQ3mwCG1SXiMDnAr4Bg%3d%3d">LM317LZ</a> 200mA, TO-92 ($0.59)  &#8211; This is the smallest common LM317 voltage regulator. The part linked can supply 200mA, but 100mA is more common. The TO-92 package can get searing hot because it doesn&#8217;t dissipate much heat.</p>
<p>IC2 <a href="http://www.mouser.com/Search/ProductDetail.aspx?qs=swDD%252bF%252bps7c8uLyY%252b3mJJw%3d%3d">LM317T</a> 1.5amps, TO-220 ($0.64) &#8211; At 1.5amps, this regulator supplies enough power for most digital circuits. We prefer the surface-mount D2Pack version (IC4) because we don&#8217;t like to drill holes. The TO-220 package dissipates a ton of heat, and the metal tab will accommodate a heat sink if you want even more cooling. Use this package if you need maximum heat dissipation.</p>
<p>IC3 <a href="http://www.mouser.com/Search/ProductDetail.aspx?qs=JS6RUWRH9DWKuMPAAfpOMw%3d%3d">LM317MDCYR</a> 500mA, SOT-223 ($0.80) &#8211; This is our favorite LM317 package. 500mA is plenty of power for many projects, and the small SOT-223 package fits about anywhere.</p>
<p>IC4 <a href="http://www.mouser.com/Search/ProductDetail.aspx?qs=D1TrgBM0UaXEvjiszScJ1w%3d%3d">LM317D2T</a> 1.5amps, D2Pack ($0.83) &#8211; We design with the D2Pack regulator when a circuit uses more than 400mA of current. D2Pack is a surface-mount version of TO-220 that&#8217;s easy to solder.</p>
<p>Footprints for all LM317 packages are included in the default <a href="http://www.cadsoft.de">Cadsoft Eagle</a> <em>v-reg (voltage regulators)</em> part library.</p>
<p>Want to learn more about the LM317? <a href="http://www.instructables.com/id/The-Radioshack%2c-Adjustable%2c-Breadboard-Power-Suppl">Instructables</a>, [<a href="http://www.ladyada.net/library/equipt/diypsupp.html">ladyada</a>], and <a href="http://www.sparkfun.com/commerce/tutorial_info.php?tutorials_id=83">SparkFun Electronics</a> have detailed LM317 power supply tutorials.</p>
<br />Posted in classic hacks, misc hacks, parts  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/3523/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/3523/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/3523/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/3523/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/3523/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/3523/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/3523/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/3523/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/3523/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/3523/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/3523/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/3523/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/3523/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/3523/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=3523&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2008/09/22/parts-lm317-adjustable-voltage-regulator/feed/</wfw:commentRss>
		<slash:comments>28</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/lm317.jpg" medium="image">
			<media:title type="html">lm317</media:title>
		</media:content>
	</item>
	</channel>
</rss>
