<?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; microchip</title>
	<atom:link href="http://hackaday.com/tag/microchip/feed/" rel="self" type="application/rss+xml" />
	<link>http://hackaday.com</link>
	<description>Fresh hacks every day</description>
	<lastBuildDate>Fri, 10 Feb 2012 11:18:55 +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; microchip</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>Designing a Smarter RF transceiver</title>
		<link>http://hackaday.com/2012/02/08/designing-a-smarter-rf-transceiver/</link>
		<comments>http://hackaday.com/2012/02/08/designing-a-smarter-rf-transceiver/#comments</comments>
		<pubDate>Wed, 08 Feb 2012 20:59:59 +0000</pubDate>
		<dc:creator>Kevin Dady</dc:creator>
				<category><![CDATA[radio hacks]]></category>
		<category><![CDATA[atusb]]></category>
		<category><![CDATA[microchip]]></category>
		<category><![CDATA[mrf49xa]]></category>
		<category><![CDATA[RF]]></category>
		<category><![CDATA[transceiver]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=67046</guid>
		<description><![CDATA[Two  months ago we featured a transceiver based on the Microchip MRF49XA, and a lot of feedback was sent to [hpux735] requesting that some brains be added onto the system. [hpux735] decided that if he was going to do it, might as well go the distance and make a make a native USB transceiver. The [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=67046&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-67047" title="Untitled" src="http://hackadaycom.files.wordpress.com/2012/02/untitled5.jpg" alt="" width="470" height="240" /></p>
<p>Two  months ago we featured a <a href="http://hackaday.com/2010/12/09/designing-an-rf-transceiver/">transceiver based on the Microchip MRF49XA</a>, and a lot of feedback was sent to [hpux735] requesting that some brains be added onto the system. [hpux735] decided that if he was going to do it, might as well go the distance and make a make a <a href="http://alternet.us.com/?page_id=1494">native USB transceiver.</a></p>
<p>The prototype model is designed for use with the Atmel AT90USBKey, and uses the LUFA USB framework. The protocol and packet format was revised, and a <a href="http://en.wikipedia.org/wiki/Hamming_code">Hamming Code implementation</a> was built using look-up tables to give error control. Finally once the prototype was ready to go [hpux735] <a href="http://alternet.us.com/?p=1533">created some awesome little PCB&#8217;s </a>that contain the AVR, radio, antenna hookups, and blinky lights (no project is complete without blinky lights) are all ready to go when you are.</p>
<p>This project has come quite a long way, covers 3 blog pages, uses a fair bit of ribbon cable, but you just got to love when a plan comes together.</p>
<br />Filed under: <a href='http://hackaday.com/category/radio-hacks/'>radio hacks</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/67046/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/67046/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/67046/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/67046/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/67046/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/67046/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/67046/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/67046/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/67046/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/67046/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/67046/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/67046/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/67046/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/67046/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=67046&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2012/02/08/designing-a-smarter-rf-transceiver/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">osgeld</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2012/02/untitled5.jpg" medium="image">
			<media:title type="html">Untitled</media:title>
		</media:content>
	</item>
		<item>
		<title>Microchip puts up two $1000 prizes for USB and TCP/IP stacks!</title>
		<link>http://hackaday.com/2011/09/15/microchip-puts-up-two-1000-prizes-for-usb-and-tcpip-stacks/</link>
		<comments>http://hackaday.com/2011/09/15/microchip-puts-up-two-1000-prizes-for-usb-and-tcpip-stacks/#comments</comments>
		<pubDate>Thu, 15 Sep 2011 14:07:49 +0000</pubDate>
		<dc:creator>Jack Buffington</dc:creator>
				<category><![CDATA[Microcontrollers]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[contest]]></category>
		<category><![CDATA[microchip]]></category>
		<category><![CDATA[tcpip]]></category>
		<category><![CDATA[usb]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=55853</guid>
		<description><![CDATA[A couple of weeks ago we put up a post titled Addressing Microchip’s open source problem where we talked about some of their shortcomings as far as open source code goes, specifically the TCP/IP stack and the USB stack. The comments were predictably fairly negative. The interesting part here is that Microchip actually listened. If [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=55853&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-54441" title="microchip_call_for_open_source" src="http://hackadaycom.files.wordpress.com/2011/08/microchip_call_for_open_source1.jpg" alt="microchip_call_for_open_source" width="470" height="115" /></p>
<p>A couple of weeks ago we put up a post titled <a href="http://hackaday.com/2011/08/31/addressing-microchips-open-source-problem/">Addressing Microchip’s open source problem</a> where we talked about some of their shortcomings as far as open source code goes, specifically the TCP/IP stack and the USB stack. The comments were predictably fairly negative. The interesting part here is that Microchip actually listened. If you read through all of the comments, you will get a bit of an inside look at what is going on internally at Microchip. At the very end, [Marc] from Microchip left a couple of comments outlining a pair of prizes for independently ported stacks for TCP/IP and USB. Microchip can&#8217;t fully open the ones that they have because of legal reasons so they need the help of the development community and they are putting up $1000 for each one to prove that they are serious. If you follow <a href="http://www.microchip.com/stacks/">this link</a> you will arrive at a page outlining the rules for the contest.</p>
<p>The gauntlet has been dropped! Do you have chops to pull this off and earn yourself a cool $1000?</p>
<br />Filed under: <a href='http://hackaday.com/category/microcontrollers/'>Microcontrollers</a>, <a href='http://hackaday.com/category/news/'>news</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/55853/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/55853/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/55853/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/55853/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/55853/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/55853/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/55853/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/55853/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/55853/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/55853/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/55853/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/55853/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/55853/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/55853/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=55853&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2011/09/15/microchip-puts-up-two-1000-prizes-for-usb-and-tcpip-stacks/feed/</wfw:commentRss>
		<slash:comments>35</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">jackbuffington</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2011/08/microchip_call_for_open_source1.jpg" medium="image">
			<media:title type="html">microchip_call_for_open_source</media:title>
		</media:content>
	</item>
		<item>
		<title>Addressing Microchip&#8217;s open source problem</title>
		<link>http://hackaday.com/2011/08/31/addressing-microchips-open-source-problem/</link>
		<comments>http://hackaday.com/2011/08/31/addressing-microchips-open-source-problem/#comments</comments>
		<pubDate>Wed, 31 Aug 2011 11:00:48 +0000</pubDate>
		<dc:creator>Mike Nathan</dc:creator>
				<category><![CDATA[news]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[chipkit]]></category>
		<category><![CDATA[dangerous prototypes]]></category>
		<category><![CDATA[microchip]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[pic]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=54437</guid>
		<description><![CDATA[Hackaday alum and owner of Dangerous Prototypes [Ian Lesnet] recently wrote an editorial piece calling out Microchip on some of their less than friendly attitudes towards open source. [Ian] and his company use PIC microcontrollers extensively in their projects, and they have quite a high opinion of their products overall. The gripe that he has [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=54437&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-54441" title="microchip_call_for_open_source" src="http://hackadaycom.files.wordpress.com/2011/08/microchip_call_for_open_source1.jpg" alt="microchip_call_for_open_source" width="470" height="115" /></p>
<p>Hackaday alum and owner of Dangerous Prototypes [Ian Lesnet] <a href="http://dangerousprototypes.com/2011/08/30/editorial-our-friend-microchip-and-open-source/" target="_blank">recently wrote an editorial piece</a> calling out Microchip on some of their less than friendly attitudes towards open source.</p>
<p>[Ian] and his company use PIC microcontrollers extensively in their projects, and they have quite a high opinion of their products overall. The gripe that he has (and thinks you should have too) is regarding Microchip’s approach to open source.</p>
<p>You see, Microchip invested in the Arduino IDE and released the chipKIT, a 32-bit Arduino compatible development board, along with big promises of “playing nice” with the open source community. The problem, according to [Ian], is that while Microchip’s compilers are based on GCC, they “keep some special sauce locked up”, which means that certain parts of the chipKIT toolchain are not open. Many in the community, including [Ian] had high hopes for the chipKIT based on the successes seen by Amtel’s open source initiatives, but many things are still locked up behind closed licenses.</p>
<p>An example of this unfriendly attitude towards open source can be seen in Digilent’s recently released network shield. It supports Ethernet and USB features of the chipKIT MEGA, but the TCP/IP and USB stacks are completely closed source. Digilent pushed hard to get the ability to release open drivers for the board, but it was a battle they ultimately lost. This behavior creates roadblocks for seasoned developers of open source products such as Dangerous Prototypes, as well as the curious beginner, which is why [Ian] is making a point in bringing these issues to light.</p>
<p>[Ian] urges Microchip to give something significant back to the community they are tapping, a result which can only be achieved by speaking up. Be sure to check out his editorial, and if after reading it you have any interest in letting your voice be heard, drop Microchip a line and let them know that their one-way relationship with the open source community is something you would like see change.</p>
<br />Filed under: <a href='http://hackaday.com/category/news/'>news</a>, <a href='http://hackaday.com/category/rants/'>rants</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/54437/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/54437/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/54437/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/54437/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/54437/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/54437/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/54437/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/54437/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/54437/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/54437/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/54437/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/54437/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/54437/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/54437/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=54437&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2011/08/31/addressing-microchips-open-source-problem/feed/</wfw:commentRss>
		<slash:comments>74</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">mikenathanathackaday</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2011/08/microchip_call_for_open_source1.jpg" medium="image">
			<media:title type="html">microchip_call_for_open_source</media:title>
		</media:content>
	</item>
		<item>
		<title>Working with I2C port expanders</title>
		<link>http://hackaday.com/2011/06/07/working-with-i2c-port-expanders/</link>
		<comments>http://hackaday.com/2011/06/07/working-with-i2c-port-expanders/#comments</comments>
		<pubDate>Tue, 07 Jun 2011 14:08:37 +0000</pubDate>
		<dc:creator>Mike Szczys</dc:creator>
				<category><![CDATA[Microcontrollers]]></category>
		<category><![CDATA[i2c]]></category>
		<category><![CDATA[mcp23008]]></category>
		<category><![CDATA[microchip]]></category>
		<category><![CDATA[port expander]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=44829</guid>
		<description><![CDATA[There are times when you don&#8217;t need much processing power for your project but you do need a lot of I/O pins. It often doesn&#8217;t make economic sense to choose a larger microcontroller just to get extra pins so the answer is to use a port expander chip. [Raendra] posted a guide for using one [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=44829&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-large wp-image-44830" title="i2c-port-expander-MCP23008" src="http://hackadaycom.files.wordpress.com/2011/06/i2c-port-expander-mcp23008-e1307388693552.jpg?w=450&#038;h=307" alt="" width="450" height="307" /></p>
<p>There are times when you don&#8217;t need much processing power for your project but you do need a lot of I/O pins. It often doesn&#8217;t make economic sense to choose a larger microcontroller just to get extra pins so the answer is to use a port expander chip. [Raendra] posted <a href="http://embedded-lab.com/blog/?p=2834">a guide for using one of these chips</a>, it&#8217;s a Microchip MCP23008 chip that uses the I2C protocol for communications.</p>
<p>You are probably already familiar with <a href="http://hackaday.com/2010/05/31/beginner-concepts-cascading-shift-registers/">using shift registers like the 595 series</a> for port expansion. There can be benefits to using an I2C device instead. One of them comes when using multiple port expander chips. With cascading shift registers you must always shift in the data for the entire chain of chips. But I2C devices are individually addressable, so you only need to push data over the I2C bus for the chips that need to be changed, the others will remain unaffected. It is especially easy to use these if you already have another I2C device in your project design as the addition only requires the connection of the SDA and SCL lines. Keep them in mind for future undertakings.</p>
<br />Filed under: <a href='http://hackaday.com/category/microcontrollers/'>Microcontrollers</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/44829/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/44829/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/44829/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/44829/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/44829/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/44829/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/44829/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/44829/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/44829/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/44829/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/44829/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/44829/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/44829/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/44829/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=44829&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2011/06/07/working-with-i2c-port-expanders/feed/</wfw:commentRss>
		<slash:comments>3</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/2011/06/i2c-port-expander-mcp23008-e1307388693552.jpg?w=450" medium="image">
			<media:title type="html">i2c-port-expander-MCP23008</media:title>
		</media:content>
	</item>
		<item>
		<title>BAMF2011: chipKIT is Arduino to the power of 32</title>
		<link>http://hackaday.com/2011/05/21/bamf2011-chipkit-is-arduino-to-the-power-of-32/</link>
		<comments>http://hackaday.com/2011/05/21/bamf2011-chipkit-is-arduino-to-the-power-of-32/#comments</comments>
		<pubDate>Sat, 21 May 2011 22:00:58 +0000</pubDate>
		<dc:creator>Phil Burgess</dc:creator>
				<category><![CDATA[arduino hacks]]></category>
		<category><![CDATA[Microcontrollers]]></category>
		<category><![CDATA[2011]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[AVR]]></category>
		<category><![CDATA[bamf]]></category>
		<category><![CDATA[digilent]]></category>
		<category><![CDATA[ide]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[maker faire]]></category>
		<category><![CDATA[makerfaire]]></category>
		<category><![CDATA[Makers]]></category>
		<category><![CDATA[microchip]]></category>
		<category><![CDATA[pic]]></category>
		<category><![CDATA[pic32]]></category>
		<category><![CDATA[san mateo]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=43324</guid>
		<description><![CDATA[If you’ve been hungry for more power for your microcontroller projects, but reluctant to dump your investment in Arduino shields or the libraries and community knowledge that go with them all, Digilent has you covered. Their new chipKIT boards are built around the Microchip PIC32 MCU…a powerful 32-bit chip that until recently was left out [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=43324&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-43325" title="chipkit1" src="http://hackadaycom.files.wordpress.com/2011/05/chipkit1.jpg" alt="" width="470" height="270" /></p>
<p>If you’ve been hungry for more power for your microcontroller projects, but reluctant to dump your investment in Arduino shields or the libraries and community knowledge that go with them all, Digilent has you covered. Their new <a href="http://www.digilentinc.com/Products/Catalog.cfm?NavPath=2,892&amp;Cat=18">chipKIT boards</a> are built around the Microchip PIC32 MCU…a powerful 32-bit chip that until recently was left out of the cross-platform scene. A majority of code and quite a number of Arduino shields will work “out of the box” with the chipKIT, and the familiar development tools are available for all three major operating systems: Windows, Mac and Linux.</p>
<p>We <a href="http://hackaday.com/2011/05/12/chipkit-max32-an-arduino-mega-upgrade-with-a-pic32-under-the-hood/">first mentioned these a couple weeks ago</a>, but the software was unavailable at the time. Seeing the development tools in action was quite unexpected…</p>
<p><span id="more-43324"></span><img class="alignnone size-full wp-image-43327" title="chipkit2" src="http://hackadaycom.files.wordpress.com/2011/05/chipkit21.jpg" alt="" width="470" height="375" /></p>
<p>What&#8217;s really fascinating with chipKIT is that the workflow is <em>exactly</em> Arduino-like. The serial bootloader works with <a href="http://hackaday.com/2010/10/25/avr-programming-02-the-hardware/">avrdude</a>, and you can program both “real” Arduinos and Digilent’s 32-bit work-alikes using the exact same IDE; there’s no need to run two different IDEs for two different boards, as has been the case with Leaf Labs’ 32-bit <a href="http://hackaday.com/2010/05/24/maple-r3-now-shipping/">Maple</a>. As a demonstration, they compiled and ran code for an Arduino Mega with SparkFun LCD shield…then popped the shield off and placed it on the Max32, selected the 32-bit board in the same IDE, and repeated the process. The exact code ran on the new board/shield combo, with stunning performance — all the standard Arduino libraries have been implemented natively for the PIC32; this is not emulation.</p>
<p>Because Digilent didn’t just adapt the Arduino IDE to their one specific board, but rather developed a system by which the IDE can be extended to new hardware, it’s their hope that their work (not an official Arduino project) might be rolled back into the mainline code, and that other developers might jump on the bandwagon to provide Arduino IDE support for their own boards, whether they be based on AVR, PIC32 or a <a href="http://hackaday.com/2011/05/06/digital-audio-on-the-parallax-propeller/">completely different kind of microcontroller altogether</a>. The groundwork has been laid.</p>
<p>The chipKIT comes in two versions: Uno32 and Max32, similar in form factor to the Arduino Uno and Mega 2560, respectively. These can be ordered directly from <a href="http://www.digilentinc.com/Products/Catalog.cfm?NavPath=2,892&amp;Cat=18">Digilent’s web site</a>, and the IDE is freely <a href="https://github.com/chipKIT32/chipKIT32-MAX/downloads">downloadable</a> as of today. We have evaluation hardware in-hand and expect to be providing a proper review in the near future.</p>
<br />Filed under: <a href='http://hackaday.com/category/arduino-hacks/'>arduino hacks</a>, <a href='http://hackaday.com/category/microcontrollers/'>Microcontrollers</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/43324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/43324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/43324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/43324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/43324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/43324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/43324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/43324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/43324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/43324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/43324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/43324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/43324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/43324/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=43324&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2011/05/21/bamf2011-chipkit-is-arduino-to-the-power-of-32/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">philburgess</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2011/05/chipkit1.jpg" medium="image">
			<media:title type="html">chipkit1</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2011/05/chipkit21.jpg" medium="image">
			<media:title type="html">chipkit2</media:title>
		</media:content>
	</item>
		<item>
		<title>What Development Board to Use? (Part Two)</title>
		<link>http://hackaday.com/2011/02/14/what-development-board-to-use-part-two/</link>
		<comments>http://hackaday.com/2011/02/14/what-development-board-to-use-part-two/#comments</comments>
		<pubDate>Mon, 14 Feb 2011 22:03:28 +0000</pubDate>
		<dc:creator>James Munns</dc:creator>
				<category><![CDATA[parts]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[arm]]></category>
		<category><![CDATA[board]]></category>
		<category><![CDATA[cpld]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[fpga]]></category>
		<category><![CDATA[Leaf]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[maple]]></category>
		<category><![CDATA[mbed]]></category>
		<category><![CDATA[microchip]]></category>
		<category><![CDATA[nxp]]></category>
		<category><![CDATA[parallax]]></category>
		<category><![CDATA[pic]]></category>
		<category><![CDATA[propeller]]></category>
		<category><![CDATA[Renesas]]></category>
		<category><![CDATA[router]]></category>
		<category><![CDATA[RXN]]></category>
		<category><![CDATA[Teensy]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=34682</guid>
		<description><![CDATA[We asked for responses to our last Development Board post, and you all followed through. We got comments, forum posts, and emails filled with your opinions. Like last time, there is no way we could cover every board, so here are a few more that seemed to be popular crowd choices. Feel free to keep [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=34682&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-34940" title="Prime2" src="http://hackadaycom.files.wordpress.com/2011/02/prime2.png" alt="" width="470" height="245" /></p>
<p>We asked for responses to our last Development Board post, and you all followed through. We got comments, forum posts, and emails filled with your opinions. Like <a href="http://hackaday.com/2011/02/01/what-development-board-to-use/">last time</a>, there is no way we could cover every board, so here are a few more that seemed to be popular crowd choices. Feel free to keep sending us your favorite boards, we may end up featuring them at a later date!</p>
<p><span id="more-34682"></span><strong>The Popular:</strong></p>
<p><img class="alignnone size-full wp-image-34941" title="Propeller Platform USB_01" src="http://hackadaycom.files.wordpress.com/2011/02/propeller-platform-usb_01.jpg" alt="" width="470" height="100" /></p>
<p><em><strong>Parallax Propeller: </strong></em>We heard the loudest cries from the Parallax fans out there. The Propeller is a unique chip, in that it contains 8 cores called cogs which each take turns executing separate code. This design allows for disregarding of interrupt style programming in favor of assigning each core a specific task. There are a number of boards available, including <a href="http://hackaday.com/2010/10/19/propeller-platform-prototyping-board-gets-an-upgrade/">Gadget Gangster&#8217;s platform</a> as well as boards from <a href="http://www.parallax.com/Store/Microcontrollers/PropellerAccessories/tabid/786/ProductID/423/List/0/Default.aspx?SortField=ProductName,ProductName">Parallax</a>. Thinking in terms of 8 cores rather than one may present a learning curve to some embedded programmers, though there are a number of code examples to pull from online to get beginners on their feet.</p>
<p><img class="alignnone size-full wp-image-34942" title="teensypp_pins" src="http://hackadaycom.files.wordpress.com/2011/02/teensypp_pins.jpg" alt="" width="470" height="100" /></p>
<p><em><strong>Atmel&#8217;s AT90USB and AT32U4 based boards: </strong></em>Atmel&#8217;s AT90USB and ATmega32U4 chips are common on low part count boards like the <a href="http://www.pjrc.com/teensy/">Teensy/Teensy++</a> because of their built-in hardware USB support, which means no FTDI or equivalent chip required. These development boards tend to be low-cost, easy to implement on a breadboard, and in cases such as the Teensy, are Arduino IDE <a href="http://www.pjrc.com/teensy/teensyduino.html">compatible</a>. The chips these boards are based on are also an excellent place for those trying their hand out at microcontroller circuit design for the first time because of their simplicity and low hardware requirements.</p>
<p><img class="alignnone size-full wp-image-34943" title="PIC32MX460512L" src="http://hackadaycom.files.wordpress.com/2011/02/pic32mx460512l.jpg" alt="" width="470" height="100" /></p>
<p><strong><em>Microchip&#8217;s PIC line: </em></strong>Somehow, we managed to leave the entire Microchip crowd in the cold last time. A popular set of microcontrollers with a similar market segment to Atmel&#8217;s chips, these chips vary from the low-end and low-cost 8-bit series to the higher end 16 and 32-bit models. We received a <a href="http://www.microchipdirect.com/productsearch.aspx?Keywords=DM164127">go﻿﻿od</a> <a href="http://www.mikroe.com/eng/products/view/318/pic32mx4-multimedia-board/#mmb_onboard">number</a> <a href="http://www.etteam.com/product2009/ET-PIC/ET-PIC32MX460F512L.html">of</a> <a href="http://www.mikroe.com/">development</a> <a href="http://www.sparkfun.com/products/9645">board</a> <a href="http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;nodeId=1406&amp;dDocName=en538340">recommendations</a>, all ranging in price, features, and ease of use. We&#8217;ll rely on comments and forum posts to help convince you what specific model to try.</p>
<p>[edit: Added the PicKit3 as per popular request]</p>
<p><strong></strong><strong>The Powerful:</strong></p>
<p><strong><img class="alignnone size-full wp-image-34944" title="mbed_1" src="http://hackadaycom.files.wordpress.com/2011/02/mbed_1.jpg" alt="" width="470" height="100" /><br />
</strong></p>
<p><em><strong>mbed: </strong></em>Possibly one of the most popular hobby development boards for ARM&#8217;s Cortex-M3 chip, the mbed features a similar footprint to the Teensy, but with a huge jump forward in power. The mbed includes hardware for a number of peripherals, including support for ethernet with the addition of an RJ-45 port. The major difference between the mbed and other similar boards is the entirely web-based IDE. We have <a href="http://hackaday.com/2009/11/21/review-mbed-nxp-lpc1768-microcontroller/">previously reviewed</a> the <a href="http://en.wikipedia.org/wiki/Mbed_microcontroller">mbed</a>, so for more details be sure to check it out.</p>
<p><img class="alignnone size-full wp-image-34945" title="61436_fig1" src="http://hackadaycom.files.wordpress.com/2011/02/61436_fig1.jpg" alt="" width="470" height="100" /></p>
<p><strong></strong><strong><em>Renesas&#8217; RX62N RDK: </em></strong>Whenever a company <a href="http://hackaday.com/2010/11/14/renesas-rx-design-contest-110k-of-cash-and-prizes/">gives away</a> development boards for free, the community often jumps on the offer. Rather than the normal free barebones boards though, the RDK has a good number of on board peripherals, including an Ethernet port as well as a 3 axis accelerometer. Unfortunately you can&#8217;t get one for free anymore (at least not this contest), but from all we have heard from our readers, it may be worth <a href="http://am.renesas.com/products/tools/introductory_evaluation_tools/renesas_demo_kits/yrdkrx62n/yrdkrx62n.jsp">investing in</a> anyway.</p>
<p><img class="alignnone size-full wp-image-34946" title="4613181199_33a31ca4ab_b" src="http://hackadaycom.files.wordpress.com/2011/02/4613181199_33a31ca4ab_b.jpg" alt="" width="470" height="100" /></p>
<p><em><strong>The Maple: </strong></em>The <a href="http://hackaday.com/2010/05/24/maple-r3-now-shipping/">Maple</a> from LeafLabs is an excellent example of the effect open hardware tools such as the Arduino have had on the hobbyist environment. Featuring an ARM Cortex-M3, the Maple has plenty of processing power and also can brag that it has the same header layout as the Arduino. This means that almost all commercially available Arduino shields will work on the Maple, a major selling point for anyone who has invested into a well stocked Arduino setup but needs an injection of performance.</p>
<p><strong>Bonus Points:</strong></p>
<p><strong><img class="alignnone size-full wp-image-34947" title="wrt54ghr5" src="http://hackadaycom.files.wordpress.com/2011/02/wrt54ghr5.png" alt="" width="470" height="100" /><br />
</strong></p>
<p><strong></strong><em><strong>OpenWRT based routers: </strong></em>Often, projects need to be networked either by wire or wirelessly to operate as desired. Rather than buying a high-end development board with ethernet or Wi-Fi built-in, many readers suggested buying (or salvaging) any one of a number of low-cost wireless routers, and installing a custom linux based firmware on them. These boards often tend to have UARTs or USB ports originally meant for debugging available for expansion with sensors or other low-end microcontrollers. A hack in the true sense of the word, we applaud this sort of creativity. Some popular firmwares to check out would include <a href="http://www.dd-wrt.com/site/index">DD-WRT</a>, <a href="http://openwrt.org/">OpenWRT</a>, and the <a href="http://www.polarcloud.com/tomato">Tomato firmware</a>. Be sure to make sure support exists for your device before you go buying anything though.</p>
<p><img class="alignnone size-full wp-image-34948" title="DE2_1280" src="http://hackadaycom.files.wordpress.com/2011/02/de2_1280.jpg" alt="" width="470" height="100" /></p>
<p><em><strong>FPGA boards: </strong></em>When we set out to cover development boards, we had microcontrollers in mind. However when it comes to signal processing, custom high-speed logic, or flexibility, FPGAs are an excellent choice. The two major players for hobbyists these days are Xilinx with their <a href="http://www.xilinx.com/onlinestore/s6_boards.htm">Spartan</a> line, and Altera with their <a href="http://www.altera.com/education/univ/materials/boards/de2/unv-de2-board.html">Cyclone</a> line. Both companies offer their IDE for free<strong>, </strong>and it comes down to personal preference when choosing which way to go. Both companies also support SoC designs to implement virtual microcontrollers on the FPGA, which adds an additional layer of flexibility for any hobbyist or engineer. Chances are, most hobbyists will not need the performance of cutting edge FPGAs (or <a href="http://en.wikipedia.org/wiki/Complex_programmable_logic_device">CPLD</a>s), so keep an eye out for older development boards on sale, or development boards made by third parties.</p>
<p><img class="alignnone size-full wp-image-34949" title="breadboard_atmel_attiny13.preview" src="http://hackadaycom.files.wordpress.com/2011/02/breadboard_atmel_attiny13-preview.jpg" alt="" width="470" height="100" /></p>
<p><em><strong>Build your own: </strong></em>Although it may appear as a sort of &#8220;Get off my lawn&#8221; answer to our question, there is a lot to be said about building a development board from scratch. These days, many 8-bit or 32-bit microcontrollers require few if any external components to run in a basic mode, and can be combined with a JTAG or FTDI cable for programming and communication. There are countless tutorials on using perf-board or <a href="http://hackaday.com/2008/07/28/how-to-etch-a-single-sided-pcb/">etching a board</a> to make a custom circuit, and the experience is invaluable for breaking away from high cost development boards in simple projects<strong>.</strong></p>
<br />Filed under: <a href='http://hackaday.com/category/parts/'>parts</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/34682/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/34682/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/34682/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/34682/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/34682/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/34682/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/34682/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/34682/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/34682/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/34682/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/34682/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/34682/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/34682/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/34682/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=34682&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2011/02/14/what-development-board-to-use-part-two/feed/</wfw:commentRss>
		<slash:comments>42</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">jahmez</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2011/02/prime2.png" medium="image">
			<media:title type="html">Prime2</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2011/02/propeller-platform-usb_01.jpg" medium="image">
			<media:title type="html">Propeller Platform USB_01</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2011/02/teensypp_pins.jpg" medium="image">
			<media:title type="html">teensypp_pins</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2011/02/pic32mx460512l.jpg" medium="image">
			<media:title type="html">PIC32MX460512L</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2011/02/mbed_1.jpg" medium="image">
			<media:title type="html">mbed_1</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2011/02/61436_fig1.jpg" medium="image">
			<media:title type="html">61436_fig1</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2011/02/4613181199_33a31ca4ab_b.jpg" medium="image">
			<media:title type="html">4613181199_33a31ca4ab_b</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2011/02/wrt54ghr5.png" medium="image">
			<media:title type="html">wrt54ghr5</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2011/02/de2_1280.jpg" medium="image">
			<media:title type="html">DE2_1280</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2011/02/breadboard_atmel_attiny13-preview.jpg" medium="image">
			<media:title type="html">breadboard_atmel_attiny13.preview</media:title>
		</media:content>
	</item>
		<item>
		<title>MCP2200 USB to serial chip hacked to do your bidding</title>
		<link>http://hackaday.com/2011/01/18/mcp2200-usb-to-serial-chip-hacked-to-do-your-bidding/</link>
		<comments>http://hackaday.com/2011/01/18/mcp2200-usb-to-serial-chip-hacked-to-do-your-bidding/#comments</comments>
		<pubDate>Tue, 18 Jan 2011 21:00:19 +0000</pubDate>
		<dc:creator>Mike Szczys</dc:creator>
				<category><![CDATA[Microcontrollers]]></category>
		<category><![CDATA[18f14k50]]></category>
		<category><![CDATA[mcp2200]]></category>
		<category><![CDATA[microchip]]></category>
		<category><![CDATA[pic]]></category>
		<category><![CDATA[pickit3]]></category>
		<category><![CDATA[usb]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=33100</guid>
		<description><![CDATA[Mircrochip has a new USB to Serial converter available called the MCP2200. [Sjaak] suspected that it may have been made from an existing 20-pin PIC and found that reading the device signature with the PICKIT3 shows that the chip is an 18F14K50. Most likely this is running Microchip&#8217;s USB stack but it&#8217;s hard to tell [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=33100&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-33104" title="mcp2200-hacking" src="http://hackadaycom.files.wordpress.com/2011/01/mcp2200-hacking-e1295367507894.jpg" alt="" width="470" height="352" /></p>
<p>Mircrochip has a new USB to Serial converter available called the MCP2200. [Sjaak] suspected that it may have been made from an existing 20-pin PIC and found that reading the device signature with the PICKIT3 shows that the chip is an 18F14K50. Most likely this is running Microchip&#8217;s USB stack but it&#8217;s hard to tell because chip is code-protected, reading back all zeros. So <a href="http://dangerousprototypes.com/2011/01/18/hack-open-source-usb-stack-on-mcp2200/">he set out to write some replacement firmware</a> which would provide the same functionality and give you access to the rest of the chip&#8217;s features.</p>
<p>There were some speed bumps along the way. The first one is that Microchip&#8217;s licensing for their USB stack won&#8217;t allow you to open source your firmware. That&#8217;s okay, it seems there is already a USB stack that can be ported which doesn&#8217;t have this restriction. The second wrinkle in the plan is that [Sjaak's] code doesn&#8217;t come with a VID/PID pair that you can use like V-USB does for AVR chips. But that doesn&#8217;t diminish the accomplishment of getting the device to work by echoing back characters it receives. Full USB to serial support with the replacement firmware is on the way.</p>
<p>[Thanks Chris]</p>
<br />Filed under: <a href='http://hackaday.com/category/microcontrollers/'>Microcontrollers</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/33100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/33100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/33100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/33100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/33100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/33100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/33100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/33100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/33100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/33100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/33100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/33100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/33100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/33100/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=33100&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2011/01/18/mcp2200-usb-to-serial-chip-hacked-to-do-your-bidding/feed/</wfw:commentRss>
		<slash:comments>24</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/2011/01/mcp2200-hacking-e1295367507894.jpg" medium="image">
			<media:title type="html">mcp2200-hacking</media:title>
		</media:content>
	</item>
		<item>
		<title>Designing an RF transceiver</title>
		<link>http://hackaday.com/2010/12/09/designing-an-rf-transceiver/</link>
		<comments>http://hackaday.com/2010/12/09/designing-an-rf-transceiver/#comments</comments>
		<pubDate>Thu, 09 Dec 2010 18:18:53 +0000</pubDate>
		<dc:creator>Mike Szczys</dc:creator>
				<category><![CDATA[radio hacks]]></category>
		<category><![CDATA[microchip]]></category>
		<category><![CDATA[mrf49xa]]></category>
		<category><![CDATA[RF]]></category>
		<category><![CDATA[transceiver]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=31531</guid>
		<description><![CDATA[[William Dillon] is finishing up his degree. His final project as a student was to design an RF transceiver. He decided to work with the Microchip MRF49XA, which runs around $3 but will cost you $20 if you want it in a ready-to-use module. He didn&#8217;t find a lot of info on the Internet about communicating with [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=31531&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-31532" title="designing-an-RF-transceiver" src="http://hackadaycom.files.wordpress.com/2010/12/designing-an-rf-transceiver-e1291917176388.jpg" alt="" width="470" height="301" /></p>
<p>[William Dillon] is finishing up his degree. His final project as a student was to design an RF transceiver. He decided to work with the Microchip MRF49XA, which runs around $3 but will cost you $20 if you want it in a ready-to-use module. He didn&#8217;t find a lot of info on the Internet about communicating with these chips so <a href="http://alternet.us.com/?p=1036">he&#8217;s shared his design, code, and board files</a>. If you&#8217;re ever wanted to delve into RF design this is a good primer. [William] talks about building around the example circuit from the datasheet but also includes a discussion of the calculations he made in working with the 434 MHz band, and an AVR-based library for using his module.</p>
<br />Filed under: <a href='http://hackaday.com/category/radio-hacks/'>radio hacks</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/31531/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/31531/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/31531/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/31531/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/31531/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/31531/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/31531/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/31531/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/31531/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/31531/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/31531/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/31531/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/31531/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/31531/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=31531&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2010/12/09/designing-an-rf-transceiver/feed/</wfw:commentRss>
		<slash:comments>13</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/2010/12/designing-an-rf-transceiver-e1291917176388.jpg" medium="image">
			<media:title type="html">designing-an-RF-transceiver</media:title>
		</media:content>
	</item>
		<item>
		<title>Report from ESC Silicon Valley 2010</title>
		<link>http://hackaday.com/2010/04/28/report-from-esc-silicon-valley-2010/</link>
		<comments>http://hackaday.com/2010/04/28/report-from-esc-silicon-valley-2010/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 16:00:55 +0000</pubDate>
		<dc:creator>Phil Burgess</dc:creator>
				<category><![CDATA[android hacks]]></category>
		<category><![CDATA[classic hacks]]></category>
		<category><![CDATA[cons]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[iphone hacks]]></category>
		<category><![CDATA[ipod hacks]]></category>
		<category><![CDATA[led hacks]]></category>
		<category><![CDATA[linux hacks]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[robots hacks]]></category>
		<category><![CDATA[arm]]></category>
		<category><![CDATA[beagleboard]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[convention]]></category>
		<category><![CDATA[embedded]]></category>
		<category><![CDATA[enigma]]></category>
		<category><![CDATA[esc]]></category>
		<category><![CDATA[hexapod]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[ipod]]></category>
		<category><![CDATA[led]]></category>
		<category><![CDATA[lego]]></category>
		<category><![CDATA[mbed]]></category>
		<category><![CDATA[microchip]]></category>
		<category><![CDATA[nxp]]></category>
		<category><![CDATA[nxt]]></category>
		<category><![CDATA[robot]]></category>
		<category><![CDATA[san jose]]></category>
		<category><![CDATA[silicon valley]]></category>
		<category><![CDATA[stm]]></category>
		<category><![CDATA[teardown]]></category>
		<category><![CDATA[ti]]></category>
		<category><![CDATA[trade show]]></category>
		<category><![CDATA[xbee]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=23547</guid>
		<description><![CDATA[Ah, the heady aroma of damp engineers! It’s raining in Silicon Valley, where the 2010 Embedded Systems Conference is getting off the ground at San Jose’s McEnery Convention Center. ESC is primarily an industry event. In the past there’s been some lighter fare such as Parallax, Inc. representing the hobbyist market and giant robot giraffes [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=23547&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:center;"><img class="size-full wp-image-23548 aligncenter" title="ESC-McEnery" src="http://hackadaycom.files.wordpress.com/2010/04/esc-mcenery.jpg" alt="" width="470" height="350" /></p>
<p>Ah, the heady aroma of damp engineers! It’s raining in Silicon Valley, where the <a href="http://esc-sv09.techinsightsevents.com/">2010 Embedded Systems Conference</a> is getting off the ground at San Jose’s McEnery Convention Center.</p>
<p>ESC is primarily an industry event. In the past there’s been some lighter fare such as <a href="http://hackaday.com/2010/04/05/internet-radio-player-wins-propeller-design-contest/">Parallax, Inc.</a> representing the hobbyist market and <a href="http://hackaday.com/2010/04/13/giant-robotic-giraffe-getting-a-giant-robotic-facelift/">giant robot giraffes</a> walking the expo. With the economy now turned sour, the show floor lately is just a bit smaller and the focus more businesslike. Still, nestled between components intended to sell by the millions and oscilloscopes costing more than some cars, one can still find a few nifty technology products well within the budget of most Hack a Day readers, along with a few good classic hacks and tech demos…</p>
<p><span id="more-23547"></span></p>
<div id="attachment_23549" class="wp-caption aligncenter" style="width: 220px"><img class="size-full wp-image-23549 " title="ESC-RFID" src="http://hackadaycom.files.wordpress.com/2010/04/esc-rfid.jpg" alt="" width="210" height="240" /><p class="wp-caption-text">(Is that a promise or a threat?)</p></div>
<p>First order of business was to follow up on a couple of products we’ve covered in the recent past&#8230;</p>
<p>We <a href="http://hackaday.com/2009/11/21/review-mbed-nxp-lpc1768-microcontroller/">reviewed NXP’s mbed prototyping platform</a> in November of last year. While there’s no stunning new revision, the good news is that the <a href="http://hackaday.com/2010/03/28/guitar-echo-pedal-built-with-mbed/">mbed</a> community is going strong and economies of scale have made it possible to trim the starter kit price from $99 back down to the original early adopter cost of $59.</p>
<p><img class="aligncenter size-full wp-image-23551" title="ESC-mbed-twitter" src="http://hackadaycom.files.wordpress.com/2010/04/esc-mbed-twitter.jpg" alt="" width="450" height="340" /></p>
<p>Additionally, they’ve thrown together a project in just a few days to demonstrate the prototyping ease of the mbed platform. Reading like a checklist of Hack a Day clichés, the demo brings together <a href="http://hackaday.com/2010/04/20/twittering-pub-hanging/">Twitter</a>, the Logo programming language, live web streaming, <a href="http://hackaday.com/2010/01/04/step-a-sketch/">servos and an Etch-a-Sketch</a>. You can read more on the <a href="http://mbed.org/blog/entry/131/">mbed blog</a>, or <a href="http://mbed.org/etch-a-sketch/">watch the live stream</a> and participate during ESC show hours.</p>
<p><img class="aligncenter size-full wp-image-23552" title="ESC-mbed-breakout" src="http://hackadaycom.files.wordpress.com/2010/04/esc-mbed-breakout.jpg" alt="" width="470" height="320" /></p>
<p>We also liked this little breakout board which adds the most essential interfaces to mbed: <a href="http://hackaday.com/2008/10/06/parts-microsd-memory-card-holders/">MicroSD</a>, Ethernet and USB host &amp; client. This was something quickly made for an mbed workshop, and while there are no plans to officially productize it, we’re told the unpopulated board might be available through <a href="http://hackaday.com/2010/03/01/batchpcb-pays-you/">SparkFun’s BatchPCB service</a> in the future.</p>
<p>Many readers were put off by the web-centric development approach used by mbed, as well as the lack of a debugger. Another NXP entry-level evaluation product called the <a href="http://ics.nxp.com/lpcxpresso/">LPCXpresso</a> provides an affordable ARM development kit from a more traditional angle.</p>
<div><span style="font-family:Helvetica, 'Times New Roman', 'Bitstream Charter', Times, serif;font-size:small;"><img class="aligncenter size-full wp-image-23553" title="ESC-LPCXpresso" src="http://hackadaycom.files.wordpress.com/2010/04/esc-lpcxpresso.jpg" alt="" width="470" height="120" /></span></div>
<p>The $30 LPCXpresso boards are available in Cortex-M0 or -M3 varieties and include an integrated JTAG debugger. The downloadable Windows development environment is based around the Eclipse IDE and GNU toolchain. With headers installed the LPCXpresso is <a href="http://hackaday.com/2010/04/06/on-the-go-prototyping/">breadboard</a>-friendly and in fact shares the same pinout as mbed, so there&#8217;s an existing ecosystem of hardware to work from.</p>
<p>STMicroelectronics’ STM8S-Discovery made a huge impact <a href="http://hackaday.com/2009/11/23/stm8s-discovery-microcontrollers-reach-a-new-low/">when we mentioned this $7 kit in November</a>, clearing out distributors in a matter of days. At ESC, ST was showing their new ultra-low-power 8- and 32-bit MCUs with demos powered by a cactus (a variation on the classic <a href="http://hackaday.com/2009/04/05/simple-elegant-lemon-battery/">lemon battery</a>), a cup of warm water sitting atop a <a href="http://hackaday.com/2010/01/05/generate-electricity-with-a-candle/">Peltier junction</a>, and a modest induction charger. (What, no <a href="http://hackaday.com/2009/05/08/fart-intensity-detector/">wind power</a>?)</p>
<p><img class="aligncenter size-full wp-image-23555" title="ESC-STM8-1" src="http://hackadaycom.files.wordpress.com/2010/04/esc-stm8-1.jpg" alt="" width="470" height="300" /></p>
<p>A new version on the STM8S-Discovery based on the new lower-power chip should be available within a couple of months, and is expected to be similarly affordable.</p>
<div id="attachment_23556" class="wp-caption aligncenter" style="width: 480px"><img class="size-full wp-image-23556  " title="ESC-STM8-2" src="http://hackadaycom.files.wordpress.com/2010/04/esc-stm8-2.jpg" alt="" width="470" height="340" /><p class="wp-caption-text">(Left: the original STM8S kit that created the ruckus. Right: the forthcoming STM8L kit.)</p></div>
<p>At the <a href="http://hackaday.com/2009/11/25/ti-sports-watch-for-hacking/">Texas Instruments</a> booth, the BeagleBoard XM was being demonstrated, which improves upon <a href="http://hackaday.com/2009/10/30/xbmc-running-on-arm/">its predecessor</a> in nearly every regard.</p>
<p><img class="aligncenter size-full wp-image-23557" title="ESC-BeagleBoard" src="http://hackadaycom.files.wordpress.com/2010/04/esc-beagleboard.jpg" alt="" width="470" height="330" /></p>
<p>We’re told BeagleBoard XM stands for “extra MIPS,” “extra memory,” (and “extra money,” they joked). The XM does not replace the original BeagleBoard, but will be sold alongside it at a premium price of $179 when it ships in June. The XM includes a faster processor (1 GHz), more RAM (512 MB, and a 1GB model may be forthcoming), Ethernet, more USB ports and improved power protection. The NAND flash is gone, replaced by a MicroSD slot on the underside. The new board is slightly larger but retains the same mounting holes, so it may fit as an upgrade into some existing BeagleBoard projects.</p>
<p><a href="http://hackaday.com/2010/04/08/pic-usb-host-shortcuts/">Microchip’s</a> iPod/iPhone accessory development boards <a href="http://hackaday.com/2010/03/29/microchips-pic-development-for-iphone-and-ipod/">that we mentioned last month</a> were on display. Unfortunately it appears one must be signed on with Apple’s “Made for iPod” developer program before these kits can even be <em>ordered</em> from Microchip, which really puts a damper on the fun for anyone who might just want to <a href="http://hackaday.com/2010/04/01/arduino-ipod-library-work-continues/">tinker</a>.</p>
<p><img class="aligncenter size-full wp-image-23558" title="ESC-Microchip-iPod" src="http://hackadaycom.files.wordpress.com/2010/04/esc-microchip-ipod.jpg" alt="" width="320" height="320" /></p>
<p>Drifting further from product specifics and more into hacks and eye candy…</p>
<p><a href="http://hackaday.com/2009/11/27/four-tear-downs-for-your-friday-afternoon/">Product teardowns</a> have become a staple of tech culture. “<a href="http://hackaday.com/2010/04/03/ipad-teardown/">Zero-day</a>” and live blog teardowns of new products are particularly exciting. ESC’s gone one better, making a show of ripping into a product (if a rather esoteric one) <em>months</em> before its official release: a high-end Zircon AC wire detector built around a Microchip dsPIC and a bevy of e-field sensors. It’s like engineer pr0n!</p>
<p><img class="aligncenter size-full wp-image-23562" title="ESC-teardown" src="http://hackadaycom.files.wordpress.com/2010/04/esc-teardown.jpg" alt="" width="420" height="320" /></p>
<p>National Instruments certainly had one of the most entertaining booths at the event. Rather than passively showing dry PowerPoint summaries and monitors running LabVIEW (their graphical programming environment for engineers and scientists), they instead presented physical demos and projects making use of the software. Some serious, others not-so-serious. <em>Hacks!</em></p>
<p><img class="aligncenter size-full wp-image-23563" title="ESC-NI-Waterloo" src="http://hackadaycom.files.wordpress.com/2010/04/esc-ni-waterloo.jpg" alt="" width="450" height="320" /></p>
<p>Remember Waterloo Labs’ <a href="http://hackaday.com/2009/11/10/remotely-control-your-crappy-car-dangerously/">iPhone-controlled car hack</a>? There it is! Rather, there it is <em>minus the actual car,</em> but with all the essential parts nicely laid out where we can observe the rig in action. At the other end of the booth, one can challenge “<a href="http://video.intel.com/?fr_story=6c130c6cdef3160f2364d6932acabbee8669b501&amp;rf=sitemap">RockBot</a>” to a round of <em>Frets on Fire,</em> not unlike <a href="http://hackaday.com/2009/10/30/cheating-rockband-again/">prior hacks we’ve seen</a>.</p>
<p><img class="aligncenter size-full wp-image-23564" title="ESC-NI-Rockband" src="http://hackadaycom.files.wordpress.com/2010/04/esc-ni-rockband.jpg" alt="" width="450" height="380" /></p>
<p>Hack a Day readers might be familiar with Digi International for their <a href="http://hackaday.com/2010/03/05/rc-truck-source-for-robotics-platform/">XBee wireless modules</a>, such as used in Adafruit’s <a href="http://hackaday.com/2009/03/26/tweet-a-watt-kits/">Tweet-a-Watt</a> power monitor. Easily distracted by shiny things, we were initially smitten with this addressable LED <a href="http://hackaday.com/2010/02/26/10x10-led-matrix/">matrix</a> wrapped around their booth; not a product, just something to catch peoples’ interest:</p>
<p><img class="aligncenter size-full wp-image-23565" title="ESC-Digi-LEDs" src="http://hackadaycom.files.wordpress.com/2010/04/esc-digi-leds.jpg" alt="" width="440" height="340" /></p>
<p>As it turns out, there’s an added bonus hack <em>behind</em> the hack. Most of Digi’s booth displays could be controlled and monitored using their own custom <a href="http://digidemo01.appspot.com/">web apps</a>, so it was a simple matter of walking around with an iPod touch to run the show:</p>
<p><img class="aligncenter size-full wp-image-23566" title="ESC-Digi-iPod" src="http://hackadaycom.files.wordpress.com/2010/04/esc-digi-ipod.jpg" alt="" width="450" height="310" /></p>
<p>At the ARM pavilion, this “<a href="http://blogs.arm.com/arm-events/arm-powered-nokia-n95lego-rubiks-speedcuber-creation-video/">Speedcuber</a>” was solving <a href="http://hackaday.com/2009/09/11/avr-controlled-rubiks-cube-solver/">Rubik’s cubes</a> in under half a minute. The camera and puzzle-solving logic comes from a Motorola <a href="http://hackaday.com/2010/01/25/unlocking-multitouch-for-droid-and-nexus-one/">Droid</a>. Commands are issued over Bluetooth to a pair of LEGO Mindstorms <a href="http://hackaday.com/2009/11/30/nxt-turing-machine/">NXT</a> controllers to drive the motors that manipulate the cube.</p>
<p><img class="aligncenter size-full wp-image-23567" title="ESC-Speedcuber" src="http://hackadaycom.files.wordpress.com/2010/04/esc-speedcuber.jpg" alt="" width="310" height="310" /></p>
<p><a href="http://www.macraigor.com/">Macraigor Systems</a> produces a line of JTAG debuggers…but to be honest, we (and pretty much everyone else passing the booth) nearly missed that fact, as we were all so distracted by their demo application involving one spectacular and elegant <a href="http://hackaday.com/2010/02/10/dexterous-hexapod-rocks-an-atom-processor/">Intel hexapod robot</a>:</p>
<p><img class="aligncenter size-full wp-image-23568" title="ESC-Spiderbot" src="http://hackadaycom.files.wordpress.com/2010/04/esc-spiderbot.jpg" alt="" width="420" height="330" /></p>
<p>We similarly fanboyed over <a href="http://www.cryptography.com/">Cryptography Research’s</a> German <a href="http://hackaday.com/2004/12/08/paper-enigma-machine/">Enigma cipher machine</a>, as it was our first time seeing one <em>not</em> under lock and key in a glass museum case:</p>
<p><img class="aligncenter size-full wp-image-23569" title="ESC-Enigma" src="http://hackadaycom.files.wordpress.com/2010/04/esc-enigma.jpg" alt="" width="300" height="420" /></p>
<p>ESC Silicon Valley runs through Thursday, April 29th, and last we checked one could still <a href="https://esc.embedded.com/sv/2010/Registrations/Registration?_mc=HOME">register for a free exhibits-only pass</a> on the ESC web site.</p>
<br />Filed under: <a href='http://hackaday.com/category/android-hacks/'>android hacks</a>, <a href='http://hackaday.com/category/classic-hacks/'>classic hacks</a>, <a href='http://hackaday.com/category/cons/'>cons</a>, <a href='http://hackaday.com/category/hardware/'>hardware</a>, <a href='http://hackaday.com/category/iphone-hacks/'>iphone hacks</a>, <a href='http://hackaday.com/category/ipod-hacks/'>ipod hacks</a>, <a href='http://hackaday.com/category/led-hacks/'>led hacks</a>, <a href='http://hackaday.com/category/linux-hacks/'>linux hacks</a>, <a href='http://hackaday.com/category/news/'>news</a>, <a href='http://hackaday.com/category/robots-hacks/'>robots hacks</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/23547/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/23547/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/23547/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/23547/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/23547/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/23547/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/23547/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/23547/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/23547/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/23547/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/23547/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/23547/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/23547/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/23547/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=23547&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2010/04/28/report-from-esc-silicon-valley-2010/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">philburgess</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2010/04/esc-mcenery.jpg" medium="image">
			<media:title type="html">ESC-McEnery</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2010/04/esc-rfid.jpg" medium="image">
			<media:title type="html">ESC-RFID</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2010/04/esc-mbed-twitter.jpg" medium="image">
			<media:title type="html">ESC-mbed-twitter</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2010/04/esc-mbed-breakout.jpg" medium="image">
			<media:title type="html">ESC-mbed-breakout</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2010/04/esc-lpcxpresso.jpg" medium="image">
			<media:title type="html">ESC-LPCXpresso</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2010/04/esc-stm8-1.jpg" medium="image">
			<media:title type="html">ESC-STM8-1</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2010/04/esc-stm8-2.jpg" medium="image">
			<media:title type="html">ESC-STM8-2</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2010/04/esc-beagleboard.jpg" medium="image">
			<media:title type="html">ESC-BeagleBoard</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2010/04/esc-microchip-ipod.jpg" medium="image">
			<media:title type="html">ESC-Microchip-iPod</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2010/04/esc-teardown.jpg" medium="image">
			<media:title type="html">ESC-teardown</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2010/04/esc-ni-waterloo.jpg" medium="image">
			<media:title type="html">ESC-NI-Waterloo</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2010/04/esc-ni-rockband.jpg" medium="image">
			<media:title type="html">ESC-NI-Rockband</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2010/04/esc-digi-leds.jpg" medium="image">
			<media:title type="html">ESC-Digi-LEDs</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2010/04/esc-digi-ipod.jpg" medium="image">
			<media:title type="html">ESC-Digi-iPod</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2010/04/esc-speedcuber.jpg" medium="image">
			<media:title type="html">ESC-Speedcuber</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2010/04/esc-spiderbot.jpg" medium="image">
			<media:title type="html">ESC-Spiderbot</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2010/04/esc-enigma.jpg" medium="image">
			<media:title type="html">ESC-Enigma</media:title>
		</media:content>
	</item>
		<item>
		<title>Microchip&#8217;s PIC development for iPhone and iPod</title>
		<link>http://hackaday.com/2010/03/29/microchips-pic-development-for-iphone-and-ipod/</link>
		<comments>http://hackaday.com/2010/03/29/microchips-pic-development-for-iphone-and-ipod/#comments</comments>
		<pubDate>Mon, 29 Mar 2010 18:57:28 +0000</pubDate>
		<dc:creator>Mike Szczys</dc:creator>
				<category><![CDATA[iphone hacks]]></category>
		<category><![CDATA[ipod hacks]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[microchip]]></category>
		<category><![CDATA[pic]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=22818</guid>
		<description><![CDATA[It seems a bit late to the party, but Microchip has just announced a family of PIC development boards for Apple products. The three offerings include a digital audio development kit, 8-bit accessory development and charging kit, and a 16-bit accessory development and charging kit for iPhone or iPod. We&#8217;ve seen a lot of homebrew [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=22818&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-22817" title="pic-iphone-ipod-development" src="http://hackadaycom.files.wordpress.com/2010/03/pic-iphone-ipod-development.jpg" alt="" width="470" height="335" /></p>
<p>It seems a bit late to the party, but Microchip has just announced <a href="http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;nodeId=2018&amp;mcparam=en547660">a family of PIC development boards for Apple products</a>. The <a href="http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;nodeId=2872&amp;param=en546067">three offerings</a> include a digital audio development kit, 8-bit accessory development and charging kit, and a 16-bit accessory development and charging kit for iPhone or iPod.</p>
<p>We&#8217;ve seen a lot of <a href="http://hackaday.com/2009/09/08/arduino-as-ipod-remote-control/">homebrew Apple addons that use microcontrollers</a>. This not only takes the hardware interface to the next level, it does it <a href="http://developer.apple.com/ipod/">with Apple&#8217;s blessing</a>. But somehow that doesn&#8217;t seem like quite as much fun.</p>
<p>[Thanks Juan]</p>
<br />Filed under: <a href='http://hackaday.com/category/iphone-hacks/'>iphone hacks</a>, <a href='http://hackaday.com/category/ipod-hacks/'>ipod hacks</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/22818/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/22818/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/22818/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/22818/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/22818/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/22818/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/22818/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/22818/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/22818/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/22818/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/22818/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/22818/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/22818/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/22818/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=22818&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2010/03/29/microchips-pic-development-for-iphone-and-ipod/feed/</wfw:commentRss>
		<slash:comments>31</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/2010/03/pic-iphone-ipod-development.jpg" medium="image">
			<media:title type="html">pic-iphone-ipod-development</media:title>
		</media:content>
	</item>
		<item>
		<title>Adding a keypad to a key card lock</title>
		<link>http://hackaday.com/2009/10/09/adding-a-keypad-to-a-key-card-lock/</link>
		<comments>http://hackaday.com/2009/10/09/adding-a-keypad-to-a-key-card-lock/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 15:00:57 +0000</pubDate>
		<dc:creator>Phil Burgess</dc:creator>
				<category><![CDATA[classic hacks]]></category>
		<category><![CDATA[security hacks]]></category>
		<category><![CDATA[door]]></category>
		<category><![CDATA[duct tape]]></category>
		<category><![CDATA[keypad]]></category>
		<category><![CDATA[lock]]></category>
		<category><![CDATA[microchip]]></category>
		<category><![CDATA[pic]]></category>
		<category><![CDATA[pic16]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=16987</guid>
		<description><![CDATA[[Colin Merkel] had a little problem: he was continually forgetting his electronic key card, locking himself out of his own dorm room. Like any normal Hack a Day reader, rather than getting in the habit of always carrying his card, the natural impulse of course is to build this elaborate rig of electronics and duct tape. Right? The [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=16987&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-16988" title="keypad" src="http://hackadaycom.files.wordpress.com/2009/10/keypad.jpg" alt="keypad" width="255" height="405" /></p>
<p>[Colin Merkel] had a little problem: he was continually forgetting his electronic key card, locking himself out of his own dorm room. Like any normal Hack a Day reader, rather than getting in the habit of always carrying his card, the natural impulse of course is to <a href="http://www.instructables.com/id/An-Electronic-Door-Opener/">build this elaborate rig of electronics and duct tape</a>. Right?</p>
<p>The result is an additional keypad that can be used to gain access…not by altering the existing electronic lock, but with a secondary mechanism that operates the inside door handle. An 8-bit <a href="http://hackaday.com/2009/09/12/controlling-an-rc-car-with-a-pic16f84/">PIC</a> microcontroller scans the outside <a href="http://hackaday.com/2009/09/18/touch-sensitive-keypad/">keypad</a> (connected by a thin ribbon cable), and when a correct access code is entered, engages a 12 volt DC motor to turn the handle. It’s a great little writeup that includes a parts list, source code, and explains the process of keypad scanning.</p>
<p>It’s similar to the <a href="http://hackaday.com/2009/01/02/rfid-dorm-room-door/">RFID-based dorm hack</a> we previously posted. By physically operating the handle, most any approach could be used: <a href="http://hackaday.com/2009/04/30/face-tracking-in-opera/">facial recognition</a>, other <a href="http://hackaday.com/2008/08/15/biometric-locks-turned-trojan/">biometrics</a>, <a href="http://hackaday.com/2007/05/03/laser-dance-pad/">DDR pad</a>, or whatever inspired lunacy you can dream up.</p>
<br />Posted in classic hacks, security hacks  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/16987/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/16987/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/16987/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/16987/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/16987/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/16987/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/16987/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/16987/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/16987/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/16987/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/16987/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/16987/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/16987/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/16987/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=16987&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2009/10/09/adding-a-keypad-to-a-key-card-lock/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">philburgess</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/10/keypad.jpg" medium="image">
			<media:title type="html">keypad</media:title>
		</media:content>
	</item>
		<item>
		<title>Bus Pirate preorder 2 update</title>
		<link>http://hackaday.com/2009/07/23/bus-pirate-preorder-2-update/</link>
		<comments>http://hackaday.com/2009/07/23/bus-pirate-preorder-2-update/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 22:00:29 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[news]]></category>
		<category><![CDATA[tool hacks]]></category>
		<category><![CDATA[bus pirate]]></category>
		<category><![CDATA[microchip]]></category>
		<category><![CDATA[preorder]]></category>
		<category><![CDATA[preorder updates]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=12821</guid>
		<description><![CDATA[A few weeks ago we held a preorder for the Bus Pirate universal serial interface tool. We split the preorder into two parts due to a shortage of PIC 24FJ64GA002-I/SO chips. The first preorder is arriving worldwide now, the second preorder has a longer lead time. Here&#8217;s everything we currently know about preorder 2, it&#8217;s [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=12821&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-12830" title="bp-unbox-0" src="http://hackadaycom.files.wordpress.com/2009/07/bp-unbox-0.jpg" alt="bp-unbox-0" width="470" height="361" /></p>
<p>A few weeks ago we <a href="http://hackaday.com/2009/06/25/bus-pirate-preorders-open/">held a preorder</a> for <a href="http://www.buspirate.com/">the Bus Pirate universal serial interface tool</a>. We split the preorder into two parts due to a shortage of <a href="http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en026374">PIC 24FJ64GA002-I/SO</a> chips. The first preorder is <a href="http://hackaday.com/2009/07/20/parts-unboxing-the-bus-pirate/">arriving worldwide now</a>, the second preorder <a href="http://hackaday.com/2009/06/30/bus-pirate-preorder-update/">has a longer lead time</a>. Here&#8217;s everything we currently know about preorder 2, it&#8217;s subject to change, but we wanted to keep you up to date.</p>
<p>Preorder 2 contains orders for 563 Bus Pirates. <a href="http://www.seeedstudio.com/depot/">Seeed Studio</a> noticed an  error in our quality control testing routine that misclassified about 50 preorder 1 Bus Pirates as defective. We <a href="http://code.google.com/p/the-bus-pirate/source/detail?r=146">updated the test</a> and passing units will ship immediately to preorder 2 participants on a first come, first serve basis. Another 500 PICs are scheduled to arrive after August 1, which should take care of most remaining orders.</p>
<p><span id="more-12821"></span>A special thanks to the fantastic engineers at <a href="http://www.microchip.com">Microchip</a> who took the time to peruse the Bus Pirate code, and immediately gave the correct solution to our quality control problem. Great job Microchip, thank you!</p>
<p>We released <a href="http://code.google.com/p/the-bus-pirate/downloads/detail?name=Bus%20Pirate.firmware.v0g-c.zip&amp;can=2&amp;q=#makechanges">an updated version</a> of the Bus Pirate firmware package. The firmware is exactly the same, we just changed a speed setting in the P24qp.exe quick programmer utility for MS Windows. During development we increased the baud rate of the quick programmer to make development faster, and we forgot to change it back to a safe speed for normal use.</p>
<br />Posted in news, tool hacks  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/12821/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/12821/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/12821/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/12821/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/12821/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/12821/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/12821/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/12821/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/12821/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/12821/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/12821/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/12821/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/12821/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/12821/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=12821&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2009/07/23/bus-pirate-preorder-2-update/feed/</wfw:commentRss>
		<slash:comments>60</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/07/bp-unbox-0.jpg" medium="image">
			<media:title type="html">bp-unbox-0</media:title>
		</media:content>
	</item>
		<item>
		<title>Parts: I2C digital thermometer (TC74)</title>
		<link>http://hackaday.com/2009/01/02/parts-i2c-digital-thermometer-tc74/</link>
		<comments>http://hackaday.com/2009/01/02/parts-i2c-digital-thermometer-tc74/#comments</comments>
		<pubDate>Fri, 02 Jan 2009 15:00:25 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[parts]]></category>
		<category><![CDATA[tool hacks]]></category>
		<category><![CDATA[electronics]]></category>
		<category><![CDATA[i2c]]></category>
		<category><![CDATA[microchip]]></category>
		<category><![CDATA[tc74]]></category>
		<category><![CDATA[temperature]]></category>
		<category><![CDATA[thermometer]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=7382</guid>
		<description><![CDATA[Microchip&#8217;s TC74 is an inexpensive digital temperature sensor with a simple I2C interface. It has a resolution of 1 degree Celsius, and a range of -40 to +125 degrees. This is an easy way to add temperature measurement to a project without an analog to digital converter. We&#8217;ll show you how to use the TC74 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=7382&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-7411" title="tc74" src="http://hackadaycom.files.wordpress.com/2009/01/tc74.jpg" alt="tc74" width="450" height="325" /></p>
<p>Microchip&#8217;s <a href="http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en010749">TC74</a> is an inexpensive digital temperature sensor with a simple I2C interface. It has a resolution of 1 degree Celsius, and a range of -40 to +125 degrees. This is an easy way to add temperature measurement to a project without an <a href="http://en.wikipedia.org/wiki/Analog-to-digital_converter">analog to digital converter</a>. We&#8217;ll show you how to use the TC74 below.</p>
<p><span id="more-7382"></span><strong>Microchip TC74 digital temperature sensor (<a href="http://octopart.com/search?q=microchip+tc74a&amp;s=avail_desc">Octopart search</a>, starting at $0.88)</strong></p>
<p>The TC74 comes in five pin through-hole and surface mount packages, see the <a href="http://ww1.microchip.com/downloads/en/DeviceDoc/21462c.pdf">TC74 datasheet</a> (PDF). We couldn&#8217;t find a <a href="http://www.cadsoft.de">Cadsoft Eagle</a> footprint for any version of this part, if you know of one please link to it in the comments.</p>
<p><img class="alignnone size-full wp-image-7397" title="tc74" src="http://hackadaycom.files.wordpress.com/2008/12/tc74.png" alt="tc74" width="451" height="273" /></p>
<p>Different versions of the TC74 are calibrated for specific voltages, but all work from 2.7-5volts. The TC74A5 we used is most accurate when operating at 5volts, but we powered it from a 3.3volt supply. The I2C connection needs 2 <a href="http://en.wikipedia.org/wiki/Pull-up_resistor">pull-up resistors</a> to hold the bus high (R1, R2), 2K-10K should work. C1 is a 0.1uF decoupling capacitor.</p>
<p>We used the <a href="http://hackaday.com/2008/11/19/how-to-the-bus-pirate-universal-serial-interface/">Bus Pirate universal serial interface</a> in I2C mode to test drive the TC74, but the same principals apply to any microcontroller. We powered the TC74 from the Bus Pirate&#8217;s 3.3volt supply, and used the on-board pull-up resistors to hold the I2C bus high.</p>
<table border="0">
<tbody>
<tr>
<td><strong>Command</strong></td>
<td><strong>Value</strong></td>
</tr>
<tr>
<td>Select temperature register</td>
<td>0&#215;00</td>
</tr>
<tr>
<td>Select configuration register</td>
<td>0&#215;01</td>
</tr>
</tbody>
</table>
<p>The TC74&#8242;s write address is 0x9a, and the read address 0x9b. It has two, one-byte registers. Register address 0 holds the temperature reading, register 1 holds the configuration settings.</p>
<p><strong>Configuration register</strong></p>
<p>Bit 6 of the configuration register is 0 at power-on, and changes to 1 when the first valid temperature reading is available. Bit 7 is writable, and puts the TC74 in a power saving standby mode. Reading the register involves two steps: use a partial write command to select the register, then use the read command to retrieve the value.</p>
<blockquote><p>I2C&gt;{0x9a 1}<br />
210 I2C START CONDITION<br />
220 I2C WRITE: 0x9A GOT ACK: YES <strong>&lt;&#8211;write address</strong><br />
220 I2C WRITE: 0&#215;01 GOT ACK: YES <strong>&lt;&#8211;select config register</strong><br />
240 I2C STOP CONDITION</p></blockquote>
<p>First, we select the configuration register with a partial write command. This doesn&#8217;t actually write a value, it selects the register to read and write. { creates the I2C start condition, followed by the TC74 write address (0x9a) and the select configuration register command (0&#215;01). } issues the I2C stop condition and ends the transaction.</p>
<p>Now we can read the contents of the register.</p>
<blockquote><p>I2C&gt;{0x9b r}<br />
210 I2C START CONDITION<br />
220 I2C WRITE: 0x9B GOT ACK: YES <strong>&lt;&#8211;read address</strong><br />
230 I2C READ: 0&#215;40 <strong>&lt;&#8211; register value (01000000)</strong><br />
240 I2C STOP CONDITION<br />
I2C&gt;</p></blockquote>
<p>The read address (0x9b) returns the one byte register value (r). The configuration register value, 0&#215;40 or 01000000, shows that the device is out of standby (bit 7=0), and a valid temperature reading is available (bit 6=1).</p>
<p>The TC74 has a low-power standby mode. Enable it by writing 1 to bit 7 of the configuration register.</p>
<blockquote><p>I2C&gt;{0x9a 1 0b10000000}<br />
210 I2C START CONDITION<br />
220 I2C WRITE: 0x9A GOT ACK: YES <strong>&lt;&#8211;write address</strong><br />
220 I2C WRITE: 0&#215;01 GOT ACK: YES <strong>&lt;&#8211;select config register</strong><br />
220 I2C WRITE: 0&#215;80 GOT ACK: YES <strong>&lt;&#8211;value to write (01000000)</strong><br />
240 I2C STOP CONDITION<br />
I2C&gt;</p></blockquote>
<p>The register is written with single three-byte command. First we send the write address (0x9a), followed by the register to select (0&#215;01), and finally the value to write (0&#215;80). Only bit 7 of the configuration register is writable, the values of bits 6-0 are ignored.</p>
<p>Read the register again to verify that the command worked.</p>
<blockquote><p>I2C&gt;{0x9a 1}{0x9b r}<br />
210 I2C START CONDITION <strong>&lt;&#8211;first command sets register</strong><br />
220 I2C WRITE: 0x9A GOT ACK: YES <strong>&lt;&#8211;write address</strong><br />
220 I2C WRITE: 0&#215;01 GOT ACK: YES <strong>&lt;&#8211;config register (1)</strong><br />
240 I2C STOP CONDITION <strong>&lt;&#8211;end first command</strong><br />
210 I2C START CONDITION <strong>&lt;&#8211;begin second command</strong><br />
220 I2C WRITE: 0x9B GOT ACK: YES <strong>&lt;&#8211;read address</strong><br />
230 I2C READ: 0&#215;80 <strong>&lt;&#8211; register value (10000000)</strong><br />
240 I2C STOP CONDITION<strong> &lt;&#8211;end second command</strong><br />
I2C&gt;</p></blockquote>
<p>The register value, 10000000, now shows that the device is in standby (bit 7=1). Notice that bit 6 is now 0, no temperature data is available.</p>
<p>Clear bit 7 to exit standby, then wait for bit 6 to return to 1 before reading the temperature register.</p>
<blockquote><p>I2C&gt;{0x9a 1 0b00000000}<br />
210 I2C START CONDITION<br />
220 I2C WRITE: 0x9A GOT ACK: YES <strong>&lt;&#8211;write address</strong><br />
220 I2C WRITE: 0&#215;01 GOT ACK: YES<strong>&lt;&#8211;select config register</strong><br />
220 I2C WRITE: 0&#215;00 GOT ACK: YES<strong>&lt;&#8211;value to write (00000000)</strong><br />
240 I2C STOP CONDITION<br />
I2C&gt;</p></blockquote>
<p>Temperature data is ready when the configuration register value returns to 0&#215;40 (01000000).</p>
<p><strong>Temperature</strong></p>
<p>The temperature register is read in two steps. First, a partial write command selects the temperature register (0), then a read sequence returns the contents.</p>
<blockquote><p>I2C&gt;{0x9a 0}{0x9b r}<br />
210 I2C START CONDITION<br />
220 I2C WRITE: 0x9A GOT ACK: YES <strong>&lt;&#8211;write address</strong><br />
220 I2C WRITE: 0&#215;00 GOT ACK: YES <strong>&lt;&#8211;select temperature register</strong><br />
240 I2C STOP CONDITION<br />
210 I2C START CONDITION<br />
220 I2C WRITE: 0x9B GOT ACK: YES <strong>&lt;&#8211;read address</strong><br />
230 I2C READ: 0&#215;18 <strong>&lt;&#8211;grab one byte</strong><br />
240 I2C STOP CONDITION<br />
I2C&gt;</p></blockquote>
<p>The temperature is an integer value of degrees Celsius, negative numbers are represented as a <a href="http://en.wikipedia.org/wiki/Twos_Compliment">twos complement</a>. Positive values from 0 to 127 degrees Celsius are simply represented by that value. Negative temperatures have bit 7 set, and range from -1 to -65 (255-128), see table 4.4 on page 8 of the datasheet. The hexadecimal value 0&#215;18 is equal to 24 in decimal, so the temperature reading is 24C (<a href="http://www.google.com/search?q=24c+to+f">75F</a>).</p>
<p>Like this post? Check out the <a href="http://hackaday.com/category/parts/">parts posts</a> you may have missed.</p>
<br />Posted in parts, tool hacks  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/7382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/7382/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/7382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/7382/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/7382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/7382/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/7382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/7382/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/7382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/7382/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/7382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/7382/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/7382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/7382/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=7382&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2009/01/02/parts-i2c-digital-thermometer-tc74/feed/</wfw:commentRss>
		<slash:comments>14</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/tc74.jpg" medium="image">
			<media:title type="html">tc74</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2008/12/tc74.png" medium="image">
			<media:title type="html">tc74</media:title>
		</media:content>
	</item>
		<item>
		<title>How-To: Web server on a business card (Part 2)</title>
		<link>http://hackaday.com/2008/09/25/web-server-on-a-business-card-part-2/</link>
		<comments>http://hackaday.com/2008/09/25/web-server-on-a-business-card-part-2/#comments</comments>
		<pubDate>Fri, 26 Sep 2008 01:26:41 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[classic hacks]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[misc hacks]]></category>
		<category><![CDATA[24fj64ga002]]></category>
		<category><![CDATA[business card]]></category>
		<category><![CDATA[enc28j60]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[microchip]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[pic]]></category>
		<category><![CDATA[pic24f]]></category>
		<category><![CDATA[sd card]]></category>
		<category><![CDATA[web server]]></category>

		<guid isPermaLink="false">http://www.hackaday.com/?p=7672</guid>
		<description><![CDATA[This mini web server is slightly smaller than a business card. There are a lot of tiny one-board servers out there, but this is probably the smallest you can etch and solder at home. Unlike many embedded web servers, files are stored on a PC-readable SD card, not in a difficult-to-write EEPROM. Read on for [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=5&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:left;"><img class="alignnone size-full wp-image-3749" title="wsbcv3-450" src="http://hackadaycom.files.wordpress.com/2008/09/wsbcv3-450.jpg" alt="" width="450" height="315" /></p>
<p style="text-align:left;">This mini web server is slightly smaller than a business card. There are a lot of tiny one-board servers out there, but this is probably the smallest you can etch and solder at home. Unlike many embedded web servers, files are stored on a PC-readable SD card, not in a difficult-to-write EEPROM. Read on for the web server design, or catch up on PIC 24F basics in the previous article: <a href="http://hackaday.com/2008/09/18/web-server-on-a-business-card-part-1/">Web server on a business card (part 1)</a>.</p>
<p style="text-align:left;">
<p style="text-align:left;"><span id="more-5"></span></p>
<p style="text-align:left;"><strong>Concept overview</strong></p>
<p style="text-align:left;"><img class="alignnone size-full wp-image-3702" title="web-server-on-a-business-ca1" src="http://hackadaycom.files.wordpress.com/2008/09/web-server-on-a-business-ca1.jpg" alt="" width="450" height="155" /></p>
<p style="text-align:left;">The goal of this project is to build a web server on a business card that serves web pages and files from a FAT formatted SD card. The server is based on a PIC 24F that connects to a TCP/IP network using the <a href="http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en022889">ENC28J60</a> ethernet <a href="http://en.wikipedia.org/wiki/MAC_Address">MAC</a>/<a href="http://en.wikipedia.org/wiki/Ethernet#Physical_layer">PHY</a>. Network layers and low-level services, such as <a href="http://en.wikipedia.org/wiki/Domain_Name_System#Address_resolution_mechanism">DNS</a> and <a href="http://en.wikipedia.org/wiki/DHCP">DHCP</a>, are handled by the Microchip TCP/IP stack. A <a href="http://en.wikipedia.org/wiki/File_Allocation_Table">FAT 12/16/32</a> formatted <a href="http://en.wikipedia.org/wiki/Sd_card">SD card</a> contains web pages and files.  A very simple <a href="http://en.wikipedia.org/wiki/Web_server">HTTP server</a> ties everything together by handling page requests on port 80, searching the SD card for requested, and serving them with the correct <a href="http://en.wikipedia.org/wiki/Content_type#Content-Type">content type</a>.</p>
<p style="text-align:left;"><strong>Hardware</strong></p>
<p style="text-align:left;"><img class="alignnone size-full wp-image-3679" title="cct-4502" src="http://hackadaycom.files.wordpress.com/2008/09/cct-4502.jpg" alt="" width="450" height="123" /></p>
<p style="text-align:left;">(<a href="http://hackadaycom.files.wordpress.com/2008/09/cct-large1.png">full size schematic .png</a>)</p>
<p style="text-align:left;"><em>Microcontroller (Microchip PIC 24FJ64GA002)</em></p>
<p style="text-align:left;">The brain of the server is a 16-bit <a href="http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en026374">PIC 24FJ64GA002</a> (IC1), a 28pin microcontroller available in several hobbyist friendly packages. Check out our <a href="http://hackaday.com/2008/09/18/web-server-on-a-business-card-part-1/">PIC 24F introduction</a> for more about working with this chip.</p>
<p style="text-align:left;">PIC 24Fs operate between 2 and 3.8volts, which is perfect because the ethernet chip (IC2) and SD card both run at 3.3volts. This chip has 8K of RAM, plenty for the TCP/IP stack and a few K for working with a full FAT file system. The 24FJ64 has two <a href="http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus">SPI</a> modules, so the SD card and ethernet IC each get a dedicated data bus.</p>
<p style="text-align:left;">The PIC processor core operates at 2.5volts, and requires a 10uF capacitor (C2) for the on-chip voltage regulator. The datasheet specifies a tantalum capacitor, but we used a low-ESR electrolytic in a prototype without incident. Every power pin needs a 0.1uF decoupling capacitor (C4,5).</p>
<p style="text-align:left;">The internal 8MHz oscillator provides a 32MHz clock source with the 4x PLL multiplier enabled. We&#8217;re also using an external 32.768KHz crystal (Q1) with 2 x 27pF capacitors (C17,18) to enable the real time clock calendar.</p>
<p style="text-align:left;">Programming connections are brought to a header (SV1). We chose to use programming pin pair three (PGx3). The master clear and reset (MCLR) function is enabled with a 2K resistor (R1) from V+  to the MCLR pin. Optionally, add <a href="http://hackaday.com/2008/09/15/tact-switches-for-your-next-project/">a button </a>(S1) from MCLR to ground for a manual reset switch.</p>
<p style="text-align:left;"><em>Ethernet connection (ENC28J60)</em></p>
<p style="text-align:left;">An <a href="http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en022889">ENC28J60</a> (IC2) handles the network physical connection (PHY) and MAC layer. The ENC28J60 needs a number of support parts beyond the typical 0.1uF decoupling capacitors (C6,7,9,10). A 25MHz crystal (Q2) and 2 x 27pf capacitors (C15,16) provide a clock signal. The internal core voltage regulator requires a 10uF tantalum capacitor (C1), but an electrolytic capacitor also worked fine. Two LEDs (LED1,2) with 330ohm resistors (R2,3) display link and data status.</p>
<p style="text-align:left;">A bias resistor (R12) is required; the value will depend on the ENC28J60 version you&#8217;re using. Current chips should be <a href="http://ww1.microchip.com/downloads/en/DeviceDoc/80264d.pdf">B5</a> (PDF) or <a href="http://ww1.microchip.com/downloads/en/DeviceDoc/80349b.pdf">B7</a> (PDF), and require a 2.32K 1% resistor.</p>
<p style="text-align:left;">The PHY I/O portion specifies 4 x 49.9ohm 1% resistors (R8-11), and a ferrite bead (L1).</p>
<p style="text-align:left;">The most difficult-to-find part for the ENC28J60 is the correct RJ-45 jack with integrated magnetics (RJ1). We used a J1006F21 PulseJack from Pulse Engineering. Be sure to check the pin configuration and connections if you use a different jack, they will probably be different than ours. A Cadsoft Eagle part library for the JP1006F21 is included in the project archive. This was a $4 part, but it&#8217;s gone up to $7. If you know of other jacks that work we&#8217;ll add them here.</p>
<p style="text-align:left;"><em>microSD card</em></p>
<p style="text-align:left;">We used a <a href="http://en.wikipedia.org/wiki/MicroSD">microSD/transflash card</a> in this design because SD cards waste a lot of board space under the holder. microSD cards are smaller versions of SD cards with the same data interface, and most come with an adapter for use in standard SD card readers. The card needs a holder (SD1) and a 0.1uF decoupling capacitor (C8).</p>
<p style="text-align:left;">If you want to use a full-size SD card, take a look at our version one prototype in the project archive. We used Alps SD card holder <a href="http://www.mouser.com/Search/ProductDetail.aspx?R=SCDA1A0901virtualkey68800000virtualkey688-SCDA1A0901">#SCDA1A0901</a>. Unfortunately, this part is has been discontinued and we&#8217;ve yet to find a suitable replacement. Don&#8217;t try <a href="https://www.mouser.com/Search/ProductDetail.aspx?R=SCDA5A0201virtualkey68800000virtualkey688-SCDA5A0201">#SCDA5A0201</a>, that&#8217;s for sure. If you have a favorite, we&#8217;ll add it here. <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=136">Sparkfun has one</a>, and a matching <a href="http://www.opencircuits.com/SFE_Footprint_Library_Eagle">Cadsoft Eagle part library</a>.</p>
<p style="text-align:left;"><em>Power supply</em></p>
<p style="text-align:left;">An <a href="http://hackaday.com/2008/09/22/parts-lm317-adjustable-voltage-regulator/">adjustable LM317 voltage regulator</a> (IC3) is set to 3.3volts using a 390ohm (R6) and 240ohm (R7) resistor. We considered several 3.3volt regulators, but nothing was cheaper than a LM317 and two resistors. There&#8217;s a 0.1uF decoupling capacitor (C13,14) and a 10uF capacitor (C3,19) on both sides to help support the power hungry Ethernet transceiver. The LM317 will output 3.3volts from an input of 5 to 20volts+, but it gets really hot with greater than 9volts supply. The specified input capacitor is only rated 16volts, so consider an upgrade if you plan to use a supply greater than about 9volts.</p>
<p style="text-align:left;">For the first time ever, we incorporated a power jack (J1) into a design. A jack with a 2.1mm diameter internal pin seems to be <a href="http://en.wikipedia.org/wiki/DC_connector#Cylindrical_types">the most common DC connector</a>. We used a cheap through-hole DC power jack, like SparkFun <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=119">#PRT-00119</a> or Mouser <a href="http://www.mouser.com/Search/ProductDetail.aspx?qs=8xMK%252bwDsXhcfMNb%2fYnnwLQ%3d%3d">#163-7620-E</a>. It mates with a plug like Mouser <a href="http://www.mouser.com/Search/ProductDetail.aspx?R=1710-0721virtualkey11180000virtualkey1710-0721">#1710-0721</a>.</p>
<p style="text-align:left;"><strong>Circuit board</strong></p>
<p style="text-align:left;"><img class="alignnone size-full wp-image-3678" title="24fj-bcserver-v3" src="http://hackadaycom.files.wordpress.com/2008/09/24fj-bcserver-v3.jpg" alt="" width="450" height="244" /></p>
<p style="text-align:left;">The PCB (<a href="http://hackadaycom.files.wordpress.com/2008/09/pcb-full1.png">full size placement .png</a>) was designed in <a href="http://www.cadsoft.de/">Cadsoft Eagle 5.0</a>. Freeware versions are available for all major platforms. Renderings were done with <a href="http://www.matwei.de/doku.php?id=en:eagle3d:eagle3d">Eagle3D</a>, <a href="http://www.diylife.com/2008/06/06/cadsoft-eagle-5-test-drive/">beta version</a>. Schematic and board files are included in the <a href="http://blog.mahalo.com/hackaday/howto/wsbcv3.zip">project archive</a> (ZIP).</p>
<p style="text-align:left;">We designed the project with large SOIC chips and 0805 surface mount (SMD) parts, but haters can rest assured that chips are available in a through-hole package. We prefer to use SMD parts because the resulting circuit boards are smaller, cheaper, and faster to produce. 0805 parts are dirt cheap, and easy to solder with a normal iron. Don&#8217;t expect this project to work on a breadboard, there&#8217;s probably too much capacitance for this circuit.</p>
<p style="text-align:left;">We took full advantage of the PIC&#8217;s programmable pin placement to get the simplest trace routings possible. Just four jumper wires are needed on an otherwise single-sided board.</p>
<p style="text-align:left;">The traces are large and clean, DIY <a href="http://www.hackaday.com/2008/07/28/how-to-etch-a-single-sided-pcb/">toner transfer boards</a> should be easy. We made our PCB using an inkjet printer transparency mask over an UV sensitive circuit board.</p>
<p style="text-align:left;">In addition to the final design, the project archive contains our v1 prototype design. The prototype uses a full size SD card (<a href="http://www.mouser.com/Search/ProductDetail.aspx?R=SCDA1A0901virtualkey68800000virtualkey688-SCDA1A0901">SCDA1A0901</a>) and all electrolytic 10uF capacitors. We also put the RJ45 Ethernet jack on a daughterboard to better accommodate different pinouts.</p>
<p style="text-align:left;"><em>Partslist</em></p>
<p style="text-align:left;"><img class="alignnone size-full wp-image-3681" title="pcb-4501" src="http://hackadaycom.files.wordpress.com/2008/09/pcb-4501.png" alt="" width="448" height="334" /></p>
<table style="text-align:left;" border="0">
<tbody>
<tr>
<td>#</td>
<td>Count</td>
<td>Part</td>
<td>Size</td>
<td>Mouser#</td>
</tr>
<tr>
<td>IC1</td>
<td>1</td>
<td><a href="http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en026374">PIC 24FJ64GA002-SO</a></td>
<td>SOIC-28</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?qs=V%2fyyTCAHA4D%2fh5r3CRQDtA%3d%3d">579-PIC24FJ64GA002SO</a></td>
</tr>
<tr>
<td>IC2</td>
<td>1</td>
<td>ENC28J60</td>
<td>SOIC-28</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?qs=8nGS%2fuaWW3uX0KPZZN505g%3d%3d">579-ENC28J60-I/SO</a></td>
</tr>
<tr>
<td>IC3</td>
<td>1</td>
<td>LM317 voltage regulator</td>
<td>D2Pack</td>
<td><a href="https://www.mouser.com/Search/ProductDetail.aspx?R=LM317D2T-TRvirtualkey51120000virtualkey511-LM317D2T-TR">511-LM317D2T-TR</a></td>
</tr>
<tr>
<td>C1-3</td>
<td>3</td>
<td>10uF tantalum capacitor</td>
<td>A case</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?R=293D106X96R3A2TE3virtualkey61320000virtualkey74-293D106X96R3A2TE3">74-293D106X96R3A2TE3</a></td>
</tr>
<tr>
<td>C4-14</td>
<td>11</td>
<td>0.1uF capacitor</td>
<td>0805</td>
<td><a href="https://www.mouser.com/Search/ProductDetail.aspx?R=C0805C104M5RACTUvirtualkey64600000virtualkey80-C0805C104M5R"><span>80-C0805C104M5R</span></a></td>
</tr>
<tr>
<td>C15-18</td>
<td>4</td>
<td>27pF capacitor</td>
<td>0805</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?qs=0ZUpllj3bsbA9A7Pajx4jA%3d%3d">140-CC501N270J-RC</a></td>
</tr>
<tr>
<td>C19</td>
<td>1</td>
<td>10uF  capacitor</td>
<td>0805</td>
<td><a href="https://www.mouser.com/Search/ProductDetail.aspx?R=UWF1C100MCL1GBvirtualkey64700000virtualkey647-UWF1C100MCL1GB">647-UWF1C100MCL1GB</a></td>
</tr>
<tr>
<td>R1</td>
<td>1</td>
<td>2K0ohm resistor</td>
<td>0805</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?qs=jBethxrBxZb5NLDetw123g%3d%3d">292-2.0K-RC</a></td>
</tr>
<tr>
<td>R2-6</td>
<td>5</td>
<td>390ohm resistor</td>
<td>0805</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?qs=2BMLUTrrT4P7Xm58YbKmPg%3d%3d">71-CRCW0805-390</a></td>
</tr>
<tr>
<td>R7</td>
<td>1</td>
<td>240ohm resistor</td>
<td>0805</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?qs=B6sMDe4C%252beDvUrZZzlhhcA%3d%3d">71-CRCW0805-240</a></td>
</tr>
<tr>
<td>R8-11</td>
<td>4</td>
<td>49.9ohm 1% resistor</td>
<td>0805</td>
<td><a href="https://www.mouser.com/Search/ProductDetail.aspx?R=CRCW080549R9FKEAvirtualkey61300000virtualkey71-CRCW0805-49.9-E3">71-CRCW0805-49.9-E3</a></td>
</tr>
<tr>
<td>R12</td>
<td>1</td>
<td>2K32ohm 1% resistor</td>
<td>0805</td>
<td><a href="https://www.mouser.com/Search/ProductDetail.aspx?R=CRCW08052K32FKEAvirtualkey61300000virtualkey71-CRCW0805-2.32K-E3">71-CRCW0805-2.32K-E3</a></td>
</tr>
<tr>
<td>L1</td>
<td>1</td>
<td>Ferrite bead</td>
<td>0805</td>
<td><a href="https://www.mouser.com/Search/ProductDetail.aspx?R=BLM21BB600SN1Dvirtualkey64800000virtualkey81-BLM21BB600SN1D">81-BLM21BB600SN1D</a></td>
</tr>
<tr>
<td>LED1-4</td>
<td>4</td>
<td>LED</td>
<td>0805</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?qs=7JStj%2fjQ2SElGv%2fp7IzKlg%3d%3d">645-598-8110-107F</a></td>
</tr>
<tr>
<td>Q1</td>
<td>1</td>
<td>32.768KHz crystal</td>
<td>SMD</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?R=CM200S-32.768KDZF-UTvirtualkey69500000virtualkey695-CM200S-327KF-U">695-CM200S-327KF-U</a></td>
</tr>
<tr>
<td>Q2</td>
<td>1</td>
<td>25MHz crystal</td>
<td>HC49</td>
<td><a href="https://www.mouser.com/Search/ProductDetail.aspx?R=ABLS-25.000MHZ-B2F-Tvirtualkey52750000virtualkey815-ABLS-25-B2">815-ABLS-25-B2</a></td>
</tr>
<tr>
<td>RJ1</td>
<td>1</td>
<td>Pulse  J1006F21</td>
<td>-</td>
<td><a href="https://www.mouser.com/Search/ProductDetail.aspx?R=J1006F21virtualkey67300000virtualkey673-J1006F21">673-J1006F21</a></td>
</tr>
<tr>
<td>S1</td>
<td>1</td>
<td>Tactile switch</td>
<td>DTS-6</td>
<td><a href="https://www.mouser.com/Search/ProductDetail.aspx?R=101-0164-EVvirtualkey12040000virtualkey101-0164-EV">101-0164-EV</a></td>
</tr>
<tr>
<td>SV1,2</td>
<td>11</td>
<td>.1&#8243; male pin header</td>
<td>-</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?R=4-103329-0virtualkey57100000virtualkey571-41033290">571-41033290</a></td>
</tr>
<tr>
<td>J1</td>
<td>1</td>
<td>Power jack</td>
<td>-</td>
<td><a href="http://www.mouser.com/Search/ProductDetail.aspx?qs=8xMK%252bwDsXhcfMNb%2fYnnwLQ%3d%3d">163-7620-E</a></td>
</tr>
<tr>
<td>SD1</td>
<td>1</td>
<td>microSD card holder</td>
<td>-</td>
<td>SparkFun: <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=127">PRT-00127</a></td>
</tr>
</tbody>
</table>
<p style="text-align:left;"><strong>Firmware</strong></p>
<p style="text-align:left;">Three firmware examples are included in the <a href="http://blog.mahalo.com/hackaday/howto/wsbcv3.zip">project archive</a> [zip]. The examples compile with Microchip&#8217;s demonstration C30 compiler. Learn more about working with the PIC 24F in our previous article:  <a href="http://hackaday.com/2008/09/18/web-server-on-a-business-card-part-1/">Web server on a business card (part 1)</a>.<em> </em>MPLAB isn&#8217;t great about project portability, you may need to locate all the project files again if your path doesn&#8217;t match the &#8216;c:wsbc&#8217; format that we used.</p>
<p style="text-align:left;"><em>FAT12/16/32 disk library</em></p>
<p style="text-align:left;"><em></em></p>
<p style="text-align:left;">Our first step was to get the FAT library reading from a SD card. FAT 12/16/32 are simple disk storage formats that work with PCs, MACs, digital cameras, music players, and other electronics. Here&#8217;s our favorite <a href="http://www.digitalspirit.org/file/index.php/obj-download/docs/fat/appnote_fat16.pdf">FAT tutorial/teardown</a> (PDF).</p>
<p style="text-align:left;"><a href="http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;nodeId=1824&amp;appnote=en532040">Microchip&#8217;s FAT 12/16/32 library</a> gives us simple functions for working with SD cards.  The included demo application creates some files and directories to demonstrate each function. Here&#8217;s how we configured it to work on our custom hardware, you can find these changes by searching for the tag &#8216;HACKADAY&#8217; in the code:</p>
<ul style="text-align:left;">
<li>HardwareProfile.h assigns actual PIC hardware to generic references in the code library. For the SD card this is an SPI interface, and pins for chip select and card detect. First, we deleted all the unused hardware profiles to make the code more manageable. Next, we configured the FAT library to communicate with the SD card using an SPI module (line 132). Finally, we defined the SPI pin assignments (line 152). Pin setup is shown in the table below.<br />
<table border="0">
<tbody>
<tr>
<td><strong>Pin</strong></td>
<td><strong>Port</strong></td>
</tr>
<tr>
<td>Chip select</td>
<td>B0</td>
</tr>
<tr>
<td>SD card detect</td>
<td>A2</td>
</tr>
<tr>
<td>SPI clock</td>
<td>B2</td>
</tr>
<tr>
<td>SPI MOSI</td>
<td>B1</td>
</tr>
<tr>
<td>SPI MISO</td>
<td>B3</td>
</tr>
</tbody>
</table>
</li>
<li> Demonstration.c. On line 48 we set a custom oscillator fuse configuration, as described in our <a href="http://hackaday.com/2008/09/18/web-server-on-a-business-card-part-1/">PIC 24F introduction</a>. This is also the logical place to configure pin assignments with peripheral pin select (line 63).</li>
<li>FSConfig.h. This file enables various components of file system library, affecting the amount of memory and program space used. A read-only library is very small, a full write configuration is bigger. We didn&#8217;t have to make any changes for the demonstration, but this is an important file to note.</li>
</ul>
<p style="text-align:left;">At first, the library failed to recognize our SD card. It only supports disks with a <a href="http://en.wikipedia.org/wiki/Master_boot_record">master boot record</a> (MBR). Windows XP formats SD cards as a DOS disk: a single partition with no MBR. To verify this, open a Windows-formatted disk with a utility like <a href="http://mh-nexus.de/en/hxd/">HxD</a> and inspect sector 0 of the physical disk. Byte 446 should be the location of the first MBR partition entry, but instead it&#8217;s the NTLDR executable code.</p>
<p style="text-align:left;">To format the disk in the &#8216;correct&#8217; FAT format, use a digital camera&#8217;s format function or a utility like <a href="http://panasonic.jp/support/global/cs/sd/download/sd_formatter.html">Panasonic&#8217;s SD card formatter</a>. We also considered using a different FAT library that reads DOS disks, like <a href="http://www.larwe.com/zws/products/dosfs/index.html">DOSFS</a>, or adding similar features to the Microchip firmware.</p>
<p style="text-align:left;"><em>TCP/IP stack</em></p>
<p style="text-align:left;">Microchip&#8217;s free <a href="http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;nodeId=1489">TCP/IP stack</a> performs the convoluted configuration and networking functions needed to run a web server. You can read all about the stack in various <a href="http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;nodeId=2505&amp;param=en535724">application notes and documentation</a>. Wikipedia is our favorite <a href="http://en.wikipedia.org/wiki/TCPIP">TCP/IP learning resource</a>; we wrote our first TCP/IP stack using only Wikipedia.</p>
<p style="text-align:left;">Microchip&#8217;s TCP/IP stack used to be  messy and confusing. Now it&#8217;s just confusing. The last few versions of have improved considerably in code clarity and structure. Here&#8217;s what we did to to configure the base TCP/IP stack example for our hardware, you can find these changes by searching for the tag &#8216;HACKADAY&#8217; in the code:</p>
<ul style="text-align:left;">
<li> HardwareProfile.h assigns actual PIC hardware resources to generic references in the code library. We added our custom oscillator configuration (line 68), and configured the server status LED to use the LED attached to PORTB7 (line 83).  We defined the SPI interface to the ENC28J60 as follows (line 116):<br />
<table border="0">
<tbody>
<tr>
<td><strong>Pin</strong></td>
<td><strong>Port</strong></td>
</tr>
<tr>
<td>Reset</td>
<td>B8</td>
</tr>
<tr>
<td>Chip select</td>
<td>B9</td>
</tr>
<tr>
<td>SPI clock</td>
<td>B10</td>
</tr>
<tr>
<td>SPI MOSI</td>
<td>B11</td>
</tr>
<tr>
<td>SPI MISO</td>
<td>B12</td>
</tr>
<tr>
<td>Wake on lan</td>
<td>B13</td>
</tr>
<tr>
<td>Interrupt</td>
<td>B14</td>
</tr>
</tbody>
</table>
</li>
<li>MainDemo.c. We eliminated a bunch of unused code, and added the peripheral pin select configuration code to the <em>InitializeBoard()</em> function (line 332).</li>
<li>TCPIPConfig.h defines the TCPIP stack components included in a compile. We&#8217;ve enabled DNS, DHCP, the IP announcer, and the ping server (line 56):</li>
</ul>
<p><pre class="brush: cpp;">
#define STACK_USE_DNS            // Domain Name Service Client
#define STACK_USE_DHCP_CLIENT    // Get DNS automagically
#define STACK_USE_ANNOUNCE       // Microchip Ethernet Device Discoverer
#define STACK_USE_ICMP_SERVER    // Enable the PING server</pre></p>
<p style="text-align:left;">After loading this firmware, we&#8217;re ready to connect the server to a network for the first time. During initialization, the TCP/IP stack negotiates with the network router for an IP address using DHCP. We need to know this address to communicate with the device. If the device had a screen we could display the IP address, but instead we use the MCHPDetect.exe utility from Microchip.</p>
<p style="text-align:left;"><img class="alignnone size-full wp-image-7946" title="mchpdetectexe450" src="http://hackadaycom.files.wordpress.com/2008/09/mchpdetectexe450.png" alt="" width="450" height="169" /></p>
<p style="text-align:left;">When the TCP/IP stack finishes initializing, it broadcasts an announcement packet to port 30303 of all locally connected computers. MCHPDetect extracts the IP address from these packets. A new announce packet is sent on every PIC reset.</p>
<p style="text-align:left;"><img class="alignnone size-full wp-image-2912" title="ipaddress-watch-450" src="http://hackadaycom.files.wordpress.com/2008/09/ipaddress-watch-450.png" alt="" width="450" height="246" /></p>
<p style="text-align:left;">It&#8217;s also possible to read the IP address directly from memory with a debugger. The address is stored in the <em>AppConfig.MyIPAddr</em> variable, the <em>.byte</em> form follows the standard x.x.x.x IP notation.</p>
<p style="text-align:left;"><img class="alignnone size-full wp-image-7947" title="ping-450" src="http://hackadaycom.files.wordpress.com/2008/09/ping-450.png" alt="" width="450" height="202" /></p>
<p style="text-align:left;">Once we have the IP address, we can ping the server and test its responsiveness.</p>
<p style="text-align:left;"><img class="alignnone size-full wp-image-3765" title="wireshark" src="http://hackadaycom.files.wordpress.com/2008/09/wireshark.png" alt="" width="449" height="279" /></p>
<p style="text-align:left;">If ping shows high latency or malformed packets, you can use <a href="http://www.wireshark.org/">Wireshark</a> to inspect network traffic at the byte level. Unless you&#8217;re in Germany, because <a href="http://www.theregister.co.uk/2007/08/13/german_anti-hacker_law/">it might be criminal</a>.</p>
<p style="text-align:left;"><em>Building the custom HTTP server</em></p>
<p style="text-align:left;">The custom web server looks for requested files on the SD card, and sends them with the correct content type. We used the Microchip HTTP example server v1 (HTTP.c) as a base for our FAT file server (FATHTTP.c).</p>
<p style="text-align:left;">Microchip&#8217;s HTTP server used a simple file system called MPFS to index web pages on an EEPROM chip. We replaced calls to MPFS functions with calls to functions in the FAT library (see the <em>HTTPProcess</em> and <em>Sendfile</em> functions in FATHTTP.c). Our changes demonstrate the concept as simply as possible, without adding confusing pointers and other handy C obfuscations. The code leaves a ton of room for improvements, have at it. File writes are disabled in the default compilation, but there&#8217;s enough program space to enable them if you want to write to the SD card (see FSConfig.h).</p>
<p style="text-align:left;">It&#8217;s necessary to registered our custom FATHTTP server with the rest of the TCP/IP stack. We did a search and replace for the original HTTP server components, and added calls to our new FATHTTP server as needed. That turned out to be these places:</p>
<ul style="text-align:left;">
<li> TCPIPConfig.h. First we inserted some definitions that enable the FATHTTP server (line 70), and added a TCP socket for the FATHTTP server (line 248).</li>
<li>TCPIP.h. Next, we added FATHTTP to the list of services that require the TCP/IP stack (line 170) and then included the necessary headers (line 351).</li>
<li>StackTSK.c. We added the FATHTTP server initialization (line 138) and processing (line 340) functions to the list of TCP/IP stack tasks.</li>
<li>Helpers.c. We also needed to include a few helper functions for working with URLs (line 259).</li>
</ul>
<p style="text-align:left;">At long last, it&#8217;s time to put some files on an SD card and test this thing. Make sure your files follow the <a href="http://en.wikipedia.org/wiki/8.3_filename">8.3 file name format</a>. The project archive contains a sample website with a test image and zip file.</p>
<p style="text-align:left;"><img class="alignnone size-full wp-image-2913" title="fathttp-450" src="http://hackadaycom.files.wordpress.com/2008/09/fathttp-450.png" alt="" width="449" height="328" /></p>
<p style="text-align:left;">After grabbing the server&#8217;s IP address with MCHPDetect, we pointed a browser at it. The IP address entered alone will redirect the browser to <em>index.htm</em>, whether or not it exists. Web pages and images stored on the SD card display in the browser, but unknown binary types trigger a download prompt.</p>
<p style="text-align:left;"><strong>Taking it further</strong></p>
<p style="text-align:left;"><img class="alignnone size-full wp-image-3750" title="wsbcv3-450ii" src="http://hackadaycom.files.wordpress.com/2008/09/wsbcv3-450ii.jpg" alt="" width="450" height="397" /></p>
<p style="text-align:left;">We see a lot of potential projects using this tiny web platform.</p>
<ul style="text-align:left;">
<li>Add hooks in the FATHTTP.c source for special URLs that trigger events or configure pins.</li>
<li>Build a remotely accessible data logger. Use the extra pins to read sensors and log data to the SD card. Logs are retrievable from a web browser, or directly from the FAT readable SD card.</li>
<li>Get remote access to an ancient serial terminal or BBS, optionally log the console output. Use two external pins as a serial port, and forward commands from the Internet using Microchip&#8217;s Telnet server and Ethernet-to-serial bridge examples.</li>
<li>Your suggestions?</li>
</ul>
<p style="text-align:left;">Next time, we&#8217;ll use the mini server to make an Internet connected, electronic indoor graffiti wall. This will be an interactive project where everyone can contribute graffiti and animations on-line.</p>
<p style="text-align:left;">Schematic, board, and firmware files are included in the <a href="http://blog.mahalo.com/hackaday/howto/wsbcv3.zip">project archive</a> (ZIP). Use the freeware version of <a href="http://www.cadsoft.de">Cadsoft Eagle</a> to view the schematic and PCB. The firmware is written in C, and compiled with the <a href="http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;nodeId=1406&amp;dDocName=en010065">Microchip demonstration C30 compiler</a>.</p>
<p style="text-align:left;"><img class="alignnone size-full wp-image-3748" title="graffiti-wall-diagram-previ" src="http://hackadaycom.files.wordpress.com/2008/09/graffiti-wall-diagram-previ.jpg" alt="" width="450" height="179" /></p>
<p style="text-align:left;"><a class="DiggThisButton DiggMedium" href="http://digg.com/submit?url=http%3A%2F%2Fhackaday.com%2F2008%2F09%2F25%2Fweb-server-on-a-business-card-part-2%2F&amp;title=How-To%3A+Web+server+on+a+business+card+%28Part%26nbsp%3B2%29"></a></p>
<br />Posted in classic hacks, how-to, misc hacks  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/5/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=5&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2008/09/25/web-server-on-a-business-card-part-2/feed/</wfw:commentRss>
		<slash:comments>129</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/wsbcv3-450.jpg" medium="image">
			<media:title type="html">wsbcv3-450</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2008/09/web-server-on-a-business-ca1.jpg" medium="image">
			<media:title type="html">web-server-on-a-business-ca1</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2008/09/cct-4502.jpg" medium="image">
			<media:title type="html">cct-4502</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2008/09/24fj-bcserver-v3.jpg" medium="image">
			<media:title type="html">24fj-bcserver-v3</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2008/09/pcb-4501.png" medium="image">
			<media:title type="html">pcb-4501</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2008/09/mchpdetectexe450.png" medium="image">
			<media:title type="html">mchpdetectexe450</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2008/09/ipaddress-watch-450.png" medium="image">
			<media:title type="html">ipaddress-watch-450</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2008/09/ping-450.png" medium="image">
			<media:title type="html">ping-450</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2008/09/wireshark.png" medium="image">
			<media:title type="html">wireshark</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2008/09/fathttp-450.png" medium="image">
			<media:title type="html">fathttp-450</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2008/09/wsbcv3-450ii.jpg" medium="image">
			<media:title type="html">wsbcv3-450ii</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2008/09/graffiti-wall-diagram-previ.jpg" medium="image">
			<media:title type="html">graffiti-wall-diagram-previ</media:title>
		</media:content>
	</item>
		<item>
		<title>How-To: Web server on a business card (Part 1)</title>
		<link>http://hackaday.com/2008/09/18/web-server-on-a-business-card-part-1/</link>
		<comments>http://hackaday.com/2008/09/18/web-server-on-a-business-card-part-1/#comments</comments>
		<pubDate>Fri, 19 Sep 2008 00:20:09 +0000</pubDate>
		<dc:creator>Ian</dc:creator>
				<category><![CDATA[classic hacks]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[business card]]></category>
		<category><![CDATA[diy]]></category>
		<category><![CDATA[electronics]]></category>
		<category><![CDATA[hard hack]]></category>
		<category><![CDATA[microchip]]></category>
		<category><![CDATA[microcontroller]]></category>
		<category><![CDATA[pic]]></category>
		<category><![CDATA[web server]]></category>

		<guid isPermaLink="false">http://www.hackaday.com/?p=7660</guid>
		<description><![CDATA[For years, Microchip PIC microcontrollers dominated; PIC16F84 hacks and projects are everywhere. The 8-bit 16F and 18F lines are supported by several coding environments and easy-to-build serial port programmers. Microchip&#8217;s 16-bit PIC24F is cheaper, faster, and easier to work with, but largely absent from hacks and projects. We recently used a Microchip PIC24F microcontroller in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=6&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-7738" src="http://hackadaycom.files.wordpress.com/2008/09/base-pcb-450.jpg" alt="" width="450" height="320" /></p>
<p>For years, Microchip PIC microcontrollers dominated; <a href="//www.microchip.com/wwwproducts/Devices.aspx?dDocName=en010230">PIC16F84</a> hacks and projects are <a href="http://www.google.com/search?q=16f84+projects">everywhere</a>. The <a href="http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;nodeId=74">8-bit 16F and 18F</a> lines are supported by several coding environments and <a href="http://www.instructables.com/id/Business-Card-PIC-Programmer/">easy-to-build serial port programmers</a>. Microchip&#8217;s 16-bit <a href="http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;nodeId=75">PIC24F</a> is cheaper, faster, and easier to work with, but largely absent from hacks and projects.</p>
<p>We recently used a <a href="http://www.microchip.com">Microchip</a> PIC24F microcontroller in a mini web server project, but didn&#8217;t find many introductory references to link to. In this article we&#8217;ll cover some PIC 24F basics: support circuitry and programming options.  We&#8217;ll also talk about our favorite features, and how we figured them out. Our next article will outline a web server on a business card based on the PIC 24F.</p>
<p><span id="more-6"></span></p>
<p><strong>The basic circuit</strong></p>
<p><img class="alignnone size-full wp-image-7662" src="http://hackadaycom.files.wordpress.com/2008/09/base-cct-450.png" alt="" width="450" height="255" /></p>
<p>This is the basic support circuit (<a href="http://hackadaycom.files.wordpress.com/2008/09/base-cct-large.jpg">full size .png</a>) for a PIC <a href="http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en026374">24FJ64GA002</a>. Some helpful documents are the <a href="http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;nodeId=2656">code examples</a>, <a href="http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;nodeId=1469">application notes</a>, <a href="http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=8181&amp;mid=14&amp;lang=en&amp;pageId=75">individual datasheets</a>, and <a href="http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;nodeId=2575">24F family manual</a>.</p>
<p><em>Main system power supply</em></p>
<p>Peripherals and pins on the 24F PICs operate between 2.0 and 3.8volts. This is a big advantage over older PICs because the 24F can directly interface modern 3.3volt components like <a href="http://en.wikipedia.org/wiki/Secure_Digital_card">SD memory cards</a>. Some 16F and 18F PICs will run at 3.3volts, but usually at drastically reduced speeds. As always, put a 0.1uF capacitor between each power pin and ground to decouple the chip from the power supply (C1, C2).</p>
<p><em>Core power supply</em></p>
<p>The processor core requires a separate 2.5volt supply. A built-in 2.5volt regulator can be enabled by connecting the DISVREG pin to ground, and placing a 10uF capacitor between the Vcap/VDDCORE pin and ground (C3). We&#8217;ve not experienced any problems using a 10uF low ESR electrolytic capacitor, but in the future we&#8217;ll use a tantalum capacitor as specified in the datasheet.</p>
<p><em>Speed and crystal</em></p>
<p>PIC 24Fs have a max clock speed of 32MHz, and complete one operation every 2 clock cycles for a top speed of 16 million instructions per second (MIPS).  Most 24Fs have an internal 8MHz oscillator, but you can also use an external crystal for a more precise timebase. An internal phase lock loop (PLL) can multiply any clock signal by four.</p>
<p>We used a common option: 8MHz internal oscillator multiplied by four (32MHz), with full IO functions on the external oscillator pins. The clock mode is set with CONFIG2. Use these settings to run a PIC 24F at 32MHz using the internal oscillator and PLL:</p>
<p><pre class="brush: cpp;">
// Internal FRC OSC with 4x PLL @ 32MHz
//from p24FJ64GA002.h:
//FNOSC_FRCPLL - internal oscillator
//OSCIOFNC_ON  - enable the oscillator pins as IO
//POSCMOD_NONE - Primary (external) oscillator disabled

_CONFIG2(FNOSC_FRCPLL &amp; OSCIOFNC_ON &amp;POSCMOD_NONE)
</pre></p>
<p><em>Programming connections</em></p>
<p>Microchip&#8217;s standard 5 wire <a href="http://www.instructables.com/id/Understanding-ICSP-for-PIC-Microcontrollers/">in circuit serial programming</a> (ICSP) connection is used to program the 24F. ICSP consists of a clock line (PGC), bi-directional data line (PGD), master clear and reset (MCLR), and connections to power (V+) and ground (GND).</p>
<p><img class="alignnone size-full wp-image-7665" src="http://hackadaycom.files.wordpress.com/2008/09/icsp-450.png" alt="" width="450" height="171" /></p>
<p>The MCLR function resets the chip when voltage levels are too low to operate. Enable it with a 2000 (2K) ohm resistor (R12) from the system power supply to the MCLR pin. Optionally, add a button (S1) from MCLR to ground for a manual reset switch. The programmer also connects to the MCLR pin to reset the PIC and control programming modes.</p>
<p>PIC 24Fs have several sets of programming pins labeled PGDx and PGCx. Choose the set most convenient for your design. One catch: you can&#8217;t use the clock pin of one set and the data pin of another, you have to use the same pair.</p>
<p>The primary pin pair used for debugging is programmed in CONFIG1 with the ICS_PGX option. This only effects debugging; programming is still possible from any pin pair.</p>
<p><pre class="brush: cpp;">_CONFIG1( ICS_PGx3)</pre></p>
<p><strong>Coding and Programming</strong></p>
<p>Unfortunately, the 24F can&#8217;t be programmed with the hobbyist-favorite serial port programmers. These are usually 5volt programmers that place 13volts on the MCLR pin. 24F PICs are rated for 3.8volts maximum on the MCLR and programming pins, old serial port programmers will destroy them.</p>
<p>The <a href="http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;nodeId=1406&amp;dDocName=en010046">ICD2</a> is Microchip&#8217;s cheapest programmer for the full 24F line. An education discount is available if you have a .edu email. There are numerous clones too, most notable is the <a href="http://www.olimex.com/dev/index.html">Olimex</a> PIC-ICD2 clone, also <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=5">sold by Sparkfun</a>. We&#8217;ve never used it, but it&#8217;s supposed to be an exact clone. You can also try your hand at building a <a href="http://www.icd2clone.com/wiki/Main_Page">DIY ICD2 clone</a>, we&#8217;ve had luck with the PiCS Rev B in the past. You&#8217;ll probably need to build an adapter to <a href="http://www.edaboard.com/ftopic176893.html">use a homebrew ICD2 with a PIC 24F</a>.</p>
<p><img class="alignnone size-full wp-image-7691" src="http://hackadaycom.files.wordpress.com/2008/09/mplab-4501.jpg" alt="" width="450" height="201" /></p>
<p><a href="http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;nodeId=1406&amp;dDocName=en019469&amp;part=SW007002">MPLAB</a> is a free development environment for coding, compiling, and debugging all PIC microcontrollers. We like to program in C, so we downloaded the free, evaluation/student edition of the <a href="http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;nodeId=1406&amp;dDocName=en010065">Microchip C30 compiler</a> that integrates into MPLAB. <a href="http://microchip.htsoft.com/">HI-TECH&#8217;s C compiler</a> is a fairly popular alternative if you&#8217;re not thrilled about MPLAB.</p>
<p>Microchip&#8217;s low-voltage 18FxxJ line, such as the Ethernet enabled <a href="http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=121&amp;mid=10&amp;lang=en&amp;pageId=74">18F97J60</a>, can only be programmed a few hundred times. That&#8217;s fine for production, but really unfriendly to a developer. We&#8217;re exceedingly happy to note that the 24F can be programmed at least 10,000 times.</p>
<p><strong>New features and improvements</strong></p>
<p>We made a list of the things we liked best about the PIC 24F after using it in a project. Not all of them are new, sometimes little improvements make designs much simpler.</p>
<p><em>8-bit vs 16-bit</em></p>
<p>C programmers won&#8217;t notice many differences between <a href="http://en.wikipedia.org/wiki/8-bit">8-bit</a> and <a href="http://en.wikipedia.org/wiki/16-bit">16-bit</a> architectures. Native 16-bit math operations will save you a few cycles if you do 16-bit integer math. Memory and registers are 16-bits long, meaning the default 16-bit variable type counts to 65,536, rather than 255.</p>
<p><em>Peripheral pin select</em></p>
<p>Peripheral pin select (PPS) is our favorite feature on the PIC 24F. The digital peripherals SPI, UARTs, timers, etc can be connected to almost any pin on the chip.</p>
<p><img class="alignnone size-full wp-image-7668" src="http://hackadaycom.files.wordpress.com/2008/09/pps-450.png" alt="" width="450" height="158" /></p>
<p>PCB designs get really creative because the pin arrangement on a microcontroller rarely matches that on the peripheral you&#8217;re interfacing. Compare these two designs. The design on the left uses looping, winding traces to connect a SD card without jumper wires. On the right, we used PPS to assign pins in a way that lined up perfectly with the SD card. We spent caffeine fueled nights routing the board on the left, but only hours on the other. We&#8217;ll find it difficult to ever work with a PIC 16F or 18F again because of the complete and total awesomeness of PPS.</p>
<p>Input and output pins are assigned differently: pins are assigned to inputs, outputs are assigned to pins. A peripheral input, such as the &#8220;serial data input&#8221; (SDI) signal of an <a href="http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus">SPI interface</a>, is set by putting a pin number in its register. In the C30 compiler, SDI of SPI1 and SPI2 are assigned like this:</p>
<p><pre class="brush: cpp;">
// Inputs
//SDI1 B12/23/RP12
//SDI2 B1/5/RP1

RPINR20bits.SDI1R = 12;            //SDI1 = PORTB12

RPINR22bits.SDI2R = 1;            //SDI2 = PORTB1</pre></p>
<p>Output functions are handled in the opposite way. A group of registers represent the programmable pins (RPORx). Peripheral outputs are assigned to each pin. Assign the SPI &#8220;serial data output&#8221; and &#8220;clock output&#8221; lines like this:</p>
<p><pre class="brush: cpp;">
// Outputs
//SDO1 B11/22/RP11   //CLK1 B10/21/RD10

RPOR5bits.RP10R = SCK1OUT_IO;     //RP10 = SCK1

RPOR5bits.RP11R = SDO1_IO;        //RP11 = SDO1

//SDO2 B3/7/RP3       //CLK2 B2/6/RP2

RPOR1bits.RP2R = SCK2OUT_IO;     //RP2 = SCK2

RPOR1bits.RP3R = SDO2_IO;        //RP3 = SDO2</pre></p>
<p>Check the device datasheet and the <a href="http://ww1.microchip.com/downloads/en/DeviceDoc/39711b.pdf">IO with PPS datasheet</a> (PDF) for a complete list of peripheral (RPINRxx) and pin (RPORx) registers.</p>
<p><em>Individually configurable pull-up/pull-down resistors</em></p>
<p><a href="http://en.wikipedia.org/wiki/Pull-up_resistor">Pull-up and pull-down resistors</a> hold inputs at a known level when there&#8217;s no other signal. Illustrated below on the left (S1), a pull-up resistor (R1) normally holds the signal high (1). A button press pulls the signal to ground (0). Without a pull-up resistor, the value on the microcontroller pin will fluctuate wildly (state undefined) until a button press pulls it to ground (0).</p>
<p><img class="alignnone size-full wp-image-7687" src="http://hackadaycom.files.wordpress.com/2008/09/pullups-4502.png" alt="" width="450" height="217" /></p>
<p>Internal pull-up resistors make it easier to route a button on a circuit board. An internal resistor holds the signal high until the button pulls it low, saving a resistor and  power supply trace (S2). PIC 16Fs and 18Fs sometimes have an all-or-nothing pull-up on 8 pins, but the 24F adds individually configurable pull-up resistors. See the <a href="http://ww1.microchip.com/downloads/en/DeviceDoc/39711b.pdf">IO datasheet</a> (PDF).</p>
<p><em>CRC hardware module</em></p>
<p><a href="http://en.wikipedia.org/wiki/Cyclic_redundancy_check">Cyclic redundancy check</a> (CRC) values are used to verify the integrity of data. Your PC calculated CRCs for the TCP packets that carried this page over the web. The 24F has a hardware CRC module that does tedious CRC calculation without processor involvement. Check out the <a href="http://ww1.microchip.com/downloads/en/DeviceDoc/39714a.pdf">datasheet</a> (PDF) and <a href="http://ww1.microchip.com/downloads/en/DeviceDoc/CE312%20CRC.zip">example code</a> (ZIP).</p>
<p><em>Real time clock and calender</em></p>
<p>Microchip added a hardware <a href="http://en.wikipedia.org/wiki/Real-time_clock">real time clock and calendar</a> module (RTCC) to every 24F. It&#8217;s always been easy to add an interrupt-based clock to a microcontroller, but this module takes care of everything without  timing concerns.</p>
<p><img class="alignnone size-full wp-image-7661" src="http://hackadaycom.files.wordpress.com/2008/09/32xtal-450.png" alt="" width="450" height="163" /></p>
<p>The RTCC module requires a 32.768khz watch crystal (Q1) to be connected to the SOSCx pin pair. Don&#8217;t forget 2 suitable capacitors for your crystal, we used 27pF (C1,C2). There&#8217;s a <a href="http://ww1.microchip.com/downloads/en/DeviceDoc/39696b.pdf">datasheet for the RTCC module</a> (PDF),  and <a href="http://ww1.microchip.com/downloads/en/DeviceDoc/RTCC.zip">example code</a> (ZIP).</p>
<p><strong>Package sizes</strong></p>
<p><img class="alignnone size-full wp-image-7692" src="http://hackadaycom.files.wordpress.com/2008/09/packages-450-slim.jpg" alt="" width="450" height="262" /></p>
<p>Microchip continues their tradition of offering products in a range of package sizes. Low pin count parts are available in <a href="http://en.wikipedia.org/wiki/Dual_in-line_package">through-hole (DIP)</a> and several surface mount sizes. As with all manufacturers, though, the largest, coolest, chips are only produced in surface mount packages. Microchip is a fan of 64, 80, and 100 pin thin quad flat packs (TQFP), a square chip with an equal number of pins on all sides. TQFP isn&#8217;t terribly difficult to solder, but the circuit boards can be a pain to make at home.</p>
<p><strong>Conclusion</strong></p>
<p>The past was dominated by 8-bit PIC 16F and 18F-based microcontroller projects. 16-bit PICs, however, have been largely neglected. If you&#8217;re already considering a PIC for your next project, check out the 24F series. The peripheral pin select feature alone is worth the switch &#8212; it simplifies circuit boards, reduces routing time, and saves board space. We were able to fit an entire PIC 24F web server on a business card using a home-etched PCB. Our next article will introduce this simple server prototype.</p>
<p>The <a href="http://blog.mahalo.com/hackaday/howto/PIC24FIntro.zip">project archive</a> (ZIP) contains the base schematic for the PIC24FJ64GA002, and a custom 28pin part we added to an existing <a href="http://www.cadsoft.de/cgi-bin/download.pl?page=/home/cadsoft/html_public/download.htm.en&amp;dir=pub/userfiles/doc">PIC 24F part library</a>. Both are for use with <a href="http://www.cadsoft.de/info.htm">Cadsoft Eagle</a>, a <a href="http://www.cadsoft.de/download.htm">freeware version is available</a> for most popular platforms.</p>
<p><img class="alignnone size-full wp-image-7739" src="http://hackadaycom.files.wordpress.com/2008/09/webserver-complete-overview.jpg" alt="" width="450" height="263" /></p>
<br />Posted in classic hacks, how-to  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/6/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=6&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2008/09/18/web-server-on-a-business-card-part-1/feed/</wfw:commentRss>
		<slash:comments>33</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/base-pcb-450.jpg" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/09/base-cct-450.png" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/09/icsp-450.png" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/09/mplab-4501.jpg" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/09/pps-450.png" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/09/pullups-4502.png" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/09/32xtal-450.png" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/09/packages-450-slim.jpg" medium="image" />

		<media:content url="http://hackadaycom.files.wordpress.com/2008/09/webserver-complete-overview.jpg" medium="image" />
	</item>
	</channel>
</rss>
