<?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; enc28j60</title>
	<atom:link href="http://hackaday.com/tag/enc28j60/feed/" rel="self" type="application/rss+xml" />
	<link>http://hackaday.com</link>
	<description>Fresh hacks every day</description>
	<lastBuildDate>Fri, 10 Feb 2012 11:18:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='hackaday.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/5560f98f805877b0e332f191cb9e0af3?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Hack a Day &#187; enc28j60</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>Commandeer X10-based home automation with your favorite microcontroller</title>
		<link>http://hackaday.com/2012/01/17/commandeer-x10-based-home-automation-with-your-favorite-microcontroller/</link>
		<comments>http://hackaday.com/2012/01/17/commandeer-x10-based-home-automation-with-your-favorite-microcontroller/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 21:41:47 +0000</pubDate>
		<dc:creator>Mike Szczys</dc:creator>
				<category><![CDATA[home hacks]]></category>
		<category><![CDATA[Microcontrollers]]></category>
		<category><![CDATA[enc28j60]]></category>
		<category><![CDATA[home automation]]></category>
		<category><![CDATA[serial]]></category>
		<category><![CDATA[tc4427]]></category>
		<category><![CDATA[x10]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=65675</guid>
		<description><![CDATA[X10 has been around for a long time. It&#8217;s the brand name for a set of wireless modules used to switch electrical devices in the home. There&#8217;s all kinds of different units (bulb sockets, electrical outlets and plug pass-throughs, etc.) and they&#8217;re mass-produced which makes them really inexpensive. Whether you already have some X10 controlled [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=65675&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-65676" title="firecracker_interface" src="http://hackadaycom.files.wordpress.com/2012/01/firecracker_interface-e1326819473905.jpg" alt="" width="470" height="203" /></p>
<p>X10 has been around for a long time. It&#8217;s the brand name for a set of wireless modules used to switch electrical devices in the home. There&#8217;s all kinds of different units (bulb sockets, electrical outlets and plug pass-throughs, etc.) and they&#8217;re mass-produced which makes them really inexpensive. Whether you already have some X10 controlled devices or just plan to add them later, we think you&#8217;ll find [Jeff Ledger's] post on <a href="http://www.gadgetgangster.com/news/45-designer-news/524">controlling the system with a Propeller chip interesting</a>. The technique is not Propeller specific and will be simple to port to your microcontroller of choice.</p>
<p>[Jeff] got his hands on an X10 Firecracker. This provides a DB-9 serial connection meant to be used for computer control. But the interface is so simple all you need is two I/O pins feeding the level converter circuit seen above. You can get the TC4427 for less than a dollar, and the Firecrcker module for as little as $6. Since [Jeff] has already covered adding Ethernet via a ENC28J60 he goes on to detail a web-server that lets him switch his devices, all served from the Propeller chip.</p>
<p>Here&#8217;s <a href="http://hackaday.com/2010/07/08/stepping-beyond-the-ethernet-shield/">a different ENC28J60 Ethernet tutorial</a> for those interested in webpages from microcontrollers. And then there&#8217;s also <a href="http://hackaday.com/2011/08/24/zigbee-home-automation-gives-us-another-reason-not-to-get-up/">a ZigBee home automation project</a> if you&#8217;re not warming up to the idea of using X10 modules.</p>
<br />Filed under: <a href='http://hackaday.com/category/home-hacks/'>home 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/65675/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/65675/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/65675/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/65675/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/65675/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/65675/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/65675/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/65675/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/65675/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/65675/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/65675/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/65675/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/65675/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/65675/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=65675&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2012/01/17/commandeer-x10-based-home-automation-with-your-favorite-microcontroller/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Mike Szczys</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2012/01/firecracker_interface-e1326819473905.jpg" medium="image">
			<media:title type="html">firecracker_interface</media:title>
		</media:content>
	</item>
		<item>
		<title>Building a message board with a web interface</title>
		<link>http://hackaday.com/2011/08/19/building-a-message-board-with-a-web-interface/</link>
		<comments>http://hackaday.com/2011/08/19/building-a-message-board-with-a-web-interface/#comments</comments>
		<pubDate>Fri, 19 Aug 2011 19:01:28 +0000</pubDate>
		<dc:creator>Mike Szczys</dc:creator>
				<category><![CDATA[arduino hacks]]></category>
		<category><![CDATA[enc28j60]]></category>
		<category><![CDATA[hd44780]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=52980</guid>
		<description><![CDATA[[Sergio] is just getting into hardware hacking. He started by getting an HD44780 compatible LCD screen running with his Arduino. To take the project to the next level, he decided to add a web interface for changing the message displayed on the LCD. He&#8217;s doing things on the cheap (a man after our own hearts), [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=52980&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-52981" title="message-board-with-web-interface" src="http://hackadaycom.files.wordpress.com/2011/08/message-board-with-web-interface.jpg" alt="" width="470" height="353" /></p>
<p>[Sergio] is just getting into hardware hacking. He started by getting an HD44780 compatible LCD screen running with his Arduino. To take the project to the next level, he decided to <a href="https://sites.google.com/site/sergiosprojects/web-enabled-lcd-messageboard">add a web interface for changing the message</a> displayed on the LCD.</p>
<p>He&#8217;s doing things on the cheap (a man after our own hearts), purchasing many of his components off of eBay. Unfortunately that decision came back to bite him when it was time to connect his Arduino to the network. The Ethernet Shield knock-off wasn&#8217;t the same as <a href="http://www.arduino.cc/en/Main/ArduinoEthernetShield">the official version</a>. That one&#8217;s got a Wiznet W5100 ethernet chip with does a lot of the heavy lifting for you. Instead, [Sergio] is using a board with an ENC28J60. It took a bit of searching, but eventually he came up with an example to help him get his Arduino serving web pages and listening for updates from them.</p>
<p>The ENC28J60 is actually not a bad piece of hardware. It&#8217;s cheap enough, and there are a few <a href="http://hackaday.com/2010/07/08/stepping-beyond-the-ethernet-shield/">hardware/software demos</a> out there that are worth taking a look at.</p>
<br />Filed under: <a href='http://hackaday.com/category/arduino-hacks/'>arduino hacks</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/52980/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/52980/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/52980/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/52980/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/52980/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/52980/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/52980/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/52980/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/52980/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/52980/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/52980/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/52980/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/52980/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/52980/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=52980&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2011/08/19/building-a-message-board-with-a-web-interface/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Mike Szczys</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2011/08/message-board-with-web-interface.jpg" medium="image">
			<media:title type="html">message-board-with-web-interface</media:title>
		</media:content>
	</item>
		<item>
		<title>Adding Ethernet control for a 5.1 speaker set</title>
		<link>http://hackaday.com/2011/05/16/adding-ethernet-control-for-a-5-1-speaker-set/</link>
		<comments>http://hackaday.com/2011/05/16/adding-ethernet-control-for-a-5-1-speaker-set/#comments</comments>
		<pubDate>Mon, 16 May 2011 20:32:20 +0000</pubDate>
		<dc:creator>Mike Szczys</dc:creator>
				<category><![CDATA[digital audio hacks]]></category>
		<category><![CDATA[Microcontrollers]]></category>
		<category><![CDATA[ATmega168]]></category>
		<category><![CDATA[enc28j60]]></category>
		<category><![CDATA[mains]]></category>
		<category><![CDATA[outlet]]></category>
		<category><![CDATA[RF]]></category>
		<category><![CDATA[speakers]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=42982</guid>
		<description><![CDATA[[HuB's] set of 5.1 surround sound speakers was gobbling up a bunch of electricity when in standby as evidenced by the 50 Hz hum coming from the sub-woofer and the burning hot heat sink on the power supply. He wanted to add a way to automatically control the systems and offer the new feature of disconnecting the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=42982&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-42985" title="ethernet-controlled-5-1-surround-sound-speakers" src="http://hackadaycom.files.wordpress.com/2011/05/ethernet-controlled-5-1-surround-sound-speakers.jpg" alt="" width="470" height="400" /></p>
<p>[HuB's] set of 5.1 surround sound speakers was gobbling up a bunch of electricity when in standby as evidenced by the 50 Hz hum coming from the sub-woofer and the burning hot heat sink on the power supply. He wanted to add a way to <a href="https://sites.google.com/site/hubmartin/electronics/ethernet-controlled-5-1-speakers">automatically control the systems and offer the new feature of disconnecting the power from the mains</a>.</p>
<p>The first part was not too hard, although he used a roundabout method of prototyping. He planned to use the IR receiver on the speakers to control them. At the time, [HuB] didn&#8217;t have an oscilloscope on hand that he could use to capture the IR protocol so he ended up using Audacity (the open source audio editing suite) to capture signals connected to the input of a sound card. He used this to establish the timing and encoding that he needed for all eight buttons on the original remote control.</p>
<p>Next, he grabbed a board that he built using an ATmega168 and an ENC28J60 Ethernet chip. This allows you to send commands via the Internet which are then translated into the appropriate IR signals to control the speakers and a few other devices in the room. The last piece of the puzzle was to wrap an RF controlled outlet into the project with lets him cut mains power to the speakers when not in use. You can see the video demonstration embedded after the break.</p>
<p><span id="more-42982"></span><span style="text-align:center; display: block;"><a href="http://hackaday.com/2011/05/16/adding-ethernet-control-for-a-5-1-speaker-set/"><img src="http://img.youtube.com/vi/Coa74-hGV-Q/2.jpg" alt="" /></a></span></p>
<br />Filed under: <a href='http://hackaday.com/category/digital-audio-hacks/'>digital audio 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/42982/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/42982/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/42982/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/42982/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/42982/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/42982/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/42982/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/42982/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/42982/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/42982/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/42982/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/42982/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/42982/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/42982/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=42982&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2011/05/16/adding-ethernet-control-for-a-5-1-speaker-set/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Mike Szczys</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2011/05/ethernet-controlled-5-1-surround-sound-speakers.jpg" medium="image">
			<media:title type="html">ethernet-controlled-5-1-surround-sound-speakers</media:title>
		</media:content>
	</item>
		<item>
		<title>Ego Box monitors web hits</title>
		<link>http://hackaday.com/2011/01/29/ego-box-monitors-web-hits/</link>
		<comments>http://hackaday.com/2011/01/29/ego-box-monitors-web-hits/#comments</comments>
		<pubDate>Sat, 29 Jan 2011 18:00:53 +0000</pubDate>
		<dc:creator>Mike Szczys</dc:creator>
				<category><![CDATA[Microcontrollers]]></category>
		<category><![CDATA[misc hacks]]></category>
		<category><![CDATA[7 segment]]></category>
		<category><![CDATA[enc28j60]]></category>
		<category><![CDATA[ethernet]]></category>
		<category><![CDATA[science]]></category>
		<category><![CDATA[traffic]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=33686</guid>
		<description><![CDATA[[Bogdan's] latest project is a box that displays web hits for a chosen site. He calls it the Ego Box because depending on how traffic goes it either bloats or crushes your ego. This provides similar functionality as our Troll Sniffing Rat but the biggest difference is that this is a stand-alone Ethernet device. That&#8217;s [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=33686&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-33687" title="ego-box" src="http://hackadaycom.files.wordpress.com/2011/01/ego-box-e1296234989848.jpg" alt="" width="470" height="313" /></p>
<p>[Bogdan's] latest project is <a href="http://www.electrobob.com/ego-box/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=ego-box">a box that displays web hits</a> for a chosen site. He calls it the Ego Box because depending on how traffic goes it either bloats or crushes your ego. This provides similar functionality as <a href="http://hackaday.com/2010/12/19/hackaday-unleashes-a-troll-sniffing-rat/">our Troll Sniffing Rat</a> but the biggest difference is that this is a stand-alone Ethernet device. That&#8217;s thanks to the ENC28J60 Ethernet controller chip which manages the stack and has been <a href="http://hackaday.com/2010/07/08/stepping-beyond-the-ethernet-shield/">quite popular in DIY electronic projects</a>. In order to monitor your hits [Bogdan] crafted a bit of code to add to the header of your index page. It increments the counter file each time the page is loaded, and the Ego Box simply monitors that file, displaying the traffic on an eight digit 7 segment display.</p>
<p>[via <a href="http://www.adafruit.com/blog/2011/01/28/the-ego-box/">Adafruit</a>]</p>
<br />Filed under: <a href='http://hackaday.com/category/microcontrollers/'>Microcontrollers</a>, <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/33686/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/33686/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/33686/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/33686/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/33686/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/33686/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/33686/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/33686/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/33686/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/33686/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/33686/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/33686/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/33686/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/33686/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=33686&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2011/01/29/ego-box-monitors-web-hits/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Mike Szczys</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2011/01/ego-box-e1296234989848.jpg" medium="image">
			<media:title type="html">ego-box</media:title>
		</media:content>
	</item>
		<item>
		<title>Web controlled sprinkler automation</title>
		<link>http://hackaday.com/2010/09/16/web-controlled-sprinkler-automation/</link>
		<comments>http://hackaday.com/2010/09/16/web-controlled-sprinkler-automation/#comments</comments>
		<pubDate>Thu, 16 Sep 2010 17:00:31 +0000</pubDate>
		<dc:creator>Mike Szczys</dc:creator>
				<category><![CDATA[green hacks]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[atmega328]]></category>
		<category><![CDATA[enc28j60]]></category>
		<category><![CDATA[ethernet]]></category>
		<category><![CDATA[solenoid]]></category>
		<category><![CDATA[sprinkler]]></category>
		<category><![CDATA[watering]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=28256</guid>
		<description><![CDATA[[Doug] needed to update his watering system to comply with his city&#8217;s new water saving ordinance. The old system wasn&#8217;t capable of being programmed to water only on even or odd calendar days. Rather than purchase a replacement he decided to build his own sprinkler controller. It needed to switch 12V solenoids, a job that&#8217;s [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=28256&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-28257" title="sprinkler-controller-replacement" src="http://hackadaycom.files.wordpress.com/2010/09/sprinkler-controller-replacement-e1284650747658.jpg" alt="" width="470" height="312" /></p>
<p>[Doug] needed to update his watering system to comply with his city&#8217;s new water saving ordinance. The old system wasn&#8217;t capable of being programmed to water only on even or odd calendar days. Rather than purchase a replacement <a href="http://www.instructables.com/id/A-watering-controller-that-can-be-home-networked/">he decided to build his own sprinkler controller</a>. It needed to switch 12V solenoids, a job that&#8217;s not too hard to design for. Rather than re-invent the wheel, he modified a previous controller design. It is basically an Arduino and Ethernet shield on a his own etched board. In addition to the ATmega328 and an ENC28J60 (for ethernet connectivity) there is a bank of transistors to drive the watering solenoids. Now he has a web interface that controls the watering schedule and is fully in compliance with the new city code.</p>
<p>If you need another way to save when watering your grass you should take a look at the <a href="http://hackaday.com/2009/09/04/variable-range-sprinkler/">sidewalk-avoiding sprinkler</a>.</p>
<br />Filed under: <a href='http://hackaday.com/category/green-hacks/'>green hacks</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/28256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/28256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/28256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/28256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/28256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/28256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/28256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/28256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/28256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/28256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/28256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/28256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/28256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/28256/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=28256&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2010/09/16/web-controlled-sprinkler-automation/feed/</wfw:commentRss>
		<slash:comments>19</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/09/sprinkler-controller-replacement-e1284650747658.jpg" medium="image">
			<media:title type="html">sprinkler-controller-replacement</media:title>
		</media:content>
	</item>
		<item>
		<title>Stepping beyond the Ethernet shield</title>
		<link>http://hackaday.com/2010/07/08/stepping-beyond-the-ethernet-shield/</link>
		<comments>http://hackaday.com/2010/07/08/stepping-beyond-the-ethernet-shield/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 15:00:40 +0000</pubDate>
		<dc:creator>Mike Szczys</dc:creator>
				<category><![CDATA[arduino hacks]]></category>
		<category><![CDATA[enc28j60]]></category>
		<category><![CDATA[ethernet]]></category>
		<category><![CDATA[nic]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=25759</guid>
		<description><![CDATA[We&#8217;ve said it time and again, the Arduino is a prototyping platform. In that spirit, [Doug Jackson] shows you how to conserve the expensive Arduino board and Ethernet shield by building your own Arduino Ethernet module. You may remember the ENC28j60 as a NIC for your microcontrollers. [Doug's] board makes use of that chip and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=25759&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-25760" title="arduino-ethernet-module" src="http://hackadaycom.files.wordpress.com/2010/07/arduino-ethernet-module-e1278596447107.jpg" alt="" width="470" height="328" /></p>
<p>We&#8217;ve said it time and again, the Arduino is a prototyping platform. In that spirit, [Doug Jackson] shows you how to conserve the expensive Arduino board and Ethernet shield by <a href="http://www.instructables.com/id/A-credit-card-sized-Ethernet-Arduino-compatable-co">building your own Arduino Ethernet module</a>. You may remember the ENC28j60 as <a href="http://hackaday.com/2010/07/01/microcontrollers-access-the-web/">a NIC for your microcontrollers</a>. [Doug's] board makes use of that chip and adds an ATmega168 with a crystal, power regulator, breakout pins, and even a few DIP switches which can come in quite handy.</p>
<br />Filed under: <a href='http://hackaday.com/category/arduino-hacks/'>arduino hacks</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/25759/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/25759/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/25759/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/25759/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/25759/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/25759/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/25759/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/25759/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/25759/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/25759/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/25759/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/25759/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/25759/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/25759/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=25759&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2010/07/08/stepping-beyond-the-ethernet-shield/feed/</wfw:commentRss>
		<slash:comments>20</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/07/arduino-ethernet-module-e1278596447107.jpg" medium="image">
			<media:title type="html">arduino-ethernet-module</media:title>
		</media:content>
	</item>
		<item>
		<title>IPv6 to 1-wire protocol translator</title>
		<link>http://hackaday.com/2009/12/02/ipv6-to-1-wire-protocol-translator/</link>
		<comments>http://hackaday.com/2009/12/02/ipv6-to-1-wire-protocol-translator/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 16:00:36 +0000</pubDate>
		<dc:creator>Mike Szczys</dc:creator>
				<category><![CDATA[classic hacks]]></category>
		<category><![CDATA[home hacks]]></category>
		<category><![CDATA[atmega644]]></category>
		<category><![CDATA[AVR]]></category>
		<category><![CDATA[contiki]]></category>
		<category><![CDATA[enc28j60]]></category>
		<category><![CDATA[ethernet]]></category>
		<category><![CDATA[IPv6]]></category>
		<category><![CDATA[uIPv6]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=18954</guid>
		<description><![CDATA[[Fli] assembled an AVR based system that can assign IPv6 addresses to 1-wire components. An AVR ATmega644 microcontroller is used in conjunction with an ENC28J60 ethernet controller chip. To get up and running with IPv6 on this meek hardware [Fli] ported the uIPv6 stack from the contiki project over to the AVR framework. Although he [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=18954&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-18955" title="ipv6-1wire" src="http://hackadaycom.files.wordpress.com/2009/12/ipv6-1wire.jpg" alt="" width="470" height="282" /></p>
<p>[Fli] assembled an AVR based system that can <a href="http://www.shapeshifter.se/2009/07/10/1-wire-meets-ipv6/">assign IPv6 addresses to 1-wire components</a>. An AVR ATmega644 microcontroller is used in conjunction with an ENC28J60 ethernet controller chip. To get up and running with IPv6 on this meek hardware [Fli] <a href="http://www.shapeshifter.se/code/uipv6/">ported the uIPv6 stack</a> from the <a href="http://www.sics.se/contiki/">contiki project</a> over to the AVR framework. Although he encountered some hardware snafus along the way, in the end he managed to get five sensors connected to the device, each with their own IP assigned using the stack&#8217;s alias capability.</p>
<p>This is great if you&#8217;re looking for a low-cost IPv6 solution. We&#8217;re not sure if there&#8217;s much demand for that, but it&#8217;s useful for that <a href="http://hackaday.com/2009/07/29/1-wire-hvac-monitoring-system/">1-wire home automation</a> setup you&#8217;re considering.</p>
<br />Posted in classic hacks, home hacks  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/18954/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/18954/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/18954/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/18954/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/18954/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/18954/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/18954/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/18954/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/18954/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/18954/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/18954/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/18954/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/18954/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/18954/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=18954&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2009/12/02/ipv6-to-1-wire-protocol-translator/feed/</wfw:commentRss>
		<slash:comments>16</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/2009/12/ipv6-1wire.jpg" medium="image">
			<media:title type="html">ipv6-1wire</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>
	</channel>
</rss>
