<?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; business card</title>
	<atom:link href="http://hackaday.com/tag/business-card/feed/" rel="self" type="application/rss+xml" />
	<link>http://hackaday.com</link>
	<description>Fresh hacks every day</description>
	<lastBuildDate>Fri, 10 Feb 2012 13:12:42 +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; business card</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>POV business card is guaranteed to get you noticed</title>
		<link>http://hackaday.com/2011/03/21/pov-business-card-is-guaranteed-to-get-you-noticed/</link>
		<comments>http://hackaday.com/2011/03/21/pov-business-card-is-guaranteed-to-get-you-noticed/#comments</comments>
		<pubDate>Mon, 21 Mar 2011 19:00:33 +0000</pubDate>
		<dc:creator>Mike Nathan</dc:creator>
				<category><![CDATA[led hacks]]></category>
		<category><![CDATA[Microcontrollers]]></category>
		<category><![CDATA[business card]]></category>
		<category><![CDATA[led]]></category>
		<category><![CDATA[pic]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=38120</guid>
		<description><![CDATA[Some say that handing out business cards is an antiquated practice due to the ubiquity of smart phones which can be used to trade or record contact information in mere moments. Instructables user [sponges] however, doesn&#8217;t agree and is pushing a &#8220;business card renaissance&#8221; of sorts with his POV business card. Hand-built in his basement, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=38120&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-38121" title="pov_business_card" src="http://hackadaycom.files.wordpress.com/2011/03/pov_business_card.jpg" alt="pov_business_card" width="470" height="310" /></p>
<p>Some say that handing out business cards is an antiquated practice due to the ubiquity of smart phones which can be used to trade or record contact information in mere moments. Instructables user [sponges] however, doesn&#8217;t agree and is pushing a &#8220;business card renaissance&#8221; of sorts with <a href="http://www.instructables.com/id/Circuit-Board-Lab-POV-Business-Card" target="_blank">his POV business card</a>.</p>
<p>Hand-built in his basement, the cards feature a handful of SMD LEDs that display his name, followed by his phone number when waved back and forth. Constructed to be nearly the same size as a standard business card, his verison uses a PIC to manage the display as well as a tilt sensor to monitor the card&#8217;s motion. His walkthrough is quite thorough, and includes tutorials for each of the steps required to build the card. He discusses constructing your own etching tank, converting a laminator for PCB transfer purposes, building a solder reflow oven controller, as well as hacking an aquarium pump for use as a vacuum-powered pick and place.</p>
<p>The end result is a sharp looking business card that ensures you won&#8217;t forget meeting him. Keep reading to see a video of the card in action.</p>
<p><span id="more-38120"></span><span style="text-align:center; display: block;"><a href="http://hackaday.com/2011/03/21/pov-business-card-is-guaranteed-to-get-you-noticed/"><img src="http://img.youtube.com/vi/ud7QIuD4lUM/2.jpg" alt="" /></a></span></p>
<br />Filed under: <a href='http://hackaday.com/category/led-hacks/'>led 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/38120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/38120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/38120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/38120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/38120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/38120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/38120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/38120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/38120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/38120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/38120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/38120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/38120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/38120/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=38120&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2011/03/21/pov-business-card-is-guaranteed-to-get-you-noticed/feed/</wfw:commentRss>
		<slash:comments>15</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/03/pov_business_card.jpg" medium="image">
			<media:title type="html">pov_business_card</media:title>
		</media:content>
	</item>
		<item>
		<title>Hackaday links: December 26, 2010</title>
		<link>http://hackaday.com/2010/12/26/hackaday-links-december-26-2010/</link>
		<comments>http://hackaday.com/2010/12/26/hackaday-links-december-26-2010/#comments</comments>
		<pubDate>Sun, 26 Dec 2010 20:00:15 +0000</pubDate>
		<dc:creator>Mike Szczys</dc:creator>
				<category><![CDATA[Hackaday links]]></category>
		<category><![CDATA[555]]></category>
		<category><![CDATA[business card]]></category>
		<category><![CDATA[christmas tree]]></category>
		<category><![CDATA[ritewing]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=32082</guid>
		<description><![CDATA[Obligatory tech tree It&#8217;s hard to let a Christmas go by without looking in on a geeky Christmas tree project. Luckily, [Peter Davenport] decided to share his Arduino and LCD shield tree. Blinking USB dude If you&#8217;ve got a 555 timer and some commonly salvageable components give this blinking LED man a try. The version above is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=32082&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Obligatory tech tree</strong></p>
<p><strong><img class="alignnone size-full wp-image-32083" title="links-lcd-xmas-tree" src="http://hackadaycom.files.wordpress.com/2010/12/links-lcd-xmas-tree.jpg" alt="" width="470" height="150" /></strong></p>
<p>It&#8217;s hard to let a Christmas go by without looking in on a geeky Christmas tree project. Luckily, [Peter Davenport] decided to share his <a href="http://peterdavenport.blogspot.com/2010/12/its-8-bit-christmas-charlie-brown.html">Arduino and LCD shield tree</a>.</p>
<p><strong>Blinking USB dude</strong></p>
<p><strong><img class="alignnone size-full wp-image-32084" title="links-led-blinking-guy" src="http://hackadaycom.files.wordpress.com/2010/12/links-led-blinking-guy.jpg" alt="" width="470" height="150" /></strong></p>
<p>If you&#8217;ve got a 555 timer and some commonly salvageable components give this <a href="http://www.circuithowto.com/2010/11/blinkie-led-guy.html">blinking LED man</a> a try. The version above is USB powered but that&#8217;s just to take advantage of the 5V regulated power.</p>
<p><strong>Propeller business card</strong></p>
<p><strong><img class="alignnone size-full wp-image-32085" title="links-propeller-business-card" src="http://hackadaycom.files.wordpress.com/2010/12/links-propeller-business-card.png" alt="" width="470" height="150" /></strong></p>
<p>[Jay's] <a href="http://www.chasingtrons.com/main/tag/business-card">business card</a> is packing quite a punch with this Propeller microcontroller. We love seeing electronics design in cards (however unrealistic the price and portability may be), and this is a big processing upgrade compared to <a href="http://hackaday.com/2010/10/29/tiny-usb-business-card/">the Tiny85 based offering</a>.</p>
<p><strong>Flying high in NYC</strong></p>
<p><strong><img class="alignnone size-full wp-image-32086" title="links-nyc-rc-view" src="http://hackadaycom.files.wordpress.com/2010/12/links-nyc-rc-view.png" alt="" width="470" height="150" /><br />
</strong></p>
<p>We leave you with <a href="http://www.youtube.com/watch?v=M9cSxEqKQ78">a spectacular view of New York City</a>. This breathtaking footage is just as fascinating as <a href="http://hackaday.com/2010/09/14/ritewing-zephyr-build-and-flight-footage/">the first videos we saw from these folks</a>.</p>
<br />Filed under: <a href='http://hackaday.com/category/hackaday-links/'>Hackaday links</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/32082/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/32082/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/32082/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/32082/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/32082/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/32082/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/32082/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/32082/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/32082/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/32082/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/32082/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/32082/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/32082/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/32082/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=32082&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2010/12/26/hackaday-links-december-26-2010/feed/</wfw:commentRss>
		<slash:comments>11</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/links-lcd-xmas-tree.jpg" medium="image">
			<media:title type="html">links-lcd-xmas-tree</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2010/12/links-led-blinking-guy.jpg" medium="image">
			<media:title type="html">links-led-blinking-guy</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2010/12/links-propeller-business-card.png" medium="image">
			<media:title type="html">links-propeller-business-card</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2010/12/links-nyc-rc-view.png" medium="image">
			<media:title type="html">links-nyc-rc-view</media:title>
		</media:content>
	</item>
		<item>
		<title>Tiny USB business card</title>
		<link>http://hackaday.com/2010/10/29/tiny-usb-business-card/</link>
		<comments>http://hackaday.com/2010/10/29/tiny-usb-business-card/#comments</comments>
		<pubDate>Fri, 29 Oct 2010 15:11:29 +0000</pubDate>
		<dc:creator>Mike Szczys</dc:creator>
				<category><![CDATA[Microcontrollers]]></category>
		<category><![CDATA[attiny85]]></category>
		<category><![CDATA[AVR]]></category>
		<category><![CDATA[business card]]></category>
		<category><![CDATA[diode]]></category>
		<category><![CDATA[V-USB]]></category>
		<category><![CDATA[zener]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=29885</guid>
		<description><![CDATA[[Frank Zhao] put together a USB business card. It&#8217;s even got the instructions printed right on the silk screen of the PCB explaining how it should be used. He based the design around an AVR ATtiny85 microcontroller. It runs the V-USB package that handles USB identification and communication protocols. The rest of the hardware is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=29885&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-29887" title="usbbusinesscard_1" src="http://hackadaycom.files.wordpress.com/2010/10/usbbusinesscard_1-e1288364092489.jpg" alt="" width="470" height="353" /></p>
<p>[Frank Zhao] put together <a href="http://frank.circleofcurrent.com/cache/usbbusinesscard_details.htm">a USB business card</a>. It&#8217;s even got the instructions printed right on the silk screen of the PCB explaining how it should be used. He based the design around an AVR ATtiny85 microcontroller. It runs the V-USB package that handles USB identification and communication protocols. The rest of the hardware is pretty standard, the uC draws power from the 5V USB rail, with a couple of 3.6V Zener diodes to drop the two data lines down to the proper level.</p>
<p>Once plugged in it waits until it detects three caps lock keypresses in a row, then spews a string of its own keypresses that type out [Frank's] contact information in a text editor window (video after the break). It&#8217;s not as reusable as <a href="http://hackaday.com/2010/05/25/mass-storage-business-card/">the mass storage business card</a> because [Frank] didn&#8217;t breakout the pins on controller. But we still enjoy seeing <a href="http://hackaday.com/2008/12/01/gears-embeded-in-busines-cards/">business cards that make you stand out</a>.</p>
<p>This is a great project to tackle with <a href="http://hackaday.com/2010/10/23/avr-programming-introduction/">your newly acquired AVR programming skills</a>.</p>
<p><span id="more-29885"></span><span style="text-align:center; display: block;"><a href="http://hackaday.com/2010/10/29/tiny-usb-business-card/"><img src="http://img.youtube.com/vi/vX1tDk_iwOo/2.jpg" alt="" /></a></span></p>
<p>[Thanks Harald]</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/29885/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/29885/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/29885/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/29885/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/29885/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/29885/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/29885/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/29885/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/29885/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/29885/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/29885/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/29885/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/29885/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/29885/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=29885&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2010/10/29/tiny-usb-business-card/feed/</wfw:commentRss>
		<slash:comments>41</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/10/usbbusinesscard_1-e1288364092489.jpg" medium="image">
			<media:title type="html">usbbusinesscard_1</media:title>
		</media:content>
	</item>
		<item>
		<title>Mass storage business card</title>
		<link>http://hackaday.com/2010/05/25/mass-storage-business-card/</link>
		<comments>http://hackaday.com/2010/05/25/mass-storage-business-card/#comments</comments>
		<pubDate>Tue, 25 May 2010 17:09:24 +0000</pubDate>
		<dc:creator>Mike Szczys</dc:creator>
				<category><![CDATA[misc hacks]]></category>
		<category><![CDATA[24fj64gb002]]></category>
		<category><![CDATA[business card]]></category>
		<category><![CDATA[mass storage]]></category>
		<category><![CDATA[pic]]></category>
		<category><![CDATA[usb]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=24390</guid>
		<description><![CDATA[Just snap off the corners and this business card can be used as a mass storage device. Well sort of. The tab left over has four traces on the back to make it USB compatible. The PIC 24FJ64GB002 microcontroller on the card registers as a storage device and launches [Ramiro's] resume and a cover letter [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=24390&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-24391" title="mass-storage-business-card" src="http://hackadaycom.files.wordpress.com/2010/05/mass-storage-business-card.jpg" alt="" width="470" height="307" /></p>
<p>Just snap off the corners and this <a href="http://www.t4f.org/projects/business-card">business card can be used as a mass storage device</a>. Well sort of. The tab left over has four traces on the back to make it USB compatible. The PIC 24FJ64GB002 microcontroller on the card registers as a storage device and launches [Ramiro's] resume and a cover letter loaded as an HTML file. He&#8217;s made it as useful as possible by including access to the SPI and I2C bus connections but he&#8217;s also included some firmware to act as a data logger or an oscilloscope. At about 5 euros a piece you won&#8217;t be distributing these willy-nilly but it&#8217;s not too much more than <a href="http://hackaday.com/2009/05/30/business-cards-at-maker-faire/">handing out breakout boards</a> with your name all over them.</p>
<br />Filed under: <a href='http://hackaday.com/category/misc-hacks/'>misc hacks</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/24390/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/24390/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/24390/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/24390/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/24390/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/24390/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/24390/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/24390/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/24390/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/24390/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/24390/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/24390/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/24390/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/24390/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=24390&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2010/05/25/mass-storage-business-card/feed/</wfw:commentRss>
		<slash:comments>28</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/05/mass-storage-business-card.jpg" medium="image">
			<media:title type="html">mass-storage-business-card</media:title>
		</media:content>
	</item>
		<item>
		<title>Augmented reality business card</title>
		<link>http://hackaday.com/2009/07/15/augmented-reality-business-card/</link>
		<comments>http://hackaday.com/2009/07/15/augmented-reality-business-card/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 21:33:44 +0000</pubDate>
		<dc:creator>Eliot</dc:creator>
				<category><![CDATA[digital cameras hacks]]></category>
		<category><![CDATA[downloads hacks]]></category>
		<category><![CDATA[video hacks]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[ar]]></category>
		<category><![CDATA[augmented reality]]></category>
		<category><![CDATA[business card]]></category>
		<category><![CDATA[fiduciary marker]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[james alliban]]></category>
		<category><![CDATA[josh spear]]></category>
		<category><![CDATA[vimeo]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=12736</guid>
		<description><![CDATA[Embedded above is a neat augmented reality business card by ActionScript developer [James Alliban]. After seeing &#8220;the most impressive business card you will ever see&#8220;, he was inspired to update his own business card. His new card has a fiduciary marker on the backside and directs you to his site. A flash app on the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=12736&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div class='embed-vimeo' style='text-align:center;'><iframe src='http://player.vimeo.com/video/4979525' width='400' height='300' frameborder='0'></iframe></div>
<p>Embedded above is a neat <a title="AR Business card « James Alliban" href="http://jamesalliban.wordpress.com/2009/06/03/ar-business-card/">augmented reality business card</a> by ActionScript developer [James Alliban]. After seeing &#8220;<a title="YouTube - Business Card Fail" href="http://www.youtube.com/watch?v=f2mHkQUBEpM">the most impressive business card you will ever see</a>&#8220;, he was inspired to update his own business card. His new card has a fiduciary marker on the backside and directs you to his site. A flash app on the site displays a video where he tells you more about himself. The 3D grid of planes in the video varies in depth based on the brightness of the section. He has a few more <a title="James Alliban on Vimeo" href="http://vimeo.com/jamesalliban">AR and tracking demos on Vimeo</a>.</p>
<p><strong>Updated: </strong>While we&#8217;re talking augmented reality, it&#8217;s worth checking out the tech behind <a href="http://www.popsci.com/entertainment-amp-gaming/article/2009-07/how-it-works-espns-ball-tracker-follows-home-runs-doppler-radar">ESPN&#8217;s baseball tracker that uses doppler radar</a>.</p>
<p>Related: <a title="Augmented reality in Flash  - Hack a Day" href="http://hackaday.com/2008/11/19/augmented-reality-in-flash/">Augmented reality in Flash</a></p>
<p>[via <a title="Augmented Reality Business Card -  Josh Spear, Trendspotting" href="http://joshspear.com/item/augmented-reality-business-card/">Josh Spear</a>]</p>
<br />Posted in digital cameras hacks, downloads hacks, video hacks  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/12736/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/12736/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/12736/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/12736/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/12736/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/12736/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/12736/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/12736/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/12736/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/12736/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/12736/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/12736/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/12736/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/12736/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=12736&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2009/07/15/augmented-reality-business-card/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">RobotSkirts</media:title>
		</media:content>
	</item>
		<item>
		<title>ATTiny 2313 breakout boards from EMSL</title>
		<link>http://hackaday.com/2009/06/03/attiny-2313-breakout-boards-from-emsl/</link>
		<comments>http://hackaday.com/2009/06/03/attiny-2313-breakout-boards-from-emsl/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 18:56:21 +0000</pubDate>
		<dc:creator>Caleb Kraft</dc:creator>
				<category><![CDATA[misc hacks]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[attiny]]></category>
		<category><![CDATA[business card]]></category>
		<category><![CDATA[emsl]]></category>
		<category><![CDATA[evil mad scientist laboratories]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=11366</guid>
		<description><![CDATA[Evil Mad Scientist Laboratories has released the 2313 target board. A business card sized development board for working with ATTiny 2313 microprocessors. We saw them at the Maker Faire, and thought they looked familiar. You may recognize them due to their similarity to the Atmegaxx8 family board. As usual, this is released as creative commons [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=11366&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-11368" title="3592136552_e69c9190a1 (Custom)" src="http://hackadaycom.files.wordpress.com/2009/06/3592136552_e69c9190a1-custom.jpg" alt="3592136552_e69c9190a1 (Custom)" width="450" height="338" /></p>
<p>Evil Mad Scientist Laboratories has <a href="http://www.evilmadscientist.com/article.php/card2313">released the 2313 target board</a>. A business card sized development board for working with ATTiny 2313 microprocessors. We <a href="http://hackaday.com/2009/05/30/business-cards-at-maker-faire/">saw them at the Maker Faire</a>, and thought they looked familiar. You may recognize them due to their similarity to the <a href="http://hackaday.com/2008/11/08/business-card-avr-board-updated/">Atmegaxx8 family board</a>. As usual, this is released as creative commons and source files are available on their site.</p>
<br />Posted in misc hacks, news  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/11366/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/11366/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/11366/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/11366/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/11366/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/11366/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/11366/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/11366/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/11366/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/11366/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/11366/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/11366/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/11366/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/11366/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=11366&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2009/06/03/attiny-2313-breakout-boards-from-emsl/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Caleb Kraft</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/06/3592136552_e69c9190a1-custom.jpg" medium="image">
			<media:title type="html">3592136552_e69c9190a1 (Custom)</media:title>
		</media:content>
	</item>
		<item>
		<title>Business cards at Maker Faire</title>
		<link>http://hackaday.com/2009/05/30/business-cards-at-maker-faire/</link>
		<comments>http://hackaday.com/2009/05/30/business-cards-at-maker-faire/#comments</comments>
		<pubDate>Sat, 30 May 2009 22:00:52 +0000</pubDate>
		<dc:creator>Eliot</dc:creator>
				<category><![CDATA[cons]]></category>
		<category><![CDATA[misc hacks]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[adafruit]]></category>
		<category><![CDATA[attiny]]></category>
		<category><![CDATA[attiny 2313]]></category>
		<category><![CDATA[business card]]></category>
		<category><![CDATA[emsl]]></category>
		<category><![CDATA[evil mad science]]></category>
		<category><![CDATA[maker faire]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=11342</guid>
		<description><![CDATA[[John Park] has managed to snag a couple interesting business cards at Maker Faire. The first is Adafruit&#8217;s laser cut Spirograph card. The other is a ATtiny 2313 prototyping board from Evil Mad Science; it looks to be the same style as their well-known AVR target board. We&#8217;ve also heard rumors that [Jérôme Demers] has [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=11342&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-11343" title="business_card" src="http://hackadaycom.files.wordpress.com/2009/05/business_card.jpg" alt="business_card" width="450" height="281" /></p>
<p>[John Park] has managed to snag a couple interesting business cards at Maker Faire. The first is Adafruit&#8217;s <a title="Adafruit business cards - Laser cut SPIROGRAPH cards! «  adafruit industries blog" href="http://www.adafruit.com/blog/2009/05/25/adafruit-business-cards-laser-cut-spirograph-cards/">laser cut Spirograph card</a>. The other is a <a title="Make: Online : Calling card collecting at Maker Faire" href="http://blog.makezine.com/archive/2009/05/calling_card_collecting_at_maker_fa.html?CMP=OTC-0D6B48984890">ATtiny 2313</a> prototyping board from Evil Mad Science; it looks to be the same style as their well-known <a title="Simple target boards for ATmegaXX8 microcontrollers" href="http://evilmadscience.com/tinykitlist/74-atmegaxx8h">AVR target board</a>. We&#8217;ve also heard rumors that [Jérôme Demers] has bunch of resistor bending cards.</p>
<p>For more business card nonsense, check out: [Goodspeed]&#8216;s <a title="Smart card emulator  - Hack a Day" href="http://hackaday.com/2009/03/03/smart-card-emulator/">smart card emulator</a>, [Mayer]&#8216;s <a title="Gears embedded in business cards  - Hack a Day" href="http://hackaday.com/2008/12/01/gears-embeded-in-busines-cards/">embedded gears</a>, and our <a title="How-To: Web server on a business card (Part 2)  - Hack a Day" href="http://hackaday.com/2008/09/25/web-server-on-a-business-card-part-2/">web server business card</a>.</p>
<br />Posted in cons, misc hacks, news  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/11342/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/11342/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/11342/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/11342/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/11342/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/11342/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/11342/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/11342/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/11342/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/11342/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/11342/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/11342/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/11342/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/11342/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=11342&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2009/05/30/business-cards-at-maker-faire/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">RobotSkirts</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2009/05/business_card.jpg" medium="image">
			<media:title type="html">business_card</media:title>
		</media:content>
	</item>
		<item>
		<title>Business card AVR board updated</title>
		<link>http://hackaday.com/2008/11/08/business-card-avr-board-updated/</link>
		<comments>http://hackaday.com/2008/11/08/business-card-avr-board-updated/#comments</comments>
		<pubDate>Sun, 09 Nov 2008 04:00:27 +0000</pubDate>
		<dc:creator>Eliot</dc:creator>
				<category><![CDATA[news]]></category>
		<category><![CDATA[tool hacks]]></category>
		<category><![CDATA[atmega]]></category>
		<category><![CDATA[AVR]]></category>
		<category><![CDATA[breakout]]></category>
		<category><![CDATA[breakout board]]></category>
		<category><![CDATA[business card]]></category>
		<category><![CDATA[isp]]></category>
		<category><![CDATA[programmer]]></category>
		<category><![CDATA[tennis for two]]></category>
		<category><![CDATA[zif]]></category>
		<category><![CDATA[zif socket]]></category>

		<guid isPermaLink="false">http://hackadaycom.wordpress.com/?p=5648</guid>
		<description><![CDATA[Evil Mad Scientist Laboratories has updated their business card AVR breakout boards to version 1.1. We suspect the changes will probably make them even more popular. The boards are designed for the ATmegaXX8 family of microcontrollers. The center has all 28 pins labeled while either end has a prototyping area. An in-system programming header is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=5648&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-5647" title="bcard" src="http://hackadaycom.files.wordpress.com/2008/11/bcard.jpg" alt="bcard" width="450" height="280" /></p>
<p>Evil Mad Scientist Laboratories has <a title="Version 1.1" href="http://www.evilmadscientist.com/article.php/card2">updated</a> their <a title="Business card breakout boards" href="http://www.evilmadscientist.com/article.php/card">business card AVR breakout boards</a> to version 1.1. We suspect the changes will probably make them even more popular. The boards are designed for the ATmegaXX8 family of microcontrollers. The center has all 28 pins labeled while either end has a prototyping area. An <a href="http://en.wikipedia.org/wiki/In-System_Programming">in-system programming</a> header is also provided. For the new version, both prototyping areas have been increased to accommodate DIP14 packages. The holes for the microcontroller are now larger so that they can hold a ZIF socket. Finally, the power and ground traces have been expanded. We&#8217;ve always like the versatility of these boards, as demonstrated in the <a title="Evil Mad Scientist Laboratories - Resurrecting Tennis for Two, a video game from 1958" href="http://www.evilmadscientist.com/article.php/tennis">Tennis for Two project</a>, and can&#8217;t help wondering if these updates were made to facilitate another project.</p>
<br />Posted in news, tool hacks  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/5648/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/5648/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/5648/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/5648/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/5648/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/5648/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/5648/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/5648/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/5648/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/5648/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/5648/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/5648/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/5648/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/5648/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=5648&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2008/11/08/business-card-avr-board-updated/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">RobotSkirts</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2008/11/bcard.jpg" medium="image">
			<media:title type="html">bcard</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>
		<item>
		<title>Dot matrix business card</title>
		<link>http://hackaday.com/2008/09/05/dot-matrix-business-card/</link>
		<comments>http://hackaday.com/2008/09/05/dot-matrix-business-card/#comments</comments>
		<pubDate>Fri, 05 Sep 2008 15:54:58 +0000</pubDate>
		<dc:creator>Joey Celis</dc:creator>
				<category><![CDATA[led hacks]]></category>
		<category><![CDATA[misc hacks]]></category>
		<category><![CDATA[business card]]></category>
		<category><![CDATA[businesscard]]></category>
		<category><![CDATA[led]]></category>

		<guid isPermaLink="false">http://www.hackaday.com/?p=7613</guid>
		<description><![CDATA[In most settings business cards are given out without much thought. But what if you could make your card stand out from the rest? By using a 5&#215;15 LED matrix screen, a single micro controller, a number of resistors, switches, and other parts, [tomward] has put together one very slick business card that&#8217;s sure to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=2671&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-7619" src="http://hackadaycom.files.wordpress.com/2008/09/dotmatrix.jpg" alt="" width="450" height="253" /></p>
<p>In most settings business cards are given out without much thought. But what if you could make your card stand out from the rest? By using a 5&#215;15 LED matrix screen, a single micro controller, a number of resistors, switches, and other parts, [tomward] has put together <a href="http://www.instructables.com/id/Dot_Matrix_Business_Card/">one very slick business card</a> that&#8217;s sure to draw attention.</p>
<p>The included instructions go into great detail on the construction, but [tomward]admits that you will need some knowledge in electronics in order to build one yourself.  After reading the instructions ourselves we would have to agree with him.</p>
<p>If you&#8217;re into programing micro controllers and are handy with a soldering iron you may want to give this a shot.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/hackadaycom.wordpress.com/2671/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/hackadaycom.wordpress.com/2671/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/2671/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/2671/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/2671/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/2671/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/2671/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/2671/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/2671/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/2671/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/2671/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/2671/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/2671/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/2671/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/2671/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/2671/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=2671&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2008/09/05/dot-matrix-business-card/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Joey Celis</media:title>
		</media:content>

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