<?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>Dave's Blog</title>
	<atom:link href="http://davehillier.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://davehillier.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Mon, 14 Nov 2011 07:48:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='davehillier.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Dave's Blog</title>
		<link>http://davehillier.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://davehillier.wordpress.com/osd.xml" title="Dave&#039;s Blog" />
	<atom:link rel='hub' href='http://davehillier.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Sheevaplug</title>
		<link>http://davehillier.wordpress.com/2011/01/25/sheevaplug/</link>
		<comments>http://davehillier.wordpress.com/2011/01/25/sheevaplug/#comments</comments>
		<pubDate>Tue, 25 Jan 2011 20:54:09 +0000</pubDate>
		<dc:creator>davehillier</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://davehillier.wordpress.com/?p=240</guid>
		<description><![CDATA[I bought myself a new toy for xmas from NewIt, a Sheevaplug. It&#8217;s a low power, ARM linux device. I plan to use it as a network attached storage maybe backup. The SheevaPlug has Ubuntu 9.04 pre-installed. Apparently its only draws 4 watts. I&#8217;m adding this to remind me of the basic setup I did if I ever [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davehillier.wordpress.com&amp;blog=6130451&amp;post=240&amp;subd=davehillier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I bought myself a new toy for xmas from <a href="http://www.newit.co.uk">NewIt</a>, a Sheevaplug. It&#8217;s a low power, ARM linux device. I plan to use it as a network attached storage maybe backup. The SheevaPlug has Ubuntu 9.04 pre-installed. Apparently its only draws 4 watts. I&#8217;m adding this to remind me of the basic setup I did if I ever have to do it again.</p>
<p>You can use the USB cable it comes with the get tty access, but I couldn&#8217;t be bothered, I&#8217;m happy enough to use the provided OS filesystems etc. Just plugged it in, waited a couple of minutes and use the standard root password.</p>
<p>The device was called UBUNTU on my routers config.</p>
<p>The forum at <a href="http://www.newit.co.uk/forum/index.php/topic,44.0.html">NewIt</a> recommends regerating keys.</p>
<p>As I want to use it for a storage I attached my usb hard drive, typed in ls /dev/ expecting to see an entry for a hdd something like sda1. The drive was lighting up; I could hear it spinning up repeatedly.</p>
<p>Nothing there, so I swapped it for a memory stick, which seems to work fine. I&#8217;m guessing that the drive is drawing more than the 500ma that USB are supposed to draw. I installed lsusb and checked for the device, which didn&#8217;t appear. I added a hub, with external power supply, and attached the USB drive via that and it worked fine. Now its easy to mount the drive (my drive happens to be a WD Passport:</p>
<blockquote><p>mkdir /media/WDPassport/<br />
sudo mount /dev/disk/by-label/WD\\x20Passport /media/WDPassport/</p></blockquote>
<p>Added a new user so that I don&#8217;t have to log in as root.</p>
<blockquote><p>adduser daveh</p></blockquote>
<p>and add to sudoers list to stop me from making stupid mistakes</p>
<blockquote><p>visudo</p></blockquote>
<p>annoyingly it uses vi, add the line with i</p>
<blockquote><p>daveh   ALL=(ALL) ALL</p></blockquote>
<p>then :wq to write the file and exit</p>
<p>Do an apt-get update so that apt has the correct locations to get packages from.</p>
<p>I changed the MOTD for so I know I&#8217;m definitely booting from the SD card.</p>
<p>I&#8217;d also like to use it to serve my music up, so I&#8217;ve installed <a href="http://www.ubuntugeek.com/howto-setup-itunes-compatible-media-server-in-ubuntu.html">mt-daap</a>. This was pretty straight forward.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/davehillier.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/davehillier.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/davehillier.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/davehillier.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/davehillier.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/davehillier.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/davehillier.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/davehillier.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/davehillier.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/davehillier.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/davehillier.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/davehillier.wordpress.com/240/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/davehillier.wordpress.com/240/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/davehillier.wordpress.com/240/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davehillier.wordpress.com&amp;blog=6130451&amp;post=240&amp;subd=davehillier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://davehillier.wordpress.com/2011/01/25/sheevaplug/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c858ee2051a1759151a381d184a3ae99?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">davehillier</media:title>
		</media:content>
	</item>
		<item>
		<title>Using LED command line without root</title>
		<link>http://davehillier.wordpress.com/2011/01/24/using-led-command-line-without-root/</link>
		<comments>http://davehillier.wordpress.com/2011/01/24/using-led-command-line-without-root/#comments</comments>
		<pubDate>Mon, 24 Jan 2011 21:12:06 +0000</pubDate>
		<dc:creator>davehillier</dc:creator>
				<category><![CDATA[AVR]]></category>
		<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Firmware]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://davehillier.wordpress.com/?p=218</guid>
		<description><![CDATA[A few of the people who tried to build the LED cube had problems getting it to run. Several people didn&#8217;t realise that you needed root. I&#8217;ve now had to solve this problem for my self as I&#8217;m now trying to use it from my ubuntu plug. I found the solution here and have adapted [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davehillier.wordpress.com&amp;blog=6130451&amp;post=218&amp;subd=davehillier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A few of the people who tried to build the LED cube had problems getting it to run. Several people didn&#8217;t realise that you needed root. I&#8217;ve now had to solve this problem for my self as I&#8217;m now trying to use it from my ubuntu plug. I found the solution <a href="http://forums.obdev.at/viewtopic.php?f=8&amp;t=1253&amp;p=4426&amp;hilit=sudo#p4426">here</a> and have adapted it for the cube. The solution to this is too use udev, which allows devices to be run from user space.</p>
<p>Create new rule for udev</p>
<blockquote><p>sudo emacs /etc/udev/rules.d/60-objdev.rules</p></blockquote>
<p>Edit new rule in emacs and add following:</p>
<blockquote><p>SUBSYSTEM!=&#8221;usb_device&#8221;, ACTION!=&#8221;add&#8221;, GOTO=&#8221;objdev_rules_end&#8221;</p>
<p>SYSFS{idVendor}==&#8221;16c0&#8243;, SYSFS{idProduct}==&#8221;05df&#8221;, GROUP=&#8221;users&#8221;, MODE=&#8221;666&#8243;<br />
LABEL=&#8221;objdev_rules_end&#8221;</p></blockquote>
<p>For other devices replace the vendor and product id with values you can get from lsusb. For example:</p>
<blockquote><p>daveh@mbp:~$ lsusb</p>
<p>Bus 001 Device 005: ID 16c0:05df VOTI</p></blockquote>
<p>Restart udev</p>
<blockquote><p>sudo /etc/init.d/udev restart</p></blockquote>
<p>Plug in the cube, and try the command.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/davehillier.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/davehillier.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/davehillier.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/davehillier.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/davehillier.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/davehillier.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/davehillier.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/davehillier.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/davehillier.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/davehillier.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/davehillier.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/davehillier.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/davehillier.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/davehillier.wordpress.com/218/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davehillier.wordpress.com&amp;blog=6130451&amp;post=218&amp;subd=davehillier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://davehillier.wordpress.com/2011/01/24/using-led-command-line-without-root/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c858ee2051a1759151a381d184a3ae99?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">davehillier</media:title>
		</media:content>
	</item>
		<item>
		<title>Mail notifier clone</title>
		<link>http://davehillier.wordpress.com/2009/06/29/mail-notifier-clones/</link>
		<comments>http://davehillier.wordpress.com/2009/06/29/mail-notifier-clones/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 22:41:05 +0000</pubDate>
		<dc:creator>davehillier</dc:creator>
				<category><![CDATA[ATTiny45]]></category>
		<category><![CDATA[AVR]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[Electronics]]></category>

		<guid isPermaLink="false">http://davehillier.wordpress.com/?p=158</guid>
		<description><![CDATA[I&#8217;ve been a bit slack with blog posts of late. I&#8217;ll probably start with more electronics when the weather turns, but for now I&#8217;m enjoying the sun. In the mean time several of the forum members on eeeuser.com have been attempting to build a mail notifier inspired the LED cube that I&#8217;ve built. They&#8217;ve put [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davehillier.wordpress.com&amp;blog=6130451&amp;post=158&amp;subd=davehillier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been a bit slack with blog posts of late. I&#8217;ll probably start with more electronics when the weather turns, but for now I&#8217;m enjoying the sun.</p>
<p>In the mean time several of the forum members on eeeuser.com have been attempting to build a mail notifier inspired the LED <a href="http://davehillier.wordpress.com/2009/03/30/building-the-cube/">cube</a> that I&#8217;ve built. They&#8217;ve put their progress in this <a href="http://forum.eeeuser.com/viewtopic.php?id=69849&amp;p=5">thread</a>. Forum member posted some pictures to that thread. They&#8217;ve gone a bit further than I have by etching their own PCBs and using SMT components.</p>
<p>Here is the completed circuit controlling a mini lava lamp from forum member <a href="http://eeegadgets.blogspot.com/">AlphaCentauri</a> whom has also adapted with <a href="http://sourceforge.net/projects/dbirdnotifier">Twitter/ICQ/Mail notifier software, dBird</a> to control the cube.</p>
<p><img style="border:0 initial initial;" title="lava lamp notifier" src="http://img26.imageshack.us/img26/8449/img2273w.jpg" alt="" width="640" height="480" /></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/davehillier.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/davehillier.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/davehillier.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/davehillier.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/davehillier.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/davehillier.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/davehillier.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/davehillier.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/davehillier.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/davehillier.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/davehillier.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/davehillier.wordpress.com/158/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/davehillier.wordpress.com/158/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/davehillier.wordpress.com/158/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davehillier.wordpress.com&amp;blog=6130451&amp;post=158&amp;subd=davehillier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://davehillier.wordpress.com/2009/06/29/mail-notifier-clones/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c858ee2051a1759151a381d184a3ae99?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">davehillier</media:title>
		</media:content>

		<media:content url="http://img26.imageshack.us/img26/8449/img2273w.jpg" medium="image">
			<media:title type="html">lava lamp notifier</media:title>
		</media:content>
	</item>
		<item>
		<title>AVR Fuse settings</title>
		<link>http://davehillier.wordpress.com/2009/05/06/avr-fuse-settings/</link>
		<comments>http://davehillier.wordpress.com/2009/05/06/avr-fuse-settings/#comments</comments>
		<pubDate>Wed, 06 May 2009 08:04:39 +0000</pubDate>
		<dc:creator>davehillier</dc:creator>
				<category><![CDATA[AVR]]></category>
		<category><![CDATA[Electronics]]></category>

		<guid isPermaLink="false">http://davehillier.wordpress.com/?p=149</guid>
		<description><![CDATA[I&#8217;ve managed to &#8216;brick&#8217; two of my ATTiny2313 chips by getting the fuse settings wrong. I&#8217;m not sure what I have done but I suspect I&#8217;ve set them to use an external oscillator without one. It should be able to get them working if I add an oscillator to my circuit. Here is a tool [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davehillier.wordpress.com&amp;blog=6130451&amp;post=149&amp;subd=davehillier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve managed to &#8216;brick&#8217; two of my ATTiny2313 chips by getting the fuse settings wrong. I&#8217;m not sure what I have done but I suspect I&#8217;ve set them to use an external oscillator without one. It should be able to get them working if I add an oscillator to my circuit.</p>
<p>Here is a tool that will help calculate the correct <a href="http://www.engbedded.com/fusecalc/">values for l/h/e fues</a>.</p>
<p>It is possible to turn off the reset pin. When this happens the only option is to use the HV programmer. When the device is dead you might be able to recover them with this <a href="http://mightyohm.com/blog/products/avr-hv-rescue-shield/">HV Rescue Arduino shield</a>. I&#8217;m not planning to buy as I&#8217;d like to be able to use it with ATTiny45 which it does not support.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/davehillier.wordpress.com/149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/davehillier.wordpress.com/149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/davehillier.wordpress.com/149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/davehillier.wordpress.com/149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/davehillier.wordpress.com/149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/davehillier.wordpress.com/149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/davehillier.wordpress.com/149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/davehillier.wordpress.com/149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/davehillier.wordpress.com/149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/davehillier.wordpress.com/149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/davehillier.wordpress.com/149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/davehillier.wordpress.com/149/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/davehillier.wordpress.com/149/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/davehillier.wordpress.com/149/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davehillier.wordpress.com&amp;blog=6130451&amp;post=149&amp;subd=davehillier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://davehillier.wordpress.com/2009/05/06/avr-fuse-settings/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c858ee2051a1759151a381d184a3ae99?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">davehillier</media:title>
		</media:content>
	</item>
		<item>
		<title>ProjectSteve: Cylon attachment</title>
		<link>http://davehillier.wordpress.com/2009/05/03/projectsteve-cylon-attachment/</link>
		<comments>http://davehillier.wordpress.com/2009/05/03/projectsteve-cylon-attachment/#comments</comments>
		<pubDate>Sun, 03 May 2009 17:29:10 +0000</pubDate>
		<dc:creator>davehillier</dc:creator>
				<category><![CDATA[ATTiny2313]]></category>
		<category><![CDATA[AVR]]></category>
		<category><![CDATA[Electronics]]></category>

		<guid isPermaLink="false">http://davehillier.wordpress.com/?p=124</guid>
		<description><![CDATA[My friend Johnny has brought into work a Roomba clone. Apparently it is not particularly effective at cleaning, so we have decided to hack it. It is named ProjectSteve. He&#8217;s already has his vacuum cleaning parts removed and he is pretty good at carrying stuff. When discussing what to build we came up with the idea [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davehillier.wordpress.com&amp;blog=6130451&amp;post=124&amp;subd=davehillier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" src="https://s3.amazonaws.com/twitter_production/profile_images/109557870/Steve_bigger.jpg" alt="" width="150" height="127" />My friend Johnny has brought into work a Roomba clone. Apparently it is not particularly effective at cleaning, so we have decided to hack it. It is named <a href="https://twitter.com/ProjectSTEVE">ProjectSteve</a>. He&#8217;s already has his vacuum cleaning parts removed and he is pretty good at carrying stuff. When discussing what to build we came up with the idea of building a light strip like KIT or a Cylon. It seems someone else already had the idea of Cylons and has added one to a <a href="http://hackingroomba.com/projects/build-a-cylon-roomba/">Roomba</a>.</p>
<p>I have loads of 3mm red LEDs and I&#8217;m going to use 25 of them to make this LED strip. I want each LED to be independently addressable so I have decided to configure the LEDs in a matrix. I&#8217;ve previously discussed <a href="http://davehillier.wordpress.com/2009/04/03/led-matrix/">how to use an LED matrix with an Arduino</a>. If you were to wire the LEDs individually you would need 25 pins, one to control each LEDs. Using a matrix can reduce this.</p>
<p>I begin by wiring up the LED matrix. I decided to use 5 groups of 5 Leds</p>
<p>For each group, of LEDs, solder all the cathodes together. I have attached a black wire to this group and this will be used to connect to the MCU.</p>
<div id="attachment_123" class="wp-caption alignnone" style="width: 310px"><img class="size-medium wp-image-123" title="LED Strip Matrix back close" src="http://davehillier.files.wordpress.com/2009/04/img_2327_2.jpg?w=300&#038;h=127" alt="Close up of the back of the LED strip" width="300" height="127" /><p class="wp-caption-text">Close up of the back of the LED strip</p></div>
<p>The group&#8217;s anodes are then wired together with the corresponding anode from the other groups; the first LED&#8217;s anode, from the first group, is wired to the anode of the first LED in each of the other groups. This gives ten wires to control all the LEDs. I&#8217;ve soldered each wire to a pin on some PCB header so I should be able to plug it into breadboard, or alternatively a female header when I have made the PCB.</p>
<div id="attachment_122" class="wp-caption alignnone" style="width: 310px"><img class="size-medium wp-image-122" title="Complete wiring" src="http://davehillier.files.wordpress.com/2009/04/img_2327.jpg?w=300&#038;h=55" alt="Wiring completed" width="300" height="55" /><p class="wp-caption-text">Wiring completed</p></div>
<p>The LEDs are mounted in a bent strip of acrylic. I bent this over my kitchen hob but I didn&#8217;t get particularly good quality results.</p>
<div id="attachment_121" class="wp-caption alignnone" style="width: 310px"><img class="size-medium wp-image-121" title="LED Strip front" src="http://davehillier.files.wordpress.com/2009/04/img_2326.jpg?w=300&#038;h=65" alt="LED strip front" width="300" height="65" /><p class="wp-caption-text">The finished LED strip from the front</p></div>
<p>As usual I first prototype the design on my Arduino. I&#8217;ve connected the ground pins to digital pins 2 to 6 and the positive pins to 7 to 11. I&#8217;ve again used <a href="http://www.arduino.cc/en/Reference/PortManipulation">Port Manipulation</a> for the Arduino. The Arduino wiki advises against using it because it makes things more complicated, but I feel that it actually makes things simpler in this case. </p>
<p>Here is the Arduino source. The &#8216;anim&#8217; array contains the display information. Each byte is used to represent the five LED group. You should be able to see the pattern, 1&#8242;s mean LED on 0&#8242;s mean LED off.</p>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;">char anim[][5] = {</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B00000, B00000, B11111, B00000, B00000},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B00000, B00000, B00111, B11000, B00000},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B00000, B00000, B00011, B11100, B00000},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B00000, B00000, B00000, B11111, B00000},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B00000, B00000, B00000, B01111, B10000},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B00000, B00000, B00000, B00111, B11000},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B00000, B00000, B00000, B00001, B11110},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B00000, B00000, B00000, B00000, B11111},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B00000, B00000, B00000, B00000, B01111},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B00000, B00000, B00000, B00000, B01111},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B00000, B00000, B00000, B00000, B00111},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B00000, B00000, B00000, B00000, B00111},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B00000, B00000, B00000, B00000, B00111},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B00000, B00000, B00000, B00000, B00111},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B00000, B00000, B00000, B00000, B00111},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B00000, B00000, B00000, B00000, B00111},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B00000, B00000, B00000, B00000, B01111},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B00000, B00000, B00000, B00000, B01111},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B00000, B00000, B00000, B00000, B11111},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B00000, B00000, B00000, B00001, B11110},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B00000, B00000, B00000, B00111, B11000},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B00000, B00000, B00000, B01111, B10000},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B00000, B00000, B00000, B11111, B00000},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B00000, B00000, B00011, B11100, B00000},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B00000, B00000, B00111, B11000, B00000},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B00000, B00000, B11111, B00000, B00000},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B00000, B00011, B11100, B00000, B00000},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B00000, B00111, B11000, B00000, B00000},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B00000, B11111, B00000, B00000, B00000},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B00001, B11110, B00000, B00000, B00000},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B00011, B11100, B00000, B00000, B00000},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B01111, B10000, B00000, B00000, B00000},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B11111, B00000, B00000, B00000, B00000},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B11110, B00000, B00000, B00000, B00000},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B11110, B00000, B00000, B00000, B00000},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B11100, B00000, B00000, B00000, B00000},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B11100, B00000, B00000, B00000, B00000},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B11100, B00000, B00000, B00000, B00000},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B11100, B00000, B00000, B00000, B00000},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B11100, B00000, B00000, B00000, B00000},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B11100, B00000, B00000, B00000, B00000},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B11110, B00000, B00000, B00000, B00000},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B11110, B00000, B00000, B00000, B00000},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B11111, B00000, B00000, B00000, B00000},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B01111, B10000, B00000, B00000, B00000},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B00011, B11100, B00000, B00000, B00000},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B00001, B11110, B00000, B00000, B00000},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B00000, B11111, B00000, B00000, B00000},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B00000, B00111, B11000, B00000, B00000},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;"><span style="white-space:pre;"> </span>{ B00000, B00011, B11100, B00000, B00000},</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;">};</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;">void setGnd(int i)</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;">{</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;">  PORTD &amp;= B10000011;</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;">  PORTD |= (~(1 &lt;&lt; (i+2))) &amp; B01111100;</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;">}</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;">void clearGnd()</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;">{</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;">  PORTD |= B01111100;</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;">}</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;">void setLeds(unsigned int frame, unsigned int block)</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;">{</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;">  PORTD &amp;= B01111111;</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;">  PORTD |= B10000000 &amp; (anim[frame][4 - block] &lt;&lt; 7);</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;">  </div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;">  PORTB &amp;= B11110000;</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;">  PORTB |= B00001111 &amp; (anim[frame][4 - block] &gt;&gt; 1);</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;">}</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;">void setup()</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;">{</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;">  DDRD |= B11111100;</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;">  DDRB = B00001111;</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;">}</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;">void loop()</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;">{</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;">  int frames = sizeof(anim) / (5 * sizeof(char));</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;">  unsigned int t = millis();</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;">  unsigned int f = (t / 40) % frames;</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;">  for (int i = 0; i &lt; 5; ++i)</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;">  {</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;">    setGnd(i);</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;">    setLeds(f, i);</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;">    delay(1);</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;">    clearGnd();</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;">  }</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:937px;width:1px;height:1px;">}</div>
<pre>char anim[][5] = {
	{ B00000, B00000, B11111, B00000, B00000},
	{ B00000, B00000, B00111, B11000, B00000},
	{ B00000, B00000, B00011, B11100, B00000},
	{ B00000, B00000, B00000, B11111, B00000},
	{ B00000, B00000, B00000, B01111, B10000},
	{ B00000, B00000, B00000, B00111, B11000},
	{ B00000, B00000, B00000, B00001, B11110},
	{ B00000, B00000, B00000, B00000, B11111},
	{ B00000, B00000, B00000, B00000, B01111},
	{ B00000, B00000, B00000, B00000, B01111},
	{ B00000, B00000, B00000, B00000, B00111},
	{ B00000, B00000, B00000, B00000, B00111},
	{ B00000, B00000, B00000, B00000, B00111},
	{ B00000, B00000, B00000, B00000, B00111},
	{ B00000, B00000, B00000, B00000, B00111},
	{ B00000, B00000, B00000, B00000, B00111},
	{ B00000, B00000, B00000, B00000, B01111},
	{ B00000, B00000, B00000, B00000, B01111},
	{ B00000, B00000, B00000, B00000, B11111},
	{ B00000, B00000, B00000, B00001, B11110},
	{ B00000, B00000, B00000, B00111, B11000},
	{ B00000, B00000, B00000, B01111, B10000},
	{ B00000, B00000, B00000, B11111, B00000},
	{ B00000, B00000, B00011, B11100, B00000},
	{ B00000, B00000, B00111, B11000, B00000},
	{ B00000, B00000, B11111, B00000, B00000},
	{ B00000, B00011, B11100, B00000, B00000},
	{ B00000, B00111, B11000, B00000, B00000},
	{ B00000, B11111, B00000, B00000, B00000},
	{ B00001, B11110, B00000, B00000, B00000},
	{ B00011, B11100, B00000, B00000, B00000},
	{ B01111, B10000, B00000, B00000, B00000},
	{ B11111, B00000, B00000, B00000, B00000},
	{ B11110, B00000, B00000, B00000, B00000},
	{ B11110, B00000, B00000, B00000, B00000},
	{ B11100, B00000, B00000, B00000, B00000},
	{ B11100, B00000, B00000, B00000, B00000},
	{ B11100, B00000, B00000, B00000, B00000},
	{ B11100, B00000, B00000, B00000, B00000},
	{ B11100, B00000, B00000, B00000, B00000},
	{ B11100, B00000, B00000, B00000, B00000},
	{ B11110, B00000, B00000, B00000, B00000},
	{ B11110, B00000, B00000, B00000, B00000},
	{ B11111, B00000, B00000, B00000, B00000},
	{ B01111, B10000, B00000, B00000, B00000},
	{ B00011, B11100, B00000, B00000, B00000},
	{ B00001, B11110, B00000, B00000, B00000},
	{ B00000, B11111, B00000, B00000, B00000},
	{ B00000, B00111, B11000, B00000, B00000},
	{ B00000, B00011, B11100, B00000, B00000},

};

void setGnd(int i)
{
  PORTD &amp;= B10000011;
  PORTD |= (~(1 &lt;&lt; (i+2))) &amp; B01111100;
}

void clearGnd()
{
  PORTD |= B01111100;
}

void setLeds(unsigned int frame, unsigned int block)
{
  PORTD &amp;= B01111111;
  PORTD |= B10000000 &amp; (anim[frame][4 - block] &lt;&gt; 1);
}

void setup()
{
  DDRD |= B11111100;
  DDRB = B00001111;
}

void loop()
{
  int frames = sizeof(anim) / (5 * sizeof(char));
  unsigned int t = millis();
  unsigned int f = (t / 40) % frames;
  for (int i = 0; i &lt; 5; ++i)
  {
    setGnd(i);
    setLeds(f, i);
    delay(1);
    clearGnd();
  }
}</pre>
<p>As Arduino has much much than I need  I want to simplify the design. Here is a simple circuit using an ATTiny2313 to control the LEDs. The capacitors and the chip on the right are a voltage regulator. The orange LED is a power indicator. This is the first circuit I&#8217;ve made using this chip, so I&#8217;ve yet to figure it out how to properly program it. I&#8217;ve manage to brick two chips so far, so I&#8217;m going to investigate fixing them before I continue with the next stage of this project.</p>
<div id="attachment_120" class="wp-caption alignnone" style="width: 310px"><img class="size-medium wp-image-120" title="ATTiny2312 LED controller" src="http://davehillier.files.wordpress.com/2009/04/img_2323.jpg?w=300&#038;h=225" alt="ATTiny2312 LED controller" width="300" height="225" /><p class="wp-caption-text">Breadboard ATTiny2312 LED controller</p></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/davehillier.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/davehillier.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/davehillier.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/davehillier.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/davehillier.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/davehillier.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/davehillier.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/davehillier.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/davehillier.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/davehillier.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/davehillier.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/davehillier.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/davehillier.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/davehillier.wordpress.com/124/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davehillier.wordpress.com&amp;blog=6130451&amp;post=124&amp;subd=davehillier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://davehillier.wordpress.com/2009/05/03/projectsteve-cylon-attachment/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c858ee2051a1759151a381d184a3ae99?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">davehillier</media:title>
		</media:content>

		<media:content url="//s3.amazonaws.com/twitter_production/profile_images/109557870/Steve_bigger.jpg" medium="image" />

		<media:content url="http://davehillier.files.wordpress.com/2009/04/img_2327_2.jpg?w=300" medium="image">
			<media:title type="html">LED Strip Matrix back close</media:title>
		</media:content>

		<media:content url="http://davehillier.files.wordpress.com/2009/04/img_2327.jpg?w=300" medium="image">
			<media:title type="html">Complete wiring</media:title>
		</media:content>

		<media:content url="http://davehillier.files.wordpress.com/2009/04/img_2326.jpg?w=300" medium="image">
			<media:title type="html">LED Strip front</media:title>
		</media:content>

		<media:content url="http://davehillier.files.wordpress.com/2009/04/img_2323.jpg?w=300" medium="image">
			<media:title type="html">ATTiny2312 LED controller</media:title>
		</media:content>
	</item>
		<item>
		<title>Cube follow up</title>
		<link>http://davehillier.wordpress.com/2009/04/23/cube-follow-up/</link>
		<comments>http://davehillier.wordpress.com/2009/04/23/cube-follow-up/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 22:37:18 +0000</pubDate>
		<dc:creator>davehillier</dc:creator>
				<category><![CDATA[ATTiny45]]></category>
		<category><![CDATA[AVR]]></category>
		<category><![CDATA[Electronics]]></category>
		<category><![CDATA[attiny]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[usb]]></category>
		<category><![CDATA[usbtiny]]></category>

		<guid isPermaLink="false">http://davehillier.wordpress.com/?p=108</guid>
		<description><![CDATA[I&#8217;ve been asked a few more questions about the Cube, so here is a follow up post with some answers. Here are the previous posts with the information so far: Initial prototype and bread board version Firmware and Software Schematic and final build Questions What toolchain did you use?  I use Crosspack tool chain (formerly AVR MacPack)  [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davehillier.wordpress.com&amp;blog=6130451&amp;post=108&amp;subd=davehillier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been asked a few more questions about the Cube, so here is a follow up post with some answers.</p>
<p>Here are the previous posts with the information so far:</p>
<ul>
<li><a href="http://davehillier.wordpress.com/2009/03/04/glowing-cube-hack/">Initial prototype and bread board version</a></li>
<li><a href="http://davehillier.wordpress.com/2009/03/10/cube-hack-part-ii-software/">Firmware and Software</a></li>
<li><a href="http://davehillier.wordpress.com/2009/03/30/building-the-cube/">Schematic and final build</a></li>
</ul>
<p><strong>Questions</strong></p>
<p><strong>What toolchain did you use? </strong></p>
<p>I use <a href="http://www.obdev.at/products/crosspack/index.html">Crosspack tool chain (formerly AVR MacPack)</a> <br />
I also use <a href="http://www.obdev.at/products/vusb/index.html">V-USB (formerly AVR-USB)</a> by the same author as Crosspack. This is a software USB implementation that works great in this scenario when only a small amount of information needs to be transferred.</p>
<p><strong>How do you flash the chip?</strong></p>
<p>I&#8217;ve created a small board powered by USB which I can insert the ATTiny into and attach an Atmel ISP mkII. Flashing the program is as simple as typing &#8216;make program&#8217; from the firmware directory in the code.</p>
<p> </p>
<div class="wp-caption alignnone" style="width: 210px"><img title="Atmel AVR ISP mkII" src="http://www.rapidonline.com/netalogue/photos/73426601.jpg" alt="Atmel AVR ISP mkII" width="200" height="200" /><p class="wp-caption-text">Atmel AVR ISP mkII</p></div>
<p><strong>How much did the components cost?</strong></p>
<ul>
<li>ATTiny45 £1.26</li>
<li>USB Connector £0.29 </li>
<li>LEDs approx £0.60</li>
<li>Resistors, Diodes, strip board approx £0.60</li>
</ul>
<p>The cube itself was a freebie and I could have salvaged the LEDs. I&#8217;ve deliberately aimed to keep things simple with as few components as possible. It has cost less than £3 (~$5).</p>
<p><strong>Is it fast enough to do colour fading?</strong></p>
<p>Yes. It uses software PWM to create 24-bit colours. That means the LEDs are turning on and off really quickly to give the impression that they&#8217;re either bright or dim and mix in different proportions to create all the shades.</p>
<p>At the moment I just run the executable (in the commandline directory in the code) many times to create the fade. It wouldn&#8217;t be too complicated to extend the firmware to add smooth fading or alternatively to the command line tool.</p>
<p><strong>How fast can you change the colours?</strong></p>
<p>Pretty much instantly. However, it depends what you mean by &#8216;change&#8217;. As I mentioned before the LEDs are turning on and off constantly. You are limited by the transfer rate of the USB, but you could add colour fading in the firmware reducing he number of instructions required to change. </p>
<p><strong>Can I see more pictures?</strong></p>
<p>I probably won&#8217;t revisit this project, but I promise to add more to future posts.</p>
<p><strong>My cube is a bit dim how can I make it brighter?</strong></p>
<p>It depends, I have build one board where I have removed the resistors protecting the LEDs as they are rated at approximately 3v. It is also possible to run LEDs at a higher voltage than their max rating if you reduce the duty cycle as described in this <a href="http://tinkerlog.com/2009/04/05/driving-an-led-with-or-without-a-resistor/">article</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/davehillier.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/davehillier.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/davehillier.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/davehillier.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/davehillier.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/davehillier.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/davehillier.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/davehillier.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/davehillier.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/davehillier.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/davehillier.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/davehillier.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/davehillier.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/davehillier.wordpress.com/108/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davehillier.wordpress.com&amp;blog=6130451&amp;post=108&amp;subd=davehillier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://davehillier.wordpress.com/2009/04/23/cube-follow-up/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c858ee2051a1759151a381d184a3ae99?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">davehillier</media:title>
		</media:content>

		<media:content url="http://www.rapidonline.com/netalogue/photos/73426601.jpg" medium="image">
			<media:title type="html">Atmel AVR ISP mkII</media:title>
		</media:content>
	</item>
		<item>
		<title>USB caps lock fob</title>
		<link>http://davehillier.wordpress.com/2009/04/03/usb-caps-lock-fob/</link>
		<comments>http://davehillier.wordpress.com/2009/04/03/usb-caps-lock-fob/#comments</comments>
		<pubDate>Fri, 03 Apr 2009 14:22:00 +0000</pubDate>
		<dc:creator>davehillier</dc:creator>
				<category><![CDATA[ATTiny45]]></category>
		<category><![CDATA[AVR]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[Electronics]]></category>
		<category><![CDATA[attiny]]></category>
		<category><![CDATA[joke]]></category>
		<category><![CDATA[usb]]></category>
		<category><![CDATA[usbtiny]]></category>

		<guid isPermaLink="false">http://davehillier.wordpress.com/?p=75</guid>
		<description><![CDATA[When building the USB mail notifier, I found this blog post describing how to build a tiny USB device that randomly turns the caps key on. One of my colleagues, Simon, particularly hates accidental caps presses, so much so that, he physically removed the key from his keyboard. This made him the ideal target for [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davehillier.wordpress.com&amp;blog=6130451&amp;post=75&amp;subd=davehillier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When building the USB mail notifier, I found this <a href="http://macetech.com/blog/?q=node/46">blog post</a> describing how to build a tiny USB device that randomly turns the caps key on. One of my colleagues, Simon, particularly hates accidental caps presses, so much so that, he physically removed the key from his keyboard. This made him the ideal target for this joke.</p>
<p>The hardware required is very similar to the email notified I built. It is actually possible with a reprogram of the chip to use the same device. However I want to make this small enough to be hidden.</p>
<p>As with all my projects I&#8217;m trying to avoid making PCBs or using surface mount devices. I&#8217;m sticking with stripboard and normal sized devices. I used the same vertical mount of inline components.</p>
<p>I have removed the USB connector from an old memory stick and, although this is surface mount, the pins are spaced far enough apart to sit on a track each.</p>
<p>When all the parts a soldered and the chip is flashed I tested the device. It doesn&#8217;t seem to work on OS X, but fortunately it does on Windows.</p>
<div id="attachment_95" class="wp-caption alignnone" style="width: 235px"><img class="size-medium wp-image-95" title="Caps locker fob" src="http://davehillier.files.wordpress.com/2009/04/img_0019.jpg?w=225&#038;h=300" alt="Caps locker fob" width="225" height="300" /><p class="wp-caption-text">Caps locker fob</p></div>
<p>As for Simon, he was perplexed for about 40 minutes, but saw the funny side when he figured it out <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/davehillier.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/davehillier.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/davehillier.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/davehillier.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/davehillier.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/davehillier.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/davehillier.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/davehillier.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/davehillier.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/davehillier.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/davehillier.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/davehillier.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/davehillier.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/davehillier.wordpress.com/75/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davehillier.wordpress.com&amp;blog=6130451&amp;post=75&amp;subd=davehillier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://davehillier.wordpress.com/2009/04/03/usb-caps-lock-fob/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c858ee2051a1759151a381d184a3ae99?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">davehillier</media:title>
		</media:content>

		<media:content url="http://davehillier.files.wordpress.com/2009/04/img_0019.jpg?w=225" medium="image">
			<media:title type="html">Caps locker fob</media:title>
		</media:content>
	</item>
		<item>
		<title>LED Matrix</title>
		<link>http://davehillier.wordpress.com/2009/04/03/led-matrix/</link>
		<comments>http://davehillier.wordpress.com/2009/04/03/led-matrix/#comments</comments>
		<pubDate>Fri, 03 Apr 2009 13:24:44 +0000</pubDate>
		<dc:creator>davehillier</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Prototyping]]></category>
		<category><![CDATA[led]]></category>
		<category><![CDATA[led matrix]]></category>
		<category><![CDATA[prototype]]></category>

		<guid isPermaLink="false">http://davehillier.wordpress.com/?p=77</guid>
		<description><![CDATA[I&#8217;ve recently purchased a pair of 5&#215;7 LED matrices. To learn how to use them I&#8217;ve decided to use my arduino to prototype them. I&#8217;ve downloaded the datasheet for the LEDs and I already have the arduino toolchain, so I&#8217;m ready to begin. The LEDs are in a matrix which means that you can not [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davehillier.wordpress.com&amp;blog=6130451&amp;post=77&amp;subd=davehillier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently purchased a pair of 5&#215;7 LED matrices. To learn how to use them I&#8217;ve decided to use my arduino to prototype them. I&#8217;ve downloaded the datasheet for the LEDs and I already have the arduino toolchain, so I&#8217;m ready to begin. The LEDs are in a matrix which means that you can not turn them on individually. Instead you have to strobe the LEDs at a frequency high enough that you can&#8217;t perceive any flicker and that each row or column is active at a different time.</p>
<p>To select each we need use a digital output for both the rows and columns. This means we need we need a total of 12 outputs. It might be possible to reduce this number further, but this will be fine as a first pass as we are not short on IO on the arduino.</p>
<p>The arduino has 13 digital outputs, but two are used for serial communication and I generally avoid using them as we might need them to help debug any problems. Instead I&#8217;m going to use the analog pins, which are referred to by using pin 14 to 20.</p>
<p>The arduino&#8217;s digital outputs deliver 5v, which is higher than the 2v required for each LED. As we are only going to drive one LED, per output, at a time the circuit decomposes to a standard series LED-resistor. I&#8217;ve calculated the value required using a web form using the information from the datasheet.</p>
<p>The column pins connect first to a resistor and then to the normal digital pins of the arduino. The row pins connect directly to the analog pins of the arduino.</p>
<p>The arduino sketch is simple to write, but care must be taken to ensure that the LEDs are on for similar durations, otherwise the will be different brightnesses. It is possible to write directly to the ports but for simplicity I&#8217;m going to just use digital write.</p>
<p>Here is the Arduino code, the pins (apins, cpins) need to be specified depending on how you have wired it up.</p>
<pre>int ledPin = 13;  
int cpins[] = {15,17,18,16,19,0};
int apins[] = {6,8,7,2,5,3,4,0};
 
int pic0[] = {
  B00010000,
  B01010000,
  B00010000,
  B01010000,
  B00010000
};
 
int pic1[] = {
  B00010000,
  B01011000,
  B00011000,
  B01011000,
  B00010000
};
 
 
int pic2[] = {
  B00011000,
  B01010100,
  B00010100,
  B01010100,
  B00011000
};
 
int pic3[] = {
  B00011100,
  B01010010,
  B00010010,
  B01010010,
  B00011100
};
 
int *anim[] = { pic0, pic1, pic2, pic3, pic2, pic1, NULL };
 
void setup() 
{
  for (int i =0; apins[i]; ++i)
    pinMode(apins[i], OUTPUT); 
    
  for (int i =0; cpins[i]; ++i)
    pinMode(cpins[i], OUTPUT); 
  
}
 
int frame = 0;
unsigned long next_frame = 0;
void loop() 
{
  unsigned long time = millis();
  if (next_frame &lt; time)
  {
    frame += 1;
    next_frame = time + 50;
    if (anim[frame] == NULL)
      frame = 0;
  }
  
  for (int j =0; cpins[j]; ++j)
  {
    for (int i =0; apins[i]; ++i)
    {
      digitalWrite(apins[i], LOW);
    }
    digitalWrite(cpins[j], LOW);
    for (int i =0; apins[i]; ++i)
    {
      digitalWrite(apins[i], anim[frame][j] &amp; (1&lt;&lt;i));
    }
    digitalWrite(cpins[j], HIGH);
  }
}</pre>
<div id="attachment_92" class="wp-caption alignnone" style="width: 288px"><img class="size-medium wp-image-92" title="LED Matrix" src="http://davehillier.files.wordpress.com/2009/04/img_0016.jpg?w=278&#038;h=300" alt="LED Matrix and Arduino" width="278" height="300" /><p class="wp-caption-text">LED Matrix and Arduino</p></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/davehillier.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/davehillier.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/davehillier.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/davehillier.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/davehillier.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/davehillier.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/davehillier.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/davehillier.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/davehillier.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/davehillier.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/davehillier.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/davehillier.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/davehillier.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/davehillier.wordpress.com/77/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davehillier.wordpress.com&amp;blog=6130451&amp;post=77&amp;subd=davehillier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://davehillier.wordpress.com/2009/04/03/led-matrix/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c858ee2051a1759151a381d184a3ae99?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">davehillier</media:title>
		</media:content>

		<media:content url="http://davehillier.files.wordpress.com/2009/04/img_0016.jpg?w=278" medium="image">
			<media:title type="html">LED Matrix</media:title>
		</media:content>
	</item>
		<item>
		<title>Building the cube</title>
		<link>http://davehillier.wordpress.com/2009/03/30/building-the-cube/</link>
		<comments>http://davehillier.wordpress.com/2009/03/30/building-the-cube/#comments</comments>
		<pubDate>Mon, 30 Mar 2009 08:18:19 +0000</pubDate>
		<dc:creator>davehillier</dc:creator>
				<category><![CDATA[ATTiny45]]></category>
		<category><![CDATA[AVR]]></category>
		<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Prototyping]]></category>
		<category><![CDATA[attiny]]></category>
		<category><![CDATA[led]]></category>
		<category><![CDATA[pcb]]></category>
		<category><![CDATA[rgb]]></category>
		<category><![CDATA[usb]]></category>
		<category><![CDATA[usbtiny]]></category>

		<guid isPermaLink="false">http://davehillier.wordpress.com/?p=76</guid>
		<description><![CDATA[I&#8217;ve finally set about building the USB mail alert. In my previous post, I showed the bread board prototype of my cube hack. Here is the adapted circuit diagram. NB: 2 is D+ 3 is D-  When laying out circuits, it is a good idea to, start with the largest component first, in this case, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davehillier.wordpress.com&amp;blog=6130451&amp;post=76&amp;subd=davehillier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve finally set about building the USB mail alert.<br />
In my previous post, I showed the bread board prototype of my cube hack. Here is the adapted circuit diagram.</p>
<div id="attachment_78" class="wp-caption alignnone" style="width: 310px"><img class="size-medium wp-image-78" title="schematic USB LED cube" src="http://davehillier.files.wordpress.com/2009/03/led-sch.png?w=300&#038;h=132" alt="schematic" width="300" height="132" /><p class="wp-caption-text">schematic</p></div>
<p>NB: 2 is D+ 3 is D- </p>
<p>When laying out circuits, it is a good idea to, start with the largest component first, in this case, the ATTiny45. I want to program the chip first so I am using a DIL socket. This also has the advantage of protecting the chip from excessive heat when soldering. I&#8217;d also like to use as small a board as possible so I am limiting the width to six tracks. Place all the components on the board before soldering so you can get an idea of how large the board needs to be. I followed the layout of the breadboard, however I want to make the circuit small so I have mounted the resistors and diodes vertically, with one leg bent back.</p>
<p>I also tried to avoid cutting tracks with the spot cutter and instead used a knife to allow components to be closer to each other. This requires a sharp knife and care must be taken to cut only one track. Soldering is also more challenging, solder sparingly, to avoid bridging across your cuts.</p>
<p>I cut the tracks under the chip; note that the reset pin is left disconnected. If you needed extra IO you can flash the chip to use it as such but after that you can no longer reprogram it so I avoid that as I may use the chips from previous devices in future things.</p>
<p>I soldered the LEDs at the end of their leads, towards the end of the PCB. This means they will be in the center of the difuser. They also have a series resistor to reduce the AVR output voltage from 3.6V to the approriate level. This resistor may not be required with some ultrabright LEDs.</p>
<p>To fit in the cube, I have removed the circuit, the coin cells and cover. The cube is going to be used as a cover for the new circuit so I have just cut a space using a sharp knife allowing space for the LEDs to fit into the diffuser. The circuit is slotted into the empty cube to complete the device. Plug it in and test it using the libusb command line tool, mentioned in a previous post.</p>
<div id="attachment_82" class="wp-caption alignnone" style="width: 310px"><img class="size-medium wp-image-82" title="The finished cube" src="http://davehillier.files.wordpress.com/2009/03/cube.jpg?w=300&#038;h=225" alt="The finished cube" width="300" height="225" /><p class="wp-caption-text">The finished cube</p></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/davehillier.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/davehillier.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/davehillier.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/davehillier.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/davehillier.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/davehillier.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/davehillier.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/davehillier.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/davehillier.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/davehillier.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/davehillier.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/davehillier.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/davehillier.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/davehillier.wordpress.com/76/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davehillier.wordpress.com&amp;blog=6130451&amp;post=76&amp;subd=davehillier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://davehillier.wordpress.com/2009/03/30/building-the-cube/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c858ee2051a1759151a381d184a3ae99?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">davehillier</media:title>
		</media:content>

		<media:content url="http://davehillier.files.wordpress.com/2009/03/led-sch.png?w=300" medium="image">
			<media:title type="html">schematic USB LED cube</media:title>
		</media:content>

		<media:content url="http://davehillier.files.wordpress.com/2009/03/cube.jpg?w=300" medium="image">
			<media:title type="html">The finished cube</media:title>
		</media:content>
	</item>
		<item>
		<title>Cube Hack part II (software)</title>
		<link>http://davehillier.wordpress.com/2009/03/10/cube-hack-part-ii-software/</link>
		<comments>http://davehillier.wordpress.com/2009/03/10/cube-hack-part-ii-software/#comments</comments>
		<pubDate>Tue, 10 Mar 2009 22:41:29 +0000</pubDate>
		<dc:creator>davehillier</dc:creator>
				<category><![CDATA[ATTiny45]]></category>
		<category><![CDATA[AVR]]></category>
		<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Firmware]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[led]]></category>

		<guid isPermaLink="false">http://davehillier.wordpress.com/?p=68</guid>
		<description><![CDATA[I&#8217;ve created a Google code project with the snappy title of avr-usb-rgb-led. It is based on the hid-custom-rq example from AVR usb examples. I&#8217;ve added 3 new commands, one for each LED. It uses a software PWM to control the brightness of each LED based on the value set. There is a coresponding program using [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davehillier.wordpress.com&amp;blog=6130451&amp;post=68&amp;subd=davehillier&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve created a Google code project with the snappy title of <a href="http://code.google.com/p/avr-usb-rgb-led/">avr-usb-rgb-led</a>. It is based on the hid-custom-rq example from AVR usb examples. I&#8217;ve added 3 new commands, one for each LED. It uses a software PWM to control the brightness of each LED based on the value set.</p>
<p>There is a coresponding program using libusb which allows you to send the commands, it simply allows you to set the colour of the cube with an RGB tuple on the command line.</p>
<p>To get the code you need to check out using subversion. To flash the chip you probably want to use the makefile.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/davehillier.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/davehillier.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/davehillier.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/davehillier.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/davehillier.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/davehillier.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/davehillier.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/davehillier.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/davehillier.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/davehillier.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/davehillier.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/davehillier.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/davehillier.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/davehillier.wordpress.com/68/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=davehillier.wordpress.com&amp;blog=6130451&amp;post=68&amp;subd=davehillier&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://davehillier.wordpress.com/2009/03/10/cube-hack-part-ii-software/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/c858ee2051a1759151a381d184a3ae99?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">davehillier</media:title>
		</media:content>
	</item>
	</channel>
</rss>
