<?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; serial</title>
	<atom:link href="http://hackaday.com/tag/serial/feed/" rel="self" type="application/rss+xml" />
	<link>http://hackaday.com</link>
	<description>Fresh hacks every day</description>
	<lastBuildDate>Sun, 12 Feb 2012 06:24:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='hackaday.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/5560f98f805877b0e332f191cb9e0af3?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Hack a Day &#187; serial</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>Building LED walls on the cheap</title>
		<link>http://hackaday.com/2012/02/06/building-led-walls-on-the-cheap/</link>
		<comments>http://hackaday.com/2012/02/06/building-led-walls-on-the-cheap/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 21:49:45 +0000</pubDate>
		<dc:creator>Brian Benchoff</dc:creator>
				<category><![CDATA[led hacks]]></category>
		<category><![CDATA[led matrix]]></category>
		<category><![CDATA[RGB LED]]></category>
		<category><![CDATA[serial]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=66874</guid>
		<description><![CDATA[Around this time last year, [KopfKopfKopfAffe] was enlisted as a set designer and was told to build some sort of light effects for electronic music parties. The budget for the project wasn&#8217;t much at 200 Euros, but he did manage to build decent 5&#215;5 RGB LED matrix that is fully controllable by a computer. [KopfKopfKopfAffe] [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=66874&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-66875" title="leds" src="http://hackadaycom.files.wordpress.com/2012/02/leds.jpg" alt="" width="470" height="128" /></p>
<p>Around this time last year, [KopfKopfKopfAffe] was enlisted as a set designer and was told to build some sort of light effects for electronic music parties. The budget for the project wasn&#8217;t much at 200 Euros, but he did manage to build decent <a href="http://hackedfrompieces.wordpress.com/2012/02/02/cheap-large-led-matrix/">5&#215;5 RGB LED matrix</a> that is fully controllable by a computer.</p>
<p>[KopfKopfKopfAffe] didn&#8217;t have the time or money to wait for manufactured PCBs, so a bunch of perfboard was placed in a CNC mill with a pen to act as a plotter. All the lines that needed soldered were drawn on by the mill, a feat that probably saved hours of looking at the design before committing solder to iron.</p>
<p>A total of <a href="http://hackedfrompieces.files.wordpress.com/2012/02/pcbs.jpg">five boards</a> were constructed, each one capable of controlling five RGB LEDs. Each board can be dasiy-chained with an RS-232 serial connection for further expansion. The only thing that&#8217;s needed to control the matrix is 17 bits that includes an address and RGB color data for each LED. The system only cost about 10 Euros per node, but we think that could be significantly reduced by leaving out the Molex and DB-9 connectors. [Kopf] project turned out very nice, check it out after the break.</p>
<p><span id="more-66874"></span></p>
<span style="text-align:center; display: block;"><a href="http://hackaday.com/2012/02/06/building-led-walls-on-the-cheap/"><img src="http://img.youtube.com/vi/bMQmOK47rjc/2.jpg" alt="" /></a></span>
<br />Filed under: <a href='http://hackaday.com/category/led-hacks/'>led hacks</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/66874/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/66874/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/66874/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/66874/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/66874/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/66874/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/66874/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/66874/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/66874/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/66874/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/66874/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/66874/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/66874/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/66874/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=66874&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2012/02/06/building-led-walls-on-the-cheap/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">brianbenchoff</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2012/02/leds.jpg" medium="image">
			<media:title type="html">leds</media:title>
		</media:content>
	</item>
		<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>Pushing FPGA config files via serial using &#8216;cat&#8217;</title>
		<link>http://hackaday.com/2011/11/19/pushing-fpga-config-files-via-serial-using-cat/</link>
		<comments>http://hackaday.com/2011/11/19/pushing-fpga-config-files-via-serial-using-cat/#comments</comments>
		<pubDate>Sat, 19 Nov 2011 22:26:57 +0000</pubDate>
		<dc:creator>Mike Szczys</dc:creator>
				<category><![CDATA[Microcontrollers]]></category>
		<category><![CDATA[arm]]></category>
		<category><![CDATA[AVR]]></category>
		<category><![CDATA[cat]]></category>
		<category><![CDATA[serial]]></category>
		<category><![CDATA[xilinx]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=61573</guid>
		<description><![CDATA[[Andrew] is trying to buckle down and hammer out his PhD project but was surprised by the sorry state of the configuration options for his FPGA/ARM dev board. Using JTAG was painfully slow, so he studied the datasheet to see if there was another way. It turns out the Xilinx FPGA he&#8217;s using does have [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=61573&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-61574" title="xilinx-config-files" src="http://hackadaycom.files.wordpress.com/2011/11/xilinx-config-files.png" alt="" width="470" height="294" /></p>
<p>[Andrew] is trying to buckle down and hammer out his PhD project but was surprised by the sorry state of the configuration options for his FPGA/ARM dev board. Using JTAG was painfully slow, so he studied the datasheet to see if there was another way. It turns out the Xilinx FPGA he&#8217;s using does have a slave serial mode so he came up with a way to <a href="http://necromant.ath.cx/wp/2011/11/18/configuring-a-xilinx-fpga-from-arm/">push configuration from the ARM to the FPGA serially</a>.</p>
<p>Four of the connects he needed were already mapped to PortC pins on the AT91SAM9260 ARM System on a Chip. He ended up using the EN_GSM pin on the FPGA, since there is no GSM module on this board; connecting it to the microcontroller with a piece of wire. Now he can SSH into the ARM processor, grabbing information on the FPGA from /dev/fpga0. When it comes time to program, it&#8217;s as easy as using the cat command on the binary file and redirecting the output to the same hook.</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/61573/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/61573/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/61573/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/61573/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/61573/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/61573/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/61573/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/61573/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/61573/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/61573/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/61573/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/61573/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/61573/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/61573/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=61573&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2011/11/19/pushing-fpga-config-files-via-serial-using-cat/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/2011/11/xilinx-config-files.png" medium="image">
			<media:title type="html">xilinx-config-files</media:title>
		</media:content>
	</item>
		<item>
		<title>N64 controller input using an ATtiny85</title>
		<link>http://hackaday.com/2011/10/13/n64-controller-input-using-an-attiny85/</link>
		<comments>http://hackaday.com/2011/10/13/n64-controller-input-using-an-attiny85/#comments</comments>
		<pubDate>Thu, 13 Oct 2011 22:35:11 +0000</pubDate>
		<dc:creator>Mike Szczys</dc:creator>
				<category><![CDATA[Microcontrollers]]></category>
		<category><![CDATA[attiny85]]></category>
		<category><![CDATA[controller]]></category>
		<category><![CDATA[n64]]></category>
		<category><![CDATA[serial]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=58474</guid>
		<description><![CDATA[[Larsim] worked out the timing necessary to read button and joystick data from an N64 controller using an ATtiny85 microcontroller. The project was spawned when he found this pair of controllers in the dumpster. We often intercept great stuff bound for the landfill, especially on Hippie Christmas when all the student switch apartments at the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=58474&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-58475" title="read-n64-controllers-using-an-ATtiny85" src="http://hackadaycom.files.wordpress.com/2011/10/read-n64-controllers-using-an-attiny85-e1318520132736.jpg" alt="" width="470" height="317" /></p>
<p>[Larsim] worked out the timing necessary to <a href="http://www.larsivar.com/cp/comments.php?y=11&amp;m=09&amp;entry=entry110905-190247">read button and joystick data from an N64 controller</a> using an ATtiny85 microcontroller. The project was spawned when he found this pair of controllers in the dumpster. We often intercept great stuff bound for the landfill, especially on <a href="http://www.citydictionary.com/WI/Madison/Hippie-Christmas/3998/">Hippie Christmas</a> when all the student switch apartments at the same time.</p>
<p>Instead of cracking the controllers open and patching directly to the buttons, [Larsim] looked up the pinout of the connector and patched into the serial data wire. In true hacker fashion, he used two 5V linear regulators and a diode in series to step his voltage source down to close to 3.6V, as he didn&#8217;t have a variable regulator on hand. It does sound like this causes noise which can result if false readings, but that can be fixed with the next parts order.</p>
<p>The controller waits for a polling signal before echoing back a response in which button data is embedded. This process is extremely quick, and without a crystal on hand, the chip needs to be configured to use its internal PLL to ramp the R/C oscillator up to 16Mhz. With the chip now running fast enough, an external interrupt reads the serial response from the controller, and the code reacts based on that input.</p>
<p>It seems the biggest reason these N64 controllers hit the trash can is because the analog joystick wears out. If you&#8217;ve got mad skills <a href="http://hackaday.com/2011/02/08/replace-an-n64s-worn-out-joystick/">you can replace it with a different type</a>.</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/58474/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/58474/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/58474/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/58474/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/58474/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/58474/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/58474/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/58474/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/58474/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/58474/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/58474/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/58474/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/58474/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/58474/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=58474&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2011/10/13/n64-controller-input-using-an-attiny85/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/10/read-n64-controllers-using-an-attiny85-e1318520132736.jpg" medium="image">
			<media:title type="html">read-n64-controllers-using-an-ATtiny85</media:title>
		</media:content>
	</item>
		<item>
		<title>Add a real life hardware terminal to that newfangled computer of yours</title>
		<link>http://hackaday.com/2011/08/11/add-a-real-life-hardware-terminal-to-that-newfangled-computer-of-yours/</link>
		<comments>http://hackaday.com/2011/08/11/add-a-real-life-hardware-terminal-to-that-newfangled-computer-of-yours/#comments</comments>
		<pubDate>Thu, 11 Aug 2011 11:05:19 +0000</pubDate>
		<dc:creator>Mike Nathan</dc:creator>
				<category><![CDATA[classic hacks]]></category>
		<category><![CDATA[macs hacks]]></category>
		<category><![CDATA[getty]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[serial]]></category>
		<category><![CDATA[terminal]]></category>
		<category><![CDATA[vt200]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=52140</guid>
		<description><![CDATA[If you find a crusty old IT guy and give him half a chance, he’ll probably regale you with stories of how things were done “in the old days” where no one had their own computer and everyone worked on mainframe-connected dumb terminals. [JSTN] yearned for a true to life terminal display that he could [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=52140&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-52141" title="vt200_serial_hardware_terminal_over_usb" src="http://hackadaycom.files.wordpress.com/2011/08/vt200_serial_hardware_terminal_over_usb.jpg" alt="vt200_serial_hardware_terminal_over_usb" width="470" height="313" /></p>
<p>If you find a crusty old IT guy and give him half a chance, he’ll probably regale you with stories of how things were done “in the old days” where no one had their own computer and everyone worked on mainframe-connected dumb terminals. <a href="http://jstn.cc/post/8692501831" target="_blank">[JSTN] yearned for a true to life terminal display</a> that he could attach to his 2010 Mac Pro, and since there’s no chance anybody is bringing one to market any time soon, he pieced one together on his own.</p>
<p>He dug up a digital VT220 terminal, and got to work trying to interface this office relic with his shiny new Mac. He found a few helpful tips from someone <a href="http://pdw.weinstein.org/2007/06/apple-hacking-for-fun-and-profit.html" target="_blank">who did the same thing with an Apple ][c</a>, though that solution relied on emulating a terminal - something he did not want to do.</p>
<p>He connected the VT220 to his computer using an off the shelf USB to serial adapter, but the software side of things still needed attention. A quick gettytab tweak later, he had his hardware terminal up and running without much trouble.</p>
<p>He says that he is more than happy to help anyone do the same, so let the mad eBay scramble for old terminals begin!</p>
<p>[via <a href="http://www.adafruit.com/blog/2011/08/10/vt220-serial-console-circa-1983-set-up-as-a-terminal-for-mac-pro-2010/" target="_blank">Adafruit blog</a>]</p>
<br />Filed under: <a href='http://hackaday.com/category/classic-hacks/'>classic hacks</a>, <a href='http://hackaday.com/category/macs-hacks/'>macs hacks</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/52140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/52140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/52140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/52140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/52140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/52140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/52140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/52140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/52140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/52140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/52140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/52140/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/52140/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/52140/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=52140&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2011/08/11/add-a-real-life-hardware-terminal-to-that-newfangled-computer-of-yours/feed/</wfw:commentRss>
		<slash:comments>57</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">mikenathanathackaday</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2011/08/vt200_serial_hardware_terminal_over_usb.jpg" medium="image">
			<media:title type="html">vt200_serial_hardware_terminal_over_usb</media:title>
		</media:content>
	</item>
		<item>
		<title>Flashing Arduinos with a Zipit</title>
		<link>http://hackaday.com/2011/06/13/flashing-arduinos-with-a-zipit/</link>
		<comments>http://hackaday.com/2011/06/13/flashing-arduinos-with-a-zipit/#comments</comments>
		<pubDate>Mon, 13 Jun 2011 15:48:48 +0000</pubDate>
		<dc:creator>Mike Nathan</dc:creator>
				<category><![CDATA[arduino hacks]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[serial]]></category>
		<category><![CDATA[sketch]]></category>
		<category><![CDATA[z2]]></category>
		<category><![CDATA[zipit]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=45845</guid>
		<description><![CDATA[[Giacomo] finds that every once in awhile, he needs to flash a sketch to an Arduino while on the go. While he doesn’t always carry his laptop with him, he almost certainly has his Zipit Z2 on hand. He prefers to use the Zipit because it&#8217;s tiny, it uses Debian, has built-in WiFi, and can [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=45845&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-45848" title="zipit_arduino_flashing" src="http://hackadaycom.files.wordpress.com/2011/06/zipit_arduino_flashing.jpg" alt="zipit_arduino_flashing" width="470" height="353" /></p>
<p>[Giacomo] finds that every once in awhile, <a href="http://giferrari.net/blog/?p=76" target="_blank">he needs to flash a sketch to an Arduino while on the go</a>. While he doesn’t always carry his laptop with him, he almost certainly has his Zipit Z2 on hand. He prefers to use the Zipit because it&#8217;s tiny, it uses Debian, has built-in WiFi, and can run for about 5 hours before requiring a recharge. The only shortcoming is that the device lacks a serial port.</p>
<p><a href="http://hackaday.com/2010/06/24/adding-a-serial-port-to-the-zipit/" target="_blank">Following instructions we featured last year</a> he added a serial port to his device, then built a small converter cable that allows him to connect it to virtually any Arduino. He says it only takes a moment to get avrdude up and running on the Zipit via apt-get, and once that’s done, he is in business. He wrote a short script that saves him from entering the flash command over and over, so the process couldn’t be simpler.</p>
<p>He does mention that since the Zipit does not have a DTR line, Arduino resetting must be done manually. For the convenience of flashing sketches from the palm of our hand, we can deal with that.</p>
<p>Check out the video below for a quick demonstration of his setup.</p>
<p><span id="more-45845"></span><span style="text-align:center; display: block;"><a href="http://hackaday.com/2011/06/13/flashing-arduinos-with-a-zipit/"><img src="http://img.youtube.com/vi/vQoZqqiEE6o/2.jpg" alt="" /></a></span></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/45845/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/45845/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/45845/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/45845/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/45845/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/45845/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/45845/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/45845/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/45845/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/45845/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/45845/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/45845/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/45845/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/45845/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=45845&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2011/06/13/flashing-arduinos-with-a-zipit/feed/</wfw:commentRss>
		<slash:comments>17</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/06/zipit_arduino_flashing.jpg" medium="image">
			<media:title type="html">zipit_arduino_flashing</media:title>
		</media:content>
	</item>
		<item>
		<title>Hacking into your router&#8217;s administrative interface</title>
		<link>http://hackaday.com/2011/06/09/hacking-into-your-routers-administrative-interface/</link>
		<comments>http://hackaday.com/2011/06/09/hacking-into-your-routers-administrative-interface/#comments</comments>
		<pubDate>Thu, 09 Jun 2011 17:12:43 +0000</pubDate>
		<dc:creator>Mike Nathan</dc:creator>
				<category><![CDATA[hardware]]></category>
		<category><![CDATA[home hacks]]></category>
		<category><![CDATA[firmware]]></category>
		<category><![CDATA[router]]></category>
		<category><![CDATA[serial]]></category>
		<category><![CDATA[telnet]]></category>
		<category><![CDATA[ZXDSL]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=45217</guid>
		<description><![CDATA[[Arto] recently upgraded his home Internet subscription from an ADSL to VDSL, and with that change received a shiny new ZTE ZXDSL 931WII modem/wireless router. Once he had it installed, he started to go about his normal routine of changing the administrator password, setting up port forwarding, and configuring the wireless security settings&#8230;or at least [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=45217&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-45218" title="zte_zxdsl_router_hack" src="http://hackadaycom.files.wordpress.com/2011/06/zte_zxdsl_router_hack.jpg" alt="zte_zxdsl_router_hack" width="470" height="397" /></p>
<p>[Arto] recently upgraded his home Internet subscription from an ADSL to VDSL, and with that change received a shiny new ZTE ZXDSL 931WII modem/wireless router. Once he had it installed, he started to go about his normal routine of changing the administrator password, setting up port forwarding, and configuring the wireless security settings&#8230;<a href="http://amazingdiy.wordpress.com/2011/06/06/zxdsl-931wii-hacking/" target="_blank">or at least he tried to</a>.</p>
<p>It seems that he was completely unable to access the router’s configuration panel, and after sitting on the phone with his ISP’s “support” personnel, he was informed that there was no way for him to tweak even a single setting.</p>
<p>Undaunted, he cracked the router open and started poking around. He quickly identified a serial port, and after putting together a simple RS232 transceiver, was able to access the router’s telnet interface. It took quite a bit of experimentation and a good handful of help from online forums, but [Arto] was eventually able to upload an older firmware image to the device which gave him the configuration tools he was looking for.</p>
<p>Aside from a few Ethernet timeout issues, the router is now performing to his satisfaction. However, as a final bit of salt in his wounds, he recently read that the admin panel he was originally seeking can be accessed via the router’s WAN interface using a well-known default password &#8211; frustrating and incredibly insecure, all at the same time! He says that he learned quite a few things along the way, so not all was lost.</p>
<br />Filed under: <a href='http://hackaday.com/category/hardware/'>hardware</a>, <a href='http://hackaday.com/category/home-hacks/'>home hacks</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/45217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/45217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/45217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/45217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/45217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/45217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/45217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/45217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/45217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/45217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/45217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/45217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/45217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/45217/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=45217&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2011/06/09/hacking-into-your-routers-administrative-interface/feed/</wfw:commentRss>
		<slash:comments>20</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/06/zte_zxdsl_router_hack.jpg" medium="image">
			<media:title type="html">zte_zxdsl_router_hack</media:title>
		</media:content>
	</item>
		<item>
		<title>Compaq Portable III rises again for a noble cause</title>
		<link>http://hackaday.com/2011/06/09/compaq-portable-iii-rises-again-for-a-noble-cause/</link>
		<comments>http://hackaday.com/2011/06/09/compaq-portable-iii-rises-again-for-a-noble-cause/#comments</comments>
		<pubDate>Thu, 09 Jun 2011 16:12:47 +0000</pubDate>
		<dc:creator>Gerrit Coetzee</dc:creator>
				<category><![CDATA[laptops hacks]]></category>
		<category><![CDATA[antuin]]></category>
		<category><![CDATA[compaq portable III]]></category>
		<category><![CDATA[free geek]]></category>
		<category><![CDATA[mod]]></category>
		<category><![CDATA[serial]]></category>
		<category><![CDATA[vancouver]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=45163</guid>
		<description><![CDATA[[Autuin] found a Compaq Portable III destined for the scrap bin at Free Geek Vancouver. Upon seeing it he realized that it could still fight;  fight against the tyranny of hipsters and their shiny Macbook Pros at his  local coffee shop. Unfortunately, being a 286, the computer couldn&#8217;t do much. He could take the usual [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=45163&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://hackaday.com/2011/06/09/compaq-portable-iii-rises-again-for-a-noble-cause/freegeekvancouver/" rel="attachment wp-att-45176"><img class="alignnone size-full wp-image-45176" title="freegeekvancouver" src="http://hackadaycom.files.wordpress.com/2011/06/freegeekvancouver.jpg" alt="" width="470" height="353" /></a></p>
<p>[Autuin] <a href="http://freegeekvancouver.blogspot.com/2011/06/old-gear-lives-on-hack.html">found a Compaq Portable III</a> destined for the scrap bin at <a href="http://www.freegeekvancouver.org/">Free Geek Vancouver</a>. Upon seeing it he realized that<a href="http://freegeekvancouver.blogspot.com/2011/06/old-gear-lives-on-hack-part-2.html"> it could still fight</a>;  fight against the tyranny of hipsters and their shiny Macbook Pros at his  local coffee shop. Unfortunately, being a 286, the computer couldn&#8217;t do much. He could take the <a href="http://hackaday.com/2008/01/13/24th-anniversary-macintosh/">usual route</a>; which is to remove all the internals, and use the vast amount of space to fit a more modern computer inside. However, he decided to go a different path and save the internals, leaving it in original working order. The computer didn&#8217;t have enough power to browse the web, but it had just enough room to fit a <a href="http://www.cpuboards.com/cpu-boards/gene-4310.htm">small single-board computer</a> inside; to which he could connect through serial. He hasn&#8217;t taken it down to the coffee shop yet, but we&#8217;re hoping for a few horrified hipsters and a full mission report when he does.</p>
<p><span id="more-45163"></span></p>
<p>[Sent in by Alec Smecher]</p>
<br />Filed under: <a href='http://hackaday.com/category/laptops-hacks/'>laptops hacks</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/45163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/45163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/45163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/45163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/45163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/45163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/45163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/45163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/45163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/45163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/45163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/45163/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/45163/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/45163/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=45163&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2011/06/09/compaq-portable-iii-rises-again-for-a-noble-cause/feed/</wfw:commentRss>
		<slash:comments>34</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Gerrit Coetzee</media:title>
		</media:content>

		<media:content url="http://hackadaycom.files.wordpress.com/2011/06/freegeekvancouver.jpg" medium="image">
			<media:title type="html">freegeekvancouver</media:title>
		</media:content>
	</item>
		<item>
		<title>Library makes Arduino to Arduino serial communications dead simple</title>
		<link>http://hackaday.com/2011/05/31/library-makes-arduino-to-arduino-serial-communications-dead-simple/</link>
		<comments>http://hackaday.com/2011/05/31/library-makes-arduino-to-arduino-serial-communications-dead-simple/#comments</comments>
		<pubDate>Tue, 31 May 2011 20:01:11 +0000</pubDate>
		<dc:creator>Mike Nathan</dc:creator>
				<category><![CDATA[arduino hacks]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[packets]]></category>
		<category><![CDATA[serial]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=44197</guid>
		<description><![CDATA[When [Bill Porter] works on a project, he says that he typically writes his own NMEA standard communications protocols to fit the job at hand. While it makes things easy to troubleshoot, he admits that his custom protocols are wasteful of both processor time and bandwidth. Binary communications on the other hand are more efficient, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=44197&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-44199" title="easytransfer_serial_arduino_communications_library" src="http://hackadaycom.files.wordpress.com/2011/05/easytransfer_serial_arduino_communications_library.jpg" alt="easytransfer_serial_arduino_communications_library" width="470" height="192" /></p>
<p>When [Bill Porter] works on a project, he says that he typically writes his own NMEA standard communications protocols to fit the job at hand. While it makes things easy to troubleshoot, he admits that his custom protocols are wasteful of both processor time and bandwidth. Binary communications on the other hand are more efficient, but a bit trickier to manage.</p>
<p>To make things easy for the common user, <a href="http://www.billporter.info/easytransfer-arduino-library/" target="_blank">he wrote a library called EasyTransfer</a> which abstracts packetized serial communications between two Arduino boards. The process is pretty simple &#8211; all one has to do is define a data structure on both Arduino boards so that they know what sort of data is coming over the wire, and EasyTransfer handles the rest. This allows users to worry less about communications protocols or transmission errors, and focus on their projects instead.</p>
<p>If you’re working on a project and searching for an easy way to get a pair of Arduinos talking, swing by his site and grab the library. It doesn’t get much easier.</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/44197/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/44197/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/44197/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/44197/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/44197/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/44197/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/44197/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/44197/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/44197/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/44197/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/44197/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/44197/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/44197/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/44197/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=44197&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2011/05/31/library-makes-arduino-to-arduino-serial-communications-dead-simple/feed/</wfw:commentRss>
		<slash:comments>7</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/05/easytransfer_serial_arduino_communications_library.jpg" medium="image">
			<media:title type="html">easytransfer_serial_arduino_communications_library</media:title>
		</media:content>
	</item>
		<item>
		<title>chipKIT Uno32: first impressions and benchmarks</title>
		<link>http://hackaday.com/2011/05/27/chipkit-uno32-first-impressions-and-benchmarks/</link>
		<comments>http://hackaday.com/2011/05/27/chipkit-uno32-first-impressions-and-benchmarks/#comments</comments>
		<pubDate>Fri, 27 May 2011 16:01:32 +0000</pubDate>
		<dc:creator>Phil Burgess</dc:creator>
				<category><![CDATA[arduino hacks]]></category>
		<category><![CDATA[Microcontrollers]]></category>
		<category><![CDATA[reviews]]></category>
		<category><![CDATA[32-bit]]></category>
		<category><![CDATA[32bit]]></category>
		<category><![CDATA[adc]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[bottleneck]]></category>
		<category><![CDATA[chipkit]]></category>
		<category><![CDATA[digilent]]></category>
		<category><![CDATA[fractal]]></category>
		<category><![CDATA[ide]]></category>
		<category><![CDATA[lcd]]></category>
		<category><![CDATA[mandelbrot]]></category>
		<category><![CDATA[max32]]></category>
		<category><![CDATA[pic]]></category>
		<category><![CDATA[pic32]]></category>
		<category><![CDATA[serial]]></category>
		<category><![CDATA[uno]]></category>
		<category><![CDATA[uno32]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=43877</guid>
		<description><![CDATA[Following Maker Faire, we’ve had a few days to poke around with Digilent&#8217;s 32-bit Arduino-compatible chipKIT boards and compiler. We have some initial performance figures to report, along with impressions of the hardware and software. Disclaimer: Digilent has provided Hack a Day with Uno32 and Max32 boards for evaluation. chipKIT isn’t the first attempt to extend the Arduino [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=43877&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img title="uno-fight" src="http://hackadaycom.files.wordpress.com/2011/05/uno-fight.jpg?w=470&#038;h=200" alt="" width="470" height="200" /></p>
<p>Following <a href="http://hackaday.com/2011/05/20/bay-area-maker-faire-hackaday-has-arrived/">Maker Faire</a>, we’ve had a few days to poke around with Digilent&#8217;s 32-bit <a href="http://hackaday.com/2011/05/12/chipkit-max32-an-arduino-mega-upgrade-with-a-pic32-under-the-hood/">Arduino-compatible chipKIT boards</a> and compiler. We have some initial performance figures to report, along with impressions of the hardware and software.</p>
<p><span id="more-43877"></span></p>
<p>Disclaimer: Digilent has provided Hack a Day with Uno32 and Max32 boards for evaluation.</p>
<p>chipKIT isn’t the first attempt to extend the Arduino form factor to a 32-bit microcontroller core…other products such as <a href="http://hackaday.com/2010/05/24/maple-r3-now-shipping/">Maple</a>, <a href="http://hackaday.com/2011/02/23/self-regulating-water-heater/">Netduino</a> or the FEZ Domino have been around for well over a year…but the chipKIT boards are notable for the effort Digilent has put into creating a seamless transition. The aim is to create a single unified tool both for traditional 8-bit Arduino boards and Digilent’s 32-bit work-alikes, where the same IDE, the same code, and a good number of the same shields can all work despite the different underlying architectures. In fact, they’re hoping the Arduino project accepts their integration method as an official means of adding new hardware to the Arduino IDE — not just for their own product, but for anyone else to use as well.</p>
<p>As noted in <a href="http://hackaday.com/2011/05/21/bamf2011-chipkit-is-arduino-to-the-power-of-32/">our prior report</a>, we were impressed that they do appear to deliver on this promise. The transition between “classic” Arduinos and the 32-bit boards is indeed quite slick. But we’re finding at this early stage that there are still some rough bits to be worked out. So, for the time being, we’re keeping both the Arduino IDE and Mpide (Digilent’s multi-platform derivative) installed on the development system; the latter has not yet obviated the need for the former. But we see how the concept is supposed to work, and we like it.</p>
<p>For the most part, Mpide works as intended as a dual-platform IDE. Just select the appropriate device from the Tools-&gt;Board menu, recompile, and the code is now ready for the corresponding chip. But a couple things have bit us in the rear:</p>
<ul>
<li>The <a href="http://hackaday.com/2010/10/23/avr-programming-introduction/">AVR compiler</a> in Mpide either isn’t fully optimizing, or the floating-point libraries were built sans optimization or something. This threw off our benchmark numbers initially — the results were atrocious! In order to keep the numbers realistic, we’re using the standard Arduino IDE for the corresponding benchmarks. To be fair, they did warn us about this performance issue in person at Maker Faire, but until it’s fixed they could be more forthcoming about it with some documentation or on the web site…otherwise it could look like they’re trying to skew benchmarks more in their favor.</li>
<li>The String() constructor is borked when handling integers. The following line compiles fine for AVR chips, but throws a tizzy fit with the PIC32 compiler:<br />
<pre class="brush: plain;">String foo = String(42);</pre></li>
</ul>
<p>Given that the IDE was wrapped up literally hours before going live online and at Maker Faire, it’s understandable that there are some loose ends. Just be prepared as an early adopter that this won’t be as pain-free a transition as they’re aiming for. The great thing with <a href="http://hackaday.com/?s=open+source">open source</a> is that we can get in there, spot such problems, and offer suggestions and submit fixes…the situation will no doubt improve with time.</p>
<h3>Some Benchmarks</h3>
<p>We wanted to create a fractal demo similar to what they were displaying at Maker Faire. We didn’t have the spiffy <a href="http://www.sparkfun.com/products/9363">SparkFun Color LCD Shield</a> on hand, so instead we had to settle for a serial LCD, <a href="http://www.4dsystems.com.au/prod.php?id=121">4D Systems’ uLCD-144</a>. This does affect the numbers somewhat, as we’ll see.</p>
<p>In MIPS alone, the chipKIT should beat the Arduino by a factor of five. Then there’s the native 32-bit-ness of it: when dealing with larger numbers, the AVR processor at Arduino’s core has to shift and fiddle bits between consecutive 8-bit values in order to achieve 32-bit results. So the PIC32 should show a considerable performance benefit beyond MIPS alone. In practice, this doesn’t always pan out.</p>
<p>The uLCD-144 is a 128 by 128 pixel 16-bit color <a href="http://hackaday.com/2011/03/17/bill-hammack-explains-how-led-backlit-lcd-monitors-work/">LCD</a> with a serial UART interface running at 115,200 bits per second. The graphics commands aren’t terribly efficient, and it’s necessary to send a five byte packet for every pixel drawn. This includes coordinate data; there’s no block write function in serial mode. On the plus side, it’s easy to talk to using the Arduino or chipKIT’s native serial UART.</p>
<p>Here’s the code for the Mandelbrot sketch, using floating-point math:</p>
<p><pre class="brush: plain;">
/* Simple Mandelbrot set renderer for Arduino vs. chipKIT benchmarking
   w/floating-point math, via www.hackaday.com.  This example uses the
   4D Systems uLCD-144(SGC) serial display module, wired as follows:

      uLCD Pin:   RES  GND  RX  TX  VIN
   Arduino Pin:     2  GND   1   0   5V    */

const int
  pixelWidth  = 128,  // LCD dimensions
  pixelHeight = 128,
  iterations  = 255;  // Fractal iteration limit or 'dwell'
const float
  centerReal  = -0.6, // Image center point in complex plane
  centerImag  =  0.0,
  rangeReal   =  3.0, // Image coverage in complex plane
  rangeImag   =  3.0,
  startReal   = centerReal - rangeReal * 0.5,
  startImag   = centerImag + rangeImag * 0.5,
  incReal     = rangeReal / (float)pixelWidth,
  incImag     = rangeImag / (float)pixelHeight;

void setup()
{
  pinMode(13,OUTPUT);   // Arduino status LED
  pinMode(2,OUTPUT);    // LCD reset pin
  digitalWrite(13,LOW); // LED off
  Serial.begin(115200);

  digitalWrite(2,LOW);  // Reset LCD
  delay(10);
  digitalWrite(2,HIGH);
  delay(2000);          // Allow time for reset to complete

  Serial.write(0x55);   // Issue auto-baud command
  while(Serial.read() != 0x06); // Wait for ACK
}

void loop()
{
  unsigned char cmd[20];   // Serial packet for LCD commands
  int           x,y,n;
  float         a,b,a2,b2,posReal,posImag;
  long          startTime,elapsedTime;

  Serial.write(0x45);      // Clear screen
  delay(100);              // Brief pause, else 1st few pixels are lost

  cmd[0] = 0x50;           // 'Pixel' command is issued repeatedly

  digitalWrite(13,HIGH);   // LED on while rendering
  startTime = millis();

  posImag = startImag;
  for(y = 0; y &lt; pixelHeight; y++) {
    cmd[2] = y;            // Y coordinate of pixel
    posReal = startReal;
    for(x = 0; x &lt; pixelWidth; x++) {
      a = posReal;
      b = posImag;
      for(n = iterations; n &gt; 0 ; n--) {
        a2 = a * a;
        b2 = b * b;
        if((a2 + b2) &gt;= 4.0) break;
        b  = posImag + a * b * 2.0;
        a  = posReal + a2 - b2;
      }
      cmd[1] = x;          // X coordinate of pixel
      cmd[3] = n * 29;     // Pixel color MSB
      cmd[4] = n * 67;     // Pixel color LSB
      Serial.write(cmd,5); // Issue LCD command
      posReal += incReal;
    }
    posImag -= incImag;
  }

  elapsedTime = millis() - startTime;
  digitalWrite(13,LOW);    // LED off when done

  // Set text to opaque mode
  cmd[0] = 0x4f;
  cmd[1] = 0x01;
  Serial.write(cmd,2);

  // Seems the chipKIT libs don't yet handle the String(long)
  // constructor, hence this kludge.  Working backward, convert
  // each digit of elapsed time to a char, with &quot; ms&quot; at end
  // and text command at head.  Length is variable, so issue
  // command from final determined head position.
  cmd[19] = 0;
  cmd[18] = 's';
  cmd[17] = 'm';
  cmd[16] = ' ';
  n = 15;
  do {
    cmd[n--] = '0' + elapsedTime % 10;
    elapsedTime /= 10;
  } while(elapsedTime);
  cmd[n--] = 0xff; // Color LSB
  cmd[n--] = 0xff; // Color MSB
  cmd[n--] = 0;    // Use 5x7 font
  cmd[n--] = 0;    // Row
  cmd[n--] = 0;    // Column
  cmd[n] = 0x73;   // ASCII text command
  Serial.write(&amp;cmd[n],20-n);

  delay(5000); // Stall a few seconds, then repeat
}
</pre></p>
<p>And the timing results, in milliseconds, for the Arduino (top) and chipKIT (bottom):</p>
<p><img title="benchmark-float" src="http://hackadaycom.files.wordpress.com/2011/05/benchmark-float.jpg?w=470&#038;h=525" alt="" width="470" height="525" /></p>
<p style="padding-left:30px;">Arduino: 54,329 ms.<br />
chipKIT: 12,417 ms.</p>
<p>To reiterate (pardon the pun), due to some performance issues we used the traditional Arduino compiler, not the one included in Mpide. If you’re curious, the output from that compiler took about <em>8.5 minutes</em> to complete the task! Oof.</p>
<p>So, about a 4.4x speedup. Not bad, but we were expecting a more dramatic difference. Part of this is due to the inherent bottleneck of the serial communication with the LCD…we’ll get back to that in a moment. Another limiting factor is that both chips are emulating floating-point math. If we can use 32-bit integer data types, thePIC32 should really shine. So, a <a href="http://answers.hackaday.com/converting-floating-point-maths-to-int-maths/">fixed-point</a> Mandelbrot generator followed:</p>
<p><pre class="brush: plain;">
/* Simple Mandelbrot set renderer for Arduino vs. chipKIT benchmarking
   w/fixed-point math, via www.hackaday.com.  This example uses the
   4D Systems uLCD-144(SGC) serial display module, wired as follows:

      uLCD Pin:   RES  GND  RX  TX  VIN
   Arduino Pin:     2  GND   1   0   5V    */

const int
  bits        = 12,   // Fractional resolution
  pixelWidth  = 128,  // LCD dimensions
  pixelHeight = 128,
  iterations  = 255;  // Fractal iteration limit or 'dwell'
const float
  centerReal  = -0.6, // Image center point in complex plane
  centerImag  =  0.0,
  rangeReal   =  3.0, // Image coverage in complex plane
  rangeImag   =  3.0;
const long
  startReal   = (long)((centerReal - rangeReal * 0.5)   * (float)(1 &lt;&lt; bits)),
  startImag   = (long)((centerImag + rangeImag * 0.5)   * (float)(1 &lt;&lt; bits)),
  incReal     = (long)((rangeReal / (float)pixelWidth)  * (float)(1 &lt;&lt; bits)),
  incImag     = (long)((rangeImag / (float)pixelHeight) * (float)(1 &lt;&lt; bits));

void setup()
{
  pinMode(13,OUTPUT);   // Arduino status LED
  pinMode(2,OUTPUT);    // LCD reset pin
  digitalWrite(13,LOW); // LED off
  Serial.begin(115200);

  digitalWrite(2,LOW);  // Reset LCD
  delay(10);
  digitalWrite(2,HIGH);
  delay(2000);          // Allow time for reset to complete

  Serial.write(0x55);   // Issue auto-baud command
  while(Serial.read() != 0x06); // Wait for ACK
}

void loop()
{
  unsigned char cmd[20];   // Serial packet for LCD commands
  int           x,y,n;
  long          a,b,a2,b2,posReal,posImag,startTime,elapsedTime;

  Serial.write(0x45);      // Clear screen
  delay(100);              // Brief pause, else 1st few pixels are lost

  cmd[0] = 0x50;           // 'Pixel' command is issued repeatedly

  digitalWrite(13,HIGH);   // LED on while rendering
  startTime = millis();

  posImag = startImag;
  for(y = 0; y &lt; pixelHeight; y++) {
    cmd[2] = y;            // Y coordinate of pixel
    posReal = startReal;
    for(x = 0; x &lt; pixelWidth; x++) {
      a = posReal;
      b = posImag;
      for(n = iterations; n &gt; 0 ; n--) {
        a2 = (a * a) &gt;&gt; bits;
        b2 = (b * b) &gt;&gt; bits;
        if((a2 + b2) &gt;= (4 &lt;&lt; bits)) break;
        b  = posImag + ((a * b) &gt;&gt; (bits - 1));
        a  = posReal + a2 - b2;
      }
      cmd[1] = x;          // X coordinate of pixel
      cmd[3] = n * 29;     // Pixel color MSB
      cmd[4] = n * 67;     // Pixel color LSB
      Serial.write(cmd,5); // Issue LCD command
      posReal += incReal;
    }
    posImag -= incImag;
  }

  elapsedTime = millis() - startTime;
  digitalWrite(13,LOW);    // LED off when done

  // Set text to opaque mode
  cmd[0] = 0x4f;
  cmd[1] = 0x01;
  Serial.write(cmd,2);

  // Seems the chipKIT libs don't yet handle the String(long)
  // constructor, hence this kludge.  Working backward, convert
  // each digit of elapsed time to a char, with &quot; ms&quot; at end
  // and text command at head.  Length is variable, so issue
  // command from final determined head position.
  cmd[19] = 0;
  cmd[18] = 's';
  cmd[17] = 'm';
  cmd[16] = ' ';
  n = 15;
  do {
    cmd[n--] = '0' + elapsedTime % 10;
    elapsedTime /= 10;
  } while(elapsedTime);
  cmd[n--] = 0xff; // Color LSB
  cmd[n--] = 0xff; // Color MSB
  cmd[n--] = 0;    // Use 5x7 font
  cmd[n--] = 0;    // Row
  cmd[n--] = 0;    // Column
  cmd[n] = 0x73;   // ASCII text command
  Serial.write(&amp;cmd[n],20-n);

  delay(5000); // Stall a few seconds, then repeat
}
</pre></p>
<p>And the numbers:</p>
<p><img title="benchmark-fixed" src="http://hackadaycom.files.wordpress.com/2011/05/benchmark-fixed1.jpg?w=470&#038;h=525" alt="" width="470" height="525" /></p>
<p style="padding-left:30px;">Arduino: 27,734 ms.<br />
chipKIT:  7,209 ms.</p>
<p>Now only a 3.8x difference, despite the PIC32 speaking its native tongue. What gives?</p>
<p>Even at 115,200 bits/sec, the serial LCD is seriously holding us back, as the code is going to “block” as each character is output. Some back-of-envelope calculations suggest how much time is being lost there:</p>
<p style="padding-left:30px;">128 x 128 pixels, 5-byte command per pixel = 81,920 bytes.<br />
Including start and stop bits for each byte = 819,200 bits total<br />
819,200 bits / 115,200 bps = ~7.1 seconds.</p>
<p>So our MCU is sitting there for seven seconds with its thumb up its ASCII in order to update the display. Sure enough, if we comment out the Serial.write() command but leave all the calculations in place, the results are significantly more dramatic:</p>
<p>Floating-point:</p>
<p style="padding-left:30px;">Arduino: 49,685 ms.<br />
chipKIT:  5,822 ms.<br />
9.3x improvement.</p>
<p>Fixed-point:</p>
<p style="padding-left:30px;">Arduino: 22,326 ms.<br />
chipKIT:    168 ms<br />
133x improvement. Hot <em>damn.</em> Now we’re talking!</p>
<p>So we could actually render this at interactive frame rates, for the want of a sufficiently fast interface to the LCD. This sort of limitation is going to crop up every time we connect to a real-world device. Not everything is 100% internal code and math…there are finite limits to I/O throughput, and that more than anything can cap the speed of the total application. So we really can’t give a consistent “Everything will be X percent faster” estimate for this board.</p>
<p>The performance looks good for math, especially if an algorithm can work in integer or fixed-point formats. Another thought we had was <a href="http://hackaday.com/2011/02/20/analog-to-digital-converter-build/">analog-to-digital</a> sampling, which has applications in robotics…say for a <a href="http://hackaday.com/2010/09/17/line-following-tank-without-a-microcontroller/">line-follower</a> or <a href="http://hackaday.com/2009/02/19/segway-and-input-filtering/">balancing</a> robot. More frequent samples should yield smoother operation, or multiple samples can be averaged to yield higher-precision results. The PIC32 should <em>scream</em> in that regard. And yet…</p>
<p><pre class="brush: plain;">
void setup()
{
  const int samples = 10000;
  int       i,n;
  long      startTime,elapsedTime;

  Serial.begin(115200);

  startTime = millis();
  for(i = 0; i &lt; samples; i++) {
    n = analogRead(0);
  }
  elapsedTime = millis() - startTime;

  Serial.print(samples);
  Serial.print(&quot; samples in &quot;);
  Serial.print(elapsedTime);
  Serial.print(&quot; ms = &quot;);
  Serial.print(((float)samples * 1000.0) / (float)elapsedTime);
  Serial.println(&quot; samples/sec&quot;);
}

void loop()
{
}
</pre></p>
<p style="padding-left:30px;">Arduino: 10000 samples in 1119 ms = 8936.55 samples/sec<br />
chipKIT: 10000 samples in 1008 ms = 9920.63 samples/sec</p>
<p>Running full-tilt, the PIC32 is capable of up to 1 million ADC samples per second, compared to 125,000 on the Atmel chip. Certainly the library implementation is going to introduce some overhead, but what gives? Rooting through the library source code turns up this gem in wiring_analog.c:</p>
<p><pre class="brush: plain;">
 //*     A delay is needed for the the ADC start up time
 //*     this value started out at 1 millisecond, I dont know how long it needs to be
 //*     99 uSecs will give us the same approximate sampling rate as the AVR chip
 //      delay(1);
 delayMicroseconds(99);
</pre></p>
<p>This raises a couple of red flags. First, why should the sampling rate aim to match the AVR? For time-related functions like delay() and for Serial.begin() bitrates, of course we’d want similar numbers, those relate to temporal increments. But we don’t — or at least shouldn’t — measure time with ADC readings. And secondly, well, why not find out how long the ADC startup time really needs to be? A few minutes’ sifting through Microchip datasheets eventually turned up the correct answer: <em>two microseconds.</em> So, changing the line in wiring_analog.c to:</p>
<p><pre class="brush: plain;">delayMicroseconds(2);</pre></p>
<p>Yields dramatically different results:</p>
<p style="padding-left:30px;">chipKIT: 10000 samples in 101 ms = 99009.90 samples/sec</p>
<p>About a tenfold improvement, and the readings still look valid. This does break like-timing compatibility with the AVR-based Arduinos, but as we said, why? It’s understandable that some decisions may have been made in haste…it’s a monumental project, getting all this code ported to an entirely different chip, and the IDE is still fresh from the oven…but some of these little broken details do have us concerned about what other surprises may still lurk beneath.</p>
<p>Don’t get us wrong…we’re enthusiastic about the chipKIT boards. The technical challenge is met, and just needs some cleaning up. What remains for Digilent now is a marketing challenge: <em>who is this really for?</em> When we talk about things like megasamples and fixed-point algorithms, these aren’t exactly day-one topics familiar to the Arduino’s target audience of first-time programmers. And the more advanced user may have moved on already, leaving Arduino behind. So why keep this form factor? Why keep this IDE?</p>
<p>Obviously, part of the allure is the existing ecosystem of Arduino <a href="http://hackaday.com/2011/05/11/arduino-magnetic-core-memory-shield/">shields</a>. There’s some pretty nifty stuff out there, networking and touch screens and stepper motor drivers, most of which will physically plug right in. Having an existing solution saves development time. Then there’s the ease and familiarity of the Arduino libraries. Even though they’re <a href="http://hackaday.com/2010/01/06/arduino-io-speed-breakdown/">slow and clunky in places</a>, it can be really handy sometimes just to squirt out some status information to a serial port without having to do all the UART setup manually.</p>
<p>The chipKIT boards are cleverly priced to approximate Arduino on a cost basis (even undercutting a bit). That’s a great start, with code and price parity, but where’s the <em>extra</em> value? What the Uno32 and Max32 may need are some killer apps. Ideas that the novice can implement, but that really take advantage of the PIC32 chip’s added performance and capabilities. Speed may be just one part of that. What can we do with the extra RAM and flash space that a normal Arduino just can’t handle, even with the fanciest of shields? Folks have done some mind-blowing stuff with the <a href="http://hackaday.com/2010/05/01/phasor-av-pal-demo-uses-atmega88/">little 8-bit AVR</a>. We’re looking forward to seeing if this is the tool that takes these hacks to the next level.</p>
<br />Filed under: <a href='http://hackaday.com/category/arduino-hacks/'>arduino hacks</a>, <a href='http://hackaday.com/category/microcontrollers/'>Microcontrollers</a>, <a href='http://hackaday.com/category/reviews/'>reviews</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/43877/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/43877/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/43877/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/43877/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/43877/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/43877/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/43877/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/43877/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/43877/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/43877/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/43877/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/43877/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/43877/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/43877/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=43877&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2011/05/27/chipkit-uno32-first-impressions-and-benchmarks/feed/</wfw:commentRss>
		<slash:comments>48</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">philburgess</media:title>
		</media:content>

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

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

		<media:content url="http://hackadaycom.files.wordpress.com/2011/05/benchmark-fixed1.jpg" medium="image">
			<media:title type="html">benchmark-fixed</media:title>
		</media:content>
	</item>
		<item>
		<title>I2C Arduino GPS shield</title>
		<link>http://hackaday.com/2011/05/24/i2c-arduino-gps-shield/</link>
		<comments>http://hackaday.com/2011/05/24/i2c-arduino-gps-shield/#comments</comments>
		<pubDate>Tue, 24 May 2011 21:22:57 +0000</pubDate>
		<dc:creator>Mike Nathan</dc:creator>
				<category><![CDATA[arduino hacks]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[gps]]></category>
		<category><![CDATA[i2c]]></category>
		<category><![CDATA[serial]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=43611</guid>
		<description><![CDATA[[Wayne] wrote in to share an item he just finished working on, an I2C GPS shield for the Arduino. While other GPS solutions have existed for quite some time, his caught our eye due to its feature list. The shield removes a good bit of the hassle associated with parsing raw NMEA data from traditional [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=43611&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-43614" title="i2c_gps_shield" src="http://hackadaycom.files.wordpress.com/2011/05/i2c_gps_shield.jpg" alt="i2c_gps_shield" width="470" height="300" /></p>
<p>[Wayne] wrote in to share an item he just finished working on, <a href="http://www.dsscircuits.com/articles/i2c-gps-shield.html" target="_blank">an I<sup>2</sup>C GPS shield for the Arduino</a>. While other GPS solutions have existed for quite some time, his caught our eye due to its feature list.</p>
<p>The shield removes a good bit of the hassle associated with parsing raw NMEA data from traditional GPS addons. While you have the option to communicate with the GPS module over serial in order to obtain the raw data, the use of the I<sup>2</sup>C interface makes getting the most commonly used GPS data a breeze. The GPS module itself can be set to update at anywhere from 1 to 10 Hz, and [Wayne] says that the I<sup>2</sup>C bus blows away the oft-used 9600 baud serial interface. While I<sup>2</sup>C is primarily used for receiving data, it can also be utilized to configure the GPS via its control registers, allowing for on the fly settings tweaks.</p>
<p>While he does sell the units pre-assembled at a competitive price, [Wayne] also provides a full schematic, making this an easy afternoon project once you have sourced the proper components.</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/43611/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/43611/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/43611/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/43611/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/43611/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/43611/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/43611/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/43611/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/43611/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/43611/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/43611/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/43611/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/43611/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/43611/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=43611&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2011/05/24/i2c-arduino-gps-shield/feed/</wfw:commentRss>
		<slash:comments>11</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/05/i2c_gps_shield.jpg" medium="image">
			<media:title type="html">i2c_gps_shield</media:title>
		</media:content>
	</item>
		<item>
		<title>Fixing Arduino&#8217;s serial latency issues</title>
		<link>http://hackaday.com/2011/05/18/fixing-arduinos-serial-latency-issues/</link>
		<comments>http://hackaday.com/2011/05/18/fixing-arduinos-serial-latency-issues/#comments</comments>
		<pubDate>Wed, 18 May 2011 16:49:21 +0000</pubDate>
		<dc:creator>Mike Nathan</dc:creator>
				<category><![CDATA[arduino hacks]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[latency]]></category>
		<category><![CDATA[processing]]></category>
		<category><![CDATA[serial]]></category>
		<category><![CDATA[Teensy]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=43102</guid>
		<description><![CDATA[[Paul] wrote in to tell us about some interesting Arduino latency issues he helped nail down and fix on the Arduino. It seems that [Michu] was having some problems with controlling his Rainbowduino project we featured earlier this year, and he couldn’t quite figure out why he was experiencing such huge delays when sending and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=43102&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-43103" title="arduino_latency" src="http://hackadaycom.files.wordpress.com/2011/05/arduino_latency.jpg" alt="arduino_latency" width="470" height="363" /></p>
<p>[Paul] wrote in to tell us about some interesting <a href="http://neophob.com/2011/04/serial-latency-teensy-vs-arduino/" target="_blank">Arduino latency issues</a> he helped nail down and fix on the Arduino.</p>
<p>It seems that [Michu] was having some problems with controlling his <a href="http://hackaday.com/2011/02/09/daft-punk-module-just-add-table/" target="_blank">Rainbowduino project</a> we featured earlier this year, and he couldn’t quite figure out why he was experiencing such huge delays when sending and receiving data.</p>
<p>Searching online for answers turned up very little, and since [Michu] was using Processing, the pair designed a set of tests to see what kind of latency was being introduced by Java. Pitting an Arduino Uno and an Arduino from 2009 against a Teensy 2.0, the tests gauged the latency of native data transfers versus transfers facilitated by Java via the rxtx library it uses for serial communications.</p>
<p>The results were pretty stunning. While both of the Arduinos lagged behind the Teensy by a long shot, their latency values under Java were always 20ms at a minimum &#8211; something didn’t add up. [Michu] poked around in the rxtx code and found a mystery 20ms delay programmed into the serial library. It made no sense to him, so he changed the delay to 2ms and saw a drastic increase in performance when transferring less than 128 bytes of data.</p>
<p>The pair’s fix doesn’t seem to affect latency when larger amounts of data (&gt;1kB) are being transferred, but it makes a world of difference when manipulating smaller chunks of data.</p>
<p>For the sake of disclosure, it should be noted that [Paul’s] company produces the Teensy mcu.</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/43102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/43102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/43102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/43102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/43102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/43102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/43102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/43102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/43102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/43102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/43102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/43102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/43102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/43102/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=43102&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2011/05/18/fixing-arduinos-serial-latency-issues/feed/</wfw:commentRss>
		<slash:comments>38</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/05/arduino_latency.jpg" medium="image">
			<media:title type="html">arduino_latency</media:title>
		</media:content>
	</item>
		<item>
		<title>Data scraping and visualization with Python</title>
		<link>http://hackaday.com/2011/04/27/data-scraping-and-visualization-with-python/</link>
		<comments>http://hackaday.com/2011/04/27/data-scraping-and-visualization-with-python/#comments</comments>
		<pubDate>Wed, 27 Apr 2011 20:30:00 +0000</pubDate>
		<dc:creator>Mike Nathan</dc:creator>
				<category><![CDATA[arduino hacks]]></category>
		<category><![CDATA[misc hacks]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[netuino]]></category>
		<category><![CDATA[pachube]]></category>
		<category><![CDATA[serial]]></category>
		<category><![CDATA[server monitoring]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=41618</guid>
		<description><![CDATA[[Greg] built himself a small indicator dial with his laser cutter, and wanted to use it for visualizing server performance and load information. Before he started using it for server monitoring however, he thought he should test out his data parsing skills on a simpler data set. Pachube has a wealth of information that can [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=41618&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-41619" title="arduino_dial" src="http://hackadaycom.files.wordpress.com/2011/04/arduino_dial.jpg" alt="arduino_dial" width="470" height="353" /></p>
<p>[Greg] <a href="http://gadgetlabs.tumblr.com/post/4832211954/using-python-and-an-arduino-to-get-data-from-pachube" target="_blank">built himself a small indicator dial with his laser cutter</a>, and wanted to use it for visualizing server performance and load information. Before he started using it for server monitoring however, he thought he should test out his data parsing skills on a simpler data set.</p>
<p>Pachube has a wealth of information that can be freely used for whatever project you might have in mind, so [Greg] started looking around for something interesting to track. Eventually he located the data feed for a tanker ship and wired his dial to display the ship’s speed. He uses a Python script to interface with the Pachube API, which is fed to his Netduino board. A servo motor then changes the position of the dial based on the feed&#8217;s data. Since large tankers don’t change speed often, the experiment was a bit of a letdown. He searched for a bit and tuned into another feed that tracked wind speed in New Zealand, getting much better results.</p>
<p>His future plans include hooking it directly to his network and eventually using it to monitor his servers&#8230;at least once the novelty of tracking random data feeds wears off.</p>
<p>All of his code is available on GitHub, and he is happy to make a gauge for anyone who is interested, though he doesn’t currently list a price.</p>
<br />Filed under: <a href='http://hackaday.com/category/arduino-hacks/'>arduino hacks</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/41618/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/41618/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/41618/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/41618/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/41618/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/41618/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/41618/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/41618/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/41618/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/41618/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/41618/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/41618/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/41618/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/41618/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=41618&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2011/04/27/data-scraping-and-visualization-with-python/feed/</wfw:commentRss>
		<slash:comments>8</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/04/arduino_dial.jpg" medium="image">
			<media:title type="html">arduino_dial</media:title>
		</media:content>
	</item>
		<item>
		<title>Prototyping with a GPS module</title>
		<link>http://hackaday.com/2011/04/12/prototyping-with-a-gps-module/</link>
		<comments>http://hackaday.com/2011/04/12/prototyping-with-a-gps-module/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 18:01:57 +0000</pubDate>
		<dc:creator>Mike Szczys</dc:creator>
				<category><![CDATA[gps hacks]]></category>
		<category><![CDATA[ATmega32]]></category>
		<category><![CDATA[fv-m8]]></category>
		<category><![CDATA[san jose navigation]]></category>
		<category><![CDATA[serial]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=40127</guid>
		<description><![CDATA[[Oneironaut] is trying out a new GPS module with the prototype seen above. It&#8217;s a San Jose Navigation device identified as FV-M8 and sold by Sparkfun for just under a hundred bucks. That&#8217;s it hanging off the bottom-right of the breadboard seen above. They&#8217;ve packed a lot of power into the small footprint, and made [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=40127&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-40128" title="prototyping-with-gps-module" src="http://hackadaycom.files.wordpress.com/2011/04/prototyping-with-gps-module-e1302629148493.jpg" alt="" width="470" height="353" /></p>
<p>[Oneironaut] is <a href="http://www.lucidscience.com/pro-gps%20data%20receiver-1.aspx">trying out a new GPS module</a> with the prototype seen above. It&#8217;s a San Jose Navigation device identified as <a href="http://www.sparkfun.com/products/8266">FV-M8 and sold by Sparkfun</a> for just under a hundred bucks. That&#8217;s it hanging off the bottom-right of the breadboard seen above. They&#8217;ve packed a lot of power into the small footprint, and made it very easy to control at the same time. Although the device is fully configurable, you can start grabbing serial data from it just by connecting a single data line, 3.3V, and ground.</p>
<p>[Oneironaut] tests it out by streaming the serial data to a character LCD screen, then comparing the output to his handheld Garmin GPS device. You can see him describe his ATmega32-based test platform in the video after the break. We&#8217;re used to seeing <a href="http://hackaday.com/2011/02/16/long-range-laser-night-vision/">spy-tech for most of his projects</a> and this will eventually join those ranks. He&#8217;s thinking of putting together a magnetic tracking module that plays nicely with Google Earth.</p>
<p><span id="more-40127"></span><span style="text-align:center; display: block;"><a href="http://hackaday.com/2011/04/12/prototyping-with-a-gps-module/"><img src="http://img.youtube.com/vi/SoMaAdQsGSE/2.jpg" alt="" /></a></span></p>
<br />Filed under: <a href='http://hackaday.com/category/gps-hacks/'>gps hacks</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hackadaycom.wordpress.com/40127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/40127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/40127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/40127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/40127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/40127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/40127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/40127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/40127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/40127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/40127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/40127/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/40127/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/40127/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=40127&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2011/04/12/prototyping-with-a-gps-module/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/2011/04/prototyping-with-gps-module-e1302629148493.jpg" medium="image">
			<media:title type="html">prototyping-with-gps-module</media:title>
		</media:content>
	</item>
		<item>
		<title>Shift register is all it takes to make a 3-wire serial LCD</title>
		<link>http://hackaday.com/2011/04/07/shift-register-is-all-it-takes-to-make-a-3-wire-serial-lcd/</link>
		<comments>http://hackaday.com/2011/04/07/shift-register-is-all-it-takes-to-make-a-3-wire-serial-lcd/#comments</comments>
		<pubDate>Thu, 07 Apr 2011 17:30:55 +0000</pubDate>
		<dc:creator>Mike Szczys</dc:creator>
				<category><![CDATA[misc hacks]]></category>
		<category><![CDATA[595]]></category>
		<category><![CDATA[hd44780]]></category>
		<category><![CDATA[lcd]]></category>
		<category><![CDATA[serial]]></category>
		<category><![CDATA[shift register]]></category>

		<guid isPermaLink="false">http://hackaday.com/?p=39651</guid>
		<description><![CDATA[This hack is a bit older, but one aspect of the setup makes it worth sharing. Shift registers are a common component to include in a project when you need to increase the number of I/O pins available. We&#8217;ve used them to drive LCD screens before, but we never realize you could use a 595 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=39651&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-39655" title="easy-serial-lcd" src="http://hackadaycom.files.wordpress.com/2011/04/easy-serial-lcd-e1302191009964.jpg" alt="" width="470" height="353" /></p>
<p>This hack is a bit older, but one aspect of the setup makes it worth sharing. Shift registers are a common component to include in a project when you need to increase the number of I/O pins available. We&#8217;ve used them to drive LCD screens before, but we never realize you could <a href="http://embedded-lab.com/blog/?p=30">use a 595 chip to make a 3-wire serial LCD interface</a>. That&#8217;s because we&#8217;ve always thought of shift registers as having three control pins which must be addressed: data, clock, and latch. But it seems that&#8217;s not the case. This hack gangs the pins for clock and latch (called the storage register clock input on this chip) together. This causes the shifted data to be latched to output register one clock cycle after it is shifted into the chip.</p>
<p>This means you can operate the 595 chip with just two pins, but alas, you do need one more connection to drive the LCD properly. This is an HD44780 compliant display. It is being used in 4-bit mode; four of the shift register pins provide that data, while a fifth controls the Register Select pin. Since the shifted data from the 595 appears on the pins after each clock strobe, you must control the Enable pin on the LCD separately or it will behave sporadically.</p>
<p>So there you have it, control an HD44780 display with just 3-pins by using a $0.42 part. Are we going a little too fast for you? Check out this <a href="http://hackaday.com/2010/05/31/beginner-concepts-cascading-shift-registers/">595 tutorial</a> and give the <a href="http://hackaday.com/2011/03/14/beginner-concepts-595-shift-register-simulator/">shift register simulator</a> a try. That should bring you up to speed.</p>
<p>[Thanks Rajendra]</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/39651/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hackadaycom.wordpress.com/39651/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hackadaycom.wordpress.com/39651/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hackadaycom.wordpress.com/39651/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hackadaycom.wordpress.com/39651/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hackadaycom.wordpress.com/39651/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hackadaycom.wordpress.com/39651/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hackadaycom.wordpress.com/39651/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hackadaycom.wordpress.com/39651/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hackadaycom.wordpress.com/39651/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hackadaycom.wordpress.com/39651/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hackadaycom.wordpress.com/39651/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hackadaycom.wordpress.com/39651/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hackadaycom.wordpress.com/39651/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hackaday.com&amp;blog=4779443&amp;post=39651&amp;subd=hackadaycom&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hackaday.com/2011/04/07/shift-register-is-all-it-takes-to-make-a-3-wire-serial-lcd/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/2011/04/easy-serial-lcd-e1302191009964.jpg" medium="image">
			<media:title type="html">easy-serial-lcd</media:title>
		</media:content>
	</item>
	</channel>
</rss>
