<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-919742446731219052</id><updated>2012-01-28T23:15:22.778-08:00</updated><category term='general electronics'/><category term='no electronics required'/><category term='555'/><category term='ATtiny13'/><category term='ATtiny'/><category term='For the kids'/><category term='pvc pipe'/><category term='Atmega8'/><category term='woodworking'/><category term='tutorial'/><category term='AVR'/><category term='CNC Build'/><category term='firefly'/><category term='solar'/><title type='text'>FangleTronics</title><subtitle type='html'>Beginners electronics projects, woodworking and other interesting stuff for entertaining kids. I'm documenting my efforts to come up with things that are interesting to make and interesting to play with (or at least one of the two!)</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.fangletronics.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>44</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-1849170816580259581</id><published>2012-01-28T23:15:00.000-08:00</published><updated>2012-01-28T23:15:22.928-08:00</updated><title type='text'>Homemade Christmas Presents</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-g0P5gNHBCAA/Txti41TaOWI/AAAAAAAACQQ/XUSa5kYrwc4/s1600/IMG_4120.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="213" src="http://1.bp.blogspot.com/-g0P5gNHBCAA/Txti41TaOWI/AAAAAAAACQQ/XUSa5kYrwc4/s320/IMG_4120.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-iLbsO5IW30M/Txti4gjwiXI/AAAAAAAACQI/SGG388_qwd4/s1600/IMG_3673.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="213" src="http://4.bp.blogspot.com/-iLbsO5IW30M/Txti4gjwiXI/AAAAAAAACQI/SGG388_qwd4/s320/IMG_3673.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;Every Christmas, Lin makes a load of lovely presents for friends and family, and I run with the excuse that I'm too busy to make anything. &amp;nbsp;Well, this year, I thought it was about time I got off my arse and made a few presents for friends and family and not just sit around watching Lin make awesomeness. &lt;br /&gt;&lt;br /&gt;We came up with a hunormous list of things we'd like to make for people and very quickly realised we'd have to think a little smaller - Delyth was only 4 months old and had regressed into bad sleeping patterns so Lin and I had to take turns holding her in the evening, which didn't leave much time for, well, anything really.&lt;br /&gt;&lt;br /&gt;I'm enjoying a little bit of woodworking at the moment (I think I can blame the CNC build for that) &amp;amp; I liked the idea of making a few wooden toys for friends &amp;amp; family back in &lt;a href="http://en.wikipedia.org/wiki/Blighty"&gt;Blighty&lt;/a&gt;. &amp;nbsp;I found a scroll saw on sale&amp;nbsp;at home depot one day &amp;amp; couldn't resist - so&amp;nbsp;I've been playing with it (partly with the help of&amp;nbsp;&lt;a href="http://www.amazon.com/gp/product/1565232070/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&amp;amp;tag=fangletronics-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=1565232070"&gt;this book&lt;/a&gt;). &amp;nbsp;It came in pretty handy when making Carys' birthday present (which I'll blog about next since it turned out really well) and got some good&amp;nbsp;usage making these Christmas presents.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.amazon.com/gp/product/1565232070/ref=as_li_qf_sp_asin_il?ie=UTF8&amp;amp;tag=fangletronics-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=1565232070" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://ws.assoc-amazon.com/widgets/q?_encoding=UTF8&amp;amp;Format=_SL160_&amp;amp;ASIN=1565232070&amp;amp;MarketPlace=US&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;tag=fangletronics-20&amp;amp;ServiceVersion=20070822" width="238" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;A few of the presents were cut from patterns in this &lt;a href="http://www.amazon.com/gp/product/1565234294/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&amp;amp;tag=fangletronics-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=1565234294"&gt;scroll saw book&lt;/a&gt;,&amp;nbsp;&lt;insert amazon="" link=""&gt;which has a load of good ideas - I'm most fond of the ones that make something the kidlets can play with, so those are the things I chose to try first. &amp;nbsp; I particularly liked the interlocking/nested animal patterns &amp;amp; there were a couple of beginner ones that I could start &amp;nbsp;- a zebra/horse set and some elephants.&lt;/insert&gt;&lt;br /&gt;&lt;insert amazon="" link=""&gt;&lt;br /&gt;&lt;/insert&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.amazon.com/gp/product/1565234294/ref=as_li_qf_sp_asin_il?ie=UTF8&amp;amp;tag=fangletronics-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=1565234294" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://ws.assoc-amazon.com/widgets/q?_encoding=UTF8&amp;amp;Format=_SL160_&amp;amp;ASIN=1565234294&amp;amp;MarketPlace=US&amp;amp;ID=AsinImage&amp;amp;WS=1&amp;amp;tag=fangletronics-20&amp;amp;ServiceVersion=20070822" width="248" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=fangletronics-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=1565234294" style="border: none !important; margin: 0px !important;" width="1" /&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=fangletronics-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=1565232070" style="border: none !important; margin: 0px !important;" width="1" /&gt;&lt;br /&gt;&lt;br /&gt;Here's the first set of horses I cut (out of poplar); Lin finished them off for me by whittling the sides and giving them a couple of coats of tung oil.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-QHX9tTb_aj8/Txti20vc6FI/AAAAAAAACPY/4h4NMJejT0k/s1600/IMG_3664.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="213" src="http://2.bp.blogspot.com/-QHX9tTb_aj8/Txti20vc6FI/AAAAAAAACPY/4h4NMJejT0k/s320/IMG_3664.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-GlYUHFrYyRU/Txti3NgNwtI/AAAAAAAACPg/YjBbLU14UOA/s1600/IMG_3665.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="213" src="http://4.bp.blogspot.com/-GlYUHFrYyRU/Txti3NgNwtI/AAAAAAAACPg/YjBbLU14UOA/s320/IMG_3665.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Since the horses turned out well, I used them as an excuse to pop down to my local woodcraft to pick up some more wood to experiment with. &amp;nbsp; The &lt;a href="http://www.woodcraft.com/stores/store.aspx?id=561"&gt;woodcraft in San Carlos&lt;/a&gt; stocks a load of interesting and beautiful wood. You can buy it by the &lt;a href="http://en.wikipedia.org/wiki/Board_foot"&gt;board foot&lt;/a&gt;&amp;nbsp;(a uniquely North American unit of measure), which means that you can pick up a small amount of a variety of wood to play with without it costing an arm and a leg.&lt;br /&gt;&lt;br /&gt;After a long lunchtime looking at, feeling, and smelling all the interesting wood, I ended up buying some purple heart wood and some zebrawood (no prizes for guessing what that one is going to be used for). &amp;nbsp;The purple heart wood is just so visually striking! &amp;nbsp;I'd never seen a wood that was naturally purple!&lt;br /&gt;&lt;br /&gt;I used the same horse/zebra pattern with the zebrawood and tried out an elephant pattern with the purple heart wood:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-58nisXP5Hew/Txti4FPelhI/AAAAAAAACP4/o1fq6xnZQac/s1600/IMG_3670.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="213" src="http://4.bp.blogspot.com/-58nisXP5Hew/Txti4FPelhI/AAAAAAAACP4/o1fq6xnZQac/s320/IMG_3670.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-6Ucjqd-eAXE/Txti4ZbZeWI/AAAAAAAACQA/MitmNLqudzM/s1600/IMG_3671.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="213" src="http://3.bp.blogspot.com/-6Ucjqd-eAXE/Txti4ZbZeWI/AAAAAAAACQA/MitmNLqudzM/s320/IMG_3671.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-iLbsO5IW30M/Txti4gjwiXI/AAAAAAAACQI/SGG388_qwd4/s1600/IMG_3673.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="213" src="http://4.bp.blogspot.com/-iLbsO5IW30M/Txti4gjwiXI/AAAAAAAACQI/SGG388_qwd4/s320/IMG_3673.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;\&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-W6jL3hsAohs/Txti3WM_aUI/AAAAAAAACPo/Z3_L_jGT1Ls/s1600/IMG_3666.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="213" src="http://3.bp.blogspot.com/-W6jL3hsAohs/Txti3WM_aUI/AAAAAAAACPo/Z3_L_jGT1Ls/s320/IMG_3666.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-EaZWN-IhZ7E/Txti3u2ciMI/AAAAAAAACPw/rmHv26iVd00/s1600/IMG_3668.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="213" src="http://1.bp.blogspot.com/-EaZWN-IhZ7E/Txti3u2ciMI/AAAAAAAACPw/rmHv26iVd00/s320/IMG_3668.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;The last present I want to talk about was something we made for my nephew. &amp;nbsp;I have some very fond memories of receiving hand made gifts from my&amp;nbsp;granddad&amp;nbsp;around&amp;nbsp;Christmas&amp;nbsp;time; he made me and my brother a few cool things - school desks, go-karts and a wooden castle are the ones that I remember fondly (they all got a ton of use and play!). &lt;br /&gt;&lt;br /&gt;My nephew is 19 months old and loves anything with wheels. &amp;nbsp;Lin came up with the idea of a truck made into the shape of his name; I'd had a different plan that I'd been trying out, but it was complicated, fiddly and a little frustrating - we were a little short on time at this point&amp;nbsp;so it was a huge relief to have something more tractable to work on. &amp;nbsp;Also, we had all the necessary pieces on hand!&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-g0P5gNHBCAA/Txti41TaOWI/AAAAAAAACQQ/XUSa5kYrwc4/s1600/IMG_4120.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="213" src="http://1.bp.blogspot.com/-g0P5gNHBCAA/Txti41TaOWI/AAAAAAAACQQ/XUSa5kYrwc4/s320/IMG_4120.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The truck was cut out of some 2x4 Douglas fir I had left over from building the CNC machine (If you're interested there are a few posts about that here: &lt;a href="http://www.fangletronics.com/2010/06/cnc-machine-build-part-i.html"&gt;part1&lt;/a&gt;, &lt;a href="http://www.fangletronics.com/2010/08/cnc-machine-build-part-ii.html"&gt;part2&lt;/a&gt;, &lt;a href="http://www.fangletronics.com/2010/10/cnc-machine-build-part-iii-its-alive.html"&gt;part3&lt;/a&gt;, &lt;a href="http://www.fangletronics.com/2011/12/cnc-update.html"&gt;update&lt;/a&gt;). &amp;nbsp; Here are a few gratuitous "in-progress" shots:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-ICUFq9ilw9s/Txti1RIVNnI/AAAAAAAACOw/H_W_e90rSf8/s1600/IMG_3603.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="266" src="http://4.bp.blogspot.com/-ICUFq9ilw9s/Txti1RIVNnI/AAAAAAAACOw/H_W_e90rSf8/s320/IMG_3603.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-ItSqpZE3Rrs/Txti1oZLQ7I/AAAAAAAACO4/UmLNTvpeozg/s1600/IMG_3604.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="132" src="http://1.bp.blogspot.com/-ItSqpZE3Rrs/Txti1oZLQ7I/AAAAAAAACO4/UmLNTvpeozg/s320/IMG_3604.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-F566DrhAzPg/Txti13-zh4I/AAAAAAAACPA/NlGhCRdN9Hc/s1600/IMG_3605.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="151" src="http://2.bp.blogspot.com/-F566DrhAzPg/Txti13-zh4I/AAAAAAAACPA/NlGhCRdN9Hc/s320/IMG_3605.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-Ag7_5xE0wPM/Txti2hWYDrI/AAAAAAAACPQ/Fc5FxaBlTqo/s1600/IMG_3661.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="213" src="http://1.bp.blogspot.com/-Ag7_5xE0wPM/Txti2hWYDrI/AAAAAAAACPQ/Fc5FxaBlTqo/s320/IMG_3661.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The wheels were from a bag of wooden shapes that LiEr (from &lt;a href="http://www.ikatbag.com/"&gt;ikatbag&lt;/a&gt;) sent to us when Delyth was born. &amp;nbsp;Thanks, LiEr! &amp;nbsp;That bag of wooden tidbits has been a life saver.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: -webkit-auto;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-iP-A8IcVZyg/TgZ4fYB51mI/AAAAAAAAIg0/Kv88a-pjCGg/s1600/LiErsgifts.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="217" src="http://4.bp.blogspot.com/-iP-A8IcVZyg/TgZ4fYB51mI/AAAAAAAAIg0/Kv88a-pjCGg/s320/LiErsgifts.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;I really like how the truck turned out - It's personal, robust and simple. I think Harry liked it too, he certainly played with it a lot over Christmas :)&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-Ji8FtRgg64I/Txti5ucZ-_I/AAAAAAAACQg/W8BwzavC-9M/s1600/IMG_4122.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-Ji8FtRgg64I/Txti5ucZ-_I/AAAAAAAACQg/W8BwzavC-9M/s320/IMG_4122.JPG" width="213" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-g0P5gNHBCAA/Txti41TaOWI/AAAAAAAACQQ/XUSa5kYrwc4/s1600/IMG_4120.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="213" src="http://1.bp.blogspot.com/-g0P5gNHBCAA/Txti41TaOWI/AAAAAAAACQQ/XUSa5kYrwc4/s320/IMG_4120.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-KdV9fmyfY_0/Txti5I80FkI/AAAAAAAACQY/KUro7xU0occ/s1600/IMG_4121.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="213" src="http://4.bp.blogspot.com/-KdV9fmyfY_0/Txti5I80FkI/AAAAAAAACQY/KUro7xU0occ/s320/IMG_4121.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-WhmJFu7h66Q/Txti6IJxOwI/AAAAAAAACQo/_3vWG3ML15w/s1600/IMG_4123.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="213" src="http://1.bp.blogspot.com/-WhmJFu7h66Q/Txti6IJxOwI/AAAAAAAACQo/_3vWG3ML15w/s320/IMG_4123.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-Tn3A4FEbdVg/Txti6YoDpKI/AAAAAAAACQw/BNpiUU4VIEo/s1600/IMG_4150.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-Tn3A4FEbdVg/Txti6YoDpKI/AAAAAAAACQw/BNpiUU4VIEo/s320/IMG_4150.JPG" width="189" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;insert amazon="" link=""&gt;&lt;br /&gt;&lt;/insert&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-1849170816580259581?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/1849170816580259581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=1849170816580259581' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/1849170816580259581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/1849170816580259581'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2012/01/homemade-christmas-presents.html' title='Homemade Christmas Presents'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-g0P5gNHBCAA/Txti41TaOWI/AAAAAAAACQQ/XUSa5kYrwc4/s72-c/IMG_4120.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-8963608017095077239</id><published>2011-12-09T07:35:00.000-08:00</published><updated>2011-12-20T03:57:57.613-08:00</updated><title type='text'>Battery pack for medical device</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-TnzZeBfFhAI/Ttg0eJcKF1I/AAAAAAAACMA/x8ysIQJV8TI/s1600/IMG_2552_web.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-TnzZeBfFhAI/Ttg0eJcKF1I/AAAAAAAACMA/x8ysIQJV8TI/s320/IMG_2552_web.jpg" width="233" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Any guesses as to what I've been up to? &amp;nbsp;It certainly looks a lot more dangerous than it really is. &amp;nbsp;The object on the left is an electronic ambulatory infusion pump used by medics. &amp;nbsp;The object on the right is a makeshift battery pack I put together to power the pump.&lt;br /&gt;&lt;br /&gt;A little while ago a friend of mine came to me with a problem - he was running an in-vivo experiment using one of these pumps to provide a continuous nutrient supply; the problem was that he needed to run the pumps continuously throughout a two week experiment. The pumps only accepted AA batteries and would run out of juice after only 4 hours of use.  Having to go to the lab and change batteries every four hours sounds a bit too much like experiencing the sleep debt of having a very young child...  So, he asked me if there was a quick and easy way to improve the situation.&lt;br /&gt;&lt;br /&gt;Connecting the pumps directly to the mains was out of the question; they needed to remain portable and untethered.  So I thought we could add an external battery pack instead which would house larger, D size, batteries to increase the available power supply.&lt;br /&gt;&lt;br /&gt;These pumps cost around $800 each, so I wanted to make the least invasive upgrade possible - yes, I'm a scaredy cat.  Rather than ripping them open and soldering directly onto the circuit board, I decided to make some fake AA batteries to interface with the internal battery terminals.  A couple of screws at the end of correctly sized dowels should do the trick.  So, I measured an AA battery (length and diameter) and headed over to OSH to pick up some doweling (I know... I feel like I was cheating on home despot).&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-PKSMRpkQWtE/Ttg0e-H831I/AAAAAAAACMI/USCAaxMlffo/s1600/IMG_2553_web.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="176" src="http://1.bp.blogspot.com/-PKSMRpkQWtE/Ttg0e-H831I/AAAAAAAACMI/USCAaxMlffo/s320/IMG_2553_web.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I cut two AA sized cylinders and decided on the right length of wire.  I attached the wire to the ends of the dowel using a circular crimp terminal and a couple of wood screws.  I had to drill a small hole in the pump casing in order to have the wire accessible, I threaded the wire through the hole and attached a mono jack plug to the end.  For some reason I have a bag of these plugs and paired sockets sitting on my workbench...  I figured they'd make life easier when replacing batteries by allowing the pump and battery pack to be separated and, if needed, I could make a few packs which would allow even quicker battery replacement.&lt;br /&gt;&lt;br /&gt;If you've read any of my other posts you won't be surprised to hear that I opted for PVC pipe when making the main body of the battery packs.  It turns out that D batteries fit snugly in 1 1/4" PVC piping, which is readily available in Lowe's/OSH/Home Depot.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-iJG3xOKceNU/Ttg0dNJeblI/AAAAAAAACL4/mIV7Lw85ufs/s1600/IMG_2546_web.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="213" src="http://4.bp.blogspot.com/-iJG3xOKceNU/Ttg0dNJeblI/AAAAAAAACL4/mIV7Lw85ufs/s320/IMG_2546_web.jpg" style="cursor: move;" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;I bought some single D battery holders from RadioShack so I could cannibalize the springs (and wire). I dissected them using a proxxon (a dremmel variant gifted to Lin by my PhD buddy Claire) and glued them to a couple of PVC end caps. &amp;nbsp;If you look at the picture below you can see that one of the end caps consists of two pieces where one slides onto the main body and the other&amp;nbsp;screws&amp;nbsp;onto that piece. I glued the spring onto the inside lip of the larger piece, drilled a hole in the smaller cap to fit the jack plug and soldered it all together. &amp;nbsp;The connecting wires were passed through small holes drilled in the sides of the cap. &amp;nbsp;The black tape you can see is to secure the wire that connects the lower terminal with the jack socket. &amp;nbsp;I thought about passing the wire down the inside of the case, but I figured that having the wire on the outside would make it very obvious how far the wire can be stretched safely. &amp;nbsp;If it was on the inside someone might pull the cap off too hard/far and damage the battery pack - not good halfway through an experiment!&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-TnzZeBfFhAI/Ttg0eJcKF1I/AAAAAAAACMA/x8ysIQJV8TI/s1600/IMG_2552_web.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-TnzZeBfFhAI/Ttg0eJcKF1I/AAAAAAAACMA/x8ysIQJV8TI/s320/IMG_2552_web.jpg" width="233" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;It turns out that the modified pumps and battery packs worked well. &amp;nbsp;The D batteries supplied enough juice to run the pumps at full pelt for over 16 hours; &amp;nbsp;Result!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-8963608017095077239?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/8963608017095077239/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=8963608017095077239' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/8963608017095077239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/8963608017095077239'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2011/12/battery-pack-for-medical-device.html' title='Battery pack for medical device'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-TnzZeBfFhAI/Ttg0eJcKF1I/AAAAAAAACMA/x8ysIQJV8TI/s72-c/IMG_2552_web.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-4394533329069254666</id><published>2011-12-07T22:50:00.000-08:00</published><updated>2011-12-09T00:33:32.446-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CNC Build'/><title type='text'>CNC update</title><content type='html'>I just realised that I haven't posted about the CNC machine for over a year!  Judging by the blog, it looks like I failed and let it die a quiet death... but in reality it's been pretty great; it is up and running and working better than I had originally hoped. &lt;br /&gt;&lt;br /&gt;Admittedly, it took longer to get into a decent state than I had planned for, but then I never had a lot of time to dedicate to it and I am not "skilled in the art" (oh no, not by a long shot!). One of the main reasons for embarking on the CNC build was to push myself into learning a lot of new skills; with that in mind it's been a huge success :) I picked up more woodworking skills, some metal working skills, knowledge of CAD, CAM, gcode and learned a ton of other random facts and figures along the way.  But, best of all, I have this amazing contraption in my garage that can craft things out of wood, plastic, foam and aluminum with speed and precision that I couldn't possibly hope to achieve by hand.&lt;br /&gt;&lt;br /&gt;So, what have I done with it so far? &amp;nbsp;Well, a lot of the things I've made so far have been improvements and additions for the machine itself. &amp;nbsp;First off, I made some hold downs (&lt;a href="http://www.thingiverse.com/thing:776"&gt;thingyverse thing:776&lt;/a&gt;) and some knobs to go with them (gcode provided free by&amp;nbsp;&lt;a href="http://www.solsylva.com/cnc/18x24_knobs.shtml"&gt;solsylva.com&lt;/a&gt;, which is where I bought the CNC plans from in the first place).&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-DpK7sUbdGYw/TuBbM2fC2_I/AAAAAAAACMg/gCD0M6b-22c/s1600/65828_484165450394_524500394_7486130_7392642_n.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://3.bp.blogspot.com/-DpK7sUbdGYw/TuBbM2fC2_I/AAAAAAAACMg/gCD0M6b-22c/s320/65828_484165450394_524500394_7486130_7392642_n.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-SyUpeXxLUtc/TuBbPppy05I/AAAAAAAACNA/YTdTH1BNzpk/s1600/132347_10150105843885395_524500394_8049519_1320666_o.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="128" src="http://4.bp.blogspot.com/-SyUpeXxLUtc/TuBbPppy05I/AAAAAAAACNA/YTdTH1BNzpk/s320/132347_10150105843885395_524500394_8049519_1320666_o.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;You can see the new knobs and a couple of the hold downs in use here, holding down some 1/2" MDF with some more hold downs being cut out.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-BqhmPUiHKSg/TuBbO5dSq0I/AAAAAAAACMw/uHTFsTKBiBc/s1600/78089_10150105843870395_524500394_8049518_564231_o.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="301" src="http://3.bp.blogspot.com/-BqhmPUiHKSg/TuBbO5dSq0I/AAAAAAAACMw/uHTFsTKBiBc/s320/78089_10150105843870395_524500394_8049518_564231_o.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;At the start of the year I upgraded the leadscrews from all-thread to ACME rod (the cheap stuff from&amp;nbsp;&lt;a href="http://www.use-enco.com/CGI/INLMPI?PMPANO=0610730&amp;amp;PMKBNO=2611&amp;amp;PMPAGE=56"&gt;Enco&lt;/a&gt;) which meant that I needed new leadnuts (also from&amp;nbsp;&lt;a href="http://www.use-enco.com/CGI/INLMPI?PMPANO=0610730&amp;amp;PMKBNO=2611&amp;amp;PMPAGE=56"&gt;Enco&lt;/a&gt;) and leadnut holders - I designed these in CamBam and cut them out on the machine (after a few false starts mostly to do with my&amp;nbsp;&lt;a href="http://geekbraindump.blogspot.com/2010/11/emc2-g64-and-sharp-corners.html"&gt;understanding of g-code&lt;/a&gt;). &amp;nbsp;I guess I should upload those designs to thingyverse really; though I'm not sure how useful they are to others.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-QDk5YdrbwQI/TuBbPXB08PI/AAAAAAAACM4/N_NvXI6Rza8/s1600/132255_10150118094755395_524500394_8281028_1897472_o.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-QDk5YdrbwQI/TuBbPXB08PI/AAAAAAAACM4/N_NvXI6Rza8/s320/132255_10150118094755395_524500394_8281028_1897472_o.jpg" width="239" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-rG80y-K1nn8/TuBbP2aEtGI/AAAAAAAACNI/gGg7FiRUW1I/s1600/133931_10150118094795395_524500394_8281034_2266611_o.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="257" src="http://3.bp.blogspot.com/-rG80y-K1nn8/TuBbP2aEtGI/AAAAAAAACNI/gGg7FiRUW1I/s320/133931_10150118094795395_524500394_8281034_2266611_o.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;The leadscrew upgrade removed a lot of backlash and resulted in faster and smoother performance.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I noticed that the cutting surface wasn't level so next up was to add some MDF planks and level them using the machine to mill the entire surface flat. &amp;nbsp;After spending a couple of hours following the router bit with a vacuum hose and still getting myself and everything in the garage covered in a fine layer of MDF dust (not nice) I decided the next upgrade should be a vacuum system - I went with the one described on the&lt;span class="Apple-style-span" style="text-align: -webkit-auto;"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.solsylva.com/cnc/vacuum.shtml" style="text-align: -webkit-auto;"&gt;Solsylva site&lt;/a&gt;&lt;span class="Apple-style-span" style="text-align: -webkit-auto;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="text-align: -webkit-auto;"&gt;with one minor modification. &amp;nbsp;I had a lot of trouble getting the ring cut from a 2 liter plastic bottle to fit around the vacuum attachment, so I cut it open and attached it with duct tape... &amp;nbsp;frustrated, moi? &amp;nbsp;That was a bit unstable (and ugly) and I ended up replacing the tape with a #56 band clamp, which has been working fine so far. &amp;nbsp;I intend on cutting out a few more in order to have quick change vacuum feet with different length bristles on each of them.&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;span class="Apple-style-span" style="text-align: -webkit-auto;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-kGo7utEx8-8/TuBonWjyQ9I/AAAAAAAACOM/tdMqfhYQjn0/s1600/IMG_2854.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-kGo7utEx8-8/TuBonWjyQ9I/AAAAAAAACOM/tdMqfhYQjn0/s320/IMG_2854.JPG" width="213" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-OZPvjC4Knxc/TuBontZOggI/AAAAAAAACOU/xN2ZCqzjHkk/s1600/IMG_2855.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="213" src="http://2.bp.blogspot.com/-OZPvjC4Knxc/TuBontZOggI/AAAAAAAACOU/xN2ZCqzjHkk/s320/IMG_2855.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-bs2M1Nt0sNU/TuBbRDMxiYI/AAAAAAAACNc/pPq5AKdy-cw/s1600/338969_10150423456860395_524500394_10856118_177231806_o.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-bs2M1Nt0sNU/TuBbRDMxiYI/AAAAAAAACNc/pPq5AKdy-cw/s320/338969_10150423456860395_524500394_10856118_177231806_o.jpg" width="240" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;It's not all been machine related production though. &amp;nbsp;Some of the first things I made were random carvings for the kids. &amp;nbsp;I carved their names into blocks of wood; made spirals, hearts and shapes for them to colour-in and mess around with; I made a few door signs for bathrooms; name plates for kids friends bedrooms; and a few other random objects. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-ZrYCes8tSts/TuBbLhOWP_I/AAAAAAAACMQ/LHq70v4_9fc/s1600/40732_10150089359510395_524500394_7811230_444268_n.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="132" src="http://1.bp.blogspot.com/-ZrYCes8tSts/TuBbLhOWP_I/AAAAAAAACMQ/LHq70v4_9fc/s320/40732_10150089359510395_524500394_7811230_444268_n.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-w1z3R0b41fo/TuBbMXEEHJI/AAAAAAAACMU/kwdVhazKnkg/s1600/64687_484164845394_524500394_7486119_3231038_n.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="278" src="http://3.bp.blogspot.com/-w1z3R0b41fo/TuBbMXEEHJI/AAAAAAAACMU/kwdVhazKnkg/s320/64687_484164845394_524500394_7486119_3231038_n.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I've also mocked up a small version of Carys' birthday present and cut it out on the machine. &amp;nbsp;I can't wait to be able to post about the completed full sized birthday project, but that's going to have to wait until it's finished. I love the fact that the kids birthday presents are always collaborative efforts with my lovely missus - all the projects are so much better when she's involved. Remember the &lt;a href="http://www.google.com/url?sa=t&amp;amp;rct=j&amp;amp;q=&amp;amp;esrc=s&amp;amp;source=web&amp;amp;cd=2&amp;amp;ved=0CCUQFjAB&amp;amp;url=http%3A%2F%2Fwww.fangletronics.com%2F2010%2F02%2Famazing-dr-boardmans-colour-conundrum.html&amp;amp;ei=t2PgTqC0FOadiAL34-2BDw&amp;amp;usg=AFQjCNHLM2tukaX-wyjY2bj0igOyRfsClA&amp;amp;sig2=S0jJMWqzENqYRoPEdqU16w"&gt;colour conundrum&lt;/a&gt;? &amp;nbsp;That would just have been an ugly cardboard box with wires sticking out if it weren't for her creative talents and influence!&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-YFnAaUL0LMQ/TuBom9WbCbI/AAAAAAAACN8/Gi920TIHx7A/s1600/IMG_2578.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="213" src="http://1.bp.blogspot.com/-YFnAaUL0LMQ/TuBom9WbCbI/AAAAAAAACN8/Gi920TIHx7A/s320/IMG_2578.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-mnL7UGSoFIA/TuBonIOKrTI/AAAAAAAACOE/zvrk2qTtGKs/s1600/IMG_2580.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="213" src="http://4.bp.blogspot.com/-mnL7UGSoFIA/TuBonIOKrTI/AAAAAAAACOE/zvrk2qTtGKs/s320/IMG_2580.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The current crop of unphotographed and unfinished projects include "kids name marble mazes" and rubber band guns. &amp;nbsp;I've been wondering how hard it would be to make simple versions of star wars ships like the millenium falcon and mill them out. &amp;nbsp;I guess I wouldn't be able to share the files though (or I'd risk getting sued). &amp;nbsp;The one thing I haven't really thought about is actually one of the reasons I thought the CNC machine would be ace - PCB milling. &amp;nbsp;It turns out that getting boards through &lt;a href="http://dorkbotpdx.org/wiki/pcb_order"&gt;DorkbotPDX &lt;/a&gt;is much simpler than milling your own (unless you're in a rush) and the results are fantastic - you can see a few of my completed boards &lt;a href="http://www.fangletronics.com/2011/11/techliminal-pcb-design-workshop.html"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-4394533329069254666?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/4394533329069254666/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=4394533329069254666' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/4394533329069254666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/4394533329069254666'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2011/12/cnc-update.html' title='CNC update'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-DpK7sUbdGYw/TuBbM2fC2_I/AAAAAAAACMg/gCD0M6b-22c/s72-c/65828_484165450394_524500394_7486130_7392642_n.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-5250201982086875769</id><published>2011-11-01T23:35:00.000-07:00</published><updated>2011-11-04T21:33:09.658-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='general electronics'/><title type='text'>Techliminal PCB design workshop</title><content type='html'>A while ago, as part of the bay area&amp;nbsp;&lt;a href="https://whatwillyoulearn.com/"&gt;workshop weekend&lt;/a&gt;,&amp;nbsp;&lt;a href="http://techliminal.com/"&gt;Techliminal &lt;/a&gt;held a 3 hour "introduction to PCB layout" class instructed by Malcolm Knapp. &amp;nbsp;I'd tried using&amp;nbsp;&lt;a href="http://www.cadsoftusa.com/"&gt;EAGLE&lt;/a&gt;&amp;nbsp;a year ago when I first wanted to produce some schematics for my blog posts, but I found it a bit unintuitive and very frustrating.&amp;nbsp;&amp;nbsp;I went along to the class hoping it would be a quick and easy way to get to grips with schematic design and board layout. &amp;nbsp;In short - it was. &amp;nbsp;Malcolm is a really good teacher and I think everyone in the class got to grips with the software pretty quickly and got a lot out of the session. &amp;nbsp;This course is being run again this coming weekend; if you're around and want to quickly get to grips with Eagle I strongly recommend signing up (just click &lt;a href="http://whatwillyoulearn.com/"&gt;here&lt;/a&gt;)!&lt;br /&gt;&lt;br /&gt;After the class I headed home and immediately created my first schematic and board. &amp;nbsp;There are a few I want to make but I figured the simplest would be a board for the &lt;a href="http://www.fangletronics.com/2009/12/duplo-traffic-lights.html"&gt;traffic lights&lt;/a&gt; I made for the kids ages ago. &amp;nbsp;I got a little bit carried away and made designs for a &lt;a href="http://en.wikipedia.org/wiki/Persistence_of_vision"&gt;POV &lt;/a&gt;writer, an &lt;a href="http://www.fangletronics.com/2010/02/rgb-night-lights.html"&gt;RGB LED night light&lt;/a&gt; and for a smaller version of "&lt;a href="http://www.fangletronics.com/2010/02/amazing-dr-boardmans-colour-conundrum.html"&gt;Dr Boardman's Color Conundrum&lt;/a&gt;". &amp;nbsp;Here's the first schematic for the POV writer:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-xcP60z79QBc/Tg9ERGDdpaI/AAAAAAAACKU/BnjzW9CBnSg/s1600/povWriter_v0.1.schematic.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="143" src="http://3.bp.blogspot.com/-xcP60z79QBc/Tg9ERGDdpaI/AAAAAAAACKU/BnjzW9CBnSg/s320/povWriter_v0.1.schematic.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;And here's the board layout:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://1.bp.blogspot.com/-LTeduP4ufgA/Tg9ERELJFeI/AAAAAAAACKQ/R1L7abArXUg/s1600/povWriter_v0.1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-LTeduP4ufgA/Tg9ERELJFeI/AAAAAAAACKQ/R1L7abArXUg/s320/povWriter_v0.1.png" width="115" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I was&amp;nbsp;immensely&amp;nbsp;proud to be able to put this together. &amp;nbsp;I know this is simple stuff for many people, but this isn't the easiest software to work out late at night (the only time I have available).&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I submitted my gerber files to the &lt;a href="http://dorkbotpdx.org/wiki/pcb_order"&gt;DorkbotPDX PCB order&lt;/a&gt;&amp;nbsp;and waited (eagerly). &amp;nbsp;The boards cost $4 per square inch (for which you get 3 copies of each board) and arrived a couple of weeks later.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Here they are fresh from the fab:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-TobncMkmc-U/TrDhJBMwRyI/AAAAAAAACLo/ZZOHc8G30Ig/s1600/IMG_1737.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://3.bp.blogspot.com/-TobncMkmc-U/TrDhJBMwRyI/AAAAAAAACLo/ZZOHc8G30Ig/s640/IMG_1737.JPG" width="480" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;That's four designs with two boards positioned so you can see the front and back of each (the boards are actually double sided).&lt;br /&gt;&lt;br /&gt;I've had a chance to solder parts on to all of these. &amp;nbsp;Of course I found a couple of mistakes and oversights in these first designs, but that's no surprise really. &amp;nbsp;This is all a learning process. &amp;nbsp;They all work though - which is a big shocker!&lt;br /&gt;&lt;br /&gt;All in all this has been a great experience. &amp;nbsp;It's fantastic to go from idea -&amp;gt; design -&amp;gt; PCB -&amp;gt; working device; this is very empowering. &amp;nbsp;I'll write more about the individual boards later, but for now I just wanted to post something to give a shout out to Malcom and to encourage anyone interested to head over to the workshop.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-5250201982086875769?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/5250201982086875769/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=5250201982086875769' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/5250201982086875769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/5250201982086875769'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2011/11/techliminal-pcb-design-workshop.html' title='Techliminal PCB design workshop'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-xcP60z79QBc/Tg9ERGDdpaI/AAAAAAAACKU/BnjzW9CBnSg/s72-c/povWriter_v0.1.schematic.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-7091877256734261676</id><published>2011-08-03T23:10:00.000-07:00</published><updated>2011-08-03T23:25:23.114-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pvc pipe'/><category scheme='http://www.blogger.com/atom/ns#' term='no electronics required'/><category scheme='http://www.blogger.com/atom/ns#' term='For the kids'/><title type='text'>PVC Pipe goal posts</title><content type='html'>The girls have been going to summer "soccer" practice over at a local gymnasium &amp;nbsp;They've really been enjoying it and I thought it be fun to set up a goal at home for them to have a play with. &amp;nbsp;I noticed that the goal posts at the gym are made out of one of my favourite materials: PVC pipe (see &lt;a href="http://www.fangletronics.com/2011/03/pvc-pipe-dressing-up-rack.html"&gt;here&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www.fangletronics.com/2009/09/pvc-pipe-marshmallow-gun.html"&gt;here&lt;/a&gt;&amp;nbsp;and &lt;a href="http://www.fangletronics.com/2010/03/saving-disney-princess-remote.html"&gt;here&lt;/a&gt;&amp;nbsp;for more evidence on my apparent obsession). &amp;nbsp;So, I had a look online to get some inspiration by seeing what designs other people have come up with. &amp;nbsp;If you perform an image search for "pvc soccer goal" you should get a pretty good overview of the basic designs.&lt;br /&gt;&lt;br /&gt;Afer sketching something on our blackboard and making sure the girls were excited by the idea we headed out to OSH to pick up the bits. &amp;nbsp;We decided on a goal which measured 4' wide, 3' tall and 2' deep and came home with 4 x 8' lengths of 1" pipe, 6 x 90 degree elbows and 4 x Tees.&lt;br /&gt;&lt;br /&gt;Here it all is, cut to length all ready to be put together (this took less than 10 mins):&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-v_b7U_cgmIk/TjXtwurWPCI/AAAAAAAACK8/FLQcmiPwsq4/s1600/IMG_1668.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-v_b7U_cgmIk/TjXtwurWPCI/AAAAAAAACK8/FLQcmiPwsq4/s320/IMG_1668.JPG" width="202" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The lengths are: 2x 3'7"; 2 x 3'; 2 x 2'; 4 x 1'6"; and 2 x 1'. &amp;nbsp;Working out the lengths of the diagonal braces was the first time I've used&amp;nbsp;Pythagoras' theorem in ages.&lt;br /&gt;&lt;br /&gt;Here you can see my little helper, 'helping out' midway through the build (she was keen to get playing, bless her):&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-C_lE3P-1Y1c/TjXtwzgieyI/AAAAAAAACLA/kqm9jEn5Gtw/s1600/IMG_1672.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="210" src="http://2.bp.blogspot.com/-C_lE3P-1Y1c/TjXtwzgieyI/AAAAAAAACLA/kqm9jEn5Gtw/s320/IMG_1672.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-xs8u8mbz2P8/TjXtxOiGxSI/AAAAAAAACLE/isw9jCTnhV8/s1600/IMG_1673.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="176" src="http://2.bp.blogspot.com/-xs8u8mbz2P8/TjXtxOiGxSI/AAAAAAAACLE/isw9jCTnhV8/s320/IMG_1673.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;And here's the final product being put to good use:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-fbziIou_8Ds/TjXtxfFBZqI/AAAAAAAACLI/DFSI4cZ6WHg/s1600/IMG_1675.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="213" src="http://2.bp.blogspot.com/-fbziIou_8Ds/TjXtxfFBZqI/AAAAAAAACLI/DFSI4cZ6WHg/s320/IMG_1675.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-6JFB1ue2pCg/TjXtxjLiX6I/AAAAAAAACLM/z4HlsL9YYRg/s1600/IMG_1676.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="178" src="http://2.bp.blogspot.com/-6JFB1ue2pCg/TjXtxjLiX6I/AAAAAAAACLM/z4HlsL9YYRg/s320/IMG_1676.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;I was hoping to find some netting at the same time as the pipes, but we had no joy. &amp;nbsp;It seems to work well enough without the net for now though (the kids have been enjoying it anyway).&lt;br /&gt;&lt;br /&gt;I know things have been a little quiet around here recently. &amp;nbsp;It's mainly because we've just had a 50% increase in the number of girls in the house (sorry Lin, I'm not counting you). &amp;nbsp;If you're interested in meeting the latest addition, take a look at Lin's post - &lt;a href="http://www.filthwizardry.com/2011/06/baby-is-here-and-thank-you-lier.html"&gt;here&lt;/a&gt;. &amp;nbsp;Yes, this was from a month ago... as you can tell, Lin is much more on the ball than I am :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-7091877256734261676?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/7091877256734261676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=7091877256734261676' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/7091877256734261676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/7091877256734261676'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2011/08/pvc-pipe-goal-posts.html' title='PVC Pipe goal posts'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-v_b7U_cgmIk/TjXtwurWPCI/AAAAAAAACK8/FLQcmiPwsq4/s72-c/IMG_1668.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-9090839896143879079</id><published>2011-05-28T23:18:00.000-07:00</published><updated>2011-05-28T23:18:10.987-07:00</updated><title type='text'>From Futon to Planter Boxes</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-iGRDn7uiO1I/TeB7yHrMAmI/AAAAAAAACJI/VzmA8VMRids/s1600/IMG_0989.JPG" imageanchor="1"&gt;&lt;img border="0" height="209" src="http://3.bp.blogspot.com/-iGRDn7uiO1I/TeB7yHrMAmI/AAAAAAAACJI/VzmA8VMRids/s320/IMG_0989.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;When I first moved to the US, I had about 5 cardboard boxes of stuff to my name.  None of those boxes contained any furniture and so a very kind young lady lent me her futon so that I'd have something comfy to sleep on.  The futon has stayed with us from one move to the next, but it's time has come.  It's last incarnation was as part of the kids bed (we merged the futon base with the main body of a kids single bed) but we recently bought a loft bed for them to share and the futon was suddenly in the way. &amp;nbsp;The mattress is currently a sofa/bed in the kids room which left this lovely source of untreated pine just staring at me wanting to be used. &amp;nbsp;Rather than put it on craigslist, I gave in to my urges and decided to transform it into something we needed (and would keep for a long time to come).  We've been experimenting with growing fruit and veg in our back yard since last year so it seemed like a good use of the wood to make some planter boxes.&lt;br /&gt;&lt;br /&gt;The base was kept together with bolts and screws - no glue! which made for a fun half hour with screwdrivers for me and the kids.  &lt;br /&gt;&lt;br /&gt;Here are the spoils (except the two 2"x2" poles which were bought at Home Despot):&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-xUpU4P6Zl_s/TeB7mXjlB_I/AAAAAAAACIQ/25BrVLnhrQE/s1600/IMG_0860.JPG" imageanchor="1"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-xUpU4P6Zl_s/TeB7mXjlB_I/AAAAAAAACIQ/25BrVLnhrQE/s320/IMG_0860.JPG" width="231" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I figured we could make a couple of planters from all this wood. &amp;nbsp;Lin had the bright idea of using some metal mesh we had left over (from some &lt;a href="http://www.amazon.com/Stacking-Wire-Storage-Cubes-Silver/dp/B001H35NWY?ie=UTF8&amp;amp;tag=fangletronics-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;stacking wire storage cubes&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=fangletronics-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=B001H35NWY" style="border: none !important; margin: 0px !important; padding: 0px !important;" width="1" /&gt;) as the base of the planters and it just so happens that the 2"x2" poles fit&amp;nbsp;snugly&amp;nbsp;in the corners after a bit of metal snipping. &lt;br /&gt;&lt;br /&gt;After measuring the wood and the wire mesh, it turns out that I could make two planters around 17" tall. &amp;nbsp;I cut up the 2"x4" planks into smaller pieces each 14 1/4" in length and cut 4 legs from the 2"x2" - each measuring 17".&lt;br /&gt;&lt;br /&gt;Here are a few rough sketches I made whilst trying to think it through:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-hhPpZ_Uvj-4/TeHgBwN7woI/AAAAAAAACJg/9MDgN0axFMQ/s1600/IMG_1218.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-hhPpZ_Uvj-4/TeHgBwN7woI/AAAAAAAACJg/9MDgN0axFMQ/s320/IMG_1218.JPG" width="188" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;And here are all the bits cut to length and ready to be assembled:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Z6OIuNwItqQ/TeB7nHncFkI/AAAAAAAACIo/JbwJcmYL7kI/s1600/IMG_0877.JPG" imageanchor="1"&gt;&lt;img border="0" height="166" src="http://3.bp.blogspot.com/-Z6OIuNwItqQ/TeB7nHncFkI/AAAAAAAACIo/JbwJcmYL7kI/s320/IMG_0877.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I routed out a 1/4" wide by 1/4" deep dado around 1/2" from the bottom on 4 of the small planks so that the wire mesh fitted snugly.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-qsZAP_s1aLo/TeB7mxKUNXI/AAAAAAAACIg/NfkJitSWL-Y/s1600/IMG_0875.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-qsZAP_s1aLo/TeB7mxKUNXI/AAAAAAAACIg/NfkJitSWL-Y/s320/IMG_0875.JPG" width="307" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-PpEC4axFmbw/TeB7mts3DRI/AAAAAAAACIY/6hciFziCsuA/s1600/IMG_0874.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="254" src="http://4.bp.blogspot.com/-PpEC4axFmbw/TeB7mts3DRI/AAAAAAAACIY/6hciFziCsuA/s320/IMG_0874.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;I routed out a similar channel on two adjacent sides of the legs (higher up though, so that the legs stick out the bottom) and then secured the planks to each other and to the legs with wood screws.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-TR_v9irqtSU/TeB7xsVGuFI/AAAAAAAACI4/aVuJlaei9tY/s1600/IMG_0879.JPG" imageanchor="1"&gt;&lt;img border="0" height="259" src="http://3.bp.blogspot.com/-TR_v9irqtSU/TeB7xsVGuFI/AAAAAAAACI4/aVuJlaei9tY/s320/IMG_0879.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Then it was just a matter of attaching the rest of planks.  I went for an alternating spiral like pattern.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-D6UHOwuIkaU/TeB7x0XXorI/AAAAAAAACJA/5o0bnaXKu5k/s1600/IMG_0881.JPG" imageanchor="1"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-D6UHOwuIkaU/TeB7x0XXorI/AAAAAAAACJA/5o0bnaXKu5k/s320/IMG_0881.JPG" width="271" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;To finish off I added a lip by cutting and mitering (45 degrees) some siding from the futon and gluing it on (with yellow wood glue). &amp;nbsp;The wood already had a groove in the middle which slotted nicely in place on top of the planters. &amp;nbsp;Then &amp;nbsp;the kids personalised them with some watered down food colouring.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-iGRDn7uiO1I/TeB7yHrMAmI/AAAAAAAACJI/VzmA8VMRids/s1600/IMG_0989.JPG" imageanchor="1"&gt;&lt;img border="0" height="209" src="http://3.bp.blogspot.com/-iGRDn7uiO1I/TeB7yHrMAmI/AAAAAAAACJI/VzmA8VMRids/s320/IMG_0989.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I put on a couple of coats of polyurethane to protect them from the elements (i.e. the kids). &amp;nbsp;Lastly,&amp;nbsp;Lin used some black plastic sheeting to line the inside and attached some cheap acrylic felt to the wire mesh to allow drainage.&lt;br /&gt;&lt;br /&gt;The green planter already has some sugar snap peas sprouting out and the red one has some pole beans. &amp;nbsp;Can't wait to start munching on them! Om nom nom!&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-fxyJl88p-BA/TeB7ycGN3qI/AAAAAAAACJQ/GhCvgBqdCFo/s1600/planter1.jpg" imageanchor="1"&gt;&lt;img border="0" height="228" src="http://1.bp.blogspot.com/-fxyJl88p-BA/TeB7ycGN3qI/AAAAAAAACJQ/GhCvgBqdCFo/s320/planter1.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-y7NCkbEolT0/TeB7yVCD51I/AAAAAAAACJY/FkojpldBc8U/s1600/planter2.jpg" imageanchor="1"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-y7NCkbEolT0/TeB7yVCD51I/AAAAAAAACJY/FkojpldBc8U/s320/planter2.jpg" width="229" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;There's still quite a bit of wood left over (all the thicker pieces and the two widest planks). &amp;nbsp;I think I'll make those into another type of planter when I get the chance (similar to the one in the bottom left of the above picture). &lt;br /&gt;&lt;br /&gt;I must get to posting a few more 'tronics' things... &amp;nbsp;The CNC machine has been up and running for months (and is an endless source/sink for tinkering/tweaking) and I have a load of things to post about it. &amp;nbsp;But I think some &lt;a href="http://www.fangletronics.com/2010/02/charlieplexed-leds.html"&gt;charlieplexed LEDs&lt;/a&gt; should come first since I mentioned them so long ago, built a few prototypes and then went silent. &amp;nbsp;In my defense, &lt;a href="http://www.fangletronics.com/search/label/CNC%20Build"&gt;building the CNC machine&lt;/a&gt; took a lot of time and effort and we're expecting baby#3 any day now. &amp;nbsp;There always seems to be lots going on :) &amp;nbsp;Oh, I found an old Atlas Cabinetmakers saw at a garage sale down the road as well! &amp;nbsp;I think it was built around 1959 &amp;amp; I've got that up and running too. &amp;nbsp;Now that I've gotten over my fear of table saws it'll be good to use it for something creative.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-9090839896143879079?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/9090839896143879079/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=9090839896143879079' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/9090839896143879079'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/9090839896143879079'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2011/05/from-futon-to-planter-boxes.html' title='From Futon to Planter Boxes'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-iGRDn7uiO1I/TeB7yHrMAmI/AAAAAAAACJI/VzmA8VMRids/s72-c/IMG_0989.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-5758630367121313740</id><published>2011-03-15T22:50:00.000-07:00</published><updated>2011-03-15T23:06:27.072-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='no electronics required'/><category scheme='http://www.blogger.com/atom/ns#' term='For the kids'/><title type='text'>Kid made go-kart</title><content type='html'>&lt;table cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;a href="http://3.bp.blogspot.com/-D_Yk4GL8Ab8/TXCFGV1r11I/AAAAAAAACGM/t_0VcNwdeuw/s1600/IMG_0682_new.jpg"&gt;&lt;img height="312" src="http://3.bp.blogspot.com/-D_Yk4GL8Ab8/TXCFGV1r11I/AAAAAAAACGM/t_0VcNwdeuw/s320/IMG_0682_new.jpg" width="300" /&gt;&lt;/a&gt;&lt;/td&gt; &lt;td&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-Mn9bZN_8BHs/TXCFGjY2RJI/AAAAAAAACGc/REB1TMate90/s1600/IMG_0688_new.jpg"&gt;&lt;img height="207" src="http://3.bp.blogspot.com/-Mn9bZN_8BHs/TXCFGjY2RJI/AAAAAAAACGc/REB1TMate90/s320/IMG_0688_new.jpg" width="300" /&gt;&lt;/a&gt;&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;A few weekends ago we popped into the city to meet up with a &lt;a href="http://getyourmesson.blogspot.com/"&gt;blogger friend&lt;/a&gt; of Lin's.  She was working with &lt;a href="http://tinkeringschool.com/"&gt;Gever Tulley&lt;/a&gt; on a tinkering workshop.&amp;nbsp; We were a little late but caught the tail end of people as things were winding down and being cleared away.  Carys was very excited to see that the kids in the workshop had make some go-karts.  She immediately wanted to make one of her own and when we got home she drew up some plans at the kitchen table.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-m6iCurBx_3k/TXCE95i3oNI/AAAAAAAACFU/z6dnWgEAnLo/s1600/IMG_0639_new.jpg" imageanchor="1"&gt;&lt;img border="0" height="215" src="http://1.bp.blogspot.com/-m6iCurBx_3k/TXCE95i3oNI/AAAAAAAACFU/z6dnWgEAnLo/s320/IMG_0639_new.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I was so impressed with this that, of course, I had to help her build it.&amp;nbsp; We headed out and picked up a few supplies:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;2' x 4' board of plywood (just about fits in the trunk of our Nissan Dissapointment)&lt;/li&gt;&lt;li&gt;4 casters (I got ones that were rated up to 80lb)&lt;/li&gt;&lt;/ol&gt;Everything else we had lying around (some 1" x 2" wood, wood screws, nylon rope).&lt;br /&gt;&lt;br /&gt;The base of Carys' car is a big circle, so we first drew out two circles on the plywood (I thought we were going to make two cars, but we've only made one so far).&amp;nbsp; I wanted Carys to do as much of the building as possible so we drew the circle by hammering a nail at the center of the circle and then tying a pencil to the nail with some string.&amp;nbsp; I measured out enough string to have the pencil reach the edge of the board - this gave us a 2' diameter circle, plenty big enough for the kids to sit on.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-jGZmY3gbRE0/TXCE2Thz4wI/AAAAAAAACEs/r4zz6r__7f8/s1600/IMG_0622.JPG" imageanchor="1"&gt;&lt;img border="0" height="249" src="http://3.bp.blogspot.com/-jGZmY3gbRE0/TXCE2Thz4wI/AAAAAAAACEs/r4zz6r__7f8/s320/IMG_0622.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I used a jigsaw to cut out the circle - this was the only step I didn't let Carys do (partly because she couldn't stand the noise and partly because she wouldn't take off her roller-skates).&amp;nbsp; The kids then sanded down the rough edges.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-WQt5V04FQv0/TXCE2VZE1NI/AAAAAAAACE0/9AUk-20jxo8/s1600/IMG_0625.JPG" imageanchor="1"&gt;&lt;img border="0" height="214" src="http://4.bp.blogspot.com/-WQt5V04FQv0/TXCE2VZE1NI/AAAAAAAACE0/9AUk-20jxo8/s320/IMG_0625.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-8Bl5QvZfydk/TXCE2ynEIGI/AAAAAAAACE8/N-qboa8bBQ8/s1600/IMG_0629.JPG" imageanchor="1"&gt;&lt;img border="0" height="234" src="http://2.bp.blogspot.com/-8Bl5QvZfydk/TXCE2ynEIGI/AAAAAAAACE8/N-qboa8bBQ8/s320/IMG_0629.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-pDlg92Otj8o/TXCE2-doVwI/AAAAAAAACFE/m3GQVVKIP2s/s1600/IMG_0634.JPG" imageanchor="1"&gt;&lt;img border="0" height="228" src="http://2.bp.blogspot.com/-pDlg92Otj8o/TXCE2-doVwI/AAAAAAAACFE/m3GQVVKIP2s/s320/IMG_0634.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Time for a quick break :)&amp;nbsp; It turns out tape measures are also good for pulling people round on roller-skates. Who knew?&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-jDddJm3_PW4/TXCE3PtEGhI/AAAAAAAACFM/Vw79A97oyso/s1600/IMG_0637.JPG" imageanchor="1"&gt;&lt;img border="0" height="259" src="http://3.bp.blogspot.com/-jDddJm3_PW4/TXCE3PtEGhI/AAAAAAAACFM/Vw79A97oyso/s320/IMG_0637.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Then we cut a couple of lengths of 1' x 2' wood for attaching the casters to the base (this was part of Carys' plan).&amp;nbsp; Both Carys and Ffion had fun sawing the wood (with a hand saw).&amp;nbsp; Then I marked out the hole placements for the casters and Carys drilled the pilot holes.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-_IurLIVlEDE/TXCE-C1o7gI/AAAAAAAACFc/v1enR5QxCbE/s1600/IMG_0658.JPG" imageanchor="1"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-_IurLIVlEDE/TXCE-C1o7gI/AAAAAAAACFc/v1enR5QxCbE/s320/IMG_0658.JPG" width="257" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Time to attach the casters.  Carys was really steady and accurate with the drill, but she needed a little bit of extra weight (i.e. me pushing down on the back of the drill) when using the screwdriver bit.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-Op-voONLeEg/TXCE-UVIaPI/AAAAAAAACFk/oFVr8efEybw/s1600/IMG_0666.JPG" imageanchor="1"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-Op-voONLeEg/TXCE-UVIaPI/AAAAAAAACFk/oFVr8efEybw/s320/IMG_0666.JPG" width="214" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Et voilà!&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Rayan-db-ec/TXCE-oiqQQI/AAAAAAAACFs/Hx4Bw8T9tiM/s1600/IMG_0669.JPG" imageanchor="1"&gt;&lt;img border="0" height="213" src="http://3.bp.blogspot.com/-Rayan-db-ec/TXCE-oiqQQI/AAAAAAAACFs/Hx4Bw8T9tiM/s320/IMG_0669.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The plans also had a rope loop tied to the front to pull the car around with.&amp;nbsp; I decided to add handles to the side to keep the kids on the car during the inevitable speed racing.&amp;nbsp; I marked out the positions and Carys drilled the holes using a 1/2" drill bit - this looked comically large with her using it!&amp;nbsp; I put some scrap/sacrificial wood under the car whilst drilling so that the drill-bit didn't hit concrete on it's way out.&lt;br /&gt;&lt;br /&gt;By now it was getting dark and cold so we retired to the kitchen where the kids set about decorating their creation using permanent markers.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Jzx6Hm4s_sU/TXCE-41Vg0I/AAAAAAAACF0/L5IZ8DMTVAo/s1600/IMG_0671.JPG" imageanchor="1"&gt;&lt;img border="0" height="204" src="http://3.bp.blogspot.com/-Jzx6Hm4s_sU/TXCE-41Vg0I/AAAAAAAACF0/L5IZ8DMTVAo/s320/IMG_0671.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-lif3QSY2dEc/TXCFF_HZ_NI/AAAAAAAACF8/2Z-Eo81XKjQ/s1600/IMG_0676.JPG" imageanchor="1"&gt;&lt;img border="0" height="198" src="http://3.bp.blogspot.com/-lif3QSY2dEc/TXCFF_HZ_NI/AAAAAAAACF8/2Z-Eo81XKjQ/s320/IMG_0676.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Then it was just a matter of adding the rope (2 handles and 1 long line for pulling).  &lt;br /&gt;&lt;br /&gt;Carys is immensely proud of her car.  Doing all the planning, building and decorating has given her an amazing sense of ownership and accomplishment. She's already planning a ton of new projects, unfortunately this includes a death-defying bionic zip line out of the bedroom window to the &lt;a href="http://www.fangletronics.com/2010/07/rescuing-cedarworks-swing-set.html"&gt;reclaimed play structure&lt;/a&gt;...  I wonder if I can persuade her that she wants to build an electric guitar or a laser cutter.&lt;br /&gt;&lt;br /&gt;&lt;table cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-Mn9bZN_8BHs/TXCFGjY2RJI/AAAAAAAACGc/REB1TMate90/s1600/IMG_0688_new.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="227" src="http://3.bp.blogspot.com/-Mn9bZN_8BHs/TXCFGjY2RJI/AAAAAAAACGc/REB1TMate90/s320/IMG_0688_new.jpg" width="320" /&gt;&lt;/a&gt;&lt;/td&gt; &lt;td&gt;&lt;a href="http://4.bp.blogspot.com/-6zrOuifuBc8/TXCFGJRdGeI/AAAAAAAACGE/FIXoe7MZWdU/s1600/IMG_0679.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="214" src="http://4.bp.blogspot.com/-6zrOuifuBc8/TXCFGJRdGeI/AAAAAAAACGE/FIXoe7MZWdU/s320/IMG_0679.JPG" width="320" /&gt;&lt;/a&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;&lt;a href="http://3.bp.blogspot.com/-D_Yk4GL8Ab8/TXCFGV1r11I/AAAAAAAACGM/t_0VcNwdeuw/s1600/IMG_0682_new.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/-D_Yk4GL8Ab8/TXCFGV1r11I/AAAAAAAACGM/t_0VcNwdeuw/s320/IMG_0682_new.jpg" width="316" /&gt;&lt;/a&gt;&lt;/td&gt; &lt;td&gt;&lt;a href="http://1.bp.blogspot.com/-t1ZZ54E2_Qk/TXCFGrYE5yI/AAAAAAAACGU/9Va_ecptel0/s1600/IMG_0685_new.jpg" imageanchor="1"&gt;&lt;img border="0" height="261" src="http://1.bp.blogspot.com/-t1ZZ54E2_Qk/TXCFGrYE5yI/AAAAAAAACGU/9Va_ecptel0/s320/IMG_0685_new.jpg" width="320" /&gt;&lt;/a&gt;&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-5758630367121313740?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/5758630367121313740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=5758630367121313740' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/5758630367121313740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/5758630367121313740'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2011/03/kid-made-go-kart.html' title='Kid made go-kart'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-D_Yk4GL8Ab8/TXCFGV1r11I/AAAAAAAACGM/t_0VcNwdeuw/s72-c/IMG_0682_new.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-8417924003982079545</id><published>2011-03-05T23:16:00.000-08:00</published><updated>2011-08-03T23:25:35.193-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pvc pipe'/><category scheme='http://www.blogger.com/atom/ns#' term='no electronics required'/><category scheme='http://www.blogger.com/atom/ns#' term='For the kids'/><title type='text'>PVC Pipe Dressing-Up Rack</title><content type='html'>&lt;a href="https://lh6.googleusercontent.com/-YDYQlnhPaaE/TXMrL9MTehI/AAAAAAAACGk/14dy6YQrMWQ/s1600/IMG_0726.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="https://lh6.googleusercontent.com/-YDYQlnhPaaE/TXMrL9MTehI/AAAAAAAACGk/14dy6YQrMWQ/s320/IMG_0726.JPG" style="cursor: move;" width="281" /&gt;&lt;/a&gt;&lt;a href="https://lh6.googleusercontent.com/-QvemDroMoVE/TXMrNXypYHI/AAAAAAAACG8/Jyawfsecq0g/s1600/IMG_0740.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="https://lh6.googleusercontent.com/-QvemDroMoVE/TXMrNXypYHI/AAAAAAAACG8/Jyawfsecq0g/s320/IMG_0740.JPG" style="cursor: move;" width="213" /&gt;&lt;/a&gt;&lt;br /&gt;We started playing around with PVC piping at home quite some time ago (see the&amp;nbsp;&lt;a href="http://www.fangletronics.com/2009/09/pvc-pipe-marshmallow-gun.html"&gt;marshmallow gun&lt;/a&gt;&amp;nbsp;post) we quickly realised that it was a cheap and easy medium for building simple things (take a look at the &lt;a href="http://flexpvc.com/projects.shtml"&gt;projects&lt;/a&gt;&amp;nbsp;page on this site: &lt;a href="http://pvcfittings.com/"&gt;http://pvcfittings.com/&lt;/a&gt;&amp;nbsp;for a ton of examples). &amp;nbsp;The kids 'building box' outside has a load of pipe and connectors in it for impromptu creative fun. Most of these bits were left over from Carys' pirate-superhero-mermaid birthday party where we put together marshmallow-gun party favour bags (If you're interested you can read about that on Lin's&amp;nbsp;&lt;a href="http://www.filthwizardry.com/2009/10/marshmallow-gun-party-fun.html"&gt;blog post&lt;/a&gt;&amp;nbsp;over on&amp;nbsp;&lt;a href="http://www.filthwizardry.com/"&gt;FilthWizardry&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh5.googleusercontent.com/-GgjMgvA_5JA/SqX8tn_FpPI/AAAAAAAABoE/j7hu-loFcz4/s1600/IMG_3391.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="https://lh5.googleusercontent.com/-GgjMgvA_5JA/SqX8tn_FpPI/AAAAAAAABoE/j7hu-loFcz4/s320/IMG_3391.JPG" width="186" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The kids have most of their make-believe/dressing-up items in a single toy box in their bedroom. &amp;nbsp;The original lid on this didn't stand up to the test of multiple children piling into it day after day, so it's been an 'open plan' box for most of it's stay. &amp;nbsp; On a daily basis we find the complete contents of the dressing up box emptied onto the bedroom floor. &amp;nbsp;I guess that's the only way the kids can find the clothes for that day's dressing up desires. &lt;br /&gt;&lt;br /&gt;We're a bit tight on space in the kids bedroom, so it seemed like a good idea to build a clothes rack that'd fit inside the box; then we could hang up most of the clothes for easy access and keep the hats, crowns and other accessories in the box itself. &amp;nbsp;At least this way they wouldn't have to completely empty the box each time and we wouldn't have to tidy it up every day!&lt;br /&gt;&lt;br /&gt;This is actually something I've made twice now (hence deciding to post about it)... &amp;nbsp;The first one was dismantled and used to build random things out in our backyard a few months back; we soon realised the folly of our ways when we were once again greeted with the dressing up clothes piled on the floor day after day. &amp;nbsp;Time to build another!&lt;br /&gt;&lt;br /&gt;It's really, really simple. &amp;nbsp;The fixtures and piping are 1/2" schedule 40 PVC. &amp;nbsp;They're available in Lowe's, Home Despot, OSH, ACE hardware etc. &amp;nbsp;and they're pretty cheap. &amp;nbsp;This was today's shopping list from the local Lowe's:&lt;br /&gt;&lt;br /&gt;1. 8 * 5' of pipe = $8.96 ($1.12 each) - I bought extra for other fangling.&lt;br /&gt;2. bag of 10 tee junctions = $1.95&lt;br /&gt;3. bag of 10 thread to slip adapters = 20c&lt;br /&gt;4. bag of 10 elbow joints (90 degree) = $1.80&lt;br /&gt;5. 4 x 3-way corner elbow = $5.28 ($1.32 each).&lt;br /&gt;&lt;br /&gt;Ok, so $18 may not seem that cheap, but there's left over material for other projects and the rack itself will get re-used as something else when it's no longer needed. &amp;nbsp;On the other hand, good luck finding something that'll exactly meet your requirements for $18 ;).&lt;br /&gt;&lt;br /&gt;Here's everything I used:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh6.googleusercontent.com/-YDYQlnhPaaE/TXMrL9MTehI/AAAAAAAACGk/14dy6YQrMWQ/s1600/IMG_0726.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="https://lh6.googleusercontent.com/-YDYQlnhPaaE/TXMrL9MTehI/AAAAAAAACGk/14dy6YQrMWQ/s320/IMG_0726.JPG" width="281" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I measured the inside of the dressing up box (before deciding on the parts) and sketched out how I wanted the rack to look. &amp;nbsp;Then it's just a matter of measuring, marking and cutting the pipe and then sticking it all together. &amp;nbsp;You don't even need glue/cement, unless you want the final 'product' to be permanent and durable.&lt;br /&gt;&lt;br /&gt;Here's a load of&amp;nbsp;in-progress&amp;nbsp;shots to give you a feel:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh4.googleusercontent.com/-vlF6Vmzp9y0/TXMrMAeQ_VI/AAAAAAAACGo/yJ_kvBjJj2A/s1600/IMG_0728.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="https://lh4.googleusercontent.com/-vlF6Vmzp9y0/TXMrMAeQ_VI/AAAAAAAACGo/yJ_kvBjJj2A/s320/IMG_0728.JPG" width="203" /&gt;&lt;/a&gt;&lt;a href="https://lh3.googleusercontent.com/-QPaDRvHTkhA/TXMrMZxe4XI/AAAAAAAACGs/GJ8BZFTUo98/s1600/IMG_0729.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="https://lh3.googleusercontent.com/-QPaDRvHTkhA/TXMrMZxe4XI/AAAAAAAACGs/GJ8BZFTUo98/s320/IMG_0729.JPG" style="cursor: move;" width="225" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh6.googleusercontent.com/-UZ2qqbXJCqI/TXMrMqhYsqI/AAAAAAAACGw/IYj1kksb8KU/s1600/IMG_0731.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="231" src="https://lh6.googleusercontent.com/-UZ2qqbXJCqI/TXMrMqhYsqI/AAAAAAAACGw/IYj1kksb8KU/s320/IMG_0731.JPG" width="320" /&gt;&lt;/a&gt;&lt;a href="https://lh4.googleusercontent.com/-ZeVrTKwKURU/TXMrM_Y1U5I/AAAAAAAACG0/XoGa8So2pZo/s1600/IMG_0732.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="231" src="https://lh4.googleusercontent.com/-ZeVrTKwKURU/TXMrM_Y1U5I/AAAAAAAACG0/XoGa8So2pZo/s320/IMG_0732.JPG" style="cursor: move;" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;And here's the final frame. &amp;nbsp;I added a little nubbin afterwards for Ffion to hang her handbag collection on... you can see it in the action shot below to the left of the ballerina. &amp;nbsp;I replaced a tee junction with a 4-way and slotted in a small bit of pipe terminated with a pipe cap (all left overs from previous messing/building).&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh3.googleusercontent.com/-ft929Y-x2IM/TXMrNAbPpAI/AAAAAAAACG4/RPvPKa54Xjo/s1600/IMG_0735.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="https://lh3.googleusercontent.com/-ft929Y-x2IM/TXMrNAbPpAI/AAAAAAAACG4/RPvPKa54Xjo/s320/IMG_0735.JPG" width="213" /&gt;&lt;/a&gt;&lt;a href="https://lh6.googleusercontent.com/-QvemDroMoVE/TXMrNXypYHI/AAAAAAAACG8/Jyawfsecq0g/s1600/IMG_0740.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="https://lh6.googleusercontent.com/-QvemDroMoVE/TXMrNXypYHI/AAAAAAAACG8/Jyawfsecq0g/s320/IMG_0740.JPG" style="cursor: move;" width="213" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;The shoes are now all paired up and hung up as well. &amp;nbsp;I think these were the main culprits of the 'toss everything on the floor' routine. &amp;nbsp;Fingers crossed for a slightly tidier bedroom from now on.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh6.googleusercontent.com/-iuRv6MygckQ/TXMrNYiZ1vI/AAAAAAAACHA/eET5UNvp-Jw/s1600/IMG_0745.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="https://lh6.googleusercontent.com/-iuRv6MygckQ/TXMrNYiZ1vI/AAAAAAAACHA/eET5UNvp-Jw/s320/IMG_0745.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-8417924003982079545?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/8417924003982079545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=8417924003982079545' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/8417924003982079545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/8417924003982079545'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2011/03/pvc-pipe-dressing-up-rack.html' title='PVC Pipe Dressing-Up Rack'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh6.googleusercontent.com/-YDYQlnhPaaE/TXMrL9MTehI/AAAAAAAACGk/14dy6YQrMWQ/s72-c/IMG_0726.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-1930229003474153751</id><published>2010-10-06T22:21:00.000-07:00</published><updated>2010-10-06T23:28:02.723-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CNC Build'/><title type='text'>CNC Machine Build - Part III "It's Alive!"</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_oN6pPL-C9vc/TK1b4x2YDqI/AAAAAAAACDY/2lC6ilkYPK4/s1600/IMG_9797.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="122" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/TK1b4x2YDqI/AAAAAAAACDY/2lC6ilkYPK4/s400/IMG_9797.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Finally... after a lot of work and learning, the CNC machine is up and running.&lt;br /&gt;&lt;br /&gt;I got the main machine finished and connected to a computer about a month ago, but I've been having trouble getting the z-axes working properly. &amp;nbsp;I tried tuning/adjusting it as described in the plans and I even remade the leadnut bracket, replaced the leadnut (twice), replaced the leadscrew (twice) and went through 3 couplers (these are only made out of cheap hose so that was no biggie). But, each time I put it back together, the axes would stall part way through a job (ruining the workpiece and usually destroying the coupler). &amp;nbsp;Eventually, I had to walk away for a week to cool down - at least that gave me time to make the &lt;a href="http://www.fangletronics.com/2010/10/diy-millenium-falcon.html"&gt;Millennium Falcon&lt;/a&gt; dolls house for Carys' birthday.&lt;br /&gt;&lt;br /&gt;Last weekend I went back to it. &amp;nbsp;I replaced the lead-nut and lead-screw assembly (again), this time making sure to buy some new threaded rod that was straight.  It turns out that the previous ones were slightly warped and this was causing most of the drag.  I guess that's the problem with building a CNC machine with bog standard threaded rod as a lead-screw, they're not meant to be used in applications where the rod has to be straight...  I also updated the coupler tubing - I'd been using clear vinyl tube from Lowe's (the kind used for irrigation) which is weak and slippery.  I bought some fuel pipe from Kragen and this works a lot better. &lt;br /&gt;&lt;br /&gt;I did a couple of test runs on some kitchen cutting board and quickly&amp;nbsp;realized&amp;nbsp;that I'd have to work out how to hold/clamp things down whilst cutting. &amp;nbsp;I have a few clamps, but none of them fitted well between the slats so I made up a few hold downs using some left over wood and some bolts (you can see them in the picture below).&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_oN6pPL-C9vc/TK1b4TaWueI/AAAAAAAACDU/pjSrqNa7ADA/s1600/IMG_9796.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="215" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/TK1b4TaWueI/AAAAAAAACDU/pjSrqNa7ADA/s400/IMG_9796.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;If I were to start this again, I think I'd opt for the more expensive ACME lead-screws/nuts and associated couplers.  I spent a lot of time over the last few weeks tuning the axes and I think a lot of this would have been avoided if I'd gone with the better rods and lead-nuts. &amp;nbsp;All in all though, I'm very chuffed that this is actually working! &amp;nbsp;Last year Lin did a &lt;a href="http://www.filthwizardry.com/2009/11/pumpkin-carving-in-bath-and-with-power.html"&gt;detailed pumpkin carving&lt;/a&gt; of our CSO, this lead to some geeky conversations at work about how you could automate the process but we ended up deciding that it was too complicated (mainly due to the issues of mapping an image onto the surface of a pumpkin in order to carve it). &amp;nbsp;I'm wondering if I can actually&amp;nbsp;achieve&amp;nbsp;that this year using the CNC machine - just like &lt;a href="http://lumenlab.com/d/2008/10/pumpkin/"&gt;this gu&lt;/a&gt;y did. &amp;nbsp;I bet all the CNC carving time gets eaten up with hearts and unicorns though... you know how it is ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-1930229003474153751?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/1930229003474153751/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=1930229003474153751' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/1930229003474153751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/1930229003474153751'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2010/10/cnc-machine-build-part-iii-its-alive.html' title='CNC Machine Build - Part III &quot;It&apos;s Alive!&quot;'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_oN6pPL-C9vc/TK1b4x2YDqI/AAAAAAAACDY/2lC6ilkYPK4/s72-c/IMG_9797.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-8499597355051549987</id><published>2010-10-02T13:11:00.000-07:00</published><updated>2010-10-14T11:37:51.979-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='no electronics required'/><category scheme='http://www.blogger.com/atom/ns#' term='For the kids'/><title type='text'>DIY Millennium Falcon</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_oN6pPL-C9vc/TKd8hkHLBVI/AAAAAAAACC0/d8xx7fqFI3w/s1600/IMG_9706_new.jpg" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="219" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/TKd8hkHLBVI/AAAAAAAACC0/d8xx7fqFI3w/s320/IMG_9706_new.jpg" width="320" /&gt;&lt;/a&gt;&lt;a href="http://2.bp.blogspot.com/_oN6pPL-C9vc/TKd8gqhgsdI/AAAAAAAACCs/Vfg5wv9YdPo/s1600/IMG_9703_new.jpg"&gt;&lt;img border="0" height="219" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/TKd8gqhgsdI/AAAAAAAACCs/Vfg5wv9YdPo/s320/IMG_9703_new.jpg" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Carys was turning six at the beginning of October and had recently become StarWars obsessed (we let them watch the original 3 movies a few weeks back and they loved them). &amp;nbsp;Lin and I like to add a few home made presents to the mix on the kids birthdays; So, we decided to make a few StarWars themed things for Carys' birthday.&lt;br /&gt;&lt;br /&gt;Lin started out making a set of StarWars figures using wooden craft pegs (more about that on her post &lt;a href="http://www.filthwizardry.com/2010/10/diy-star-wars-toys.html"&gt;here&lt;/a&gt;). &amp;nbsp;We were going to make a Millenium Falcon using a couple of plastic frisbies, but then thought it'd be nicer to create something a bit larger and more durable so that they could use it with the figures for some make-believe fun.&lt;br /&gt;&lt;br /&gt;It took us a little while to decide on the components to use. &amp;nbsp;We found this weird wooden board at the local thrift/charity store. &amp;nbsp;I think it's used for carving meat and the grooves capture the juices (there's even a "patent applied for" stamp on the back). &amp;nbsp;I forgot to get a picture of it in its original state; the picture below shows it after a little bit of modification. &amp;nbsp;It was originally symmetrical - I rounded off one of the handles/ears and cut a groove in the other in preparation for adding the front prongs.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_oN6pPL-C9vc/TKd8bS3m1dI/AAAAAAAACCA/TjKDi0nyMnk/s1600/IMG_9612.JPG"&gt;&lt;img border="0" height="259" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/TKd8bS3m1dI/AAAAAAAACCA/TjKDi0nyMnk/s320/IMG_9612.JPG" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_oN6pPL-C9vc/TKd8b2296WI/AAAAAAAACCE/d6_H8jMDk2g/s1600/IMG_9613.JPG"&gt;&lt;img border="0" height="218" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/TKd8b2296WI/AAAAAAAACCE/d6_H8jMDk2g/s320/IMG_9613.JPG" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here's a quick overview of the components:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_oN6pPL-C9vc/TKd8a2Izp1I/AAAAAAAACB8/7-MWbI2IUG4/s1600/IMG_9611.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="191" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/TKd8a2Izp1I/AAAAAAAACB8/7-MWbI2IUG4/s320/IMG_9611.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;There's the weird carving board, a plastic lid (another lucky thrift store find as it fits perfectly in the groove of the carving board), some PVC pipe (2" diameter) and a 90 degree elbow joint (both&amp;nbsp;from Home Depot). &amp;nbsp;There's a dollar tree airfreshener case (the white tear drop thing by the black pipe) and some wood. &amp;nbsp;There are some other bits and bobs that aren't in this picture (I hadn't figured out what was going to be used at the time): a hinge for the cargo bay ramp, some more wood for the internal walls, screws, nuts/bolts, wood glue, some grey spray paint, a few plastic bottle caps, and the outside case of a CD spindle.&lt;br /&gt;&lt;br /&gt;From the 'ingredients' picture you can see that I cut and sanded the carving board first and then made the front 'prongs'. &amp;nbsp;For the prongs, I looked at a few online plans and scaled the dimensions to fit the cutting board. &amp;nbsp;I used a scroll saw to cut out the shapes and then screwed and glued them onto the main board.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_oN6pPL-C9vc/TKd8cBgUj0I/AAAAAAAACCI/uVTNdK7VyqA/s1600/IMG_9632.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="172" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/TKd8cBgUj0I/AAAAAAAACCI/uVTNdK7VyqA/s320/IMG_9632.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;While the glue was drying I made the internal structure. &amp;nbsp;It's made from the outside of a CD spindle and some wooden boards (2" hobby board from Home Depot). &amp;nbsp;I cut the CD spindle to fit the height of the lid and then measured out the boards to fit up to the edge of the curve. &amp;nbsp;That was a bit of a mistake as the lid didn't fit with the boards that long and I ended up having to sand the ends down a bit.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_oN6pPL-C9vc/TKd8chsA_FI/AAAAAAAACCM/zCV3InFMH6o/s1600/IMG_9633.JPG"&gt;&lt;img border="0" height="234" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/TKd8chsA_FI/AAAAAAAACCM/zCV3InFMH6o/s320/IMG_9633.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I thought it'd be fun to have internal doors but didn't think the spindle would survive with large chunks cut out of them, so I just put some painters tape where I wanted the doors and then painted it all leaving some see-through areas after the tape is removed.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_oN6pPL-C9vc/TKd8c1vSWbI/AAAAAAAACCQ/vgK4FPwMvy0/s1600/IMG_9634.JPG"&gt;&lt;img border="0" height="201" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/TKd8c1vSWbI/AAAAAAAACCQ/vgK4FPwMvy0/s320/IMG_9634.JPG" width="320" /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/_oN6pPL-C9vc/TKd8d2L-gNI/AAAAAAAACCY/C4HuiB8q1ms/s1600/IMG_9636.JPG"&gt;&lt;img border="0" height="201" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/TKd8d2L-gNI/AAAAAAAACCY/C4HuiB8q1ms/s320/IMG_9636.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I gave the lid it's first coat of paint, bolted on a few bottle caps and wood disks to mimic some of the structures seen on the original, and then gave it all another coat. &amp;nbsp;The lid needs to be cut in a couple of places to make room for the cockpit attachment/corridor and for the cargo bay ramp.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_oN6pPL-C9vc/TKd8eCwFDDI/AAAAAAAACCc/K4-lZxYe3w8/s1600/IMG_9637.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="218" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/TKd8eCwFDDI/AAAAAAAACCc/K4-lZxYe3w8/s320/IMG_9637.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I used a miter saw to cut one end off the PVC elbow (so that the cockpit would face forward) and to cut an angle into the corridor (makes it easy to screw the pipe into the base).  My first attempt failed as the corridor was too short, but I had plenty of pipe left over for another go. &amp;nbsp;Everything was given a coat of paint.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_oN6pPL-C9vc/TKd8de2CqpI/AAAAAAAACCU/kz4JHJH7qvA/s1600/IMG_9635.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="128" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/TKd8de2CqpI/AAAAAAAACCU/kz4JHJH7qvA/s320/IMG_9635.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_oN6pPL-C9vc/TKd8eV-gcnI/AAAAAAAACCg/E2pqO-D1ycU/s1600/IMG_9682.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="211" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/TKd8eV-gcnI/AAAAAAAACCg/E2pqO-D1ycU/s320/IMG_9682.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I cut the airfreshened body down to a size that would fit snugly over the pipe and then used hot glue to attach it. &amp;nbsp;I like the fact that the cover comes on and off so we can put pilots in there. &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_oN6pPL-C9vc/TKd8hHUlLRI/AAAAAAAACCw/JjEZJL7t4D0/s1600/IMG_9704.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="230" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/TKd8hHUlLRI/AAAAAAAACCw/JjEZJL7t4D0/s320/IMG_9704.JPG" style="cursor: move;" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;Here's the final set-up (with cargo bay ramp attached with a hinge):&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_oN6pPL-C9vc/TKd8h7BTZvI/AAAAAAAACC4/f8wfmKXRP4c/s1600/IMG_9708_new.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="194" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/TKd8h7BTZvI/AAAAAAAACC4/f8wfmKXRP4c/s320/IMG_9708_new.jpg" style="cursor: move;" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Lin made some ace characters for Carys' birthday and the two presents go really well together. &amp;nbsp;I love the fact that Darth Vader's helmet comes off to show his pale splotchy face :)&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_oN6pPL-C9vc/TKd8e0opqVI/AAAAAAAACCk/r687KELr54g/s1600/IMG_9698_new.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="294" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/TKd8e0opqVI/AAAAAAAACCk/r687KELr54g/s320/IMG_9698_new.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_oN6pPL-C9vc/TKd8ft_o0qI/AAAAAAAACCo/fE8WyxXF78s/s1600/IMG_9702_new.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="256" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/TKd8ft_o0qI/AAAAAAAACCo/fE8WyxXF78s/s320/IMG_9702_new.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;And, just to finish off, a gratuitous set of action shots:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_oN6pPL-C9vc/TKd8i4V-qzI/AAAAAAAACDA/SQfCkc5gKHU/s1600/IMG_9712.JPG"&gt;&lt;img border="0" height="213" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/TKd8i4V-qzI/AAAAAAAACDA/SQfCkc5gKHU/s320/IMG_9712.JPG" width="320" /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/_oN6pPL-C9vc/TKd8jLNnPAI/AAAAAAAACDE/rN9yt5Z6JPk/s1600/IMG_9714.JPG"&gt;&lt;img border="0" height="213" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/TKd8jLNnPAI/AAAAAAAACDE/rN9yt5Z6JPk/s320/IMG_9714.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_oN6pPL-C9vc/TKd8jt4GraI/AAAAAAAACDI/dlhc4FqWchM/s1600/IMG_9722_new.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/TKd8jt4GraI/AAAAAAAACDI/dlhc4FqWchM/s320/IMG_9722_new.jpg" width="225" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_oN6pPL-C9vc/TKd8kBAdk2I/AAAAAAAACDM/y-pTYc47o24/s1600/IMG_9724.JPG"&gt;&lt;img border="0" height="243" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/TKd8kBAdk2I/AAAAAAAACDM/y-pTYc47o24/s320/IMG_9724.JPG" width="320" /&gt;&lt;/a&gt;&lt;a href="http://2.bp.blogspot.com/_oN6pPL-C9vc/TKd8ki7oUoI/AAAAAAAACDQ/N5t81v1rb2g/s1600/IMG_9729.JPG"&gt;&lt;img border="0" height="243" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/TKd8ki7oUoI/AAAAAAAACDQ/N5t81v1rb2g/s320/IMG_9729.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-8499597355051549987?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/8499597355051549987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=8499597355051549987' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/8499597355051549987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/8499597355051549987'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2010/10/diy-millenium-falcon.html' title='DIY Millennium Falcon'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_oN6pPL-C9vc/TKd8hkHLBVI/AAAAAAAACC0/d8xx7fqFI3w/s72-c/IMG_9706_new.jpg' height='72' width='72'/><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-2069451163998930987</id><published>2010-08-26T23:21:00.000-07:00</published><updated>2010-08-27T07:26:55.117-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='woodworking'/><category scheme='http://www.blogger.com/atom/ns#' term='CNC Build'/><title type='text'>CNC Machine Build - Part II</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/THdDlYUMp2I/AAAAAAAACBM/MgihGLomVOU/s1600/IMG_9069.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 230px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/THdDlYUMp2I/AAAAAAAACBM/MgihGLomVOU/s320/IMG_9069.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5509946978572478306" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;I bet you'd all thought I'd given up on this!  Well,  I just got a little sidetracked with a few other projects - the main one being the &lt;a href="http://www.google.com/url?sa=t&amp;amp;source=web&amp;amp;cd=1&amp;amp;ved=0CBIQFjAA&amp;amp;url=http%3A%2F%2Fwww.fangletronics.com%2F2010%2F07%2Frescuing-cedarworks-swing-set.html&amp;amp;ei=Nnx0TJqrI4zQsAPUjK3iBQ&amp;amp;usg=AFQjCNGDZbok5p1yvW6_QhDHCuUcZG2GpA"&gt;play-structure restoration&lt;/a&gt; and a load of garden "improvements" (I hope the landlord agrees!).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Well, I was wondering if I could finish it before posting again, but I got impatient.  Most of the hardware is done, but there's still some fine tuning to do on the axes and I still have all the electronics to sort out.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I've been really happy with the plans I bought from &lt;a href="http://www.solsylva.com/cnc/25x25.shtml"&gt;solsylva.com&lt;/a&gt;, they are detailed and straightforward to follow.  Most of this has been new to me, so I've taken my time (not that I had much choice) and it's been working out ok.  It must have been comedic seeing my sleep deprived carcass hanging around the wood or screws/bolts at Home Depot around midnight on Saturdays, looking confused and eyeing everything up suspiciously.  I had no idea what all the numbers and specifications meant on the parts when I was first buying them...  trying to match up what was in the plans with what was on the shelves took a lot longer than I'm willing to admit.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There were a  few choices to make when building the machine:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;What wood to use.&lt;/li&gt;&lt;li&gt;What leadscrews/leadnuts to use (ACME rod or hardware store threaded rod).&lt;/li&gt;&lt;li&gt;What bearings to use.&lt;/li&gt;&lt;li&gt;What stepper motors, power supply and controller board to use (main choices seemed to be &lt;a href="http://www.hobbycnc.com/"&gt;hobbycnc &lt;/a&gt;and &lt;a href="http://xylotex.com/"&gt;xylotex&lt;/a&gt;.&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;Since cost is definitely an issue for me, I mostly went with the cheapest options. So, whatever wood was available at Lowe's/HD (pine and Douglas-Fir); threaded rod leadscrews (I can always upgrade to ACME later); hardware store tee-nuts as the leadnuts; skateboard bearings from &lt;a href="http://stores.ebay.com/Slam-N-City-Skateboards"&gt;Slam N City's ebay store&lt;/a&gt;; and I ended up choosing the xylotex &lt;a href="http://www.xylotex.com/3AxSysKit.htm"&gt;3 axis system kit&lt;/a&gt; for the electronics/steppers.  I went with Xylotex over HobbyCNC mainly because the HobbyCNC kit appeared to require more work to get it up and running (like buying a separate transformer and fitting it in with the rest of the kit).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here's a few in-progress shots:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/THR6pBbhJJI/AAAAAAAAB_c/qwYp1-Y5rMM/s1600/IMG_8504.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 184px;" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/THR6pBbhJJI/AAAAAAAAB_c/qwYp1-Y5rMM/s320/IMG_8504.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5509163089358038162" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;This is after installing the y-gantry on the x-rails.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/THR6pjpJKcI/AAAAAAAAB_k/F08o0pBKnEs/s1600/IMG_8591.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 315px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/THR6pjpJKcI/AAAAAAAAB_k/F08o0pBKnEs/s320/IMG_8591.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5509163098541992386" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;These are the bearing flanges cut out of kitchen cutting board.  I bought some Forstner bits from ebay in order to cut the recesses.  There are a few holes in the wood that require either spade or forstner bits as well -&gt; the bits have been handy on other projects like drilling recesses for the bolts on the &lt;a href="http://www.fangletronics.com/2010/07/rescuing-cedarworks-swing-set.html"&gt;play-structure&lt;/a&gt; and making holes in our upside-down tomato plant buckets (you can see them somewhere in the middle of one of Lin's &lt;a href="http://www.filthwizardry.com/2010/07/sorry-ive-neglected-you-and-bunch-of.html"&gt;more epic posts&lt;/a&gt;).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/THR6p24c8lI/AAAAAAAAB_s/3DVSllzEiOE/s1600/IMG_8608.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 171px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/THR6p24c8lI/AAAAAAAAB_s/3DVSllzEiOE/s320/IMG_8608.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5509163103706477138" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/THR6qWywoUI/AAAAAAAAB_0/4bUZ5x98hqE/s1600/IMG_8611.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 222px;" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/THR6qWywoUI/AAAAAAAAB_0/4bUZ5x98hqE/s320/IMG_8611.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5509163112272535874" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This image shows the machine after the x-axes leadscrews and nuts have been added - there's one on each side of the machine.  The x-axes stepper motor is connected to the two leadscrews by a belt and pulley system (suppliers and part numbers were given in the plans for these, so there was no confusion).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/THR7sB0GLLI/AAAAAAAACA8/o7CpkYuXK6M/s1600/IMG_8812.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 243px; height: 320px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/THR7sB0GLLI/AAAAAAAACA8/o7CpkYuXK6M/s320/IMG_8812.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5509164240512363698" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is the cage that moves along the y-gantry rails and houses the z-axes spindle plate.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/THR7q6LA85I/AAAAAAAACAs/zl5EtAAnCTA/s1600/IMG_8920.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 202px; height: 320px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/THR7q6LA85I/AAAAAAAACAs/zl5EtAAnCTA/s320/IMG_8920.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5509164221281137554" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/TTHR7rvwV1eI/AAAAAAAACA0/_0mdAcBTzco/s1600/IMG_8920.JPG"&gt;&lt;img src="http://2.bp.blogspot.com/_oN6pPL-C9vc/THR7rvwV1eI/AAAAAAAACA0/_0mdAcBTzco/s320/IMG_8919.JPG" style="cursor:pointer; cursor:hand;width: 174px; height: 320px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5509164235664774626" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This shows the cage in position with the z-axes leadscrew assembly and stepper motor.  The rods in the right hand picture are tension rods to press the bearings into the rails and allow the cage to run smoothly along the y-gantry black piping.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/THR7qY436GI/AAAAAAAACAk/E38uNHZ9E8E/s1600/IMG_8937.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 144px; height: 320px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/THR7qY436GI/AAAAAAAACAk/E38uNHZ9E8E/s320/IMG_8937.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5509164212346677346" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;and here's the z-axes complete with spindle plate.  The metal band at the front is used to clamp the router onto the spindle plate (as you can see in the picture below). &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/THdDlYUMp2I/AAAAAAAACBM/MgihGLomVOU/s1600/IMG_9069.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 230px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/THdDlYUMp2I/AAAAAAAACBM/MgihGLomVOU/s320/IMG_9069.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5509946978572478306" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So, I think &lt;i&gt;all&lt;/i&gt; I have left to do is to wire up the steppers, controller board and power supply; connect these to a computer (I'm planning to use &lt;a href="http://www.linuxcnc.org/"&gt;linuxcnc&lt;/a&gt; on an old disused laptop - so old it has a parallel port!) and then work out how to use the software.  Can't wait to carve out my first test pattern!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-2069451163998930987?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/2069451163998930987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=2069451163998930987' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/2069451163998930987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/2069451163998930987'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2010/08/cnc-machine-build-part-ii.html' title='CNC Machine Build - Part II'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_oN6pPL-C9vc/THdDlYUMp2I/AAAAAAAACBM/MgihGLomVOU/s72-c/IMG_9069.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-2870416714822571445</id><published>2010-07-31T00:14:00.000-07:00</published><updated>2010-07-31T00:15:43.290-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='no electronics required'/><category scheme='http://www.blogger.com/atom/ns#' term='woodworking'/><category scheme='http://www.blogger.com/atom/ns#' term='For the kids'/><title type='text'>Rescuing a CedarWorks Swing Set</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/TFO5wPMaCVI/AAAAAAAAB-0/UK7gK4QPWcA/s1600/july2010_23.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 258px;" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/TFO5wPMaCVI/AAAAAAAAB-0/UK7gK4QPWcA/s400/july2010_23.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5499943808312936786" /&gt;&lt;/a&gt;&lt;br /&gt;We had the good fortune recently of being offered an old play-structure by a lovely couple who'd recently bought a house with it in the garden, but their kid was too old for it.  They'd tried to give it away a few times over the last year or so, but no one who came to look at it had any clue how to take it apart - I'm beginning to suspect that they were just sensible and realised how much work would be involved in deconstructing and reconstructing it all ;)&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It was completely worth the effort though. These &lt;a href="http://www.cedarworks.com/"&gt;CedarWorks &lt;/a&gt;play-structures are fantastic (seriously, check out that link, it's like swing set porn) and there's no way our kids would ever have had anything like this under other circumstances.  We managed to salvage the whole thing for about the cost of the metal steering wheel it came with (~$160).&lt;br /&gt;&lt;br /&gt;I took a look and thought, yeah, that'll come apart easy and should squeeze in our back-yard.  So the missus and I went down one Sunday with a big U-Haul truck (one of &lt;a href="http://www.uhaul.com/guide/index.aspx?equipment=truck-17"&gt;these&lt;/a&gt;) and spent about 4 1/2 hours taking it apart with the help of the original owners (and Jessen and Lani who were looking after the filthwizards). We'd actually been down the day before to show the kids and to get started (we spent about 1 1/2 hours there that day).  These things are definitely built to stay up!&lt;br /&gt;&lt;br /&gt;Most of it was pretty straightforward to deconstruct, it's mostly held together by long bolts and &lt;a href="http://www.fasteners-cn.com/etw_c_m/upfile/fasteners-cn/fasteners-cn2009-10-30-10-38-05.jpg"&gt;hex-screws&lt;/a&gt;.  The hardest part was removing all the dowel rods...  These were all kept in place with nails driven through the main posts... this turned out to be the biggest &lt;s&gt;pita&lt;/s&gt; time-sink of the day.  I ended up clearing some of the wood around each of the nail heads by hammering a 7mm socket around the top of them and then using a claw hammer to pull the nail out.  We left parts of the structure intact (the smaller tower, the monkey bars and 3 rows of the larger tower).  Phew!  That was quite hard in the midday sunshine... and guess who forgot his hat!  Doh!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We did joke a couple of times that we may have landed ourselves some very elaborate firewood.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here it is, taken apart and stored down the side of our house waiting for some attention (both of us quietly hoping not of the bonfire variety):&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/TFO5w2jow5I/AAAAAAAAB_E/fHVGziYtNdY/s1600/july2010_25.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 276px; height: 400px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/TFO5w2jow5I/AAAAAAAAB_E/fHVGziYtNdY/s400/july2010_25.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5499943818879353746" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/TFO5pIaH4FI/AAAAAAAAB-s/hiQBubeXxxs/s1600/july2010_9.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 256px; height: 400px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/TFO5pIaH4FI/AAAAAAAAB-s/hiQBubeXxxs/s400/july2010_9.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5499943686232334418" /&gt;&lt;/a&gt;&lt;br /&gt;Whilst taking it apart we found that the lower 6 inches of the structure was rotten (including the A-frame support beams/crossmembers) so we'd have to come up with a plan for fixing it up.  A few of the dowels were rotten as well and one of them wouldn't come out, so we ended up sawing it in half in order to get the frame apart and out of the garden.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/TFO5oadxOMI/AAAAAAAAB-U/sxJbgoi7nRI/s1600/IMG_8539.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 281px; height: 400px;" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/TFO5oadxOMI/AAAAAAAAB-U/sxJbgoi7nRI/s400/IMG_8539.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5499943673899595970" /&gt;&lt;/a&gt;&lt;br /&gt;We decided to stain the wood to protect it from further water damage and to make it look a bit nicer. We picked up the stain from Home Depot (Red, Brown and a small pot of green for the horse swing) and set to work.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/TFO5o30YwmI/AAAAAAAAB-k/kUeSNV0SwrY/s1600/july2010_7.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 242px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/TFO5o30YwmI/AAAAAAAAB-k/kUeSNV0SwrY/s400/july2010_7.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5499943681779090018" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/TFO5ogX49uI/AAAAAAAAB-c/Kl_iKIEZjjI/s1600/july2010_3.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 282px;" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/TFO5ogX49uI/AAAAAAAAB-c/Kl_iKIEZjjI/s400/july2010_3.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5499943675485550306" /&gt;&lt;/a&gt;&lt;img src="http://2.bp.blogspot.com/_oN6pPL-C9vc/TFO5xKVUsII/AAAAAAAAB_M/h1amaaSpD_s/s400/july2010_26.jpg" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 275px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5499943824188027010" /&gt;It took a couple of weeks of preparation (mainly painting and grabbing some supplies) and an entire weekend of painting, sawing, hammering, drilling, lifting, squeezing, sneezing, spluttering (I got a lot of sawdust up my nose and in my mouth) and standing on-top of things with my mate, Jessen, bashing away with a big rubber mallet to get it finished and in a good state to play on.   I sawed off the lower 6" or so of the entire structure (16 vertical legs and 3 A-frame legs) and replaced the unsalvageable, A-frame crossmembers with some 8' 4"x4" from Home Depot.&lt;div&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;It was going dark on Monday night by the time the kids got a chance to test it out - They were very excited and I had to fend them off for a little while whilst finishing up the A-frames.  You would have thought the sight of me running back and forth with a big drill in the twilight would have been intimidating enough... apparently not.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/TFO5wPMaCVI/AAAAAAAAB-0/UK7gK4QPWcA/s1600/july2010_23.jpg"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/TFO5wPMaCVI/AAAAAAAAB-0/UK7gK4QPWcA/s1600/july2010_23.jpg"&gt;&lt;img style="text-align: left;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 400px; height: 258px; " src="http://4.bp.blogspot.com/_oN6pPL-C9vc/TFO5wPMaCVI/AAAAAAAAB-0/UK7gK4QPWcA/s400/july2010_23.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5499943808312936786" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Well, it's still not quite finished. The platforms that go inside the main structure still need sanding and painting, but we can do those piecemeal.  Hopefully this means I've got some time to get back to building that &lt;a href="http://www.fangletronics.com/2010/06/cnc-machine-build-part-i.html"&gt;CNC machine&lt;/a&gt;!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It feels like we're pretty good at not necessarily biting off more than we can chew, but rather biting off enough to give us very sore jaws...  It really felt worthwhile when Ffion came running over and hugged my leg, saying "you're the best dad &lt;b&gt;ever&lt;/b&gt;!" and Carys shouts out (from the apex of a high swing) "This is AWESOME!".  Yeah fine... they have me wrapped around their little fingers...&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/TFO5wt4hQoI/AAAAAAAAB-8/wrMkF_OMiF8/s1600/july2010_24.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 273px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/TFO5wt4hQoI/AAAAAAAAB-8/wrMkF_OMiF8/s400/july2010_24.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5499943816551023234" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-2870416714822571445?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/2870416714822571445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=2870416714822571445' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/2870416714822571445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/2870416714822571445'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2010/07/rescuing-cedarworks-swing-set.html' title='Rescuing a CedarWorks Swing Set'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_oN6pPL-C9vc/TFO5wPMaCVI/AAAAAAAAB-0/UK7gK4QPWcA/s72-c/july2010_23.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-4778605178124299520</id><published>2010-06-23T08:36:00.000-07:00</published><updated>2010-07-20T10:41:06.082-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='woodworking'/><category scheme='http://www.blogger.com/atom/ns#' term='CNC Build'/><title type='text'>CNC Machine Build - Part I</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/TCIqQCYZ1fI/AAAAAAAAB90/X-Kd6MsLuRA/s1600/IMG_8274.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5485993751096186354" style="WIDTH: 184px; CURSOR: hand; HEIGHT: 200px" alt="" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/TCIqQCYZ1fI/AAAAAAAAB90/X-Kd6MsLuRA/s200/IMG_8274.JPG" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/TCIqP0AENDI/AAAAAAAAB9s/JGrJJ-Y5bos/s1600/IMG_8273.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5485993747236009010" style="WIDTH: 160px; CURSOR: hand; HEIGHT: 200px" alt="" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/TCIqP0AENDI/AAAAAAAAB9s/JGrJJ-Y5bos/s200/IMG_8273.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I've started a 'little' project that promises to take up most of my free time (what little there seems to be of it at the moment) - I've decided to build a CNC machine.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To be honest, I've had gadget lust for a CNC machine for some time now... all the talk on the blogs about &lt;a href="http://store.makerbot.com/cupcake-cnc/cupcake-cnc-deluxe-kit.html"&gt;Cupcakes &lt;/a&gt;and &lt;a href="http://makerbot.com/"&gt;Makerbots &lt;/a&gt;and &lt;a href="http://reprap.org/wiki/Main_Page"&gt;RepRaps&lt;/a&gt; got me looking into &lt;a href="http://en.wikipedia.org/wiki/Numerical_control"&gt;CNC &lt;/a&gt;machines some time ago.  I could never bring myself to spend the money on one though since they're a little pricey.  The cheapest options that looked any good were the &lt;a href="http://www.zentoolworks.com/"&gt;Zen Toolworks&lt;/a&gt; machines, which came with stepper motors but no power supply, controller boards or router/spindle.  The cheapest of these can be got from &lt;a href="http://www.amazon.com/Zen-Toolworks-CNC-Carving-Machine/dp/B002ARTLUG/ref=sr_1_1?ie=UTF8&amp;amp;s=hi&amp;amp;qid=1278399359&amp;amp;sr=8-1"&gt;Amazon&lt;/a&gt; for under 350 dollars.  Still, it only works on a 7"x7"x2" area.  The &lt;a href="http://www.amazon.com/Zen-Toolworks-Carving-Machine-12x12/dp/B0037NVPSI/ref=sr_1_2?ie=UTF8&amp;amp;s=hi&amp;amp;qid=1278399359&amp;amp;sr=8-2"&gt;next machine up&lt;/a&gt; is around $600 and works on a larger area of 12"x12"x2".  At this price I get a little scared and only being able to carve a foot is a little disapointing.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Anyway, I held off for ages but then came across &lt;a href="http://solsylva.com/cnc/25x25.shtml"&gt;these plans&lt;/a&gt; at &lt;a href="http://solsylva.com/"&gt;solsylva.com&lt;/a&gt; which detailed the construction of a CNC machine that would cost a little bit more than the larger zen toolworks one (all inclusive), would use mostly materials from Lowes or Home Despot and also promised to be pretty easy to follow (a definite bonus for me, since I chose to do needlework and cookery rather than woodwork and metalwork when given the choice at age 13...).  I've seen lots of online instructions for building various types of CNC machine (like &lt;a href="http://www.instructables.com/id/How-to-Make-a-Three-Axis-CNC-Machine-Cheaply-and-/"&gt;this one&lt;/a&gt;, and &lt;a href="http://www.engadget.com/2006/06/29/how-to-build-your-own-cnc-machine-part-1/"&gt;this one&lt;/a&gt;, and &lt;a href="http://fab.cba.mit.edu/classes/MIT/863.09/people/dcarr/final/final.html"&gt;this on&lt;/a&gt;e... well, you get the idea), but they all left me a bit confused and unconfident about being able to build something worthwhile.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The promise of the solsylva plans were enough to make me order the 25"x25"x7" plans to see if they were idiot proof enough to give me the confidence to get started.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I received the plans a few weeks ago, read them over and then excitedly started to spend money on wood, bolts, washers, screws, pipes, all thread (threaded rod), forstner bits and skate bearings.   So, yes, they appeared to be detailed and simple enough for me to follow from start to finish.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I like the fact that the solsylva plans allow for someone who doesn't have a truck.  The wood measurements are for planks 8' and smaller, which fit fine in my little Nissan disappointment (with the back seats down).  Recently I've been taking advantage of craigslist in order to pick up a few power tools on the cheap.   I got hold of a drill-press ($50) and a miter saw ($60), which have been very useful so far.  You'll laugh at me, but they were a bit intimidating to use at first - especially the miter saw.  I kept having these images running through my mind of flying fingers and trips to the ER (in my defense, the miter saw is very loud).   After a bit of practice I've become &lt;s&gt;flamboyantly reckless&lt;/s&gt; much more confident.  I'm definitely enjoying learning the new skills involved.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The pictures at the start of this post are the main base of the machine, put together over a few hours on the weekend.   In the picture below I've added the X-rails and X-stepper motor support (this was done on the following weekend).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/TDAfNkkjrQI/AAAAAAAAB98/BgC_cs47BNs/s1600/IMG_84093.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5489922263780404482" style="WIDTH: 175px; CURSOR: hand; HEIGHT: 200px" alt="" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/TDAfNkkjrQI/AAAAAAAAB98/BgC_cs47BNs/s200/IMG_8409.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So far, it seems that things are going well.  I'll keep you posted.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-4778605178124299520?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/4778605178124299520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=4778605178124299520' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/4778605178124299520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/4778605178124299520'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2010/06/cnc-machine-build-part-i.html' title='CNC Machine Build - Part I'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_oN6pPL-C9vc/TCIqQCYZ1fI/AAAAAAAAB90/X-Kd6MsLuRA/s72-c/IMG_8274.JPG' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-2208865727023455858</id><published>2010-06-16T22:22:00.000-07:00</published><updated>2010-07-20T10:41:00.573-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='no electronics required'/><category scheme='http://www.blogger.com/atom/ns#' term='woodworking'/><category scheme='http://www.blogger.com/atom/ns#' term='For the kids'/><title type='text'>Upcycling: wine rack to doll bed</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/TBm0__LMyBI/AAAAAAAAB8c/O5X412tm3hA/s1600/IMG_7991.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 163px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/TBm0__LMyBI/AAAAAAAAB8c/O5X412tm3hA/s200/IMG_7991.JPG" alt="" id="BLOGGER_PHOTO_ID_5483613032683456530" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/TBm1K-W5trI/AAAAAAAAB9c/X1FGu3_gXeE/s1600/IMG_8154.JPG"&gt;&lt;img style="cursor: pointer; width: 194px; height: 200px;" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/TBm1K-W5trI/AAAAAAAAB9c/X1FGu3_gXeE/s200/IMG_8154.JPG" alt="" id="BLOGGER_PHOTO_ID_5483613221442664114" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We found this little wine rack in the local thrift store (savers).  Lin thought it'd be cool to turn it into a bed for the kids baby dolls.  We bought an American Girl doll crib ages ago at a garage sale that was made of plastic and it inevitably fell to pieces...  So the idea of the girls playing with a more sturdy one that I'd made was appealing, especially since they had a lot of make believe fun with the old one.&lt;br /&gt;&lt;br /&gt;The idea was very simple:  Take the rack apart, stick it back together again with some wood-glue for added strength, cut out a base, screw this on and then paint.&lt;br /&gt;&lt;br /&gt;I was going to make  a crib by adding doweling bars between the cross beams, but the way the rack was put together made this a bit too fiddly so I decided to just replace the bottom beams and make a baby bed instead.&lt;br /&gt;&lt;br /&gt;I sanded the pieces to get rid of some of the murky dirt.  Then I painted on some wood-glue to the ends of the beams, reattached them and left it all to dry overnight (with a toolbox weighing it all down from above so that it'd set straight).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/TBm1AEt-agI/AAAAAAAAB8k/SLPWOKO_M8Q/s1600/IMG_8109.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 152px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/TBm1AEt-agI/AAAAAAAAB8k/SLPWOKO_M8Q/s200/IMG_8109.JPG" alt="" id="BLOGGER_PHOTO_ID_5483613034171492866" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I used one of our "new" purchases (a very old scroll saw) to cut out a base.  Very straightforward really, just measure the distances on the wine rack, mark those out on some wood and then cut.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/TBm29yzpf0I/AAAAAAAAB9k/2aQb_o_nn7U/s1600/IMG_5359.JPG"&gt;&lt;img style="cursor: pointer; width: 150px; height: 200px;" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/TBm29yzpf0I/AAAAAAAAB9k/2aQb_o_nn7U/s200/IMG_5359.JPG" alt="" id="BLOGGER_PHOTO_ID_5483615194026966850" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/TBm1BIWeC4I/AAAAAAAAB8s/avthUJ1YnxA/s1600/IMG_8111.JPG"&gt;&lt;img style="cursor: pointer; width: 142px; height: 200px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/TBm1BIWeC4I/AAAAAAAAB8s/avthUJ1YnxA/s200/IMG_8111.JPG" alt="" id="BLOGGER_PHOTO_ID_5483613052326513538" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ooo look, a rectangular bit of wood ;)&lt;br /&gt;&lt;br /&gt;I drilled out holes at the points where the new base board met the cross beams and then fixed the base to the frame using some wood screws.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/TBm1BifaHTI/AAAAAAAAB80/nWcrwQM18L4/s1600/IMG_8120.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 168px;" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/TBm1BifaHTI/AAAAAAAAB80/nWcrwQM18L4/s200/IMG_8120.JPG" alt="" id="BLOGGER_PHOTO_ID_5483613059343326514" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Then I let the kids paint on a layer of primer.  I think they quite enjoyed it.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/TBm1JyWNOYI/AAAAAAAAB9M/HZ-PrlxS55c/s1600/IMG_8127.JPG"&gt;&lt;img style="cursor: pointer; width: 162px; height: 200px;" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/TBm1JyWNOYI/AAAAAAAAB9M/HZ-PrlxS55c/s200/IMG_8127.JPG" alt="" id="BLOGGER_PHOTO_ID_5483613201038653826" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/TBm1Jp95IaI/AAAAAAAAB9E/Yz3JXtRkGfY/s1600/IMG_8126.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 160px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/TBm1Jp95IaI/AAAAAAAAB9E/Yz3JXtRkGfY/s200/IMG_8126.JPG" alt="" id="BLOGGER_PHOTO_ID_5483613198789190050" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/TBm1BxWo8mI/AAAAAAAAB88/Z7fitOd9zgA/s1600/IMG_8122.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 138px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/TBm1BxWo8mI/AAAAAAAAB88/Z7fitOd9zgA/s200/IMG_8122.JPG" alt="" id="BLOGGER_PHOTO_ID_5483613063333081698" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/TBm1KZXN_VI/AAAAAAAAB9U/X9o06_425M4/s1600/IMG_8128.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 157px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/TBm1KZXN_VI/AAAAAAAAB9U/X9o06_425M4/s200/IMG_8128.JPG" alt="" id="BLOGGER_PHOTO_ID_5483613211511881042" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After the primer had dried I painted on a coat of gloss.  Hopefully that'll keep it in good condition for a while.&lt;br /&gt;&lt;br /&gt;I wasn't sure if the kids were taken with it or not until the next morning when a couple of their friends came over for a play date.  "Dylan! Dylan! Come and see!  I've got something AMAZING to show you!" cried Carys.  To be honest I wasn't sure what she was going to show off, but was very touched to find out that it was the baby bed we'd made.  Poor Dylan was a little bemused as to why she was so excited ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-2208865727023455858?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/2208865727023455858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=2208865727023455858' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/2208865727023455858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/2208865727023455858'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2010/06/upcycling-wine-rack-to-doll-bed.html' title='Upcycling: wine rack to doll bed'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_oN6pPL-C9vc/TBm0__LMyBI/AAAAAAAAB8c/O5X412tm3hA/s72-c/IMG_7991.JPG' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-405281839723751886</id><published>2010-05-17T16:25:00.000-07:00</published><updated>2012-01-11T16:49:29.863-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ATtiny'/><category scheme='http://www.blogger.com/atom/ns#' term='For the kids'/><category scheme='http://www.blogger.com/atom/ns#' term='AVR'/><title type='text'>Pixie-Dust Bottles</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_oN6pPL-C9vc/S_A7YDFyRRI/AAAAAAAAB8M/totR1HzXmU4/s1600/IMG_7795.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5471938831587624210" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/S_A7YDFyRRI/AAAAAAAAB8M/totR1HzXmU4/s200/IMG_7795.JPG" style="cursor: hand; cursor: pointer; height: 128px; width: 200px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_oN6pPL-C9vc/S_A7YDJx0II/AAAAAAAAB8E/EfgQjQRzb3c/s1600/IMG_7794.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5471938831604371586" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/S_A7YDJx0II/AAAAAAAAB8E/EfgQjQRzb3c/s200/IMG_7794.JPG" style="cursor: hand; cursor: pointer; height: 95px; width: 200px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It occurred to me whilst making some &lt;a href="http://www.fangletronics.com/2010/02/rgb-night-lights.html"&gt;RGB nightlights&lt;/a&gt; for the kids that it'd be fun if they could make the lights change to whatever colour they wanted; kinda like the &lt;a href="http://www.amazon.com/gp/product/B003TFEQQC/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&amp;amp;tag=fangletronics-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=B003TFEQQC"&gt;Philips LivingColors lamp&lt;/a&gt;, but about $100 cheaper.  Lin suggested that having a few of these (say 5 - 7) would give the kids more room for imaginative fun, so I set about making a prototype and then a few more when that was up and working.&lt;br /&gt;&lt;br /&gt;The kids love them (which is always good) and have been claiming that the bottles contain pixie dust (hence the title of this post).&lt;br /&gt;&lt;br /&gt;Can you guess what Ffion's favourite colour is?  She claims that this is the 'right colour' for pixie dust.&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_oN6pPL-C9vc/S_A7cghYrMI/AAAAAAAAB8U/2qvHgMcXLgk/s1600/IMG_7796.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5471938908207492290" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/S_A7cghYrMI/AAAAAAAAB8U/2qvHgMcXLgk/s200/IMG_7796.JPG" style="cursor: hand; cursor: pointer; height: 126px; width: 200px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The hardware is pretty straight forward.  I used a potentiometer with an in-built on/off switch, like &lt;a href="http://www.allelectronics.com/make-a-store/item/ATP-90KS/90K-AUDIO-POT-W/SWITCH/1.html"&gt;this one&lt;/a&gt;, to simplify things.  I thought it'd look much nicer than having a separate switch.  The rest of the parts are the same as for the &lt;a href="http://www.fangletronics.com/2010/02/rgb-night-lights.html"&gt;RGB nightlights&lt;/a&gt; project.  The trickiest part was the coding, mainly because I'm doing it late at night when my brain isn't working quite so well...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ingredients&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_oN6pPL-C9vc/S_A7MF_1LmI/AAAAAAAAB7E/cEwG-ifuXPU/s1600/IMG_7782.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5471938626209525346" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/S_A7MF_1LmI/AAAAAAAAB7E/cEwG-ifuXPU/s200/IMG_7782.JPG" style="cursor: hand; cursor: pointer; height: 133px; width: 200px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;1. Potentiometer with switch&lt;br /&gt;2. ATtiny45&lt;br /&gt;3. 8-pin IC socket&lt;br /&gt;4. coin cell battery holder&lt;br /&gt;5. RGB LED (common anode) - I bought mine from &lt;a href="http://evilmadscience.com/partsmenu/89-led"&gt;EMSL&lt;/a&gt;.  These are 10mm diffused RGB LEDs.&lt;br /&gt;6. hookup wire, solder etc.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Methods&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;I soldered the coin cell holder onto the potentiometer first.&lt;br /&gt;&lt;br /&gt;Then I hooked up the RGB LED to the DIP socket.  I'm using common anode LEDs so the long LED lead is soldered onto pin 8 of the IC socket.  I have the RGB channels/leads connected to pins 5, 6 and 7 and the potentiometer output (middle pin from the pot) connected to pin 3.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_oN6pPL-C9vc/S_A7Mi7Z6aI/AAAAAAAAB7U/h3F1c60QHz4/s1600/IMG_7785.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5471938633975589282" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/S_A7Mi7Z6aI/AAAAAAAAB7U/h3F1c60QHz4/s200/IMG_7785.JPG" style="cursor: hand; cursor: pointer; height: 101px; width: 200px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_oN6pPL-C9vc/S_A7M1xKJ0I/AAAAAAAAB7c/e-_IEfLkLC4/s1600/IMG_7787.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5471938639032887106" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/S_A7M1xKJ0I/AAAAAAAAB7c/e-_IEfLkLC4/s200/IMG_7787.JPG" style="cursor: hand; cursor: pointer; height: 162px; width: 200px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After that, all you have to do is solder on the potentiometer's middle terminal to the IC socket and finish off connecting the ground and power connections.&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_oN6pPL-C9vc/S_A7XN9neCI/AAAAAAAAB70/K0MfMZI6hBI/s1600/IMG_7791.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5471938817326282786" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/S_A7XN9neCI/AAAAAAAAB70/K0MfMZI6hBI/s200/IMG_7791.JPG" style="cursor: hand; cursor: pointer; height: 94px; width: 200px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_oN6pPL-C9vc/S_A7W9yB-9I/AAAAAAAAB7s/js97VvFmPn8/s1600/IMG_7790.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5471938812982721490" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/S_A7W9yB-9I/AAAAAAAAB7s/js97VvFmPn8/s200/IMG_7790.JPG" style="cursor: hand; cursor: pointer; height: 68px; width: 200px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_oN6pPL-C9vc/S_A7Nb8te5I/AAAAAAAAB7k/jMimWwWxfrU/s1600/IMG_7789.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5471938649281887122" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/S_A7Nb8te5I/AAAAAAAAB7k/jMimWwWxfrU/s200/IMG_7789.JPG" style="cursor: hand; cursor: pointer; height: 138px; width: 200px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And there we have it.  Some kind of strange Borg eye ready to be put somewhere.&lt;br /&gt;&lt;br /&gt;We had some plastic kids drink bottles sitting in the recycling bin - they're made from white plastic so I thought they'd diffuse the light nicely.  I drilled a hole in the bottle cap for the potentiometer shaft and fitted it all together.  Finally, I added a knob (radioshack purchase) to make it a bit prettier and easier to use.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_oN6pPL-C9vc/S_A7XnY78ZI/AAAAAAAAB78/zqSwHN-DRr0/s1600/IMG_7793.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5471938824151757202" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/S_A7XnY78ZI/AAAAAAAAB78/zqSwHN-DRr0/s200/IMG_7793.JPG" style="cursor: hand; cursor: pointer; height: 88px; width: 200px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Coding&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;I'd already worked out how to do the software PWM (pulse width modulation) and how to measure a variable voltage input using ADC (analogue to digital conversion) so all that needed to be figured out, for this project, was how to map the ADC input values to the desired range of colours.&lt;br /&gt;&lt;br /&gt;I wanted to let the kids cycle through the entire spectrum in much the same way the previous night-lights cycled automatically.&lt;br /&gt;&lt;br /&gt;So, in the &lt;a href="http://www.fangletronics.com/2010/02/rgb-night-lights.html"&gt;RGB nightlights&lt;/a&gt; project there were 6 transitions/steps:&lt;br /&gt;&lt;table border="1" cellpadding="3" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr align="left"&gt;&lt;th&gt;step&lt;/th&gt;&lt;th&gt;Red channel value&lt;/th&gt;&lt;th&gt;Green channel value&lt;/th&gt;&lt;th&gt;Blue channel value&lt;/th&gt;&lt;th&gt;changing channel&lt;/th&gt;&lt;th&gt;colour range&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;255&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;increase Green&lt;/td&gt;&lt;td&gt;&lt;span style="color: red;"&gt;Red&lt;/span&gt; to &lt;span style="color: yellow;"&gt;Yellow&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;255&lt;/td&gt;&lt;td&gt;255&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;decrease Red&lt;/td&gt;&lt;td&gt;&lt;span style="color: yellow;"&gt;Yellow&lt;/span&gt; to &lt;span style="color: green;"&gt;Green&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;255&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;increase Blue&lt;/td&gt;&lt;td&gt;&lt;span style="color: green;"&gt;Green&lt;/span&gt; to &lt;span style="color: cyan;"&gt;Cyan&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;255&lt;/td&gt;&lt;td&gt;255&lt;/td&gt;&lt;td&gt;decrease Green&lt;/td&gt;&lt;td&gt;&lt;span style="color: cyan;"&gt;Cyan&lt;/span&gt; to &lt;span style="color: blue;"&gt;Blue&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;255&lt;/td&gt;&lt;td&gt;increase Red&lt;/td&gt;&lt;td&gt;&lt;span style="color: blue;"&gt;Blue&lt;/span&gt; to &lt;span style="color: purple;"&gt;Purple&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;255&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;255&lt;/td&gt;&lt;td&gt;decrease Blue&lt;/td&gt;&lt;td&gt;&lt;span style="color: purple;"&gt;Purple&lt;/span&gt; to &lt;span style="color: red;"&gt;Red&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;If we use a 10-bit ADC we have 1024 values (&lt;tt&gt;2^10&lt;/tt&gt;) available for mapping to colours in the above steps.  This means that each step can contain 170 values/colours (&lt;tt&gt;1024/6 = 170.666...&lt;/tt&gt;).&lt;br /&gt;&lt;br /&gt;So, to map the ADC value to a colour we first assign it to one of the 6 steps and then use it to determine the value of the varying channel (Red/Green/Blue) for that step.&lt;br /&gt;&lt;br /&gt;There are 6 steps and each step can have 170 ADC values associated with it.  So I binned the ADC values into steps like so:&lt;br /&gt;&lt;table border="1" cellpadding="3" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr align="left"&gt;&lt;th&gt;step&lt;/th&gt;&lt;th&gt;ADC value&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;&amp;lt; 170&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;&amp;lt; 342&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;&amp;lt; 512&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;&amp;lt; 683&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;&amp;lt; 854&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;&amp;gt;= 854&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Here's an example to clarify:  Say the potentiometer is set just over half way, then the ADC value should be between 512 and 683; this would put us in step 4 where the red channel is off, the blue channel is completely on (255) and the green channel is varying (in this step the green levels are decreasing from 255 -&amp;gt; 0 as the ADC value increases from 512 -&amp;gt; 683).  We calculate the green level by translating the ADC range to 0 - 170 (in this case by subtracting 512) and then multiplying by a scaling factor (255/170) to transform the 0 -&amp;gt; 170 range to a 0 -&amp;gt; 255 range.  If we're increasing the level of the channel (steps 1, 3 and 5) then we just use this scaled value as the channel value.  If we're decreasing the level of the channel (as is the case for step 4) then we inverse the scaled value by subtracting it from 255.&lt;br /&gt;&lt;br /&gt;Here's the bit of code that sets the RGB values (see the complete listing here: &lt;a href="http://code.google.com/p/pboardman-avr/source/browse/selectableColourLight/selectableColourLight.c"&gt;selectableColourLight.c&lt;/a&gt;):&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:c"&gt;&lt;br /&gt;#define SCALING_RANGE 170&lt;br /&gt;#define SCALING_FACTOR 255/SCALING_RANGE&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;void setRgbLevels(uint16_t pValue)&lt;br /&gt;{&lt;br /&gt; if(pValue &amp;lt; SCALING_RANGE)&lt;br /&gt; {&lt;br /&gt;  mRgbValues[RED_INDEX]   = 255;&lt;br /&gt;  mRgbValues[GREEN_INDEX] = pValue * SCALING_FACTOR;&lt;br /&gt;  mRgbValues[BLUE_INDEX]  = 0;&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt; else if(pValue &amp;lt; 342) //SCALING_RANGE * 2&lt;br /&gt; {&lt;br /&gt;  mRgbValues[RED_INDEX]   = 255 - ((pValue - SCALING_RANGE) * SCALING_FACTOR);&lt;br /&gt;  mRgbValues[GREEN_INDEX] = 255;&lt;br /&gt;  mRgbValues[BLUE_INDEX]  = 0;&lt;br /&gt; }&lt;br /&gt; else if(pValue &amp;lt; 512) //SCALING_RANGE * 3&lt;br /&gt; {&lt;br /&gt;  mRgbValues[RED_INDEX]   = 0;&lt;br /&gt;  mRgbValues[GREEN_INDEX] = 255;&lt;br /&gt;  mRgbValues[BLUE_INDEX]  = (pValue - 342) * SCALING_FACTOR;&lt;br /&gt; }&lt;br /&gt; else if(pValue &amp;lt; 683)//SCALING_RANGE * 4&lt;br /&gt; {&lt;br /&gt;  mRgbValues[RED_INDEX]   = 0;&lt;br /&gt;  mRgbValues[GREEN_INDEX] = 255 - ((pValue - 512) * SCALING_FACTOR);&lt;br /&gt;  mRgbValues[BLUE_INDEX]  = 255;&lt;br /&gt; }&lt;br /&gt; else if(pValue &amp;lt; 854)//SCALING_RANGE * 5&lt;br /&gt; {&lt;br /&gt;  mRgbValues[RED_INDEX]   = (pValue - 683) * SCALING_FACTOR;&lt;br /&gt;  mRgbValues[GREEN_INDEX] = 0;&lt;br /&gt;  mRgbValues[BLUE_INDEX]  = 255;&lt;br /&gt; }&lt;br /&gt; else&lt;br /&gt; {&lt;br /&gt;  mRgbValues[RED_INDEX]   = 255;&lt;br /&gt;  mRgbValues[GREEN_INDEX] = 0;&lt;br /&gt;  mRgbValues[BLUE_INDEX]  = 255 - ((pValue - 854) * SCALING_FACTOR);&lt;br /&gt; }&lt;br /&gt;}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-405281839723751886?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/405281839723751886/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=405281839723751886' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/405281839723751886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/405281839723751886'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2010/05/pixie-dust-bottles.html' title='Pixie-Dust Bottles'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_oN6pPL-C9vc/S_A7YDFyRRI/AAAAAAAAB8M/totR1HzXmU4/s72-c/IMG_7795.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-8118597519308986828</id><published>2010-03-22T08:53:00.000-07:00</published><updated>2011-08-03T23:26:18.546-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pvc pipe'/><category scheme='http://www.blogger.com/atom/ns#' term='general electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='For the kids'/><title type='text'>Saving a Disney Princess Remote Controlled Car</title><content type='html'>During a trip to Savers I spotted this Disney princess car:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/S49KwKuOrqI/AAAAAAAAB24/P8ehyWpOiuM/s1600-h/IMG_6499.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 134px;" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/S49KwKuOrqI/AAAAAAAAB24/P8ehyWpOiuM/s200/IMG_6499.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5444652665886650018"&gt;&lt;/a&gt;&lt;br /&gt;I noticed the sensors in the head and tail lights, they looked like &lt;a href="http://www.digikey.com/scripts/dksearch/dksus.dll?Detail&amp;amp;name=PNA4602M-ND"&gt;IR receivers&lt;/a&gt;.  At first I thought the LED in the body of the car was an IR LED and that the IR receivers detected the IR light bouncing off objects in the cars path (not that the tail lights would make much sense in this context), but when I got it home and put batteries in it, the LED turned out to be just a colour changing LED put there for decoration.&lt;br /&gt;&lt;br /&gt;A while back I headed over to &lt;a href="https://www.noisebridge.net/wiki/Noisebridge"&gt;Noisebride &lt;/a&gt;on a Monday night to check out their circuit hacking/soldering workshop (hosted by Mich Altman).  During the workshop I put together one of Mitch's kits - "&lt;a href="http://www.makershed.com/ProductDetails.asp?ProductCode=MKCE4"&gt;The Trippy RGB Waves&lt;/a&gt;" kit (here's my &lt;a href="http://fangletronics.blogspot.com/2009/04/noisebridge.html"&gt;Noisebridge post&lt;/a&gt; if you're interested in reading about the experience).  The point is that this gizmo uses an IR LED and an IR receiver to detect overhead objects.  The LED pulses IR light at 38KHz (not to be confused with the actual frequency of IR light which is ~ 3THz or 3 x 10&lt;sup&gt;12&lt;/sup&gt; Hz) which the IR receiver detects if there's an object above the LED reflecting the pulses back down.&lt;br /&gt;&lt;br /&gt;I wondered if the car has a similar set-up and was just missing the remote control (which would have a pulsing IR LED).  First off I tried a regular remote control, which had no effect so then I tried pointing the Trippy RGB LED kit at the car and voila!  It reacted to the light.  So, I set about creating a wand/gun for the kids to use to interact with the car.&lt;br /&gt;&lt;br /&gt;First off I tried setting up a 555 timer to pulse an IR LED at 38KHz.  It worked but the signal was weak (maybe I got the values off a little).  I decided to use a microcontroller instead.  The ATtiny range are pretty cheap - I bought some ATtiny45s for $1.20 each which is ~3x the cost of a 555.  The hardest part was finding/creating a housing for the circuit.  I looked around and decided to make my own out of PVC piping.  They look like tiny guns and work a treat :)&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-c754e61cad8a4957" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v14.nonxt7.googlevideo.com/videoplayback?id%3Dc754e61cad8a4957%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329988015%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D3B97836715AB679409B3377B21E3042F4A09E8DD.31C48B27A2819E205BCFA15B43B3F01F812C58D7%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Dc754e61cad8a4957%26offsetms%3D5000%26itag%3Dw160%26sigh%3DyRBGqQPLs_1rMBDONfewK5JrYGI&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v14.nonxt7.googlevideo.com/videoplayback?id%3Dc754e61cad8a4957%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329988015%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D3B97836715AB679409B3377B21E3042F4A09E8DD.31C48B27A2819E205BCFA15B43B3F01F812C58D7%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Dc754e61cad8a4957%26offsetms%3D5000%26itag%3Dw160%26sigh%3DyRBGqQPLs_1rMBDONfewK5JrYGI&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;b&gt;Methods:&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;Here are the final "guns".&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/S6eZ_Z9-w-I/AAAAAAAAB6E/SV_dpVoviy8/s1600-h/IMG_6663.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 137px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/S6eZ_Z9-w-I/AAAAAAAAB6E/SV_dpVoviy8/s200/IMG_6663.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5451495188536935394" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ingredients:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/S49Kn0OMqAI/AAAAAAAAB2A/7M7K8Q55Euk/s1600-h/IMG_6490.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 141px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/S49Kn0OMqAI/AAAAAAAAB2A/7M7K8Q55Euk/s200/IMG_6490.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5444652522407766018"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The pipe is 1/2" PVC piping from Lowes (Home Depot have it too).&lt;div&gt;&lt;ul&gt;&lt;li&gt;PVC elbow joint&lt;/li&gt;&lt;li&gt;PVC pipe (cut to a v.small length 1 1/2")&lt;/li&gt;&lt;li&gt;PVC pipe cap&lt;/li&gt;&lt;li&gt;Coin battery holder (3v, 20mm)&lt;/li&gt;&lt;li&gt;8-pin DIP socket&lt;/li&gt;&lt;li&gt;momentary push button&lt;/li&gt;&lt;li&gt;IR LED&lt;/li&gt;&lt;li&gt;ATtiny45 (originally made with an ATtiny13). &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;The plastic dome is the case from a 25c toy from our local taqueria. The base fits snuggly on the end of the elbow joint and I've used it to cover the battery holder in the final 'product'.  The piping paraphernalia was all left over from the &lt;a href="http://www.fangletronics.com/2009/09/pvc-pipe-marshmallow-gun.html"&gt;marshmallow-gun&lt;/a&gt; fun.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The wiring is all very straightforward.  The hardest part was adjusting the elbow joint so that my coin cell holders fitted snuggly inside (and getting the pushbutton in place).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, first off is to drill some holes: 1 in the end cap for the LED and one in the elbow joint for the pushbutton.  Then I used a rotary tool (Proxxon) to carve out some of the innards of the elbow joint until the battery holder fitted snuggly inside.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Then I soldered one short and one long lead to the pushbutton and fitted it into the elbow joint (see below).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/S49KoU5D-fI/AAAAAAAAB2I/E1Q1TwQEtL8/s1600-h/IMG_6493.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 134px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/S49KoU5D-fI/AAAAAAAAB2I/E1Q1TwQEtL8/s200/IMG_6493.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5444652531177486834"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Then I soldered a long ground lead to the battery holder and connected the short positive wire from the pushbutton and placed the battery holder in the end of the elbow joint.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/S49Kojn6asI/AAAAAAAAB2Q/WKc6RmyU9GE/s1600-h/IMG_6494.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 199px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/S49Kojn6asI/AAAAAAAAB2Q/WKc6RmyU9GE/s200/IMG_6494.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5444652535132089026"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Solder on the DIP socket.  Using a socket was a great choice for me because it turns out that the code I was running was not getting the best results from the car.  Having the socket let me replace the uC after I'd worked out the kinks.  I guess it'll also let me easily recover the uC when the kids are bored of this toy.  I stripped a little bit of insulation from near to the end of the ground lead and soldered it to the ground pin (rather than adding a couple of wire ends at that point).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/S49KpbVZWJI/AAAAAAAAB2g/lPJtPxgB86M/s1600-h/IMG_6496.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 134px;" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/S49KpbVZWJI/AAAAAAAAB2g/lPJtPxgB86M/s200/IMG_6496.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5444652550086809746"&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/S49KozEQtsI/AAAAAAAAB2Y/kDo5Up6EaB8/s1600-h/IMG_6495.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 186px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/S49KozEQtsI/AAAAAAAAB2Y/kDo5Up6EaB8/s200/IMG_6495.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5444652539277522626"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Then it's just a matter of connecting the LED, placing the uC in the socket and fitting the remaining piping.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/S49Ku9-F9mI/AAAAAAAAB2o/7yu-H2bQKMg/s1600-h/IMG_6497.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 134px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/S49Ku9-F9mI/AAAAAAAAB2o/7yu-H2bQKMg/s200/IMG_6497.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5444652645283657314"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/S49KvVlJU3I/AAAAAAAAB2w/Og9SejOhI2A/s1600-h/IMG_6498.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 119px;" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/S49KvVlJU3I/AAAAAAAAB2w/Og9SejOhI2A/s200/IMG_6498.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5444652651621471090"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I made two so both girls could play.  Although that also opens up a huge opportunity to fight over who's in control as well...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/S6eZ1T_4NyI/AAAAAAAAB58/3FiUlJdvImk/s1600-h/IMG_6663.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 274px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/S6eZ1T_4NyI/AAAAAAAAB58/3FiUlJdvImk/s400/IMG_6663.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5451495015135590178" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And here's the code (for some reason the car reacted best if the IR was pulsed for ~170 microseconds with a 400 microsecond pause before the next set of pulses):&lt;br /&gt;&lt;pre class="brush:c"&gt;/*&lt;br /&gt; * IrLedPulse.c&lt;br /&gt; *&lt;br /&gt; * Distributed under Creative Commons 3.0 -- Attib &amp;amp; Share Alike&lt;br /&gt; *&lt;br /&gt; * Created on: Dec 26, 2009&lt;br /&gt; *      Author: Paul&lt;br /&gt; */&lt;br /&gt;#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;#include &amp;lt;avr/delay.h&amp;gt;&lt;br /&gt;&lt;br /&gt;#ifndef F_CPU&lt;br /&gt;    #define F_CPU 1000000UL&lt;br /&gt;#endif&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// Use Timer 0 to pulse the IR LED at 38KHz&lt;br /&gt;void pulseIr()&lt;br /&gt;{&lt;br /&gt;    TCCR0A = 0 | (1 &amp;lt;&amp;lt; COM0A0) | (1 &amp;lt;&amp;lt; WGM01); // COM0A0=1 to toggle OC0A on Compare Match&lt;br /&gt;&lt;br /&gt;    TCCR0B = 0 | (1 &amp;lt;&amp;lt; CS01);    // 1/8 prescale&lt;br /&gt;    OCR0A = 104;  // to output 38KHz on OC0A (PB0, pin 5)&lt;br /&gt;&lt;br /&gt;    _delay_us(170);   // delay 170 microseconds&lt;br /&gt;&lt;br /&gt;    // turn off Timer0 to stop 38KHz pulsing of IR&lt;br /&gt;    TCCR0B = 0;  // Stop Timer0 (turn off IR emitter)&lt;br /&gt;    TCCR0A = 0;  // Disconnect OC0A from PB0 (pin 5)&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int main(void)&lt;br /&gt;{&lt;br /&gt;    DDRB |= (1 &amp;lt;&amp;lt; PB0); // set PB0 to output&lt;br /&gt;    PORTB = 0xFF; // all PORTB output pins high (LED off).&lt;br /&gt;    while(1)&lt;br /&gt;    {&lt;br /&gt;        pulseIr();&lt;br /&gt;        _delay_us(400);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-8118597519308986828?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/8118597519308986828/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=8118597519308986828' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/8118597519308986828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/8118597519308986828'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2010/03/saving-disney-princess-remote.html' title='Saving a Disney Princess Remote Controlled Car'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_oN6pPL-C9vc/S49KwKuOrqI/AAAAAAAAB24/P8ehyWpOiuM/s72-c/IMG_6499.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-511767493003787435</id><published>2010-02-28T10:46:00.000-08:00</published><updated>2010-03-06T22:33:17.188-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='For the kids'/><category scheme='http://www.blogger.com/atom/ns#' term='AVR'/><category scheme='http://www.blogger.com/atom/ns#' term='Atmega8'/><title type='text'>The Amazing Dr Boardman's Colour Conundrum</title><content type='html'>"&lt;b&gt;Roll up! Roll up!  Try your hand at The Amazing Dr Boardman's Colour Conundrum!&lt;/b&gt;"&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/S5NF--KjdNI/AAAAAAAAB50/QT5xvRg5cD0/s1600-h/IMG_6387.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 265px; height: 400px;" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/S5NF--KjdNI/AAAAAAAAB50/QT5xvRg5cD0/s400/IMG_6387.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5445773322562532562" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/S5Lo8ikqj2I/AAAAAAAAB5A/dDkhbkB4T8s/s1600-h/IMG_6389.JPG"&gt;&lt;img src="http://1.bp.blogspot.com/_oN6pPL-C9vc/S5Lo8ikqj2I/AAAAAAAAB5A/dDkhbkB4T8s/s200/IMG_6389.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5445671026214735714" style="cursor: pointer; width: 133px; height: 200px; " /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/S5Lo8bC32GI/AAAAAAAAB44/CyRlgdyael8/s1600-h/IMG_6388.JPG"&gt;&lt;img src="http://1.bp.blogspot.com/_oN6pPL-C9vc/S5Lo8bC32GI/AAAAAAAAB44/CyRlgdyael8/s200/IMG_6388.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5445671024193951842" style="cursor: pointer; width: 173px; height: 200px; " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is a little game I've been planning on making for quite some time.  I finally got round to learning the necessary microcontroller details to pull it together.  The basic idea is that that there are two, full colour 'bulbs'.  One bulb lights up with a random color and the player tries to match this color by adjusting the RGB values of the second bulb (the bulbs are actually RGB LEDs with ping-pong ball diffusers).  When the colors are similar enough then the player 'wins'.&lt;br /&gt;&lt;br /&gt;This was quite hard to do for the younger kids, so I added a speaker to the mix &amp;amp; set it so that the sound frequency increased the closer the player got to the correct colour.  It's still pretty hard, even with the speaker on.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I added a difficulty switch so that the daring/cocky can turn the speaker off.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here's a little video of it in action.  My 5 year old daughter kindly agreed to walk us through it.&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-ffd13f36dab0b6eb" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v3.nonxt8.googlevideo.com/videoplayback?id%3Dffd13f36dab0b6eb%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329988015%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D812527977DF4CA90F51C02B182A38ECF6CA90D5C.2AD902C9C0004FFB9FAE3BF78012E1309E43643%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Dffd13f36dab0b6eb%26offsetms%3D5000%26itag%3Dw160%26sigh%3Dx0LxTajwCfK_RI6RbxoW23Q-9bA&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v3.nonxt8.googlevideo.com/videoplayback?id%3Dffd13f36dab0b6eb%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329988015%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D812527977DF4CA90F51C02B182A38ECF6CA90D5C.2AD902C9C0004FFB9FAE3BF78012E1309E43643%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Dffd13f36dab0b6eb%26offsetms%3D5000%26itag%3Dw160%26sigh%3Dx0LxTajwCfK_RI6RbxoW23Q-9bA&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/S5LpBKg2PxI/AAAAAAAAB5g/pnmUp9NkEpM/s1600-h/IMG_6393.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 133px; height: 200px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/S5LpBKg2PxI/AAAAAAAAB5g/pnmUp9NkEpM/s200/IMG_6393.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5445671105655619346" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/S5LpAq4ftII/AAAAAAAAB5Y/uWGt8EsHvHY/s1600-h/IMG_6392.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 133px; height: 200px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/S5LpAq4ftII/AAAAAAAAB5Y/uWGt8EsHvHY/s200/IMG_6392.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5445671097164870786" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/S5Lo19xHlMI/AAAAAAAAB4o/_GKq7kcyn6U/s1600-h/IMG_6194.JPG"&gt;&lt;img src="http://3.bp.blogspot.com/_oN6pPL-C9vc/S5Lo19xHlMI/AAAAAAAAB4o/_GKq7kcyn6U/s200/IMG_6194.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5445670913255642306" style="cursor: pointer; width: 133px; height: 200px; " /&gt;&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:x-large;"&gt;How it was put together&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Ingredients&lt;/b&gt;:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/S5LolSFaNJI/AAAAAAAAB3A/eGlhORdTesc/s1600-h/IMG_5974.JPG"&gt;&lt;img src="http://4.bp.blogspot.com/_oN6pPL-C9vc/S5LolSFaNJI/AAAAAAAAB3A/eGlhORdTesc/s200/IMG_5974.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5445670626651681938" style="cursor: pointer; width: 194px; height: 200px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;3 potentiometers (20K ohm - but the absolute value isn't very important)&lt;/li&gt;&lt;li&gt;3 knobs for the potentiometers&lt;/li&gt;&lt;li&gt;8 ohm speaker&lt;/li&gt;&lt;li&gt;wooden box (I found this one at Savers)&lt;/li&gt;&lt;li&gt;perf board&lt;/li&gt;&lt;li&gt;2 baby food jars &lt;/li&gt;&lt;li&gt;2 ping-pong balls&lt;/li&gt;&lt;li&gt;28 pin DIP socket&lt;/li&gt;&lt;li&gt;ATmega8 &lt;/li&gt;&lt;li&gt;2 RGB LEDs (common anode)&lt;/li&gt;&lt;li&gt;2 toggle switches (for power and speaker on/off)&lt;/li&gt;&lt;li&gt;hook-up wire&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;Methods&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;First off drill holes in the ping pong balls, the box and in the baby food lids.  Obviously, the size of the holes will depend on what you want to put through them so you'll have to work this out yourselves).  Here's the layout I used:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/S5Lol9qBPdI/AAAAAAAAB3I/5eXYOLjOzIw/s1600-h/IMG_5975.JPG"&gt;&lt;img src="http://1.bp.blogspot.com/_oN6pPL-C9vc/S5Lol9qBPdI/AAAAAAAAB3I/5eXYOLjOzIw/s200/IMG_5975.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5445670638347959762" style="cursor: pointer; width: 200px; height: 116px; " /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/S5LomebMzLI/AAAAAAAAB3Q/5-PreFEN3jE/s1600-h/IMG_5976.JPG"&gt;&lt;img src="http://2.bp.blogspot.com/_oN6pPL-C9vc/S5LomebMzLI/AAAAAAAAB3Q/5-PreFEN3jE/s200/IMG_5976.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5445670647144172722" style="cursor: pointer; width: 200px; height: 134px; " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are 3 holes in a row for the potentiometers, two holes for the LEDs, one hole in the middle for the difficulty switch and one on the side for the power switch.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Next up is to solder leads to the pots.  I used speaker hookup cable for the +ve and GND connections and then soldered 3 different coloured wires to the center terminals (I would have used blue instead of black, but I don't have any blue wire).  These are going to control the red, green and blue levels of the 'player' RGB LED.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/S5LomwPcKrI/AAAAAAAAB3Y/Vy4h849iLNc/s1600-h/IMG_5978.JPG"&gt;&lt;img src="http://4.bp.blogspot.com/_oN6pPL-C9vc/S5LomwPcKrI/AAAAAAAAB3Y/Vy4h849iLNc/s200/IMG_5978.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5445670651926686386" style="cursor: pointer; width: 200px; height: 86px; " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I sanded the LED lenses to make them diffused (I could have just bought diffused lenses... doh!) and then soldered the leads in place.  I used some speaker cable again here too to keep things simple (and some heat shrink tubing to prevent shorts).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/S5LotQJvEWI/AAAAAAAAB3g/XJVQQxDsJBs/s1600-h/IMG_5981.JPG"&gt;&lt;img src="http://1.bp.blogspot.com/_oN6pPL-C9vc/S5LotQJvEWI/AAAAAAAAB3g/XJVQQxDsJBs/s200/IMG_5981.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5445670763571908962" style="cursor: pointer; width: 200px; height: 156px; " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Then solder the DIP socket onto the perf board.  Add the potentiometer leds and the power supply.  All the wires were cut to be a little generous in length - I wasn't sure how everything was going to fit so I figured I'd play it safe and allow for wiggle room in the box.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/S5Lotx_IdpI/AAAAAAAAB3o/xj0qCrIq-2k/s1600-h/IMG_5982.JPG"&gt;&lt;img src="http://4.bp.blogspot.com/_oN6pPL-C9vc/S5Lotx_IdpI/AAAAAAAAB3o/xj0qCrIq-2k/s200/IMG_5982.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5445670772654241426" style="cursor: pointer; width: 195px; height: 200px; " /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/S5LouAK07OI/AAAAAAAAB3w/iaUTtZ_dLJk/s1600-h/IMG_5983.JPG"&gt;&lt;img src="http://1.bp.blogspot.com/_oN6pPL-C9vc/S5LouAK07OI/AAAAAAAAB3w/iaUTtZ_dLJk/s200/IMG_5983.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5445670776461389026" style="cursor: pointer; width: 200px; height: 141px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I used one of the IC perfboards because I figured having the central Vcc and GND rails would make life easier as well as the already connected pads around each pin of the uC.&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/S5LouUxzWsI/AAAAAAAAB34/f61i8aqFG-s/s1600-h/IMG_5984.JPG"&gt;&lt;img src="http://1.bp.blogspot.com/_oN6pPL-C9vc/S5LouUxzWsI/AAAAAAAAB34/f61i8aqFG-s/s200/IMG_5984.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5445670781993573058" style="cursor: pointer; width: 200px; height: 142px; " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Attach the LEDs to the board:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/S5LoujfG_MI/AAAAAAAAB4A/Ja8bm93NmrM/s1600-h/IMG_5986.JPG"&gt;&lt;img src="http://1.bp.blogspot.com/_oN6pPL-C9vc/S5LoujfG_MI/AAAAAAAAB4A/Ja8bm93NmrM/s200/IMG_5986.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5445670785941699778" style="cursor: pointer; width: 196px; height: 200px; " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Then add the speaker and difficulty switch (this just connects/disconnects the speaker from GND rather than being directly controlled by the microcontroller) and test the set-up for shorts, cold solder joints etc.&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/S5Lo0vZAeiI/AAAAAAAAB4I/BvA1n9PldHU/s1600-h/IMG_5987.JPG"&gt;&lt;img src="http://3.bp.blogspot.com/_oN6pPL-C9vc/S5Lo0vZAeiI/AAAAAAAAB4I/BvA1n9PldHU/s200/IMG_5987.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5445670892216547874" style="cursor: pointer; width: 200px; height: 178px; " /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/S5Lo0y2SMyI/AAAAAAAAB4Q/McJFwbleKQA/s1600-h/IMG_5988.JPG"&gt;&lt;img src="http://2.bp.blogspot.com/_oN6pPL-C9vc/S5Lo0y2SMyI/AAAAAAAAB4Q/McJFwbleKQA/s200/IMG_5988.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5445670893144650530" style="cursor: pointer; width: 159px; height: 200px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The LEDs are poked through the holes in the box without the ping-pong balls on (no surprise there).  I had them on in the above photos to see how well they worked.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Place everything into the case and hot glue it all securely - I glued the switches and the LEDs in place. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I positioned the uC within easy reach so that I can tweak the software and update easily.  Next time I think I'll just add programming headers to the board.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/S5Lo1K2rgCI/AAAAAAAAB4Y/TsHM4gMyebs/s1600-h/IMG_5997.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 134px;" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/S5Lo1K2rgCI/AAAAAAAAB4Y/TsHM4gMyebs/s200/IMG_5997.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5445670899588759586" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you're very lucky then you're either artistically gifted or you have a talented partner in crime who can make your project look a hell of a lot better.   Lin (my lovely lady and the hostess of &lt;a href="http://www.filthwizardry.com/"&gt;filthwizardry.com&lt;/a&gt;) had the fabulous idea of creating a Coney Island theme for this game.  I take no credit for how good it looks, that was all down to Lin.  I think I was going to put it in some old Tea box and leave it at that.  Thanks, hon!  She was also responsible for the game name.  I'm far too British to call myself amazing. Oh, and the American spelling of &lt;b&gt;colour &lt;/b&gt;she claims was for symmetry purposes.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/S5Lo74TG4wI/AAAAAAAAB4w/D1VGwKpq4fk/s1600-h/IMG_6387.JPG"&gt;&lt;img src="http://2.bp.blogspot.com/_oN6pPL-C9vc/S5Lo74TG4wI/AAAAAAAAB4w/D1VGwKpq4fk/s200/IMG_6387.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5445671014866805506" style="cursor: pointer; width: 132px; height: 200px; " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I drilled a few holes in the back to increase the apparent volume of the speaker.  Also, it took me a while to work out how to keep the lid/base on the box (there were no fasteners built in, the lid was meant to be kept on by gravity).  I'd almost given up and was going to attack it with nails when I realised I could simply drill some holes in a couple of washers and screw them into the base... I'm stupidly proud of that little idea. Ah, the little things...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/S5Lo9DujeTI/AAAAAAAAB5Q/uiMh62RuNyo/s1600-h/IMG_6391.JPG"&gt;&lt;img src="http://4.bp.blogspot.com/_oN6pPL-C9vc/S5Lo9DujeTI/AAAAAAAAB5Q/uiMh62RuNyo/s200/IMG_6391.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5445671035114584370" style="cursor: pointer; width: 200px; height: 134px; " /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/S5Lo89BJsEI/AAAAAAAAB5I/ChoeKZmh9ug/s1600-h/IMG_6390.JPG"&gt;&lt;img src="http://1.bp.blogspot.com/_oN6pPL-C9vc/S5Lo89BJsEI/AAAAAAAAB5I/ChoeKZmh9ug/s200/IMG_6390.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5445671033313538114" style="cursor: pointer; width: 200px; height: 134px; " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:x-large;"&gt;&lt;b&gt;Software&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;The code is available &lt;a href="http://code.google.com/p/pboardman-avr/source/browse/rgb_color_matcher/rgb_color_matcher.c"&gt;here &lt;/a&gt;on &lt;a href="http://code.google.com/p/pboardman-avr/source/browse/rgb_color_matcher/rgb_color_matcher.c"&gt;code.google.com&lt;/a&gt;.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The output from each potentiometer is read via ADC. These values are used as the 'player' RGB values and are compared with the 'game' RGB values.  I started off using the euclidean distance  of the RGB vectors as the difference metric, but - with kid friendly values - it meant that you could sometimes match red to green (and green to blue etc.).  I ended up requiring each colour be within a defined distance for a successful match.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;When a match is detected we turn off interrupts, flash the LEDs and modulate the speaker sound.  Then switch interrupts back on and assign a new colour to the system RGB LED.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It uses double buffered software PWM for the LEDs and standard PWM for the speaker.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The only other trick is that the random seed is stored in EEPROM and incremented each time the uC is booted up.  The incremented seed is fed to srand and from there we just use the rand() function.  This way the game sequence is different each time (well, different for 256 games in a row anyway).&lt;/div&gt;&lt;/div&gt;&lt;pre class="brush:c"&gt;&lt;br /&gt;#include &amp;lt;avr/eeprom.h&amp;gt;&lt;br /&gt;/*&lt;br /&gt; * Use a variable stored in EEPROM to ensure the random color&lt;br /&gt; * sequence changes from one game to the next.&lt;br /&gt; */&lt;br /&gt;void initRand()&lt;br /&gt;{&lt;br /&gt;    uint8_t vSeed = eeprom_read_word(0); // load last stored seed&lt;br /&gt;    srand(++vSeed); // increment and use value as seed&lt;br /&gt;    eeprom_write_word(0, vSeed); //store the new seed for next time&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-511767493003787435?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/511767493003787435/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=511767493003787435' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/511767493003787435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/511767493003787435'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2010/02/amazing-dr-boardmans-colour-conundrum.html' title='The Amazing Dr Boardman&apos;s Colour Conundrum'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_oN6pPL-C9vc/S5NF--KjdNI/AAAAAAAAB50/QT5xvRg5cD0/s72-c/IMG_6387.JPG' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-7870055419319240350</id><published>2010-02-27T23:21:00.001-08:00</published><updated>2010-09-26T12:58:47.924-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ATtiny'/><category scheme='http://www.blogger.com/atom/ns#' term='AVR'/><title type='text'>CharliePlexed LEDs</title><content type='html'>There are quite a few things I've wanted to try out and post about as I've been learning them (it seems like a good way to remember them!).  For example, I have a half-written post on AVR ADC (analogue to digital converter - for reading inputs like potentiometers and light dependent resistors), one on using pulse width modulation (PWM), one on using LEDs as light sensors...etc, etc. well, so I don't always get round to finishing what I've started.  I'm not sure those posts would even be popular and I've concentrated on real/physical/entertaining projects instead.  Of course now I have a load of half written posts for almost finished projects... aaaaannyway, onto the point. &lt;br /&gt;&lt;br /&gt;I've heard a lot about charlieplexing since starting out on the electronics adventure &amp;amp; the idea of controlling lots of LEDs from only a few microcontroller pins is very appealing.  I've been wanting to make some interesting ways to play with the &lt;a href="http://www.fangletronics.com/2010/01/glow-in-dark-sketch-wall-and-led-pens.html"&gt;glow-in-the-dark wall&lt;/a&gt; and this has lead me to my first practical use for charlieplexing.  I thought that a controllable row of LEDs would open up a lot of possibilities: scan back and forth for a sine wave; all LEDs on for caligraphy; random flash for making star-scapes; POV style message writing; printing patterns - hearts, smileys etc.  &lt;br /&gt;&lt;br /&gt;So, the problem is that with an ATtiny, if you don't want to mess with the reset pin, you only have 5 I/O pins available.  I want to use two pins as input - a potentiometer and a push button.  This would leave me 3 pins for controllign LEDs... not much to play with really.  That's where charlieplexing comes in.  I can control 6 LEDs using these 3 uC pins.&lt;br /&gt;&lt;br /&gt;The wikipedia article on &lt;a href="http://en.wikipedia.org/wiki/Charlieplexing"&gt;charlieplexing &lt;/a&gt;is pretty good, so I won't repeat what's already been said.  Take a look at the tri-state logic part to see what's going on here.  There are a load of &lt;a href="http://www.instructables.com/"&gt;Instructables &lt;/a&gt;which cover charlieplexing - &lt;a href="http://www.instructables.com/id/Charlieplexing-LEDs--The-theory/"&gt;this one&lt;/a&gt; on the theory is worth a read.&lt;br /&gt;&lt;a href="http://upload.wikimedia.org/wikipedia/commons/9/99/3_Pin_Charlieplexing.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" src="http://upload.wikimedia.org/wikipedia/commons/9/99/3_Pin_Charlieplexing.png" style="cursor: hand; cursor: pointer; height: 266px; width: 440px;" /&gt;&lt;/a&gt;&lt;br /&gt;In the code below the LEDs are numbered &lt;strike&gt;slightly differently than&lt;/strike&gt; exactly the same as in the wikipedia diagram (I just soldered up a prototype and the wiring is much easier to route with the wikipedia numbering).  The trick is that we switch two pins to output and one as a high-impedance input (this is the 'floating' pin that is effectively taken out of consideration).  One input is set high (+Vcc) and one is low (0v).  Current is sourced by the +Vcc output pin and sunk by the 0v output pin.  So, for each LED we have different data direction (DDRxn) and port (PORTxn) register settings.&lt;br /&gt;&lt;br /&gt;In order to control the 6 LEDs in the diagram above we use the following settings:&lt;br /&gt;&lt;br /&gt;&lt;table border="1" cellpadding="3" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;LED&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;PIN1&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;PIN2&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;PIN3&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;+Vcc&lt;/td&gt;&lt;td&gt;0v&lt;/td&gt;&lt;td&gt;Input&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;0v&lt;/td&gt;&lt;td&gt;+Vcc&lt;/td&gt;&lt;td&gt;Input&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;Input&lt;/td&gt;&lt;td&gt;+Vcc&lt;/td&gt;&lt;td&gt;0v&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;Input&lt;/td&gt;&lt;td&gt;0v&lt;/td&gt;&lt;td&gt;+Vcc&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;0v&lt;/td&gt;&lt;td&gt;Input&lt;/td&gt;&lt;td&gt;+Vcc&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;+Vcc&lt;/td&gt;&lt;td&gt;Input&lt;/td&gt;&lt;td&gt;0v&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;The code below is just an initial test set-up where we activate LEDs in a scanning pattern (classic 'cylon eye').  It has all the basics necessary to implement the more complex behaviours.  Having the structure array hold the PORTB and DDRB values makes controlling individual LEDs very easy.  I'm hoping this will scale up to allowing PWM, but I haven't put much thought into that yet.&lt;br /&gt;&lt;br /&gt;Hopefully I'll get a chance to make the UV LED gizmo this week and post about the results.&lt;br /&gt;&lt;br /&gt;You can download the source-code from &lt;a href="http://code.google.com/p/pboardman-avr/source/browse/charlieplex_test/charlieplexed_cylonEyes.c"&gt;code.google.com&lt;/a&gt; or use the cut and paste options in the top right of the code box below.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:c"&gt;/*&lt;br /&gt;* charlieplex_test.c&lt;br /&gt;*&lt;br /&gt;* Running on an ATtiny45.&lt;br /&gt;*&lt;br /&gt;* Here we control 6 LEDs through 3 pins (PB0:2).&lt;br /&gt;*&lt;br /&gt;* In order to illuminate each LED we do the following:&lt;br /&gt;*&lt;br /&gt;* LED1 - PB0 &amp;amp; 2 output PB2 input. PB0 sourcing, PB1 sinking. Pull-up on PB2&lt;br /&gt;* LED2 - PB0 &amp;amp; 2 output PB2 input. PB1 sourcing, PB0 sinking. Pull-up on PB2&lt;br /&gt;* LED3 - PB1 &amp;amp; 3 output PB0 input. PB1 sourcing, PB2 sinking. Pull-up on PB0&lt;br /&gt;* LED4 - PB1 &amp;amp; 3 output PB0 input. PB2 sourcing, PB1 sinking. Pull-up on PB0&lt;br /&gt;* LED5 - PB0 &amp;amp; 3 output PB1 input. PB0 sourcing, PB2 sinking. Pull-up on PB1&lt;br /&gt;* LED6 - PB0 &amp;amp; 3 output PB1 input. PB2 sourcing, PB0 sinking. Pull-up on PB2&lt;br /&gt;*&lt;br /&gt;* This little ASCII diagram shows the wiring and orientation of the 6 LEDs.&lt;br /&gt;* The hyphens ('-') identify the cathode pins of the LEDs.&lt;br /&gt;*&lt;br /&gt;* PB0 ----------------------&lt;br /&gt;*        |   -      |      |&lt;br /&gt;*        1   2      |      |&lt;br /&gt;*        -   |      |      -&lt;br /&gt;* PB1 --------      5      6&lt;br /&gt;*        |   -      -      |&lt;br /&gt;*        3   4      |      |&lt;br /&gt;*        -   |      |      |&lt;br /&gt;* PB2 ----------------------&lt;br /&gt;*&lt;br /&gt;* Only a single LED can be illuminated at any point in time.&lt;br /&gt;*&lt;br /&gt;* Distributed under Creative Commons 3.0 -- Attib &amp;amp; Share Alike&lt;br /&gt;*&lt;br /&gt;*  Created on: Feb 27, 2010&lt;br /&gt;*      Author: PaulBo&lt;br /&gt;*/&lt;br /&gt;#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;#include &amp;lt;util/delay.h&amp;gt;&lt;br /&gt;&lt;br /&gt;#ifndef F_CPU&lt;br /&gt;#define F_CPU 1000000UL&lt;br /&gt;#endif&lt;br /&gt;&lt;br /&gt;#define DELAY_TIME 50&lt;br /&gt;#define N_LED 6&lt;br /&gt;&lt;br /&gt;// see class comments for pin setting explanation&lt;br /&gt;// unused pins are set to input with pull-up resistors activated&lt;br /&gt;struct leds {&lt;br /&gt;uint8_t mDdrB;&lt;br /&gt;uint8_t mPortB;&lt;br /&gt;} ledData[] = {&lt;br /&gt;{0b00011011, 0b11100101},&lt;br /&gt;{0b00011011, 0b11100110},&lt;br /&gt;{0b00011110, 0b11100011},&lt;br /&gt;{0b00011110, 0b11100101},&lt;br /&gt;{0b00011101, 0b11100011},&lt;br /&gt;{0b00011101, 0b11100110}&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;int main()&lt;br /&gt;{&lt;br /&gt;uint8_t i;&lt;br /&gt;for(;;)&lt;br /&gt;{&lt;br /&gt;for(i = 0; i &amp;lt; N_LED - 1; i++)&lt;br /&gt;{&lt;br /&gt;DDRB = ledData[i].mDdrB;&lt;br /&gt;PORTB = ledData[i].mPortB;&lt;br /&gt;_delay_ms(DELAY_TIME);&lt;br /&gt;}&lt;br /&gt;for(i = N_LED - 1;i &amp;gt; 0; i--)&lt;br /&gt;{&lt;br /&gt;DDRB = ledData[i].mDdrB;&lt;br /&gt;PORTB = ledData[i].mPortB;&lt;br /&gt;_delay_ms(DELAY_TIME);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-7870055419319240350?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/7870055419319240350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=7870055419319240350' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/7870055419319240350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/7870055419319240350'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2010/02/charlieplexed-leds.html' title='CharliePlexed LEDs'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-3746069964496196815</id><published>2010-02-07T23:21:00.000-08:00</published><updated>2010-02-07T23:31:29.859-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ATtiny13'/><category scheme='http://www.blogger.com/atom/ns#' term='AVR'/><title type='text'>RGB Night-lights</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/S28al6KdxgI/AAAAAAAAB0s/mx-xqmkVNw0/s1600-h/IMG_6107.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 134px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/S28al6KdxgI/AAAAAAAAB0s/mx-xqmkVNw0/s200/IMG_6107.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5435592513830110722"&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/S28amGi9keI/AAAAAAAAB00/_FFcp6BMnsY/s1600-h/IMG_6108.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 122px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/S28amGi9keI/AAAAAAAAB00/_FFcp6BMnsY/s200/IMG_6108.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5435592517154083298"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;My kids love lights; flashlights, LEDs, house lights, pen-lights, light-up teddy bears, the northern lights... you name it, they love it.  I've been playing around with RGB LEDs for another project along with ping-pong ball diffusers and baby jar containers.  It occurred to me that I could make a simple night-light with most of the same components &amp;amp; the girls were bound love 'em.   &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I put it all together on Saturday evening after the girls were in bed.  I think I'm getting better at all this as I had the code working and 2 lights put together by midnight.  The girls found them in the morning (unfortunately, very early...) and came into our bedroom to play with them.  First off, they played some kind of colour matching game where they were shouting (yes, shouting, early, in bed...) "RED! I'm wearing red!", "Blue! My socks are blue!".  After a bit of this they moved into their bedroom to make a 'tent' out of a couple of chairs and a duvet (comforter).  They played with the lights in there for a while; I'm not sure what they were doing as I was drifting in and out of consciousness.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's Sunday and I've just put the kids to bed.  They wanted to go to bed with their lights right next to them.  I declare them a success! &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;I apologise for the quality of this video.  It was taken on an iPhone and I've not been able to get hold of them again to take a proper vid.  I'm sure you get the idea though.&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-b8b10b7092910c9" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v22.nonxt6.googlevideo.com/videoplayback?id%3D0b8b10b7092910c9%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329988015%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D6BF11B9D6D991F685C7BF63A0602DF8DF172EC39.258EFA68B8A4A1DE8A3238ADCD1B14C167566CA6%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Db8b10b7092910c9%26offsetms%3D5000%26itag%3Dw160%26sigh%3DQX1Q5RqIVXhmt-V_h9G9-eagSdk&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v22.nonxt6.googlevideo.com/videoplayback?id%3D0b8b10b7092910c9%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329988015%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D6BF11B9D6D991F685C7BF63A0602DF8DF172EC39.258EFA68B8A4A1DE8A3238ADCD1B14C167566CA6%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Db8b10b7092910c9%26offsetms%3D5000%26itag%3Dw160%26sigh%3DQX1Q5RqIVXhmt-V_h9G9-eagSdk&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;Ingredients:&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/S28afciqzZI/AAAAAAAABz8/aE58nTpzoEg/s1600-h/IMG_6092.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 172px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/S28afciqzZI/AAAAAAAABz8/aE58nTpzoEg/s200/IMG_6092.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5435592402799349138"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;ATtiny13&lt;/li&gt;&lt;li&gt;RGB LED (common anode)&lt;/li&gt;&lt;li&gt;8 pin DIP socket&lt;/li&gt;&lt;li&gt;switch (the ones I used were SPDT)&lt;/li&gt;&lt;li&gt;coin cell battery holder&lt;/li&gt;&lt;li&gt;coin cell battery&lt;/li&gt;&lt;li&gt;baby jar&lt;/li&gt;&lt;li&gt;hookup wire (I used stranded 24 AWG).&lt;/li&gt;&lt;li&gt;ping pong ball&lt;/li&gt;&lt;li&gt;neodymium magnet&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;I used the magnet to attach everything to the lid of the baby jar.  I've not had much luck with hot-glue and lids (metal ones), so I figured this should work better.  I decided to put this together free-form (i.e. no perfboard), mainly for space reasons - but also as I like the aesthetics of the free-form projects (like this &lt;a href="http://tinkerlog.com/2009/12/12/geeky-advent/"&gt;advent wreath&lt;/a&gt; or this &lt;a href="http://tinkerlog.com/2007/05/09/programmable-led/"&gt;programmable led&lt;/a&gt;).&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;First off I realised that the DIP socket would fit nicely onto the side of my coin cell holders:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/S28af0TUfXI/AAAAAAAAB0E/-6A_WBqduBg/s1600-h/IMG_6095.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 146px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/S28af0TUfXI/AAAAAAAAB0E/-6A_WBqduBg/s200/IMG_6095.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5435592409177423218"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Then I added the neodymium magnet to the center of the holder:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/S28agKuKCZI/AAAAAAAAB0M/-dVcFdKOpb4/s1600-h/IMG_6097.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 146px;" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/S28agKuKCZI/AAAAAAAAB0M/-dVcFdKOpb4/s200/IMG_6097.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5435592415195564434"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This was actually a bad idea... these things are very strong and everything you're playing with at this point has some kind of ferrous metal involved.  This thing attracted the soldering iron, the solder, cut off leads, pliers, the helping hand...  If I do this again, I'd definitely wait until the end to attach the magnets.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Next step was to solder on the RGB LED:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/S28agb1sV0I/AAAAAAAAB0U/ZjoQM-Du6-E/s1600-h/IMG_6099.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 132px; height: 200px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/S28agb1sV0I/AAAAAAAAB0U/ZjoQM-Du6-E/s200/IMG_6099.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5435592419790575426"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You may notice that the socket has changed orientation.  I was planning on attaching wire to the leads of the LED so that it'd be easily positionable.  Then I realised that, since I only had a tiny amount of room in the jar, I could leave the LEDs leads in place and bend them to put the LED into the correct position.  That meant re-orientating the DIP socket (as seen above).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The LEDs common anode has not been attached at this point.  I added some heat-shrink tubing to this lead to insulate it from the others.  It has to be bent forward and could easily touch one of the adjacent leads.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Also, I sanded the LED casing to diffuse the light.  Without this step there are obvious areas of red/green/blue that shine on the ping pong ball from the LED.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Now all that's left is the final bit of wiring:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/S28aliYQ9OI/AAAAAAAAB0k/hK1_8f-sj30/s1600-h/IMG_6105.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 152px;" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/S28aliYQ9OI/AAAAAAAAB0k/hK1_8f-sj30/s200/IMG_6105.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5435592507445540066"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/S28agvxbPTI/AAAAAAAAB0c/GIckeKWZfb0/s1600-h/IMG_6101.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 198px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/S28agvxbPTI/AAAAAAAAB0c/GIckeKWZfb0/s200/IMG_6101.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5435592425141386546"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I attached the switch to Vcc and added a ground wire from the battery holder to the DIP socket.  The wire is bent around the magnet and was, er... "fun" to solder in place.  The soldering iron kept 'pinging' onto the magnet just as I was getting into position... like I said before, put the magnet on last!&lt;br /&gt;&lt;br /&gt;I decided to house the lights in baby food jars.  The only modification was to cut some holes for my switches (I used a Proxxon rotary tool for this).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Here's a few shots of them in working order:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/S28amGi9keI/AAAAAAAAB00/_FFcp6BMnsY/s1600-h/IMG_6108.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 122px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/S28amGi9keI/AAAAAAAAB00/_FFcp6BMnsY/s200/IMG_6108.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5435592517154083298"&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/S28al6KdxgI/AAAAAAAAB0s/mx-xqmkVNw0/s1600-h/IMG_6107.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 134px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/S28al6KdxgI/AAAAAAAAB0s/mx-xqmkVNw0/s200/IMG_6107.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5435592513830110722"&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size:large;"&gt;Code:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;I'm running the ATtiny at 8MHz.  This requires setting the fuse bits because the default setting is to divide the clock by 8.  This code uses the same software PWM as the &lt;a href="http://fangletronics.blogspot.com/2010/02/jar-o-fireflies-mark-ii.html"&gt;firefly-jar-II &lt;/a&gt;I wrote about previously.  No other tricks here, other than a hack (in the main method) to increase the duration of the RedToYellow transition.  That's just personal taste though &amp;amp; (since I'm fickle) I may remove that section in the future.&lt;br /&gt;&lt;br /&gt;Current code is available on &lt;a href="http://code.google.com/p/pboardman-avr/source/browse/rgbLedNightlight/rgbLedNightlight.c"&gt;code.google.com&lt;/a&gt;.  Here's the code that's running in my kids bedroom at the time of posting:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:c"&gt;/*&lt;br /&gt; * rgb_strobe.c&lt;br /&gt; *&lt;br /&gt; * Distributed under Creative Commons 3.0 -- Attib &amp;amp; Share Alike&lt;br /&gt; *&lt;br /&gt; *  Created on: Feb 6, 2010&lt;br /&gt; *      Author: PaulBo&lt;br /&gt; */&lt;br /&gt;#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;#include &amp;lt;avr/interrupt.h&amp;gt;&lt;br /&gt;#include &amp;lt;util/delay.h&amp;gt;&lt;br /&gt;&lt;br /&gt;#ifndef F_CPU&lt;br /&gt;    #define F_CPU 8000000UL&lt;br /&gt;#endif&lt;br /&gt;&lt;br /&gt;//Hardware definitions&lt;br /&gt;#define RED_LED      PB2&lt;br /&gt;#define GREEN_LED    PB1&lt;br /&gt;#define BLUE_LED     PB0&lt;br /&gt;#define ALL_LEDS    ((1 &amp;lt;&amp;lt; RED_LED) | (1 &amp;lt;&amp;lt; GREEN_LED) | (1 &amp;lt;&amp;lt; BLUE_LED))&lt;br /&gt;&lt;br /&gt;//Maximum value for led brightness&lt;br /&gt;#define R_MAX 255&lt;br /&gt;#define G_MAX 255&lt;br /&gt;#define B_MAX 255&lt;br /&gt;&lt;br /&gt;#define RED_INDEX   0&lt;br /&gt;#define GREEN_INDEX 1&lt;br /&gt;#define BLUE_INDEX  2&lt;br /&gt;&lt;br /&gt;//Cycle States&lt;br /&gt;#define RedToYellow     0&lt;br /&gt;#define YellowToGreen   1&lt;br /&gt;#define GreenToCyan     2&lt;br /&gt;#define CyanToBlue      3&lt;br /&gt;#define BlueToMagenta    4&lt;br /&gt;#define MagentaToRed     5&lt;br /&gt;&lt;br /&gt;//set red to max (we start in the RedToYellow state)&lt;br /&gt;volatile unsigned char mRgbBuffer[] = {0,0,0};&lt;br /&gt;unsigned char mRgbValues[] = {255,0,0};&lt;br /&gt;unsigned char mState;&lt;br /&gt;&lt;br /&gt;void init_timers()&lt;br /&gt;{&lt;br /&gt;    TIMSK0 = (1 &amp;lt;&amp;lt; TOIE0);         // enable overflow interrupt&lt;br /&gt;    TCCR0B = (1 &amp;lt;&amp;lt; CS00);          // start timer, no prescale&lt;br /&gt;&lt;br /&gt;    //enable interrupts&lt;br /&gt;    sei();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void rgbCycle(){&lt;br /&gt;    switch (mState) {&lt;br /&gt;    case RedToYellow:&lt;br /&gt;        mRgbValues[GREEN_INDEX]++;&lt;br /&gt;        if (mRgbValues[GREEN_INDEX] == G_MAX)&lt;br /&gt;            mState++;&lt;br /&gt;        break;&lt;br /&gt;    case YellowToGreen:&lt;br /&gt;        mRgbValues[RED_INDEX]--;&lt;br /&gt;        if (mRgbValues[RED_INDEX] == 0)&lt;br /&gt;            mState++;&lt;br /&gt;        break;&lt;br /&gt;    case GreenToCyan:&lt;br /&gt;        mRgbValues[BLUE_INDEX]++;&lt;br /&gt;        if (mRgbValues[BLUE_INDEX] == B_MAX)&lt;br /&gt;            mState++;&lt;br /&gt;        break;&lt;br /&gt;    case CyanToBlue:&lt;br /&gt;        mRgbValues[GREEN_INDEX]--;&lt;br /&gt;        if (mRgbValues[GREEN_INDEX] == 0)&lt;br /&gt;            mState++;&lt;br /&gt;        break;&lt;br /&gt;    case BlueToMagenta:&lt;br /&gt;        mRgbValues[RED_INDEX]++;&lt;br /&gt;        if (mRgbValues[RED_INDEX] == R_MAX)&lt;br /&gt;            mState++;&lt;br /&gt;        break;&lt;br /&gt;    case MagentaToRed:&lt;br /&gt;        mRgbValues[BLUE_INDEX]--;&lt;br /&gt;        if (mRgbValues[BLUE_INDEX] == 0)&lt;br /&gt;            mState++;&lt;br /&gt;        break;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    //state should never advance beyond 5.&lt;br /&gt;    //It wraps back to 0 when we reach 6&lt;br /&gt;    mState %= 6;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int main(void){&lt;br /&gt;    //Set LED pins to output&lt;br /&gt;    DDRB |= ALL_LEDS;&lt;br /&gt;&lt;br /&gt;    init_timers();&lt;br /&gt;&lt;br /&gt;    while (1) {&lt;br /&gt;        rgbCycle();&lt;br /&gt;        _delay_ms(250);&lt;br /&gt;&lt;br /&gt;        //I like the orange state and it only lasts for a second&lt;br /&gt;        //so lets extend it a little bit more&lt;br /&gt;        if(mState == RedToYellow)&lt;br /&gt;        {&lt;br /&gt;            _delay_ms(250);&lt;br /&gt;            _delay_ms(250);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt; * Timer/Counter overflow interrupt. This is called each time&lt;br /&gt; * the counter overflows (255 counts/cycles).&lt;br /&gt; */&lt;br /&gt;ISR(TIM0_OVF_vect)&lt;br /&gt;{&lt;br /&gt;    //static variables maintain state from one call to the next&lt;br /&gt;    static unsigned char sPortBmask = ALL_LEDS;&lt;br /&gt;    static unsigned char sCounter = 255;&lt;br /&gt;&lt;br /&gt;    //set port pins straight away (no waiting for processing)&lt;br /&gt;    PORTB = sPortBmask;&lt;br /&gt;&lt;br /&gt;    //this counter will overflow back to 0 after reaching 255.&lt;br /&gt;    //So we end up adjusting the LED states for every 256 interrupts/overflows.&lt;br /&gt;    if(++sCounter == 0)&lt;br /&gt;    {&lt;br /&gt;        mRgbBuffer[RED_INDEX] = mRgbValues[RED_INDEX];&lt;br /&gt;        mRgbBuffer[GREEN_INDEX] = mRgbValues[GREEN_INDEX];&lt;br /&gt;        mRgbBuffer[BLUE_INDEX] = mRgbValues[BLUE_INDEX];&lt;br /&gt;&lt;br /&gt;        //set all pins to low (remember this is a common anode LED)&lt;br /&gt;        sPortBmask &amp;amp;=~ ALL_LEDS;&lt;br /&gt;    }&lt;br /&gt;    //this loop is considered for every overflow interrupt.&lt;br /&gt;    //this is the software PWM.&lt;br /&gt;    if(mRgbBuffer[RED_INDEX]   == sCounter) sPortBmask |= (1 &amp;lt;&amp;lt; RED_LED);&lt;br /&gt;    if(mRgbBuffer[GREEN_INDEX] == sCounter) sPortBmask |= (1 &amp;lt;&amp;lt; GREEN_LED);&lt;br /&gt;    if(mRgbBuffer[BLUE_INDEX]  == sCounter) sPortBmask |= (1 &amp;lt;&amp;lt; BLUE_LED);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-3746069964496196815?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/3746069964496196815/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=3746069964496196815' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/3746069964496196815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/3746069964496196815'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2010/02/rgb-night-lights.html' title='RGB Night-lights'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_oN6pPL-C9vc/S28al6KdxgI/AAAAAAAAB0s/mx-xqmkVNw0/s72-c/IMG_6107.JPG' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-3873334971504881225</id><published>2010-02-02T23:53:00.000-08:00</published><updated>2010-02-02T23:55:08.250-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefly'/><category scheme='http://www.blogger.com/atom/ns#' term='ATtiny13'/><category scheme='http://www.blogger.com/atom/ns#' term='AVR'/><title type='text'>Jar-O-Fireflies (Mark II)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/S2fcR1bdUbI/AAAAAAAABz0/ulFmXEQ6lMI/s1600-h/IMG_6031.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 118px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/S2fcR1bdUbI/AAAAAAAABz0/ulFmXEQ6lMI/s200/IMG_6031.JPG" alt="" id="BLOGGER_PHOTO_ID_5433553674403926450" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I really enjoyed the process of making my first '&lt;a href="http://fangletronics.blogspot.com/2009/05/jar-o-fireflies.html"&gt;Jar-O-Fireflies&lt;/a&gt;' but I was a little disappointed with the performance (i.e. the software), especially the obvious flicker when the lights were pulsing on and off.  I've learned a lot more about how to program the AVR uCs over the last few months (but still just the basics really).  So, I decided to  re-write the software and make a smaller, battery powered, version.  I'm going to make another and put it in an empty Nuttela jar for the girls to use as a night light (I'm sure the girls will help me empty the jar).&lt;br /&gt;&lt;br /&gt;The software took a little while to sort out but the hardware, on the other hand, only took about 2 hours to put together.  Most of that was due to the fiddlyness of using magnet wire for the LED leads.&lt;br /&gt;&lt;br /&gt;Below is a little video of it working.  Yes, we have 'pet' ants at the moment - at least it was interested in what was going on...&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-695e9844f21a2385" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v15.nonxt4.googlevideo.com/videoplayback?id%3D695e9844f21a2385%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329988015%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D5AAA284177C6AE0D365E5AE24F8DC15B08F580E2.ECB46805C379B12086E9C040170946BE153A732%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D695e9844f21a2385%26offsetms%3D5000%26itag%3Dw160%26sigh%3DGv0aa4iA5dAstvuWGvOkF1BJ4GA&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v15.nonxt4.googlevideo.com/videoplayback?id%3D695e9844f21a2385%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329988015%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D5AAA284177C6AE0D365E5AE24F8DC15B08F580E2.ECB46805C379B12086E9C040170946BE153A732%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D695e9844f21a2385%26offsetms%3D5000%26itag%3Dw160%26sigh%3DGv0aa4iA5dAstvuWGvOkF1BJ4GA&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;The parts:&lt;br /&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;some magnet wire&lt;/li&gt;&lt;li&gt;coin cell holder (and coin cell to go with it)&lt;/li&gt;&lt;li&gt;perf board - I used a board with a semi breadboard layout (see picture below), but it wasn't much more help than a standard one other than having a common power and ground rail to connect everything to.&lt;/li&gt;&lt;li&gt;switch (one that fits onto a PCB/perf board)&lt;/li&gt;&lt;li&gt;8-pin dip&lt;/li&gt;&lt;li&gt;5 green LEDs (3mm)&lt;/li&gt;&lt;li&gt;ATtiny13&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/S2fcLgim29I/AAAAAAAABzM/tVOJmmvW1XY/s1600-h/IMG_6024.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 127px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/S2fcLgim29I/AAAAAAAABzM/tVOJmmvW1XY/s200/IMG_6024.JPG" alt="" id="BLOGGER_PHOTO_ID_5433553565717552082" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;This is the layout I used (for the battery holder, DIP socket and switch):&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/S2fcMI3EplI/AAAAAAAABzU/GrDg4xquPjg/s1600-h/IMG_6026.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 152px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/S2fcMI3EplI/AAAAAAAABzU/GrDg4xquPjg/s200/IMG_6026.JPG" alt="" id="BLOGGER_PHOTO_ID_5433553576540808786" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The trickiest part was soldering the magnet wire onto the LEDs.  I used a third-hand to hold all the pieces together.  It helps that the magnet wire is quite stiff and bendable even though it's thin.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/S2fcMRNHl-I/AAAAAAAABzc/knfnN3Hd8Ok/s1600-h/IMG_6027.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 133px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/S2fcMRNHl-I/AAAAAAAABzc/knfnN3Hd8Ok/s200/IMG_6027.JPG" alt="" id="BLOGGER_PHOTO_ID_5433553578780760034" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As you can see from the photo.  After soldering on the wire I twisted the two strands together.  After doing the 5 LEDs I realised that it'd be really nice to have 2 different colours of wire so that the positive and negative leads were obvious... oops.  I ended up testing each pair of wires with my &lt;a href="http://fangletronics.blogspot.com/2009/11/led-tester-mark-ii.html"&gt;LED tester&lt;/a&gt; to determine which lead was positive and which was negative.&lt;br /&gt;&lt;br /&gt;Then it's was just a matter of soldering on the LED leads to the board:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/S2fcNLXVnVI/AAAAAAAABzk/CqL1eorcO74/s1600-h/IMG_6028.JPG"&gt;&lt;img style="cursor: pointer; width: 185px; height: 200px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/S2fcNLXVnVI/AAAAAAAABzk/CqL1eorcO74/s200/IMG_6028.JPG" alt="" id="BLOGGER_PHOTO_ID_5433553594392878418" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Then I glued everything onto the jar lid (using a hot glue gun):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/S2fcNkbq4qI/AAAAAAAABzs/bsysvmz2Jwk/s1600-h/IMG_6030.JPG"&gt;&lt;img style="width: 192px; height: 200px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/S2fcNkbq4qI/AAAAAAAABzs/bsysvmz2Jwk/s200/IMG_6030.JPG" alt="" id="BLOGGER_PHOTO_ID_5433553601121936034" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Et voila!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/S2fcR1bdUbI/AAAAAAAABz0/ulFmXEQ6lMI/s1600-h/IMG_6031.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 118px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/S2fcR1bdUbI/AAAAAAAABz0/ulFmXEQ6lMI/s200/IMG_6031.JPG" alt="" id="BLOGGER_PHOTO_ID_5433553674403926450" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;Code&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;I've just started using &lt;a href="http://code.google.com/p/pboardman-avr/source/browse/"&gt;code.google.com&lt;/a&gt; as a code repository. The google site supports subversion source control (and there's a good plug-in for eclipse called subversive).    I'd been going back and forth between computers and it was turning into quite a headache trying to get the code in sync.   Now I can just push and pull from the code repository.&lt;br /&gt;&lt;br /&gt;Here's the location of the firefly code:&lt;br /&gt;http://code.google.com/p/pboardman-avr/source/browse/firefly_jar/firefly_jar.c&lt;br /&gt;&lt;br /&gt;This may change in the future as I tinker a bit more, so I'm including below the version of the code that was running when I wrote this post.  This version required setting the fuse bits for the ATtiny13 to make it run at 8MHz.  I also wrote a better software PWM routine (see the Atmel technote: &lt;a href="http://www.atmel.com/dyn/resources/prod_documents/doc8020.pdf"&gt;"Low-Jitter Multi Channel Software PWM"&lt;/a&gt;. &lt;span style="font-weight: bold;"&gt;Warning&lt;/span&gt;: PDF link).&lt;br /&gt;&lt;br /&gt;There are a few enhancements that I have in mind like actually using a random number generator for generating random numbers...  The reason I didn't was that I had trouble coming up with a method for generating a seed (without a differing seed, the pseudo random number generator would give the same sequence each time the AVR was switched on).  My latest project (post forthcoming) saves the seed in EEPROM and increments it each time the AVR is booted up - this way the random number generator produces a different sequence each time.  Anyway, here's the code:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush:c"&gt;&lt;br /&gt;/*&lt;br /&gt; * firefly_jar.c&lt;br /&gt; *&lt;br /&gt; * Distributed under Creative Commons 3.0 -- Attib &amp; Share Alike&lt;br /&gt; *&lt;br /&gt; *  Created on: Feb 2, 2010&lt;br /&gt; *      Author: PaulBo&lt;br /&gt; */&lt;br /&gt;#import &amp;lt;util/delay.h&amp;gt;&lt;br /&gt;#import &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;#import &amp;lt;avr/interrupt.h&amp;gt;&lt;br /&gt;&lt;br /&gt;#ifndef F_CPU&lt;br /&gt;    #define F_CPU 8000000UL&lt;br /&gt;#endif&lt;br /&gt;&lt;br /&gt;//LED pin definitions&lt;br /&gt;#define LED1    PB0&lt;br /&gt;#define LED2    PB1&lt;br /&gt;#define LED3    PB2&lt;br /&gt;#define LED4    PB3&lt;br /&gt;#define LED5    PB4&lt;br /&gt;#define N_LEDS  5&lt;br /&gt;#define ALL_LEDS (1 &amp;lt;&amp;lt; LED1) | (1 &amp;lt;&amp;lt; LED2) | (1 &amp;lt;&amp;lt; LED3) | (1 &amp;lt;&amp;lt; LED4) | (1 &amp;lt;&amp;lt; LED5)&lt;br /&gt;&lt;br /&gt;//Max value for LED brightness&lt;br /&gt;#define MAX     100&lt;br /&gt;&lt;br /&gt;#define PULSE_UP   1&lt;br /&gt;#define PULSE_DOWN 0&lt;br /&gt;&lt;br /&gt;volatile unsigned char buffer[N_LEDS];&lt;br /&gt;&lt;br /&gt;//counter for use in updateLedState() and pulseLeds()&lt;br /&gt;unsigned char i;&lt;br /&gt;&lt;br /&gt;//structure for storing data on each LED&lt;br /&gt;struct ledData {&lt;br /&gt;    unsigned char mBrightness;&lt;br /&gt;    unsigned int  mTime;&lt;br /&gt;    unsigned char mPin;&lt;br /&gt;    unsigned char mPulseDirection;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;//set up some initial values&lt;br /&gt;struct ledData led_data[] = {&lt;br /&gt;        {0, 1000,  LED1, PULSE_DOWN},&lt;br /&gt;        {0, 10, LED2, PULSE_DOWN},&lt;br /&gt;        {0, 500, LED3, PULSE_DOWN},&lt;br /&gt;        {0, 50, LED4, PULSE_DOWN},&lt;br /&gt;        {0, 150,  LED5, PULSE_DOWN}&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;//return a random time interval from 0 to 255&lt;br /&gt;int getTime()&lt;br /&gt;{&lt;br /&gt;    return TCNT0;//just read the current timer/counter value&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void updateLedState()&lt;br /&gt;{&lt;br /&gt;    for(i = 0; i &amp;lt; N_LEDS; i++)&lt;br /&gt;    {&lt;br /&gt;        switch(led_data[i].mBrightness)&lt;br /&gt;        {&lt;br /&gt;            case MAX://led is on&lt;br /&gt;                if(--led_data[i].mTime == 0)&lt;br /&gt;                {&lt;br /&gt;                    //decrement the brightness, this puts the LED in a&lt;br /&gt;                    //pulse state&lt;br /&gt;                    led_data[i].mBrightness--;&lt;br /&gt;&lt;br /&gt;                    //specify the &amp;quot;down&amp;quot; direction for pulsing&lt;br /&gt;                    led_data[i].mPulseDirection = PULSE_DOWN;&lt;br /&gt;                }&lt;br /&gt;                break;&lt;br /&gt;            case 0://led is off&lt;br /&gt;                if(--led_data[i].mTime == 0)&lt;br /&gt;                {&lt;br /&gt;                    //increment the brightness,this puts the LED in&lt;br /&gt;                    //a pulse state&lt;br /&gt;                    led_data[i].mBrightness++;&lt;br /&gt;&lt;br /&gt;                    //specify the &amp;quot;up&amp;quot; direction for pulsing&lt;br /&gt;                    led_data[i].mPulseDirection = PULSE_UP;&lt;br /&gt;&lt;br /&gt;                    //set the ON time&lt;br /&gt;                    led_data[i].mTime = getTime() + 1;&lt;br /&gt;                }&lt;br /&gt;                break;&lt;br /&gt;            default: //pulse state&lt;br /&gt;                if(led_data[i].mPulseDirection == PULSE_UP)&lt;br /&gt;                {&lt;br /&gt;                    led_data[i].mBrightness++;&lt;br /&gt;                }&lt;br /&gt;                else&lt;br /&gt;                {&lt;br /&gt;                    if(--led_data[i].mBrightness == 0)&lt;br /&gt;                    {&lt;br /&gt;                        //set the OFF time - make this longer than the on time&lt;br /&gt;                        led_data[i].mTime = (getTime() + 1) * 5;&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;                break;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void init_timers()&lt;br /&gt;{&lt;br /&gt;    TIMSK0 = (1 &amp;lt;&amp;lt; TOIE0);         // enable overflow interrupt&lt;br /&gt;    TCCR0B = (1 &amp;lt;&amp;lt; CS00);          // start timer, no prescale&lt;br /&gt;&lt;br /&gt;    //enable interrupts&lt;br /&gt;    sei();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void init_io()&lt;br /&gt;{&lt;br /&gt;    //set all LED pins as outputs&lt;br /&gt;    DDRB |= ALL_LEDS;&lt;br /&gt;    PORTB &amp;= ~(ALL_LEDS); //off to start&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void setup()&lt;br /&gt; {&lt;br /&gt;    init_io();&lt;br /&gt;    init_timers();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int main(void)&lt;br /&gt;{&lt;br /&gt;    setup();&lt;br /&gt;&lt;br /&gt;    //infinite loop&lt;br /&gt;    while(1)&lt;br /&gt;    {&lt;br /&gt;        updateLedState();&lt;br /&gt;        _delay_ms(10);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt; * Timer/Counter overflow interrupt. This is called each time&lt;br /&gt; * the counter overflows (255 counts/cycles).&lt;br /&gt; */&lt;br /&gt;ISR(TIM0_OVF_vect)&lt;br /&gt;{&lt;br /&gt;    //static variables maintain state from one call to the next&lt;br /&gt;    static unsigned char sPortBmask = ALL_LEDS;&lt;br /&gt;    static unsigned char sCounter = 255;&lt;br /&gt;&lt;br /&gt;    //set port pins straight away (no waiting for processing)&lt;br /&gt;    PORTB = sPortBmask;&lt;br /&gt;&lt;br /&gt;    //this counter will overflow back to 0 after reaching 255.&lt;br /&gt;    //So we end up adjusting the LED states for every 256 overflows.&lt;br /&gt;    if(++sCounter == 0)&lt;br /&gt;    {&lt;br /&gt;        for(i = 0; i &amp;lt; N_LEDS; i++)&lt;br /&gt;        {&lt;br /&gt;            buffer[i] = led_data[i].mBrightness;&lt;br /&gt;        }&lt;br /&gt;        //set all pins to high&lt;br /&gt;        sPortBmask = ALL_LEDS;&lt;br /&gt;    }&lt;br /&gt;    //this loop is considered for every overflow interrupt.&lt;br /&gt;    //this is the software PWM.&lt;br /&gt;    if(buffer[0] == sCounter) sPortBmask &amp;= ~(1 &amp;lt;&amp;lt; led_data[0].mPin);&lt;br /&gt;    if(buffer[1] == sCounter) sPortBmask &amp;= ~(1 &amp;lt;&amp;lt; led_data[1].mPin);&lt;br /&gt;    if(buffer[2] == sCounter) sPortBmask &amp;= ~(1 &amp;lt;&amp;lt; led_data[2].mPin);&lt;br /&gt;    if(buffer[3] == sCounter) sPortBmask &amp;= ~(1 &amp;lt;&amp;lt; led_data[3].mPin);&lt;br /&gt;    if(buffer[4] == sCounter) sPortBmask &amp;= ~(1 &amp;lt;&amp;lt; led_data[4].mPin);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-3873334971504881225?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/3873334971504881225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=3873334971504881225' title='17 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/3873334971504881225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/3873334971504881225'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2010/02/jar-o-fireflies-mark-ii.html' title='Jar-O-Fireflies (Mark II)'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_oN6pPL-C9vc/S2fcR1bdUbI/AAAAAAAABz0/ulFmXEQ6lMI/s72-c/IMG_6031.JPG' height='72' width='72'/><thr:total>17</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-6195840632921366687</id><published>2010-01-12T23:40:00.001-08:00</published><updated>2010-01-29T11:54:25.759-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='no electronics required'/><category scheme='http://www.blogger.com/atom/ns#' term='For the kids'/><title type='text'>Glow-in-the-Dark sketch wall and LED pens</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/S1FfIIJKAPI/AAAAAAAAByI/ZTGctcUmWg4/s1600-h/glowinthedarkwall7.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 118px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/S1FfIIJKAPI/AAAAAAAAByI/ZTGctcUmWg4/s200/glowinthedarkwall7.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5427223619187638514" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/S015ExPusdI/AAAAAAAABwo/7XjhhjniJMw/s1600-h/IMG_5790.JPG"&gt;&lt;img src="http://1.bp.blogspot.com/_oN6pPL-C9vc/S015ExPusdI/AAAAAAAABwo/7XjhhjniJMw/s200/IMG_5790.JPG" style="cursor: pointer; width: 200px; height: 194px;" alt="" id="BLOGGER_PHOTO_ID_5426126248897065426" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/S015qvJy2FI/AAAAAAAABxo/opDvVeoKSRk/s1600-h/IMG_5865.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 179px;" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/S015qvJy2FI/AAAAAAAABxo/opDvVeoKSRk/s200/IMG_5865.JPG" alt="" id="BLOGGER_PHOTO_ID_5426126901170329682" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I've finally realised one of my childhood dreams; I'm now the proud owner of a glow-in-the-dark wall - just don't tell the landlord!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I've had some glow-in-the-dark paint knocking around for quite a while and was inspired to do something with it when I saw this post on hackaday.com - "&lt;a href="http://hackaday.com/2010/01/05/record-player-display-sans-pov/"&gt;Record player display sans POV&lt;/a&gt;".  I thought "the kids" would have a lot of fun using LED flashlights to write on something that was phosphorescent.&lt;br /&gt;&lt;br /&gt;To start with I just coated some stiff card with the phosphorescent paint and hacked together a simple UV-LED flashlight.  The flashlight design was taken from this Instructable - "&lt;a href="http://www.instructables.com/id/Make_A_Mini_LED_Light/"&gt;Make A Mini LED Light&lt;/a&gt;".  I found it while trying to find ways to make my own battery holders for a more standard flashlight, but this idea was so simple and small that I decided to go with it instead.  All I did was to substitute a UV LED in place of a standard one.&lt;br /&gt;&lt;br /&gt;After making the prototype I showed it off to "'er indoors" (this may not mean much to you if you didn't grow up watching "Minder" in the U.K.).  Her response was a little unexpected - "Hmmm.... why don't we paint the wall with glow-in-the-dark paint?  That way loads of kids can play at once!".  So that's what we did :)  We isolated a good amount of wall with painters tape, we just wanted it to be slightly taller than the kids.  Then we put on 2 coats of white primer, 3 coats of the glow-in-the-dark paint and a couple of layers of varnish (so the kids didn't immediately scrape off the latex based glow paint).  After removing the painters tape, I was pleasantly surprised to see that the wall didn't look much different.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/S015buSXQEI/AAAAAAAABw4/vLjiHcfY0Qs/s1600-h/IMG_5808.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 134px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/S015buSXQEI/AAAAAAAABw4/vLjiHcfY0Qs/s200/IMG_5808.JPG" alt="" id="BLOGGER_PHOTO_ID_5426126643239796802" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/S1FgUtxwp-I/AAAAAAAAByo/cqjKjWufuYk/s1600-h/IMG_5941.jpg"&gt;&lt;img src="http://2.bp.blogspot.com/_oN6pPL-C9vc/S1FgUtxwp-I/AAAAAAAAByo/cqjKjWufuYk/s200/IMG_5941.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5427224934960113634" style="cursor: pointer; width: 200px; height: 134px; " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Unfortunately, my night time camera skills leave a lot to be desired (i.e. they're crap), so I don't have many pictures of the kids playing with the wall.  I can say that they were very excited and played with it for days &amp;amp; were very keen to get all their friends to play too whenever they came over.  At one point we had a complete sea-scape covering the whole canvas with storm clouds, jellyfish, 'normal' fish and deep sea monsters.  In the picture below I'm holding one of our home made light-sabers next to the wall in an attempt to allow the camera to focus (see this filthwizardry post for more lightsaber fun- "&lt;a href="http://filthwizardry.blogspot.com/2010/01/balloon-and-torch-lightsabres.html"&gt;balloon and torch lightsabers&lt;/a&gt;").&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/S015b6HKfvI/AAAAAAAABxA/Aczzozxq7Dw/s1600-h/IMG_5810.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 124px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/S015b6HKfvI/AAAAAAAABxA/Aczzozxq7Dw/s200/IMG_5810.JPG" alt="" id="BLOGGER_PHOTO_ID_5426126646414049010" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/S1FfITL1v1I/AAAAAAAAByQ/6nCel2uxHvU/s1600-h/glowinthedarkwall9.jpg"&gt;&lt;img src="http://2.bp.blogspot.com/_oN6pPL-C9vc/S1FfITL1v1I/AAAAAAAAByQ/6nCel2uxHvU/s200/glowinthedarkwall9.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5427223622151683922" style="cursor: pointer; width: 200px; height: 123px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/S015b6HKfvI/AAAAAAAABxA/Aczzozxq7Dw/s1600-h/IMG_5810.JPG"&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/S015qRK-1DI/AAAAAAAABxg/ecZZqRKhga8/s1600-h/IMG_5858.JPG"&gt;&lt;img src="http://3.bp.blogspot.com/_oN6pPL-C9vc/S015qRK-1DI/AAAAAAAABxg/ecZZqRKhga8/s200/IMG_5858.JPG" style="cursor: pointer; width: 200px; height: 174px;" alt="" id="BLOGGER_PHOTO_ID_5426126893122245682" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/S1FLbh05H8I/AAAAAAAAByA/eRUhw0SpzHY/s1600-h/IMG_5915.jpg"&gt;&lt;img src="http://3.bp.blogspot.com/_oN6pPL-C9vc/S1FLbh05H8I/AAAAAAAAByA/eRUhw0SpzHY/s200/IMG_5915.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5427201962266927042" style="cursor: pointer; width: 200px; height: 122px; " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I think one of the favourite activities, however, was with an old SLR camera flash.   Get the kids up against the wall and blind them with the flash.  If they recover (ok, you could just tell them to close their eyes) they'll get to see themselves glowing in silhouette form on the wall .&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/S015cso3g9I/AAAAAAAABxQ/PJORxfrR76E/s1600-h/IMG_5822.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 121px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/S015cso3g9I/AAAAAAAABxQ/PJORxfrR76E/s200/IMG_5822.JPG" alt="" id="BLOGGER_PHOTO_ID_5426126659977184210" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/S015cXOFnMI/AAAAAAAABxI/fpBPhaE2Cww/s1600-h/IMG_5820.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 102px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/S015cXOFnMI/AAAAAAAABxI/fpBPhaE2Cww/s200/IMG_5820.JPG" alt="" id="BLOGGER_PHOTO_ID_5426126654227717314" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/S1FLbeo11vI/AAAAAAAABx4/kDzEX40dPw4/s1600-h/glowinthedarkwall3.jpg"&gt;&lt;img src="http://2.bp.blogspot.com/_oN6pPL-C9vc/S1FLbeo11vI/AAAAAAAABx4/kDzEX40dPw4/s200/glowinthedarkwall3.jpg" style="cursor:pointer; cursor:hand;width: 200px; height: 126px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5427201961411073778" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/S1FfIwrVSoI/AAAAAAAAByY/MjitXHNdE3g/s1600-h/glowinthedarkwall8.jpg"&gt;&lt;img src="http://4.bp.blogspot.com/_oN6pPL-C9vc/S1FfIwrVSoI/AAAAAAAAByY/MjitXHNdE3g/s200/glowinthedarkwall8.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5427223630068402818" style="cursor: pointer; width: 200px; height: 134px; " /&gt;&lt;/a&gt;&lt;br /&gt;Hmm... ok, maybe it was one of my favourite activities as well.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;After a couple of days playing, I ended up buying some LED keychain flashlights (like &lt;a href="http://www.amazon.com/MICRO-BLACK-KEYCHAIN-BRIGHT-FLASHLIGHT/dp/B001I9EICI/ref=sr_1_3?ie=UTF8&amp;amp;s=hi&amp;amp;qid=1263621469&amp;amp;sr=8-3"&gt;these&lt;/a&gt; from Amazon) as I quickly ran out of parts.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here's a few in-production pictures of the ones I made:&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/S015DqHhvBI/AAAAAAAABwQ/NGxJZ8l7qsg/s1600-h/IMG_5787.JPG"&gt;&lt;img src="http://3.bp.blogspot.com/_oN6pPL-C9vc/S015DqHhvBI/AAAAAAAABwQ/NGxJZ8l7qsg/s200/IMG_5787.JPG" style="cursor: pointer; width: 200px; height: 134px;" alt="" id="BLOGGER_PHOTO_ID_5426126229803744274" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/S015EEfqxJI/AAAAAAAABwY/hhGBe2VG8xU/s1600-h/IMG_5788.JPG"&gt;&lt;img src="http://2.bp.blogspot.com/_oN6pPL-C9vc/S015EEfqxJI/AAAAAAAABwY/hhGBe2VG8xU/s200/IMG_5788.JPG" style="cursor: pointer; width: 200px; height: 134px;" alt="" id="BLOGGER_PHOTO_ID_5426126236884321426" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;I made 4 to begin with.  All you need is a pushbutton, a UV LED, a coin cell battery and holder (and a soldering iron + solder for connecting it all up).&lt;br /&gt;&lt;br /&gt;Connect the positive lead of the LED to the positive battery holder connector, cut off the rest of the lead so it doesn't get in the way, then attach the pushbutton to the negative battery holder connection and the negative LED lead.  That's it!&lt;div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/S015EuSas0I/AAAAAAAABwg/13VUzvhmSm8/s1600-h/IMG_5789.JPG"&gt;&lt;img src="http://4.bp.blogspot.com/_oN6pPL-C9vc/S015EuSas0I/AAAAAAAABwg/13VUzvhmSm8/s200/IMG_5789.JPG" style="cursor: pointer; width: 200px; height: 134px;" alt="" id="BLOGGER_PHOTO_ID_5426126248103031618" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/S015ExPusdI/AAAAAAAABwo/7XjhhjniJMw/s1600-h/IMG_5790.JPG"&gt;&lt;img src="http://1.bp.blogspot.com/_oN6pPL-C9vc/S015ExPusdI/AAAAAAAABwo/7XjhhjniJMw/s200/IMG_5790.JPG" style="cursor: pointer; width: 200px; height: 194px;" alt="" id="BLOGGER_PHOTO_ID_5426126248897065426" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here's the first one working (nice purple glow).  Some hot glue made for good protection and electrical tape wrapped around the base of the LED helped to focus the beam.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/S015Fe3XaAI/AAAAAAAABww/EN_rAOWexA8/s1600-h/IMG_5792.JPG"&gt;&lt;img src="http://4.bp.blogspot.com/_oN6pPL-C9vc/S015Fe3XaAI/AAAAAAAABww/EN_rAOWexA8/s200/IMG_5792.JPG" style="cursor: pointer; width: 200px; height: 134px;" alt="" id="BLOGGER_PHOTO_ID_5426126261142906882" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/S1FfJIHy1NI/AAAAAAAAByg/AJr_wQ71Rdw/s1600-h/IMG_5921.jpg"&gt;&lt;img src="http://2.bp.blogspot.com/_oN6pPL-C9vc/S1FfJIHy1NI/AAAAAAAAByg/AJr_wQ71Rdw/s200/IMG_5921.jpg" style="cursor:pointer; cursor:hand;width: 200px; height: 120px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5427223636361794770" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;You should probably use a resistor to protect the LED...  The datasheet for my LED stated that it required 3.2V to operate and the coin cell is only rated at 3V so I decided to leave the resistor out.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Important:&lt;/b&gt; Bright lights/UV lights can damage your eyesight.  Do not shine the lights into anyone's eyes and make sure any kids playing with these are supervised and told to shine the light only at the wall.  Extra care should be used when using UV light - the human eye can not detect it (i.e. you can't see it) which makes it easier to overexpose your retina as you don't have the same pain response as with intense light in the visible spectrum.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you're nervous about this then the standard keychain lights work pretty well.  The homemade UV ones just give a longer lasting glow.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-6195840632921366687?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/6195840632921366687/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=6195840632921366687' title='38 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/6195840632921366687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/6195840632921366687'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2010/01/glow-in-dark-sketch-wall-and-led-pens.html' title='Glow-in-the-Dark sketch wall and LED pens'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_oN6pPL-C9vc/S1FfIIJKAPI/AAAAAAAAByI/ZTGctcUmWg4/s72-c/glowinthedarkwall7.jpg' height='72' width='72'/><thr:total>38</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-6909738014512904520</id><published>2009-12-17T16:17:00.000-08:00</published><updated>2009-12-21T16:00:12.445-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='For the kids'/><category scheme='http://www.blogger.com/atom/ns#' term='ATtiny13'/><category scheme='http://www.blogger.com/atom/ns#' term='AVR'/><title type='text'>Duplo Traffic Lights</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/SysQ5-wyqRI/AAAAAAAABvo/f7_Ry3z7VI4/s1600-h/IMG_5155.jpg"&gt;&lt;img style="cursor: pointer; width: 140px; height: 200px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/SysQ5-wyqRI/AAAAAAAABvo/f7_Ry3z7VI4/s200/IMG_5155.jpg" alt="" id="BLOGGER_PHOTO_ID_5416441565129386258" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/SysQ8mIUjBI/AAAAAAAABvw/qQCXolhgMEo/s1600-h/IMG_5156.jpg"&gt;&lt;img style="cursor: pointer; width: 138px; height: 200px;" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/SysQ8mIUjBI/AAAAAAAABvw/qQCXolhgMEo/s200/IMG_5156.jpg" alt="" id="BLOGGER_PHOTO_ID_5416441610056797202" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We've been playing with LEGO and DUPLO quite a lot at home recently (Lin's been doing some great work on expanding our LEGO possibilities - see these posts over on filthwizardry: "&lt;a href="http://filthwizardry.blogspot.com/2009/12/lego-and-hole-punching-card.html"&gt;Lego and hole punching cards&lt;/a&gt;", "&lt;a href="http://filthwizardry.blogspot.com/2009/12/festive-card-hole-punching-with-more.html"&gt;Festive card punching with more LEGO&lt;/a&gt;", "&lt;a href="http://filthwizardry.blogspot.com/2009/12/lego-duplo-and-whats-in-recycling-bin.html"&gt;LEGO and DUPLO&lt;/a&gt;" and "&lt;a href="http://filthwizardry.blogspot.com/2009/12/lego-car-and-duplo-truck-cardboard.html"&gt;LEGO car and DUPLO truck cardboard printables&lt;/a&gt;").&lt;br /&gt;&lt;br /&gt;I thought it'd be really nice to be able to add some traffic lights (like &lt;a href="http://fangletronics.blogspot.com/2009/08/toy-traffic-lights.html"&gt;these ones&lt;/a&gt; I made a while back) to the creative fun.  Lin suggested I house some in a DUPLO block, so I set to work trying to figure out how to do it.&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-1f636f5df20102f2" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v13.nonxt7.googlevideo.com/videoplayback?id%3D1f636f5df20102f2%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329988015%26sparams%3Did,itag,ip,ipbits,expire%26signature%3DB939046709815E298A7405279D3870C0173F5B2.7ED86B00F1B01873DE4DECF7DDF50EC88DFABD37%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D1f636f5df20102f2%26offsetms%3D5000%26itag%3Dw160%26sigh%3DvxVqSA0UUufEKKzHwUXtFJpxPN0&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v13.nonxt7.googlevideo.com/videoplayback?id%3D1f636f5df20102f2%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329988015%26sparams%3Did,itag,ip,ipbits,expire%26signature%3DB939046709815E298A7405279D3870C0173F5B2.7ED86B00F1B01873DE4DECF7DDF50EC88DFABD37%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D1f636f5df20102f2%26offsetms%3D5000%26itag%3Dw160%26sigh%3DvxVqSA0UUufEKKzHwUXtFJpxPN0&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Ingredients: 3 LEDs (red, yellow, green), 3 resistors (I used 330 ohm), ATtiny13, 8 pin DIP socket, perf board, magnet wire (thin), switch, stranded wire (black and red), coin cell battery, DUPLO blocks (the 8 knobble variety, 1 standard and 2 thin).&lt;br /&gt;&lt;br /&gt;Tools: soldering iron, dremel, hot glue gun, various dremel attachments and drill bits (depending on your LEDs and switch).&lt;br /&gt;&lt;br /&gt;The three holes/cylinders on the underside of a standard DUPLO block are perfect for traffic light mimicry.  I ended up using 3 blocks, one large and two thin.  The large block houses the electronics and the switch, one thin piece has 3 holes drilled in it for the LEDs and the last piece is used on the back as a battery cover.&lt;br /&gt;&lt;br /&gt;Here's a couple of pictures showing the carved out bricks.  You have to leave some of the 'tubing' in the large brick in order for the other brick to still connect normally.   I used a dremel to cut off the 4 middle bobbles from the thinner piece - leaving a hollow center, between the two pieces, for the electronics.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/SysQys4PRjI/AAAAAAAABvA/iMGU1gi9JAU/s1600-h/IMG_5148.jpg"&gt;&lt;img style="cursor: pointer; width: 184px; height: 200px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/SysQys4PRjI/AAAAAAAABvA/iMGU1gi9JAU/s200/IMG_5148.jpg" alt="" id="BLOGGER_PHOTO_ID_5416441440069699122" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/SysQyQZPNeI/AAAAAAAABu4/-tNG1Tqzt-w/s1600-h/IMG_5147.jpg"&gt;&lt;img style="cursor: pointer; width: 200px; height: 158px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/SysQyQZPNeI/AAAAAAAABu4/-tNG1Tqzt-w/s200/IMG_5147.jpg" alt="" id="BLOGGER_PHOTO_ID_5416441432423478754" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I haven't taken a picture of the remaining thin block, I hollowed that out in the same manner as the larger block, to make room for the coin cell battery.  Again leaving enough of the innards so it'd still fit tightly on the back of the main block.&lt;br /&gt;&lt;br /&gt;I drilled 3 holes in the front piece (the thin black one above) directly in the center of the three tubes; the holes need to be just the right size for the LEDs to fit snuggly (I messed this up with my first prototype).  I also drilled a small hole in the center of the big block for the power wires to feed through later on.  This way you can have all the electronics hidden in the main block and have the battery accessible on the back.&lt;br /&gt;&lt;br /&gt;The main board is just a small bit of perf-board with the 8-pin DIP socket soldered on.  I'm using the same code as &lt;a href="http://fangletronics.blogspot.com/2009/08/toy-traffic-lights.html"&gt;last time&lt;/a&gt;, so the LEDs and resistors are attached to pins 5, 6 and 7 (PB0, PB1 and PB2 respectively).  I used magnet wire to attach the LEDs as it's flexible and takes up very little room. I tried just soldering the LEDs directly onto the perf-board but that made it difficult to get a good fit later on. If you give this a go, remember to sand the insulation off the ends of the magnet wire before soldering.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/SysQxGByn1I/AAAAAAAABug/DXLx_NZWkmE/s1600-h/IMG_5059.jpg"&gt;&lt;img style="cursor: pointer; width: 200px; height: 131px;" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/SysQxGByn1I/AAAAAAAABug/DXLx_NZWkmE/s200/IMG_5059.jpg" alt="" id="BLOGGER_PHOTO_ID_5416441412460912466" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/SysQxrgQLnI/AAAAAAAABuo/crYVPvGuvzU/s1600-h/IMG_5060.jpg"&gt;&lt;img style="cursor: pointer; width: 200px; height: 174px;" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/SysQxrgQLnI/AAAAAAAABuo/crYVPvGuvzU/s200/IMG_5060.jpg" alt="" id="BLOGGER_PHOTO_ID_5416441422520790642" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Add a switch:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/SysQx1iR7AI/AAAAAAAABuw/kb9buFEz-L8/s1600-h/IMG_5146.jpg"&gt;&lt;img style="cursor: pointer; width: 200px; height: 153px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/SysQx1iR7AI/AAAAAAAABuw/kb9buFEz-L8/s200/IMG_5146.jpg" alt="" id="BLOGGER_PHOTO_ID_5416441425213647874" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Then place it all inside the main block (feeding the power wires out of the hole in the back).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/SysQ41tXuqI/AAAAAAAABvI/mxG9NvJILxA/s1600-h/IMG_5151.jpg"&gt;&lt;img style="cursor: pointer; width: 200px; height: 168px;" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/SysQ41tXuqI/AAAAAAAABvI/mxG9NvJILxA/s200/IMG_5151.jpg" alt="" id="BLOGGER_PHOTO_ID_5416441545519250082" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Then glue the LEDs into the holes of the front piece and close it all up. I'm probably going to have to glue it shut in the future to keep out fiddling fingers.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/SysQ5DQtN0I/AAAAAAAABvQ/ReiMY0LThNQ/s1600-h/IMG_5152.jpg"&gt;&lt;img style="cursor: pointer; width: 118px; height: 200px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/SysQ5DQtN0I/AAAAAAAABvQ/ReiMY0LThNQ/s200/IMG_5152.jpg" alt="" id="BLOGGER_PHOTO_ID_5416441549157119810" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I didn't have a coin cell holder, so I scavenged some metal tabs from the innards of a happy meal toy and soldered these onto the ends of the power leads.  Then I taped them tightly onto the coin-cell.  Clip on the battery cover (3rd block) and it's all done.  This would all be a bit cleaner if there was a coin cell holder attached to the back in some way (I'll give that a go next time).&lt;br /&gt;&lt;br /&gt;Here's the lights in operation (with my first attempt on the right which has directly soldered LEDs and an ugly switch):&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-26c73779a9e95fd5" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v5.nonxt2.googlevideo.com/videoplayback?id%3D26c73779a9e95fd5%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329988015%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D2F0D2DBFC8F6EB54FDDCBA655EBC051F6DC7D811.6508AEA06764E817B1ABBA8B03A532705C808CD8%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D26c73779a9e95fd5%26offsetms%3D5000%26itag%3Dw160%26sigh%3DZrSzbLqltcTdeumrK9Cr_CX5__w&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v5.nonxt2.googlevideo.com/videoplayback?id%3D26c73779a9e95fd5%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329988015%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D2F0D2DBFC8F6EB54FDDCBA655EBC051F6DC7D811.6508AEA06764E817B1ABBA8B03A532705C808CD8%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D26c73779a9e95fd5%26offsetms%3D5000%26itag%3Dw160%26sigh%3DZrSzbLqltcTdeumrK9Cr_CX5__w&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;The kids really do seem to like them!  The original lights have had to be repaired a few times from er... 'overly keen' play.  Well, that and Ffion ripping them apart.&lt;br /&gt;&lt;br /&gt;Next ideas are to make them easier to include with normal duplo play by attaching blocks to the top and bottom (may require some cutting and gluing).  Another good addition would be to have lights on both sides of the block to control traffic in both directions (so when one side is green the other is red).  If only I had more black duplo...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-6909738014512904520?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/6909738014512904520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=6909738014512904520' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/6909738014512904520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/6909738014512904520'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2009/12/duplo-traffic-lights.html' title='Duplo Traffic Lights'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_oN6pPL-C9vc/SysQ5-wyqRI/AAAAAAAABvo/f7_Ry3z7VI4/s72-c/IMG_5155.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-698658314721732940</id><published>2009-11-22T23:36:00.000-08:00</published><updated>2009-12-21T16:00:17.864-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AVR'/><title type='text'>64-bit Windows 7 and the AVR ISP USB programmer</title><content type='html'>Just a very quick note about this.&lt;br /&gt;&lt;br /&gt;I upgraded my laptop to 64-bit Windows 7 a week or so ago and have just gotten round to setting it up for AVR programming.  I thought for a while that I'd never get my USB programmer to work (AVRStudio couldn't auto detect my AVR ISP even after installing/reinstalling).  After a little bit of searching I found &lt;a href="http://www.avrfreaks.net/index.php?name=PNphpBB2&amp;amp;file=viewtopic&amp;amp;t=82994"&gt;this thread &lt;/a&gt;on avrfreaks.net.  I followed the directions, allowed windows to discover the correct drivers at the end of the process and, badabing-badaboom, everything now works fine (other than the fact that I installed a 32 bit Eclipse that isn't happy...).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-698658314721732940?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/698658314721732940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=698658314721732940' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/698658314721732940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/698658314721732940'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2009/11/windows-7-and-avr-isp-usb-programmer.html' title='64-bit Windows 7 and the AVR ISP USB programmer'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-2661158876693920277</id><published>2009-11-03T12:15:00.000-08:00</published><updated>2009-11-04T21:12:07.074-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='general electronics'/><title type='text'>LED Tester Mark II</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/SuzU33GfbNI/AAAAAAAABrY/s05C9GaLRC4/s1600-h/IMG_4338.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 182px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/SuzU33GfbNI/AAAAAAAABrY/s05C9GaLRC4/s200/IMG_4338.JPG" alt="" id="BLOGGER_PHOTO_ID_5398924109459451090" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ok, so the &lt;a href="http://fangletronics.blogspot.com/2009/07/led-tester.html"&gt;last one&lt;/a&gt; I made had a serious flaw... it'd burn out any LED that couldn't take 3V...  Oops!  I recently bought a new soldering iron (&lt;a href="http://www.allelectronics.com/make-a-store/item/IR-258/16-30W-VARI-TEMP-SOLDERING-IRON/-/1.html"&gt;variable temp, xytronics&lt;/a&gt; from &lt;a href="http://www.allelectronics.com/index.php"&gt;allelectronics.com&lt;/a&gt;) and wanted to play with it, so I thought it was time to replace the LED burner with an LED tester.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Basic ingredients: wire, some resistors, an 8 pin DIP socket, a pushbutton and some perfboard.  I treated myself to an automatic wire stripper the other day ($8 from Fry's), it's great!  I've been using it quite a lot.  No need for it in this project really, but I like to show off my toys.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/SuzUpSDh4DI/AAAAAAAABqI/RONT6sFwhlg/s1600-h/IMG_4072.JPG"&gt;&lt;img src="http://1.bp.blogspot.com/_oN6pPL-C9vc/SuzUpSDh4DI/AAAAAAAABqI/RONT6sFwhlg/s200/IMG_4072.JPG" alt="" id="BLOGGER_PHOTO_ID_5398923858996748338" style="cursor: pointer; width: 200px; height: 134px;" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Here's the basic wiring and soldering for the resistors and socket (this is what I messed up in the first iteration):&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/SuzUp6ovfqI/AAAAAAAABqQ/mHBBjb5MN_U/s1600-h/IMG_4073.JPG"&gt;&lt;img src="http://1.bp.blogspot.com/_oN6pPL-C9vc/SuzUp6ovfqI/AAAAAAAABqQ/mHBBjb5MN_U/s200/IMG_4073.JPG" alt="" id="BLOGGER_PHOTO_ID_5398923869890248354" style="cursor: pointer; width: 200px; height: 126px;" border="0" /&gt;&lt;/a&gt;&lt;img src="http://1.bp.blogspot.com/_oN6pPL-C9vc/SuzUp12D16I/AAAAAAAABqY/5zdk90dK5p4/s200/IMG_4074.JPG" alt="" id="BLOGGER_PHOTO_ID_5398923868603930530" style="cursor: pointer; width: 200px; height: 167px;" border="0" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;At midnight I ended up with the following "finished" product (I should have learned by now not to start late at night...):&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/SuzUqdjTLSI/AAAAAAAABqo/a2EloXI3Q5A/s1600-h/IMG_4076.JPG"&gt;&lt;img src="http://3.bp.blogspot.com/_oN6pPL-C9vc/SuzUqdjTLSI/AAAAAAAABqo/a2EloXI3Q5A/s200/IMG_4076.JPG" alt="" id="BLOGGER_PHOTO_ID_5398923879262661922" style="cursor: pointer; width: 200px; height: 186px;" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The problem was that I'd completely wired the push button wrong. In the above wiring, the power lines are connected to the positive and negative rails on the DIP socket, which meant the LEDs lit up as soon as they came in contact with the DIP.  On pushing the switch the LEDs would turn off because the positive and negative leads from the battery holder were shorted...  bah! &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A few days later, I came back and repaired it (button connects and disconnects +ve terminal, -ve terminal is wired directly):&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/SuzU0KWd9QI/AAAAAAAABq4/uahbO34BeTo/s1600-h/IMG_4332.JPG"&gt;&lt;img src="http://4.bp.blogspot.com/_oN6pPL-C9vc/SuzU0KWd9QI/AAAAAAAABq4/uahbO34BeTo/s200/IMG_4332.JPG" alt="" id="BLOGGER_PHOTO_ID_5398924045907260674" style="cursor: pointer; width: 200px; height: 180px;" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A view from the top.&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/SuzUz6BCUrI/AAAAAAAABqw/h1QVH_41dTw/s1600-h/IMG_4331.JPG"&gt;&lt;img src="http://4.bp.blogspot.com/_oN6pPL-C9vc/SuzUz6BCUrI/AAAAAAAABqw/h1QVH_41dTw/s200/IMG_4331.JPG" alt="" id="BLOGGER_PHOTO_ID_5398924041522401970" style="cursor: pointer; width: 200px; height: 174px;" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/SuzU0Qk-URI/AAAAAAAABrA/lBGCzC56z7I/s1600-h/IMG_4333.JPG"&gt;&lt;img src="http://2.bp.blogspot.com/_oN6pPL-C9vc/SuzU0Qk-URI/AAAAAAAABrA/lBGCzC56z7I/s200/IMG_4333.JPG" alt="" id="BLOGGER_PHOTO_ID_5398924047578714386" style="cursor: pointer; width: 200px; height: 166px;" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Single LED test. You can see the multi-LED test picture at the top of this post.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/SuzU0gFaGaI/AAAAAAAABrI/xZxohld4FVc/s1600-h/IMG_4336.JPG"&gt;&lt;img src="http://3.bp.blogspot.com/_oN6pPL-C9vc/SuzU0gFaGaI/AAAAAAAABrI/xZxohld4FVc/s200/IMG_4336.JPG" alt="" id="BLOGGER_PHOTO_ID_5398924051741284770" style="cursor: pointer; width: 200px; height: 186px;" border="0" /&gt;&lt;/a&gt;&lt;img src="http://4.bp.blogspot.com/_oN6pPL-C9vc/SuzU06EmCwI/AAAAAAAABrQ/cHfpEuj8z00/s200/IMG_4337.JPG" alt="" id="BLOGGER_PHOTO_ID_5398924058717195010" style="cursor: pointer; width: 200px; height: 179px;" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;The soldering iron is much better than the Weller I'd bought (it was a bottom of the line weller min you).  It heats up fast and the tip is noticeably better quality.  The power cord, however, is very thick and reduced the maneuverability of the iron.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-2661158876693920277?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/2661158876693920277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=2661158876693920277' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/2661158876693920277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/2661158876693920277'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2009/11/led-tester-mark-ii.html' title='LED Tester Mark II'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_oN6pPL-C9vc/SuzU33GfbNI/AAAAAAAABrY/s05C9GaLRC4/s72-c/IMG_4338.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-1296639902860280120</id><published>2009-11-01T15:13:00.000-08:00</published><updated>2009-11-04T21:12:20.670-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='general electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='For the kids'/><category scheme='http://www.blogger.com/atom/ns#' term='555'/><title type='text'>Flashing Bat Eyes</title><content type='html'>&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/Su35cYNEs8I/AAAAAAAABsw/W3ZSNtFvW4Q/s1600-h/IMG_4362.JPG"&gt;&lt;/a&gt;&lt;img src="http://1.bp.blogspot.com/_oN6pPL-C9vc/Su35cYNEs8I/AAAAAAAABsw/W3ZSNtFvW4Q/s200/IMG_4362.JPG" style="cursor:pointer; cursor:hand;width: 200px; height: 116px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5399245794216031170" /&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-29417be0f81b5186" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v16.nonxt7.googlevideo.com/videoplayback?id%3D29417be0f81b5186%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329988015%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D77736E82174ECD60F241F1D4891DC04942C52406.30205A95D0AA35DE1AB1772589549CA6EAAD7FDF%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D29417be0f81b5186%26offsetms%3D5000%26itag%3Dw160%26sigh%3D_RVXty3A2_2QnVIVgh4qzYkOaYM&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v16.nonxt7.googlevideo.com/videoplayback?id%3D29417be0f81b5186%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329988015%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D77736E82174ECD60F241F1D4891DC04942C52406.30205A95D0AA35DE1AB1772589549CA6EAAD7FDF%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D29417be0f81b5186%26offsetms%3D5000%26itag%3Dw160%26sigh%3D_RVXty3A2_2QnVIVgh4qzYkOaYM&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Very simple project. You just need a 555 timer a couple of resistors, a capacitor, a couple of LEDs and a talented wife to provide a bat ;)  I think she'll be adding a post on making the Halloween bats so I'll link to it once it's up.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I used the following &lt;a href="http://home.cogeco.ca/~rpaisley4/LM555.html#3"&gt;online calculator&lt;/a&gt; to work out the values for R1, R2 and C1 for the standard &lt;a href="http://www.kpsec.freeuk.com/555timer.htm#astable"&gt;astable 555&lt;/a&gt; set up.  I ended up with: R1 = 3K Ohm, R2 = 570 Ohm and C1 = 100uF (mainly because that was the combination of components that I had lying around and that gave an acceptable output wave).  I didn't bother adding a switch to this one, I'm not sure why as it'd be very easy... here's the fully wired up project:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/Su35MrC1F3I/AAAAAAAABsI/BPCfoErT1J8/s1600-h/IMG_4315.JPG"&gt;&lt;img src="http://3.bp.blogspot.com/_oN6pPL-C9vc/Su35MrC1F3I/AAAAAAAABsI/BPCfoErT1J8/s200/IMG_4315.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5399245524395431794" style="cursor: pointer; width: 200px; height: 126px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Did you notice the 9V battery clip onto an 2xAA holder?  Weird eh?  Useful though.  I think I picked up the battery case at radioshack.  You'll also have noticed that I decided to try a free-form (no perf-board) approach.  It was a bit fiddly, but worked out ok.  I still haven't found a combination of 3rd hand/clamp/foot/nose that works for me for these fiddly soldering projects...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here's a couple of close-ups of the soldered 555 itself:&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/Su35NFIBGmI/AAAAAAAABsY/QV5-ueqeT8c/s1600-h/IMG_4320.JPG"&gt;&lt;img src="http://1.bp.blogspot.com/_oN6pPL-C9vc/Su35NFIBGmI/AAAAAAAABsY/QV5-ueqeT8c/s200/IMG_4320.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5399245531396512354" style="cursor: pointer; width: 200px; height: 155px; " /&gt;&lt;/a&gt;&lt;img src="http://2.bp.blogspot.com/_oN6pPL-C9vc/Su35MzO_pjI/AAAAAAAABsQ/WFbIN3FA_DI/s200/IMG_4318.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5399245526593938994" style="cursor: pointer; width: 190px; height: 200px; " /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Most of the time I had the 555 held with a crocodile clip (on the 3rd hand).  Unfortunately, I bought a really cheap 3rd hand from a market and the crocodile clips are not stable so everything kept moving around whilst I was trying to work on it... bah.  At points I ended up jamming the chip into a corner of the 3rd hand base whilst pushing at it with the soldering iron.  Not very elegant or skilled... any advice is greatly welcomed!&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/Su35MrC1F3I/AAAAAAAABsI/BPCfoErT1J8/s1600-h/IMG_4315.JPG"&gt;&lt;/a&gt;&lt;br /&gt;All that's left was to poke out some holes for the bats eyes and to mangle it all into the available space.  I made the holes big enough for the dome of the LEDs to fit through but small enough to prevent the rest of the LED housing from pushing through.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/Su35NUi1nVI/AAAAAAAABsg/XFwFmsjb4Vs/s1600-h/IMG_4321.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 104px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/Su35NUi1nVI/AAAAAAAABsg/XFwFmsjb4Vs/s200/IMG_4321.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5399245535535537490" /&gt;&lt;/a&gt;&lt;img src="http://1.bp.blogspot.com/_oN6pPL-C9vc/Su35NlUfl-I/AAAAAAAABso/JcykfXrYq50/s200/IMG_4322.JPG" style="cursor:pointer; cursor:hand;width: 200px; height: 134px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5399245540038776802" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And here it is outside our house (flashing on the opened door frame), waiting to welcome the trick-or-treaters :)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/Su3-t14s4lI/AAAAAAAABtA/VftJRJkxBHY/s1600-h/IMG_4363_new.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 146px; height: 200px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/Su3-t14s4lI/AAAAAAAABtA/VftJRJkxBHY/s200/IMG_4363_new.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5399251591799562834" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-1296639902860280120?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/1296639902860280120/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=1296639902860280120' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/1296639902860280120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/1296639902860280120'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2009/10/flashing-bat-eyes.html' title='Flashing Bat Eyes'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_oN6pPL-C9vc/Su35cYNEs8I/AAAAAAAABsw/W3ZSNtFvW4Q/s72-c/IMG_4362.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-2882262722257146709</id><published>2009-10-31T17:45:00.001-07:00</published><updated>2009-11-04T21:12:31.312-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AVR'/><category scheme='http://www.blogger.com/atom/ns#' term='Atmega8'/><title type='text'>ATmega programming board</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/SuzgatgUyaI/AAAAAAAABrg/9kOh-Ih3Ko8/s1600-h/IMG_4063.JPG"&gt;&lt;img src="http://1.bp.blogspot.com/_oN6pPL-C9vc/SuzgatgUyaI/AAAAAAAABrg/9kOh-Ih3Ko8/s200/IMG_4063.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5398936802806778274" style="cursor: pointer; width: 154px; height: 200px; " /&gt;&lt;/a&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/SuzgatgUyaI/AAAAAAAABrg/9kOh-Ih3Ko8/s1600-h/IMG_4063.JPG"&gt;&lt;/a&gt;Recently I've been playing with some projects that required more IO pins than the ATtiny has to offer.  I bought a few ATmega8's from ebay and have about 3 of them installed in various breadboards at the moment.  All the wiring was getting very frustrating, so I decided to make another programming board to reduce the clutter and to make my life a bit easier.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The process was almost identical to that for the &lt;a href="http://fangletronics.blogspot.com/2009/05/attiny-header-board.html"&gt;ATtiny header board&lt;/a&gt;.  There are only two real differences:  1) this is a board designed to fit the ATmega8 AVR chip so it has a 28 pin DIP socket and 2) I used a bad purchase (wide 28 pin dip socket) as the female headers for wiring up to the breadboard projects.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The wiring is practically the same as the ATtiny board.  If you've ever wired an ATmega to a breadboard (or to anything else) you'll easily be able to work this out.  There's more room to maneuver with the larger 28 pin board as well, which was nice.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here's the 'bad purchase': &lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/Suzgbg58NoI/AAAAAAAABsA/CEGIeqs1pXE/s1600-h/IMG_4069.JPG"&gt;&lt;img src="http://1.bp.blogspot.com/_oN6pPL-C9vc/Suzgbg58NoI/AAAAAAAABsA/CEGIeqs1pXE/s200/IMG_4069.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5398936816604427906" style="cursor: pointer; width: 200px; height: 130px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;I mistakenly bought a few of these wide 28 pin sockets (as part of another allelectronics purchase). These have been sitting in a drawer all but forgotten. I noticed them whilst retrieving the narrow 28-pin socket for this board and figured these would be useful as female header rows if I just chopped them in half. It turns out they fit really well &amp;amp; look pretty good too.&lt;/div&gt;&lt;div&gt;&lt;img src="http://1.bp.blogspot.com/_oN6pPL-C9vc/SuzgatgUyaI/AAAAAAAABrg/9kOh-Ih3Ko8/s200/IMG_4063.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5398936802806778274" style="cursor: pointer; width: 154px; height: 200px; " /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/Suzga-4nFYI/AAAAAAAABro/coWIhYr9Cu4/s1600-h/IMG_4064.JPG"&gt;&lt;img src="http://1.bp.blogspot.com/_oN6pPL-C9vc/Suzga-4nFYI/AAAAAAAABro/coWIhYr9Cu4/s200/IMG_4064.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5398936807472043394" style="cursor: pointer; width: 200px; height: 142px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/Suzgbcq6J2I/AAAAAAAABr4/E3NlNI_DD9g/s1600-h/IMG_4068.JPG"&gt;&lt;img src="http://2.bp.blogspot.com/_oN6pPL-C9vc/Suzgbcq6J2I/AAAAAAAABr4/E3NlNI_DD9g/s200/IMG_4068.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5398936815467636578" style="cursor: pointer; width: 200px; height: 128px; " /&gt;&lt;/a&gt;&lt;img src="http://4.bp.blogspot.com/_oN6pPL-C9vc/SuzgbADloGI/AAAAAAAABrw/imQXdoR494k/s200/IMG_4067.JPG" style="cursor:pointer; cursor:hand;width: 200px; height: 123px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5398936807786520674" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/Suzgbg58NoI/AAAAAAAABsA/CEGIeqs1pXE/s1600-h/IMG_4069.JPG"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-2882262722257146709?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/2882262722257146709/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=2882262722257146709' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/2882262722257146709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/2882262722257146709'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2009/10/atmega-programming-board.html' title='ATmega programming board'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_oN6pPL-C9vc/SuzgatgUyaI/AAAAAAAABrg/9kOh-Ih3Ko8/s72-c/IMG_4063.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-8717094070236265165</id><published>2009-09-12T23:50:00.000-07:00</published><updated>2009-09-12T23:50:36.297-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AVR'/><category scheme='http://www.blogger.com/atom/ns#' term='Atmega8'/><title type='text'>LED Cube</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/SqX4ljhyddI/AAAAAAAABm0/fVMz0B2dWMU/s1600-h/IMG_3405.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 138px;" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/SqX4ljhyddI/AAAAAAAABm0/fVMz0B2dWMU/s200/IMG_3405.JPG" alt="" id="BLOGGER_PHOTO_ID_5378978654039733714" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I've wanted to create one of these for ages.  There are a ton of &lt;a href="http://www.instructables.com/"&gt;instructables &lt;/a&gt;out there for how to make various versions of these from 2x2x2 cubes to 8x8x8 monsters.  I wanted to make something reasonable for a first attempt, but fun enough to look at.  I figured a 3x3x3 is a good start.&lt;br /&gt;&lt;br /&gt;There's also been quite a buzz the last few months around using LEDs as both light emitters and light detectors.  I wondered if the LED cube could be made more interesting by also making it detect changes in ambient light.  Perhaps that's a little too ambitious for the first iteration, but I can at least plan for this feature as a software (rather than a hardware) update later on.  It turns out that there's nothing extra needed, hardware wise, for light detection with LEDs (check out this post on spritemods, which is a great example: &lt;a href="http://spritesmods.com/?art=minimalism"&gt;minimalism&lt;/a&gt;; Jeroen also posts the source code, which I'm going to "borrow" from rather liberally when I get round to trying the light detection part).  Don't expect any of the light detection fangling in this post - I'm only going to describe making and testing a 3x3x3 LED cube.  I mention the light detection stuff because it's cool and I wanted to pressure myself into getting round to doing it by publicly announcing my intent :)&lt;br /&gt;&lt;br /&gt;Anyway, first things first, lets get a working cube soldered and tested.&lt;br /&gt;&lt;br /&gt;For the initial test set up I used the following:  9 LEDs (I chose all blue), an ATmega8, 12 breadboard jumper cables, 3 alligator clips (for the cathodes), a couple of breadboards and my regular USB AVR programer and associated paraphernalia.&lt;br /&gt;&lt;br /&gt;To make the soldering process easier I created a jig from a plastic box in the recycling bin.  I made a 3x3x3 grid of holes, spaced 25mm apart (just a little less than the length of the LED cathode leads).  I marked out the holes with a sharpie and then blasphemed by melting the holes with my soldering iron...&lt;br /&gt;&lt;br /&gt;&lt;div&gt;I pushed in the LEDs into each hole with the anodes (long leads) facing outwards - we're going to be soldering all the anodes in a column together later on and it seemed sensible to have them on the outside of the cube, where they'll be easier to get at.  Then I bent the cathodes down 90&lt;sup&gt;o&lt;/sup&gt; so that they touched the cathode of one of their neighbours.&lt;br /&gt;&lt;br /&gt;Here's the jig with the first set of LEDs in place, ready to solder:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/SqX4XzWjGcI/AAAAAAAABl8/VuJve69nECA/s1600-h/IMG_3270.JPG"&gt;&lt;img src="http://2.bp.blogspot.com/_oN6pPL-C9vc/SqX4XzWjGcI/AAAAAAAABl8/VuJve69nECA/s200/IMG_3270.JPG" alt="" id="BLOGGER_PHOTO_ID_5378978417769388482" style="cursor: pointer; width: 200px; height: 142px;" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The middle LED only makes one connection, which makes it a weak point in the layer.  I was tempted to add a couple of extra connections from it to make it more stable, but I figured that, after soldering the layers together it should be stable enough.  I just added a bit more solder to that particular connection in order to strengthen it.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After soldering all the leads together, you gently pull each LED out of their hole.  You can then pull the whole assembly away and marvel at your soldering skill ;).  Then it's time to start over again...&lt;br /&gt;&lt;br /&gt;Here's the full set of 3 layers all soldered nicely (still separate though):&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/SqX4YRw5x_I/AAAAAAAABmM/WSmYo3u8sxo/s1600-h/IMG_3279.JPG"&gt;&lt;img src="http://2.bp.blogspot.com/_oN6pPL-C9vc/SqX4YRw5x_I/AAAAAAAABmM/WSmYo3u8sxo/s200/IMG_3279.JPG" alt="" id="BLOGGER_PHOTO_ID_5378978425932990450" style="cursor: pointer; width: 200px; height: 180px;" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/SqX4YDaT1ZI/AAAAAAAABmE/gIVIUvZ-IpI/s1600-h/IMG_3278.JPG"&gt;&lt;img src="http://3.bp.blogspot.com/_oN6pPL-C9vc/SqX4YDaT1ZI/AAAAAAAABmE/gIVIUvZ-IpI/s200/IMG_3278.JPG" alt="" id="BLOGGER_PHOTO_ID_5378978422080132498" style="cursor: pointer; width: 200px; height: 132px;" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The final step in creating the cube is to solder the layers together. There must be a better way than what I tried, but here it is: I placed one layer back in the jig, cut off a few small strips of sellotape, positioned the next layer on top so that the anodes from the lower layer overlapped enough to solder to the next layer and then secured the two layers together with the sellotape &lt;small&gt;(&lt;i&gt;&lt;b&gt;synonym:&lt;/b&gt;scotch tape&lt;/i&gt;)&lt;/small&gt;.  I soldered the corners first to give some amount of stability to the emerging structure.&lt;br /&gt;&lt;br /&gt;Whilst soldering the third layer I worked out that the best method was to position the lower anode lead on the outside of the upper LED, then bend about 2mm of the lower lead 90&lt;sup&gt;o&lt;/sup&gt; towards the upper lead and then solder them together.  The bottome left LED column in the second picture below shows what I mean:&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://2.bp.blogspot.com/_oN6pPL-C9vc/SqX4Y4Iv61I/AAAAAAAABmU/HMp3leYcKWE/s200/IMG_3280.JPG" alt="" id="BLOGGER_PHOTO_ID_5378978436233554770" style="cursor: pointer; width: 200px; height: 190px;" border="0" /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/SqX4ZN0zWDI/AAAAAAAABmc/leqGqvkDokU/s1600-h/IMG_3284.JPG"&gt;&lt;img src="http://3.bp.blogspot.com/_oN6pPL-C9vc/SqX4ZN0zWDI/AAAAAAAABmc/leqGqvkDokU/s200/IMG_3284.JPG" alt="" id="BLOGGER_PHOTO_ID_5378978442055473202" style="cursor: pointer; width: 200px; height: 176px;" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And here's the completed cube:&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/SqX4lB2CWBI/AAAAAAAABms/qSf-rURWwGg/s1600-h/IMG_3291.JPG"&gt;&lt;img src="http://2.bp.blogspot.com/_oN6pPL-C9vc/SqX4lB2CWBI/AAAAAAAABms/qSf-rURWwGg/s200/IMG_3291.JPG" alt="" id="BLOGGER_PHOTO_ID_5378978644997855250" style="cursor: pointer; width: 185px; height: 200px;" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/SqX4k82xpyI/AAAAAAAABmk/8eWgKWLUgvU/s1600-h/IMG_3285.JPG"&gt;&lt;img src="http://4.bp.blogspot.com/_oN6pPL-C9vc/SqX4k82xpyI/AAAAAAAABmk/8eWgKWLUgvU/s200/IMG_3285.JPG" alt="" id="BLOGGER_PHOTO_ID_5378978643658778402" style="cursor: pointer; width: 200px; height: 170px;" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'd not actually programmed an ATmega8 before, but it was fairly straight forward to modify my ATtiny setup.  I just had to work out which pins to attach the programmer to (by looking at the atmega8 datasheet).  The trickiest part ended up being getting the cube securely placed into the breadboards (I wish I'd given into a previous whim to buy one of the bigger boards now).  The picture below shows my test current set-up with the cube installed.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/SqX4ljhyddI/AAAAAAAABm0/fVMz0B2dWMU/s1600-h/IMG_3405.JPG"&gt;&lt;img src="http://4.bp.blogspot.com/_oN6pPL-C9vc/SqX4ljhyddI/AAAAAAAABm0/fVMz0B2dWMU/s200/IMG_3405.JPG" alt="" id="BLOGGER_PHOTO_ID_5378978654039733714" style="cursor: pointer; width: 200px; height: 138px;" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;I tried to come up with the simplest test I could imagine whilst ensuring I was addressing each LED correctly.  So my first test just powered up each individual LED in order, one layer at a time.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here's a video of it in action:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-1bd09a462a5b0957" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v11.nonxt2.googlevideo.com/videoplayback?id%3D1bd09a462a5b0957%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329988015%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D21AC17B0D67E2EB4BA30B4983BD4FB04FE299202.80D9B36C1D630285084655F752A9861E6066DAD8%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D1bd09a462a5b0957%26offsetms%3D5000%26itag%3Dw160%26sigh%3DKrit8dwzqEvbiZ56vzuXv6eMqUU&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v11.nonxt2.googlevideo.com/videoplayback?id%3D1bd09a462a5b0957%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329988015%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D21AC17B0D67E2EB4BA30B4983BD4FB04FE299202.80D9B36C1D630285084655F752A9861E6066DAD8%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D1bd09a462a5b0957%26offsetms%3D5000%26itag%3Dw160%26sigh%3DKrit8dwzqEvbiZ56vzuXv6eMqUU&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;I've included the code below for those interested.  Just bear in mind that this was specific to the way I wired up the cube.  It's a shame 9 columns have to be used for this as it means using multiple registers for the LEDs, which means we have to specify which columns are on which registers.  Maybe someone out there can show me a better way to do it?&lt;br /&gt;&lt;pre class="brush:c"&gt;&lt;br /&gt;/*&lt;br /&gt;* led_cube.c&lt;br /&gt;*&lt;br /&gt;*  Created on: September 6th, 2009&lt;br /&gt;*      Author: Paul&lt;br /&gt;*/&lt;br /&gt;#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;#include &amp;lt;avr/delay.h&amp;gt;&lt;br /&gt;&lt;br /&gt;//define the cathode pins&lt;br /&gt;//I just happened to connect them to these pins&lt;br /&gt;#define LAYER1 PD1&lt;br /&gt;#define LAYER2 PD0&lt;br /&gt;#define LAYER3 PD2&lt;br /&gt;&lt;br /&gt;//define which pin each column (anode) is connected to&lt;br /&gt;uint8_t kColumnConfig[] = {PD3, PB7, PB3, PD4, PD6, PB2, PB6, PD7, PB1};&lt;br /&gt;//store the layers in an array as well&lt;br /&gt;uint8_t kLayerConfig[] = {LAYER1, LAYER2, LAYER3};&lt;br /&gt;&lt;br /&gt;//this function switches a column on or off&lt;br /&gt;//we have to know which port the column is a part of&lt;br /&gt;//hence the switch statment:&lt;br /&gt;// PORTD pins are at indices 0,3,4,7 in the kColumnConfig array&lt;br /&gt;// PORTB pins are at indices 1,2,5,6,8 in the kColumnConfig array&lt;br /&gt;void setColumn(uint8_t pVal, uint8_t pCol)&lt;br /&gt;{&lt;br /&gt;switch(pCol)&lt;br /&gt;{&lt;br /&gt;//portD pins&lt;br /&gt;case 0:&lt;br /&gt;case 3:&lt;br /&gt;case 4:&lt;br /&gt;case 7:&lt;br /&gt; if(pVal)&lt;br /&gt; {&lt;br /&gt;  PORTD |= (1 &amp;lt;&amp;lt; kColumnConfig[pCol]);&lt;br /&gt; }&lt;br /&gt; else&lt;br /&gt; {&lt;br /&gt;  PORTD &amp;amp;= ~(1 &amp;lt;&amp;lt; kColumnConfig[pCol]);&lt;br /&gt; }&lt;br /&gt; break;&lt;br /&gt;case 1:&lt;br /&gt;case 2:&lt;br /&gt;case 5:&lt;br /&gt;case 6:&lt;br /&gt;case 8:&lt;br /&gt; // portB pins&lt;br /&gt; if(pVal)&lt;br /&gt; {&lt;br /&gt;  PORTB |= (1 &amp;lt;&amp;lt; kColumnConfig[pCol]);&lt;br /&gt; }&lt;br /&gt; else&lt;br /&gt; {&lt;br /&gt;  PORTB &amp;amp;= ~(1 &amp;lt;&amp;lt; kColumnConfig[pCol]);&lt;br /&gt; }&lt;br /&gt; break;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int main(void)&lt;br /&gt;{&lt;br /&gt;uint8_t i = 0;&lt;br /&gt;uint8_t j = 0;&lt;br /&gt;&lt;br /&gt;DDRB = 0xFF; // all set to output&lt;br /&gt;DDRD = 0xFF; // all set to output&lt;br /&gt;//swich off all layers by applying voltage to the cathode pins thereby preventing current flow&lt;br /&gt;PORTD |= (1 &amp;lt;&amp;lt; LAYER1) | (1 &amp;lt;&amp;lt; LAYER2) | (1 &amp;lt;&amp;lt; LAYER3);&lt;br /&gt;while(1)&lt;br /&gt;{&lt;br /&gt; //loop through each layer&lt;br /&gt; for(i = 0; i &amp;lt; 3; i++)&lt;br /&gt; {&lt;br /&gt;  //set the output value for this cathode layer to '0'&lt;br /&gt;  //this allows current to flow in this layer&lt;br /&gt;  PORTD &amp;amp;= ~(1 &amp;lt;&amp;lt; kLayerConfig[i]);&lt;br /&gt;  for(j = 0;j &amp;lt; 9; j++)&lt;br /&gt;  {&lt;br /&gt;   //turn on the LED in column j&lt;br /&gt;   setColumn(1, j);&lt;br /&gt;   _delay_ms(250);&lt;br /&gt;   //trun off the LED in column j&lt;br /&gt;      setColumn(0, j);&lt;br /&gt;  }&lt;br /&gt;  //set the output value for this cathode layer to '1'&lt;br /&gt;  //this prevents current flow for this layer&lt;br /&gt;  PORTD |= (1 &amp;lt;&amp;lt; kLayerConfig[i]);&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;return 1;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-8717094070236265165?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=1bd09a462a5b0957&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/8717094070236265165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=8717094070236265165' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/8717094070236265165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/8717094070236265165'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2009/09/led-cube.html' title='LED Cube'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_oN6pPL-C9vc/SqX4ljhyddI/AAAAAAAABm0/fVMz0B2dWMU/s72-c/IMG_3405.JPG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-4964723610162443242</id><published>2009-09-07T23:40:00.001-07:00</published><updated>2011-08-03T23:26:18.547-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pvc pipe'/><category scheme='http://www.blogger.com/atom/ns#' term='no electronics required'/><category scheme='http://www.blogger.com/atom/ns#' term='For the kids'/><title type='text'>PVC Pipe Marshmallow gun</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/SqX8tn_FpPI/AAAAAAAABoE/l6E0YC9l2ZQ/s1600-h/IMG_3391.JPG"&gt;&lt;img src="http://3.bp.blogspot.com/_oN6pPL-C9vc/SqX8tn_FpPI/AAAAAAAABoE/l6E0YC9l2ZQ/s200/IMG_3391.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5378983190721832178" style="cursor: pointer; width: 116px; height: 200px; " /&gt;&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This post is a bit of a diversion from the normal electronic fangling, but it's such an easy and fun project that I wanted to share.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I was flicking through a recent purchase, "The best of instructables (volume 1)" , and I landed on page 232 - "&lt;a href="http://www.instructables.com/id/Marshmallow-gun/"&gt;The marshmallow shooter&lt;/a&gt;".  It's labour day (sorry: "labor day") which means that we were having a lazy Monday at home so we decided to take a trip to Lowes to pick up the necessary bits to make a few shooters.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/SqX8iU5TS_I/AAAAAAAABm8/wCiQrHVj5xs/s1600-h/IMG_3359.JPG"&gt;&lt;img src="http://4.bp.blogspot.com/_oN6pPL-C9vc/SqX8iU5TS_I/AAAAAAAABm8/wCiQrHVj5xs/s200/IMG_3359.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5378982996618726386" style="cursor: pointer; width: 200px; height: 194px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;That's all you need (and some marshmallows).  The pipe is 1/2" schedule 40 PVC, it was 89c for about 5 feet of the stuff (enough for 3 shooters).  I also picked up a few different fittings: three way junctions, four way junctions, elbows (with different angles), caps and some couplings (to use as mouthpieces).  I also picked up a pipe cutter; I've experienced the "joy" of using a hacksaw for cutting pipes (those ones get a brief mention on filthwizardry: &lt;a href="http://filthwizardry.blogspot.com/2009/08/music-tree.html"&gt;music tree&lt;/a&gt;) .  This time I decided on an easier option. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;First off we cut up the pipe into various lengths,  short pipe for the handles and longer ones for the main body.  We washed all the bits thoroughly.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://4.bp.blogspot.com/_oN6pPL-C9vc/SqX8i-pV4aI/AAAAAAAABnE/2r9HprLM9H0/s200/IMG_3365.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5378983007826076066" style="cursor: pointer; width: 140px; height: 200px; " /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/SqX8jM3YvoI/AAAAAAAABnM/vFnFfpb0kWI/s1600-h/IMG_3369.JPG"&gt;&lt;img src="http://4.bp.blogspot.com/_oN6pPL-C9vc/SqX8jM3YvoI/AAAAAAAABnM/vFnFfpb0kWI/s200/IMG_3369.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5378983011643080322" style="cursor: pointer; width: 134px; height: 200px; " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here's all the parts that went into our first three guns:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/SqX8jqR018I/AAAAAAAABnU/VIOVhxZfT-M/s1600-h/IMG_3371.JPG"&gt;&lt;img src="http://2.bp.blogspot.com/_oN6pPL-C9vc/SqX8jqR018I/AAAAAAAABnU/VIOVhxZfT-M/s200/IMG_3371.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5378983019538601922" style="cursor: pointer; width: 200px; height: 134px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Next up I showed the girls how all the parts fit together.  I helped to tighten the parts, but that was all the intervention necessary.  It's all very easy and simple. I think I'm going to get a load more of the piping and fittings and just let the kids play with it free-style sometime soon.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/SqX8r6MVPvI/AAAAAAAABnk/KeA1h8sPCow/s1600-h/IMG_3378.JPG"&gt;&lt;img src="http://4.bp.blogspot.com/_oN6pPL-C9vc/SqX8r6MVPvI/AAAAAAAABnk/KeA1h8sPCow/s200/IMG_3378.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5378983161249480434" style="cursor: pointer; width: 150px; height: 200px; " /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/SqX8j2hSktI/AAAAAAAABnc/xczPZw_UbmU/s1600-h/IMG_3376.JPG"&gt;&lt;img src="http://1.bp.blogspot.com/_oN6pPL-C9vc/SqX8j2hSktI/AAAAAAAABnc/xczPZw_UbmU/s200/IMG_3376.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5378983022824690386" style="cursor: pointer; width: 164px; height: 200px; " /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/SqX8se5-w2I/AAAAAAAABns/89759Ft-1r8/s1600-h/IMG_3381.JPG"&gt;&lt;img src="http://3.bp.blogspot.com/_oN6pPL-C9vc/SqX8se5-w2I/AAAAAAAABns/89759Ft-1r8/s200/IMG_3381.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5378983171104621410" style="cursor: pointer; width: 118px; height: 200px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After getting all the parts together, they decided their creations needed to be decorated before we could use them :)  We had a strange coincidence here: before heading to Lowes we popped into the local Savers (they were having a labor day sale) and what did we find in the book section?  A book on making marshmallow guns (here's the &lt;a href="http://www.amazon.com/Every-Marshmallow-Launcher-Stickers-MARSHMAL/dp/B001TKRAWQ/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1252476548&amp;amp;sr=8-1"&gt;Amazon link&lt;/a&gt;)!  Very weird!  Being from Savers, it didn't come with any of the piping, but it did have most of the stickers left (not anymore though!).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/SqX8tIuTRBI/AAAAAAAABn8/DRAkrEvT1fU/s1600-h/IMG_3383.JPG"&gt;&lt;img src="http://3.bp.blogspot.com/_oN6pPL-C9vc/SqX8tIuTRBI/AAAAAAAABn8/DRAkrEvT1fU/s200/IMG_3383.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5378983182329922578" style="cursor: pointer; width: 200px; height: 134px; " /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/SqX8si-rx_I/AAAAAAAABn0/8uTDCa1WPDM/s1600-h/IMG_3382.JPG"&gt;&lt;img src="http://1.bp.blogspot.com/_oN6pPL-C9vc/SqX8si-rx_I/AAAAAAAABn0/8uTDCa1WPDM/s200/IMG_3382.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5378983172198090738" style="cursor: pointer; width: 200px; height: 122px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Time to try out the beautified guns on Lin.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/SqX80bWnCGI/AAAAAAAABoM/9ah4zovQ33g/s1600-h/IMG_3392.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 130px; height: 200px;" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/SqX80bWnCGI/AAAAAAAABoM/9ah4zovQ33g/s200/IMG_3392.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5378983307589912674" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/SqX80nUOIkI/AAAAAAAABoU/48M263H6YfU/s1600-h/IMG_3394.JPG"&gt;&lt;img src="http://4.bp.blogspot.com/_oN6pPL-C9vc/SqX80nUOIkI/AAAAAAAABoU/48M263H6YfU/s200/IMG_3394.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5378983310801117762" style="cursor: pointer; width: 132px; height: 200px; " /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/SqX81DNU0QI/AAAAAAAABoc/iTY1JjdMs9U/s1600-h/IMG_3395.JPG"&gt;&lt;img src="http://4.bp.blogspot.com/_oN6pPL-C9vc/SqX81DNU0QI/AAAAAAAABoc/iTY1JjdMs9U/s200/IMG_3395.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5378983318288388354" style="cursor: pointer; width: 122px; height: 200px; " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;They had a great time blasting (and eating) the mini marshmallows.  The great thing about using marshmallows is that, strangely, there was no mess to clean up afterwards...&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/SqX8tn_FpPI/AAAAAAAABoE/l6E0YC9l2ZQ/s1600-h/IMG_3391.JPG"&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/SqX85NNykTI/AAAAAAAABo0/hN6gNRZBVVg/s1600-h/IMG_3403.JPG"&gt;&lt;img src="http://2.bp.blogspot.com/_oN6pPL-C9vc/SqX85NNykTI/AAAAAAAABo0/hN6gNRZBVVg/s200/IMG_3403.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5378983389694169394" style="cursor: pointer; width: 134px; height: 200px; " /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/SqX82KpPXPI/AAAAAAAABos/9K0wUJsIR2s/s1600-h/IMG_3402.JPG"&gt;&lt;img src="http://3.bp.blogspot.com/_oN6pPL-C9vc/SqX82KpPXPI/AAAAAAAABos/9K0wUJsIR2s/s200/IMG_3402.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5378983337464388850" style="cursor: pointer; width: 134px; height: 200px; " /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/SqX81aoNW2I/AAAAAAAABok/_LQgqcmg5wU/s1600-h/IMG_3400.JPG"&gt;&lt;img src="http://2.bp.blogspot.com/_oN6pPL-C9vc/SqX81aoNW2I/AAAAAAAABok/_LQgqcmg5wU/s200/IMG_3400.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5378983324575161186" style="cursor: pointer; width: 146px; height: 200px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-4964723610162443242?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/4964723610162443242/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=4964723610162443242' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/4964723610162443242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/4964723610162443242'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2009/09/pvc-pipe-marshmallow-gun.html' title='PVC Pipe Marshmallow gun'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_oN6pPL-C9vc/SqX8tn_FpPI/AAAAAAAABoE/l6E0YC9l2ZQ/s72-c/IMG_3391.JPG' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-966598902364579292</id><published>2009-08-30T20:59:00.000-07:00</published><updated>2009-09-03T22:47:34.428-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='For the kids'/><category scheme='http://www.blogger.com/atom/ns#' term='ATtiny13'/><category scheme='http://www.blogger.com/atom/ns#' term='AVR'/><title type='text'>Toy Traffic Lights</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/SptLLtkeGKI/AAAAAAAABl0/GZjF6umc1Ko/s1600-h/IMG_3247.JPG"&gt;&lt;img style="cursor: pointer; width: 134px; height: 200px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/SptLLtkeGKI/AAAAAAAABl0/GZjF6umc1Ko/s200/IMG_3247.JPG" alt="" id="BLOGGER_PHOTO_ID_5375973244780026018" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/SptLLAeY3oI/AAAAAAAABls/XA6twYWhc4s/s1600-h/IMG_3245.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 128px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/SptLLAeY3oI/AAAAAAAABls/XA6twYWhc4s/s200/IMG_3245.JPG" alt="" id="BLOGGER_PHOTO_ID_5375973232674922114" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is something I've been meaning to make for ages.  My kids love toy cars (ok, lets face it, &lt;span style="font-weight: bold;"&gt;all&lt;/span&gt; kids love toy cars!).  There's been lots of car related fun in our household (some of which has been documented on filthwizardry: "&lt;a href="http://filthwizardry.blogspot.com/2009/08/toy-cars-and-trucks-from-recycling.html"&gt;Toy cars and trucks from recycling&lt;/a&gt;", "&lt;a href="http://filthwizardry.blogspot.com/2009/02/shower-curtain-village-play-mat.html"&gt;shower curtain village playmat&lt;/a&gt;" and "&lt;a href="http://filthwizardry.blogspot.com/2009/01/home-made-toy-carwash.html"&gt;home made toy carwash&lt;/a&gt;") and one of the kids favourite pastimes in the car is to shout "RED means STOP!" and "GREEN: GO!" (as loudly as humanly possible).  I figured it was about time I used this as an excuse to spend some time in the garage making something with flashing LEDs :)&lt;br /&gt;&lt;br /&gt;Between Lin and myself we've managed to amass quite a bit of cheap 'junk' that can be hacked together for something like this.  I was going to make something flimsy using a battery pack and a drinking straw, but I was persuaded to make something a bit more kid-proof using a dollar store wooden box, an Altoids tin and the tube from a black felt-tip pen.  Here's a picture of all the bits (there are three 150 ohm resistors are missing):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/SptK75oyX_I/AAAAAAAABkE/SYi_2ipsNks/s1600-h/IMG_3224.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 122px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/SptK75oyX_I/AAAAAAAABkE/SYi_2ipsNks/s200/IMG_3224.JPG" alt="" id="BLOGGER_PHOTO_ID_5375972973141450738" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The plastic domes are the discarded remnants of 25c kids toys purchased from a vending machine in our local Taqueria, they looked like they'd make good LED covers (and they were used as wheels in another crafty distraction: "&lt;a href="http://filthwizardry.blogspot.com/2009/08/toy-cars-and-trucks-from-recycling.html"&gt;Toy cars and trucks from recycling&lt;/a&gt;").  The chip is an ATtiny13.&lt;br /&gt;&lt;br /&gt;First up was to drill some holes: two in the box, one on the side for the switch and one on the top for the pen tube; one in the base of the altoids tin (again, for the pen tube) and three in the back of the tin for the LEDs.&lt;br /&gt;&lt;br /&gt;Then I painted it black.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/SptK8PVYbpI/AAAAAAAABkM/60zQZSRltiQ/s1600-h/IMG_3225.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 146px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/SptK8PVYbpI/AAAAAAAABkM/60zQZSRltiQ/s200/IMG_3225.JPG" alt="" id="BLOGGER_PHOTO_ID_5375972978965638802" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The wiring for the base/box is pretty simple, just an AA battery pack wired to a switch with the main wires threaded out of the hole in the top of the box.  I stuck the pen casing in at this point and threaded the wires through to the top.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/SptLEnfa2II/AAAAAAAABlE/D5EtEySmXRI/s1600-h/IMG_3240.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 182px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/SptLEnfa2II/AAAAAAAABlE/D5EtEySmXRI/s200/IMG_3240.JPG" alt="" id="BLOGGER_PHOTO_ID_5375973122889144450" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/SptK8spGmQI/AAAAAAAABkU/T6TXZEtb6Pw/s1600-h/IMG_3229.JPG"&gt;&lt;img style="cursor: pointer; width: 150px; height: 200px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/SptK8spGmQI/AAAAAAAABkU/T6TXZEtb6Pw/s200/IMG_3229.JPG" alt="" id="BLOGGER_PHOTO_ID_5375972986832984322" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now it's time for the wiring.&lt;br /&gt;&lt;br /&gt;First off, I hot glued the base to the Altoids tin.  Then I glued the LEDs into their holes with the cathodes all facing in one direction so I could solder them together to form a ground rail.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/SptK88KliII/AAAAAAAABkc/PnSlJQn2jdE/s1600-h/IMG_3230.JPG"&gt;&lt;img style="cursor: pointer; width: 144px; height: 200px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/SptK88KliII/AAAAAAAABkc/PnSlJQn2jdE/s200/IMG_3230.JPG" alt="" id="BLOGGER_PHOTO_ID_5375972990999955586" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/SptK9ZRohKI/AAAAAAAABkk/VGWiSOmQdrw/s1600-h/IMG_3234.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 138px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/SptK9ZRohKI/AAAAAAAABkk/VGWiSOmQdrw/s200/IMG_3234.JPG" alt="" id="BLOGGER_PHOTO_ID_5375972998814139554" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/SptLDYkqdTI/AAAAAAAABks/UStdME7SD2Y/s1600-h/IMG_3235.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 118px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/SptLDYkqdTI/AAAAAAAABks/UStdME7SD2Y/s200/IMG_3235.JPG" alt="" id="BLOGGER_PHOTO_ID_5375973101704738098" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I soldered on three, 150 ohm, resistors to an 8-pin dip socket (pins 5, 6 and 7), soldered the positive lead from the base to pin 8 on the socket.  Then I connected the LEDs to the resistors and finally connected the ground pin (pin 4) to the ground rail.  That's it!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/SptLDvF-JSI/AAAAAAAABk0/iJdluOXsNhQ/s1600-h/IMG_3237.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 134px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/SptLDvF-JSI/AAAAAAAABk0/iJdluOXsNhQ/s200/IMG_3237.JPG" alt="" id="BLOGGER_PHOTO_ID_5375973107750020386" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/SptLK2pK5AI/AAAAAAAABlk/bp-STuxRkio/s1600-h/IMG_3243.JPG"&gt;&lt;img style="cursor: pointer; width: 144px; height: 200px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/SptLK2pK5AI/AAAAAAAABlk/bp-STuxRkio/s200/IMG_3243.JPG" alt="" id="BLOGGER_PHOTO_ID_5375973230035788802" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/SptLEBfXX7I/AAAAAAAABk8/DNXgF9up_4E/s1600-h/IMG_3239.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 110px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/SptLEBfXX7I/AAAAAAAABk8/DNXgF9up_4E/s200/IMG_3239.JPG" alt="" id="BLOGGER_PHOTO_ID_5375973112688369586" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When I was writing the code I didn't think ahead about which pins were going to be connected where in the final project and ended up with the red and green pins mixed up (in software), so the initial sequence was backwards;  but then that's why I used a socket rather than directly soldering the uC ;).  Easy to fix with a quick software update.&lt;br /&gt;&lt;br /&gt;Here's the final working project (yes, the yellow works too, I just didn't take a picture of it):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/SptLKG3GKrI/AAAAAAAABlU/Fwz9hmOrCAs/s1600-h/IMG_3241.JPG"&gt;&lt;img style="cursor: pointer; width: 134px; height: 200px;" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/SptLKG3GKrI/AAAAAAAABlU/Fwz9hmOrCAs/s200/IMG_3241.JPG" alt="" id="BLOGGER_PHOTO_ID_5375973217209297586" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/SptLKh3nZpI/AAAAAAAABlc/9nnWlNdKUXg/s1600-h/IMG_3242.JPG"&gt;&lt;img style="cursor: pointer; width: 134px; height: 200px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/SptLKh3nZpI/AAAAAAAABlc/9nnWlNdKUXg/s200/IMG_3242.JPG" alt="" id="BLOGGER_PHOTO_ID_5375973224459232914" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I've included the code below.  As always, it's pretty simple:&lt;br /&gt;&lt;br /&gt;### code starts here ###&lt;br /&gt;(I found a nice way of displaying code in blogger.  I talk about setting it up &lt;a href="http://geekbraindump.blogspot.com/2009/08/code-formatting-for-blogger.html"&gt;here&lt;/a&gt;)&lt;br /&gt;&lt;pre name="code" class="brush:c"&gt;&lt;br /&gt;/*&lt;br /&gt;* trafflic_lights.c&lt;br /&gt;*&lt;br /&gt;*  Created on: Aug 29, 2009&lt;br /&gt;*      Author: Paul&lt;br /&gt;*/&lt;br /&gt;#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;#include &amp;lt;avr/delay.h&amp;gt;&lt;br /&gt;&lt;br /&gt;#define RED_LED PB2&lt;br /&gt;#define YELLOW_LED PB1&lt;br /&gt;#define GREEN_LED PB0&lt;br /&gt;&lt;br /&gt;#define RED_DELAY 10&lt;br /&gt;#define YELLOW_DELAY 3&lt;br /&gt;#define GREEN_DELAY 15&lt;br /&gt;&lt;br /&gt;uint8_t i = 0;&lt;br /&gt;uint8_t j = 0;&lt;br /&gt;void delay_seconds(uint8_t pSecs)&lt;br /&gt;{&lt;br /&gt;  for(i = 0; i &amp;lt; pSecs; i++)&lt;br /&gt;  {&lt;br /&gt;      for(j = 0; j &amp;lt; 4; j++)&lt;br /&gt;          _delay_ms(250);&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int main(void)&lt;br /&gt;{&lt;br /&gt;  DDRB = 0xFF;//set all to output&lt;br /&gt;&lt;br /&gt;  //start traffic light sequence&lt;br /&gt;  while(1)&lt;br /&gt;  {&lt;br /&gt;      PORTB = (1 &amp;lt;&amp;lt; RED_LED);&lt;br /&gt;      delay_seconds(RED_DELAY);&lt;br /&gt;      PORTB = (1 &amp;lt;&amp;lt; YELLOW_LED);&lt;br /&gt;      delay_seconds(YELLOW_DELAY);&lt;br /&gt;      PORTB = (1 &amp;lt;&amp;lt; GREEN_LED);&lt;br /&gt;      delay_seconds(GREEN_DELAY);&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-966598902364579292?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/966598902364579292/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=966598902364579292' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/966598902364579292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/966598902364579292'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2009/08/toy-traffic-lights.html' title='Toy Traffic Lights'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_oN6pPL-C9vc/SptLLtkeGKI/AAAAAAAABl0/GZjF6umc1Ko/s72-c/IMG_3247.JPG' height='72' width='72'/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-8409303706707373729</id><published>2009-08-25T22:05:00.000-07:00</published><updated>2009-08-31T22:34:57.573-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='For the kids'/><category scheme='http://www.blogger.com/atom/ns#' term='ATtiny13'/><category scheme='http://www.blogger.com/atom/ns#' term='AVR'/><title type='text'>Led camp fire</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/SpTIdViJCdI/AAAAAAAABjs/hYiKTcNrRT4/s1600-h/IMG_3167.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 133px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/SpTIdViJCdI/AAAAAAAABjs/hYiKTcNrRT4/s200/IMG_3167.JPG" alt="" id="BLOGGER_PHOTO_ID_5374140661681949138" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/SpTIeF7emtI/AAAAAAAABj8/fcJXVUZbAXQ/s1600-h/P1000677.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 174px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/SpTIeF7emtI/AAAAAAAABj8/fcJXVUZbAXQ/s200/P1000677.JPG" alt="" id="BLOGGER_PHOTO_ID_5374140674673122002" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A few days ago I came home from work and was rather surprised to find a, full-sized, indoor camp-out taking up the living room... you have to see it to believe it (the original was bigger than the version above!):- &lt;a href="http://filthwizardry.blogspot.com/2009/08/indoor-camping.html"&gt;filthwizardry.blogspot.com&lt;/a&gt;.  Well, the kids loved it and my lovely lady inspired me to make a flame free campfire to add to the fun.  I figured it'd be easy to do with a uC and a few red/orange LEDs -all of which I had lying around the place.&lt;br /&gt;&lt;br /&gt;To get the basic set-up I cannibalized the innards of the &lt;a href="http://fangletronics.blogspot.com/2009/07/ive-got-glow-in-dark-balls.html"&gt;glow in the dark balls&lt;/a&gt; project and jammed a few LEDs in the right places;  this let me start messing with the code.  In the second image you can see my test set-up.  I ended up using my &lt;a href="http://fangletronics.blogspot.com/2009/07/led-tester.html"&gt;LED tester&lt;/a&gt; to provide power to the breadboard and my &lt;a href="http://fangletronics.blogspot.com/2009/05/attiny-header-board.html"&gt;ATtiny header board&lt;/a&gt; for quickly cycling the code on the chip.  I was happily surprised that both of these worked and were useful - I've been getting frustrated jamming frayed power leads into the breadboard and it'd only just occurred to me that I could use the LED tester.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/SpTIRNX0W8I/AAAAAAAABi0/lEtPkxlQwIQ/s1600-h/IMG_3153.JPG"&gt;&lt;img style="cursor: pointer; width: 178px; height: 200px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/SpTIRNX0W8I/AAAAAAAABi0/lEtPkxlQwIQ/s200/IMG_3153.JPG" alt="" id="BLOGGER_PHOTO_ID_5374140453332736962" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/SpTIRs33H8I/AAAAAAAABi8/x3cKGpOsq00/s1600-h/IMG_3156.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 130px;" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/SpTIRs33H8I/AAAAAAAABi8/x3cKGpOsq00/s200/IMG_3156.JPG" alt="" id="BLOGGER_PHOTO_ID_5374140461788635074" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;All I wanted the code to do was randomly switch the LEDs on and off fast enough to mimic flickering flames.  I messed around with the speed of flickering a bit until I was happy.&lt;br /&gt;&lt;br /&gt;For those who are interested, I've included the code at the bottom of the page.  It's a pretty simple affair.  I take no credit for the random number generator, in the past I've just used library code for this, but I happened across that nice bit of code online and fancied using it (I think &lt;a href="http://forums.ladyada.net/viewtopic.php?f=8&amp;amp;t=6976"&gt;this &lt;/a&gt;is the original source but I found it &lt;a href="http://www.instructables.com/id/Flickering_LED_Candle/"&gt;here&lt;/a&gt;).  The code is in a slightly incomplete state as I was also messing around with altering the delay between each set of LED updates.  Shorter delays give the impression of an angry/quick burning fire and longer delays give rise to a soothing fire.  I quite like the idea of having a random drift for the delay to make the fire more interesting, but got tired at around midnight and decided to simplify.&lt;br /&gt;&lt;br /&gt;Lin suggested housing everything in the top section of a solar garden light case (which had been destroyed during a particularly energetic play-date).  All that needed modifying was to add a small hole for the switch.   I also cut down the LEDs so they took up less space and were more secure:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/SpTISFdPYhI/AAAAAAAABjE/7RoxwcTVGB8/s1600-h/IMG_3157.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 142px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/SpTISFdPYhI/AAAAAAAABjE/7RoxwcTVGB8/s200/IMG_3157.JPG" alt="" id="BLOGGER_PHOTO_ID_5374140468387865106" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/SpTISnNMNqI/AAAAAAAABjM/UCAbFQGxdhM/s1600-h/IMG_3159.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 123px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/SpTISnNMNqI/AAAAAAAABjM/UCAbFQGxdhM/s200/IMG_3159.JPG" alt="" id="BLOGGER_PHOTO_ID_5374140477447354018" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Then I added some protection to the top and a cardboard base to keep the innards in place (I used a hot-glue gun to secure both parts).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/SpTITPwvGmI/AAAAAAAABjU/6sHteLfXYhs/s1600-h/IMG_3163.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 145px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/SpTITPwvGmI/AAAAAAAABjU/6sHteLfXYhs/s200/IMG_3163.JPG" alt="" id="BLOGGER_PHOTO_ID_5374140488333859426" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/SpTIdGmmS2I/AAAAAAAABjk/j3jgbEieiV4/s1600-h/IMG_3165.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 148px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/SpTIdGmmS2I/AAAAAAAABjk/j3jgbEieiV4/s200/IMG_3165.JPG" alt="" id="BLOGGER_PHOTO_ID_5374140657674111842" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And that's it!  Very simple.&lt;br /&gt;&lt;br /&gt;Here's the contraption hidden in the kids camp fire waiting to be discovered:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/SpTId-iNdXI/AAAAAAAABj0/dLApmKo0V7U/s1600-h/P1000675.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 136px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/SpTId-iNdXI/AAAAAAAABj0/dLApmKo0V7U/s200/P1000675.JPG" alt="" id="BLOGGER_PHOTO_ID_5374140672688092530" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;and a little video of it in action:&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-ed0dd07fcd044198" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v24.nonxt8.googlevideo.com/videoplayback?id%3Ded0dd07fcd044198%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329988015%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D634DF6BABDB01138D38131E5FEBD820F62B2AFFE.2917B3DDA1705D91AD949ADB0C81370FCB12B54B%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Ded0dd07fcd044198%26offsetms%3D5000%26itag%3Dw160%26sigh%3D3Zwv9HECoftnJIwN-pws3qOneLM&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v24.nonxt8.googlevideo.com/videoplayback?id%3Ded0dd07fcd044198%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329988015%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D634DF6BABDB01138D38131E5FEBD820F62B2AFFE.2917B3DDA1705D91AD949ADB0C81370FCB12B54B%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Ded0dd07fcd044198%26offsetms%3D5000%26itag%3Dw160%26sigh%3D3Zwv9HECoftnJIwN-pws3qOneLM&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;p.s. anyone notice the freaky kiddie scarecrow in the first image?  Have a look at the whole &lt;a href="http://filthwizardry.blogspot.com/2009/08/freaky-kiddy-scarecrow.html"&gt;filthwizardry post&lt;/a&gt;, that thing freaks me out on a daily basis!  I think it's the eyes... "she's got the cold dead eyes of a killer" ;)&lt;br /&gt;&lt;br /&gt;### code starts here ###&lt;br /&gt;&lt;pre class="brush:c"&gt;&lt;br /&gt;/*&lt;br /&gt; * candle.c&lt;br /&gt; *&lt;br /&gt; *  Created on: Aug 21, 2009&lt;br /&gt; *      Author: Paul&lt;br /&gt; */&lt;br /&gt;#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;#include &amp;lt;avr/delay.h&amp;gt;&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt; * pseudorandom&lt;br /&gt; * return the next pseudo-random number (PRN) using a standard maximum&lt;br /&gt; * length xor-feedback 16-bit shift register.&lt;br /&gt; * This returns the number from 1 to 65535 in a fixed but apparently&lt;br /&gt; * random sequence.  No one number repeats.&lt;br /&gt; */&lt;br /&gt;uint16_t randreg = 10;&lt;br /&gt;&lt;br /&gt;static uint16_t pseudorandom16 (void)&lt;br /&gt;{&lt;br /&gt;    uint16_t newbit = 0;&lt;br /&gt;&lt;br /&gt;    if (randreg == 0) {&lt;br /&gt;        randreg = 1;&lt;br /&gt;    }&lt;br /&gt;    if (randreg &amp; 0x8000) newbit = 1;&lt;br /&gt;    if (randreg &amp; 0x4000) newbit ^= 1;&lt;br /&gt;    if (randreg &amp; 0x1000) newbit ^= 1;&lt;br /&gt;    if (randreg &amp; 0x0008) newbit ^= 1;&lt;br /&gt;    randreg = (randreg &amp;lt;&amp;lt; 1) + newbit;&lt;br /&gt;    return randreg;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int main(void)&lt;br /&gt;{&lt;br /&gt; uint8_t i = 0;&lt;br /&gt; uint16_t j = 0;&lt;br /&gt; uint8_t delay = 20;&lt;br /&gt; DDRB = 0xFF;&lt;br /&gt;&lt;br /&gt; while(1)&lt;br /&gt; {&lt;br /&gt;  j = pseudorandom16();&lt;br /&gt;  for(i=0;i&amp;lt;5;i++)&lt;br /&gt;  {&lt;br /&gt;   if(pseudorandom16() &amp;gt; j)&lt;br /&gt;   {&lt;br /&gt;    PORTB ^= (1&amp;lt;&amp;lt;i);&lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt;  _delay_ms(delay);&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-8409303706707373729?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=ed0dd07fcd044198&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/8409303706707373729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=8409303706707373729' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/8409303706707373729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/8409303706707373729'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2009/08/led-camp-fire.html' title='Led camp fire'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_oN6pPL-C9vc/SpTIdViJCdI/AAAAAAAABjs/hYiKTcNrRT4/s72-c/IMG_3167.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-8973933686320248428</id><published>2009-08-10T22:45:00.000-07:00</published><updated>2009-08-11T09:43:43.052-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='general electronics'/><title type='text'>Home cooked PCB etching - part 1</title><content type='html'>I saw this excellent &lt;a href="http://www.instructables.com/id/Sponge-Ferric-Chloride-Method-Etch-Circuit-Bo"&gt;Instructables &lt;/a&gt;on easy PCB etching and have been itching to give it a try ever since.  I popped into the local Radioshack to pick up the bits, but was dissapointed that they had neither the ferric chloride solution nor the copper boards.  So, when we were up in Santa Rosa for the mini Maker's Fair (see &lt;a href="http://filthwizardry.blogspot.com/2009/08/excuses-first-thank-yous-second-then.html"&gt;Lin's blogpost&lt;/a&gt; for more on that) I ran into the Radioshack up there and was lucky (they'd only just restocked them).  Tonight, after the battle of the bed-times, I thought I'd give it a test run.  For a proper run, I'm going to have to decide on a board to make, get some transfer paper and print out the design at work (no laser printer at home).&lt;br /&gt;&lt;br /&gt;The instructable mentioned that a sharpie should be enough to mask the board, so I drew out a test pattern:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/SoEG0kTw0CI/AAAAAAAABiU/M5lLPXtaRlU/s1600-h/IMG_2469.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 124px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/SoEG0kTw0CI/AAAAAAAABiU/M5lLPXtaRlU/s200/IMG_2469.JPG" alt="" id="BLOGGER_PHOTO_ID_5368579730971873314" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Imaginative, eh?  I guess I could have gone computer programing 101 and used "Hello World!" instead.&lt;br /&gt;&lt;br /&gt;So, next step was to add ferric chloride solution to a sponge and get scrubbing.  The only plastic gloves we've got in the house are 'small' so I figured I'd risk it and just try keeping my fingers out of the way as much as possible. I used a dollar store, sponge on a stick, dabbed on a small amount of ferric chloride solution and got scrubbing.&lt;br /&gt;&lt;br /&gt;About 5 minutes later, nothing had happened.  A bit of an anti-climax from the promised '"1-minute etch" but I persevered for a little while longer and added a bit more solution to the sponge.  I couldn't tell if the black liquid that was forming was to do with the etching process, or if it was just me scrubbing off the sharpie marks...&lt;br /&gt;&lt;br /&gt;Another 5 mins of scrubbing and a few more dabs of solution yielded a glimmer of hope:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/SoEG1bmGR7I/AAAAAAAABik/eNLDSxJAYKc/s1600-h/IMG_2473.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 122px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/SoEG1bmGR7I/AAAAAAAABik/eNLDSxJAYKc/s200/IMG_2473.JPG" alt="" id="BLOGGER_PHOTO_ID_5368579745812727730" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;You can clearly see some of the copper being cleared from the top of the board.  A few more minutes and most of the board was clear.  Being impatient, I stopped there and used a "Mr Clean magic eraser" to clean off the remaining sharpie marks (no nail polish remover in our house, but plenty of need for powerful grime removal ;) ).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/SoEG1xY_xaI/AAAAAAAABis/BCMXJ5Q-5bw/s1600-h/IMG_2474.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 120px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/SoEG1xY_xaI/AAAAAAAABis/BCMXJ5Q-5bw/s200/IMG_2474.JPG" alt="" id="BLOGGER_PHOTO_ID_5368579751663355298" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Sweet!  It works!  Time to create something more functional!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-8973933686320248428?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/8973933686320248428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=8973933686320248428' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/8973933686320248428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/8973933686320248428'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2009/08/home-cooked-pcb-etching-part-1.html' title='Home cooked PCB etching - part 1'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_oN6pPL-C9vc/SoEG0kTw0CI/AAAAAAAABiU/M5lLPXtaRlU/s72-c/IMG_2469.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-5527465746261106903</id><published>2009-07-16T23:32:00.000-07:00</published><updated>2009-08-03T12:52:29.434-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ATtiny13'/><category scheme='http://www.blogger.com/atom/ns#' term='AVR'/><title type='text'>I've got glow-in-the-dark balls</title><content type='html'>Yeah, you heard me right!&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/SmFIpl80aCI/AAAAAAAABhc/-qD5pxUFItg/s1600-h/IMG_1771.JPG"&gt;&lt;img style="cursor: pointer; width: 199px; height: 140px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/SmFIpl80aCI/AAAAAAAABhc/-qD5pxUFItg/s200/IMG_1771.JPG" alt="" id="BLOGGER_PHOTO_ID_5359644910946641954" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I recently got very excited at the local Home-Despot when I found out they sold glow in the dark paint!  I've painted a few things with it (including various parts of the kids - which was more their doing than mine!) but nothing really stood out until I realised I could coat ping-pong balls with the stuff, drill holes in them and insert LEDs where er... "the sun don't shine".   I figured, periodic pulses from the LEDs should be sufficient to charge up the paint on the balls and make them glow.&lt;br /&gt;&lt;br /&gt;One of the things that took the longest out of all of this was painting the ping-pong balls &amp;amp; getting them to dry without all the paint oozing off or collecting at one spot.  The best technique I could come up with was to dip my balls in the paint and then dance around the room waggling them in the air (this was after connecting the LEDs).  Ok, ok, this is getting too much, I'll be serious now.  Unfortunately, that really was my technique for getting the paint to dry evenly.  I'd tried just painting them with a brush and leaving them on some paper, but all the paint oozed down to the bottom and glued the balls to the paper, but left only a really thin coat on them.  Bah. I think I'll look for spray on paint for any future project involving curved surfaces.&lt;br /&gt;&lt;br /&gt;The parts list for this is pretty small: an ATTiny13, 5 LEDs, some perf-board, wire, 8 pin socket, some female header pins (single-row), some snappable male header pins (also single row), a battery pack (I used a 2AA pack) and some ping pong balls.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/SmFIdWG-1QI/AAAAAAAABgc/jOL1Di3ISww/s1600-h/IMG_1762.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 130px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/SmFIdWG-1QI/AAAAAAAABgc/jOL1Di3ISww/s200/IMG_1762.JPG" alt="" id="BLOGGER_PHOTO_ID_5359644700535870722" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/SmFIdMxpKdI/AAAAAAAABgU/xa7OzzgSgkE/s1600-h/IMG_1761.JPG"&gt;&lt;img style="cursor: pointer; width: 196px; height: 200px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/SmFIdMxpKdI/AAAAAAAABgU/xa7OzzgSgkE/s200/IMG_1761.JPG" alt="" id="BLOGGER_PHOTO_ID_5359644698030451154" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The circuit was easy, now that I've got the hang of soldering.  I decided I'd make something a little more modular than normal, so the LEDs weren't soldered directly onto the board.  First, I soldered the LEDs onto some wire (cut in pairs to a few different lengths).  Then I soldered on header pins to the other end of the wires.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/SmFIjlJYV_I/AAAAAAAABg8/ywpWFfo9hgg/s1600-h/IMG_1767.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 144px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/SmFIjlJYV_I/AAAAAAAABg8/ywpWFfo9hgg/s200/IMG_1767.JPG" alt="" id="BLOGGER_PHOTO_ID_5359644807651678194" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/SmFIea0yz4I/AAAAAAAABg0/-qsaOz-yv4w/s1600-h/IMG_1765.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 118px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/SmFIea0yz4I/AAAAAAAABg0/-qsaOz-yv4w/s200/IMG_1765.JPG" alt="" id="BLOGGER_PHOTO_ID_5359644718981631874" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;For the circuit board, I soldered on the IC socket and added some female headers.  I included a row for all the ground pins as well as sockets for all the active uC ports (no need for the reset pin to have a header and I could have left off pin 8's header too).  I used one of the cut-off LED leads to create a ground wire to easilly connect all the ground pins.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/SmFIdyxw1cI/AAAAAAAABgs/1_ChCykVqrA/s1600-h/IMG_1764.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 148px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/SmFIdyxw1cI/AAAAAAAABgs/1_ChCykVqrA/s200/IMG_1764.JPG" alt="" id="BLOGGER_PHOTO_ID_5359644708231501250" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/SmFIds6XzdI/AAAAAAAABgk/FKNpI2EQvaM/s1600-h/IMG_1763.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 122px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/SmFIds6XzdI/AAAAAAAABgk/FKNpI2EQvaM/s200/IMG_1763.JPG" alt="" id="BLOGGER_PHOTO_ID_5359644706656996818" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I wired up the power leads first - and completely forgot to include a power switch!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/SmFIkNV9QVI/AAAAAAAABhE/ye8IzV-l00A/s1600-h/IMG_1769.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 152px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/SmFIkNV9QVI/AAAAAAAABhE/ye8IzV-l00A/s200/IMG_1769.JPG" alt="" id="BLOGGER_PHOTO_ID_5359644818441847122" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I drilled small holes in the ping-pong balls and hot-glue'd the LEDs in place.  Then it was just a matter of connecting up the LED/balls to the correct pins.  I had marked all the ground leads with a black ring at the base.   I've used all wire of the same colour so that, if I make something interesting out of them, the wires won't stand out too much.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/SmFIkahNyLI/AAAAAAAABhM/EAgV_sK_7Z8/s1600-h/IMG_1770.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 140px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/SmFIkahNyLI/AAAAAAAABhM/EAgV_sK_7Z8/s200/IMG_1770.JPG" alt="" id="BLOGGER_PHOTO_ID_5359644821978728626" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/SmFIpl80aCI/AAAAAAAABhc/-qD5pxUFItg/s1600-h/IMG_1771.JPG"&gt;&lt;img style="cursor: pointer; width: 199px; height: 140px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/SmFIpl80aCI/AAAAAAAABhc/-qD5pxUFItg/s200/IMG_1771.JPG" alt="" id="BLOGGER_PHOTO_ID_5359644910946641954" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-5527465746261106903?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/5527465746261106903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=5527465746261106903' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/5527465746261106903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/5527465746261106903'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2009/07/ive-got-glow-in-dark-balls.html' title='I&apos;ve got glow-in-the-dark balls'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_oN6pPL-C9vc/SmFIpl80aCI/AAAAAAAABhc/-qD5pxUFItg/s72-c/IMG_1771.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-3323793803069491052</id><published>2009-07-08T13:12:00.000-07:00</published><updated>2009-07-10T17:04:35.688-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='solar'/><category scheme='http://www.blogger.com/atom/ns#' term='general electronics'/><title type='text'>Solar powered fairy lights</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/SlWLZ9OcBPI/AAAAAAAABgM/X3d1Jm3q0DY/s1600-h/IMG_1698.JPG"&gt;&lt;img src="http://3.bp.blogspot.com/_oN6pPL-C9vc/SlWLZ9OcBPI/AAAAAAAABgM/X3d1Jm3q0DY/s200/IMG_1698.JPG" alt="" id="BLOGGER_PHOTO_ID_5356340609875182834" style="cursor: pointer; width: 200px; height: 144px;" border="0" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/SlWLZAFF77I/AAAAAAAABf8/Nk2YbM1mj7Q/s1600-h/IMG_1600.JPG"&gt;&lt;img src="http://1.bp.blogspot.com/_oN6pPL-C9vc/SlWLZAFF77I/AAAAAAAABf8/Nk2YbM1mj7Q/s200/IMG_1600.JPG" alt="" id="BLOGGER_PHOTO_ID_5356340593461424050" style="cursor: pointer; width: 190px; height: 200px;" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Yes, I'm going through a solar powered phase right now.  I'll have used up the parts I bought from &lt;a href="http://www.allelectronics.com/"&gt;allelectronics.com&lt;/a&gt; soon enough &amp;amp; will have to move onto pastures new.&lt;br /&gt;&lt;br /&gt;My lovely lady suggested it'd be nice to have some twinkling fairy lights in the kitchen; ideally, ones that didn't need to be plugged in to the mains.  The simplest solution would have been to use a battery pack, but our kitchen gets a fair bit of light &amp;amp;, like I said, I'm in a solar powered gadgetry phase right now...&lt;br /&gt;&lt;br /&gt;My ebay habit has brought me some colour changing LEDs (before I knew exactly what they did).  These look like normal LEDs (two leads) but cycle through a few colours over the course of 15 seconds or so.  I figured these would be perfect for the project, so I dug out 4 working ones (using the &lt;a href="http://fangletronics.blogspot.com/2009/07/led-tester.html"&gt;LED tester&lt;/a&gt; I posted about previously).&lt;br /&gt;&lt;br /&gt;There are very few components for this (if you count the solar-panel/charger as a single component): 1 solar charging circuit, 4 colour changing LEDs, an Altoids tin, some wire and I used a couple of neodymium magnets to secure the tin onto the curtain rail in our kitchen.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/SlWLSGQJKhI/AAAAAAAABfU/bPf9GXsYnnI/s1600-h/IMG_1591.JPG"&gt;&lt;img src="http://1.bp.blogspot.com/_oN6pPL-C9vc/SlWLSGQJKhI/AAAAAAAABfU/bPf9GXsYnnI/s200/IMG_1591.JPG" alt="" id="BLOGGER_PHOTO_ID_5356340474859301394" style="cursor: pointer; width: 200px; height: 134px;" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The first thing to do is to cut the LED leads from the solar-charging circuit, this is where we'll attach the wires for our own lights.  I also cut down the plastic 'pins' which hold the circuit board in place; this was to make the assembly fit nicer in the tin (and as an excuse for me to try out some new cutting disks for the Proxxon).&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/SlWLSssS62I/AAAAAAAABfc/_gr5lAGSmz4/s1600-h/IMG_1594.JPG"&gt;&lt;img src="http://4.bp.blogspot.com/_oN6pPL-C9vc/SlWLSssS62I/AAAAAAAABfc/_gr5lAGSmz4/s200/IMG_1594.JPG" alt="" id="BLOGGER_PHOTO_ID_5356340485177928546" style="cursor: pointer; width: 200px; height: 150px;" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/SlWLS7KSFVI/AAAAAAAABfk/VIWrr6jjHmI/s1600-h/IMG_1595.JPG"&gt;&lt;img src="http://1.bp.blogspot.com/_oN6pPL-C9vc/SlWLS7KSFVI/AAAAAAAABfk/VIWrr6jjHmI/s200/IMG_1595.JPG" alt="" id="BLOGGER_PHOTO_ID_5356340489061799250" style="cursor: pointer; width: 200px; height: 134px;" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;I then cut two strands of wire (about 1 1/2' each of red and black), marked where I wanted to place the LEDs/lights on the wires and striped away the insulation around these points.  I ended up melting the insulation away with a soldering iron and then using a knife to scrape off the excess plastic.  There must be a much better way of doing it.&lt;br /&gt;&lt;br /&gt;Soldering the LEDs onto the wires was a little awkward, especially since I cut the LED leads down to about 1/3 cm to keep them close the the wires.  I'm glad I decided to only put on 4 for this prototype!  Hmmm... thinking about it now, I should have left the leads on and bent them around the other wires to hold them in place whilst soldering them, doh!&lt;br /&gt;&lt;br /&gt;After soldering the LEDs, I drilled a couple of small holes in the Altoids tin, threaded in the two wires and soldered them onto the solar charging unit.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/SlWLTBN3uZI/AAAAAAAABfs/ORiNWg06MEc/s1600-h/IMG_1597.JPG"&gt;&lt;img src="http://3.bp.blogspot.com/_oN6pPL-C9vc/SlWLTBN3uZI/AAAAAAAABfs/ORiNWg06MEc/s200/IMG_1597.JPG" alt="" id="BLOGGER_PHOTO_ID_5356340490687461778" style="cursor: pointer; width: 200px; height: 117px;" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/SlWLTWiJIiI/AAAAAAAABf0/6gRuwQ9xhYo/s1600-h/IMG_1598.JPG"&gt;&lt;img src="http://2.bp.blogspot.com/_oN6pPL-C9vc/SlWLTWiJIiI/AAAAAAAABf0/6gRuwQ9xhYo/s200/IMG_1598.JPG" alt="" id="BLOGGER_PHOTO_ID_5356340496409633314" style="cursor: pointer; width: 200px; height: 135px;" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Slide everything into place and there we go:&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/SlWLZAFF77I/AAAAAAAABf8/Nk2YbM1mj7Q/s1600-h/IMG_1600.JPG"&gt;&lt;img src="http://1.bp.blogspot.com/_oN6pPL-C9vc/SlWLZAFF77I/AAAAAAAABf8/Nk2YbM1mj7Q/s200/IMG_1600.JPG" alt="" id="BLOGGER_PHOTO_ID_5356340593461424050" style="cursor: pointer; width: 190px; height: 200px;" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;My better half has been making lots of playdough for some lovely projects (see: &lt;a href="http://filthwizardry.blogspot.com/2009/06/playdough-dinosaur-island.html"&gt;Dinosaur Island&lt;/a&gt; and &lt;a href="http://filthwizardry.blogspot.com/2009/06/playdough-train-table.html"&gt;playdough rain table&lt;/a&gt;) as a result, we've used up a lot of food colouring.  It turns out  the bottles make quite good LED diffusers.  The picture below shows the Fairy Lights in front of our kitchen window.  I used two magnets to make the tin secure (the magnets are on the inside of the tin).  I also ended up taking the lid off the tin and securing the solar panels in-place with a couple of elastic bands.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/SlWLZ9OcBPI/AAAAAAAABgM/X3d1Jm3q0DY/s1600-h/IMG_1698.JPG"&gt;&lt;img src="http://3.bp.blogspot.com/_oN6pPL-C9vc/SlWLZ9OcBPI/AAAAAAAABgM/X3d1Jm3q0DY/s200/IMG_1698.JPG" alt="" id="BLOGGER_PHOTO_ID_5356340609875182834" style="cursor: pointer; width: 200px; height: 144px;" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-3323793803069491052?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/3323793803069491052/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=3323793803069491052' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/3323793803069491052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/3323793803069491052'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2009/07/solar-powered-fairy-lights.html' title='Solar powered fairy lights'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_oN6pPL-C9vc/SlWLZ9OcBPI/AAAAAAAABgM/X3d1Jm3q0DY/s72-c/IMG_1698.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-5422607201589356696</id><published>2009-07-04T22:11:00.000-07:00</published><updated>2009-07-04T22:46:33.547-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='general electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='For the kids'/><title type='text'>Personal empowerment through skill acquisition (or how I fixed a Vtech Tote 'n Go)</title><content type='html'>Phew, what a poncy title!  Well, that's me through and through :) But what I wanted to post about was how empowering learning something pretty simple like soldering has been for me.&lt;br /&gt;&lt;br /&gt;The kids have been playing with various incarnations of Vtech laptops (ones that play 'learning' games to do with letters and numbers).  Their first laptop, the &lt;a href="http://www.amazon.com/VTech-Preschool-Learning-Tote-Laptop/dp/B000E1PY6U/"&gt;Vtech Tote 'n Go&lt;/a&gt;, broke about 6 months ago, the speaker stopped working as did the mouse button.  Normally, that'd mean landfill for this big bit of plastic, but, having learned a little bit of electronics, I took it apart to see if I could figure out what was wrong.&lt;br /&gt;&lt;br /&gt;It turns out that the speaker wires had broken off and the small push button inside the mouse had broken completely.  I got the speaker wire soldered back in place the same day, but the button fix had to wait a while.  I was tempted to hack together some Frankenstein creation using the huge push buttons I bought ages ago, but decided against it (I'm sure the kids would have loved it though).&lt;br /&gt;&lt;br /&gt;I recently found &lt;a href="http://www.allelectronics.com/"&gt;allelectronics.com&lt;/a&gt; (see the &lt;a href="http://fangletronics.blogspot.com/2009/06/solar-powered-fireflies.html"&gt;solar power upgrade&lt;/a&gt; to the fireflies) and, as part of the initial order, I bought some small push buttons which were exact matches for the one in the kids laptop.  So I took a second stab at fixing it.  I couldn't successfully de-solder the original button, so I just clipped it off, trimmed the leads of the replacement and soldered it in place.&lt;br /&gt;&lt;br /&gt;All very simple stuff.  I left the laptop out somewhere I knew the kids would find it and the next morning I hear our youngest waking up our oldest by crying "Carys!  Carys! Come see!  Come see! The monkey laptop!  It's working!".  It was lovely.&lt;br /&gt;&lt;br /&gt;The shocking part of this is that our friends have the same laptop and it's mouse button has stopped working as well.  I'll fix that one too, but it must mean that loads of these things become landfill just because a single button breaks...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-5422607201589356696?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/5422607201589356696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=5422607201589356696' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/5422607201589356696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/5422607201589356696'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2009/07/personal-empowerment-through-skill.html' title='Personal empowerment through skill acquisition (or how I fixed a Vtech Tote &apos;n Go)'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-4110916108244460540</id><published>2009-07-04T20:17:00.000-07:00</published><updated>2009-09-19T18:16:57.379-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='general electronics'/><title type='text'>LED tester</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/SlAu_QQBj9I/AAAAAAAABfM/AS0ANWQNtdY/s1600-h/P1000427.JPG"&gt;&lt;img style="cursor: pointer; width: 176px; height: 200px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/SlAu_QQBj9I/AAAAAAAABfM/AS0ANWQNtdY/s200/P1000427.JPG" alt="" id="BLOGGER_PHOTO_ID_5354831621172334546" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I have to be honest, I've not been very er... meticulous when it comes to keeping my LEDs in check.  Let's be frank, I have a big mess of them and I've no idea which ones work or what colour they are.   I'm about to start on a solar powered fairy lights project and realised I'd be spending a lot of time working out which LEDs were the ones I wanted (hence the subject of this post).&lt;br /&gt;&lt;br /&gt;To date, I've been using a torn down dollar store hand fan for testing; I'll take a picture to show you what I mean:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/SlAu4-VnbrI/AAAAAAAABeU/03-mGI_6mpw/s1600-h/IMG_1523.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 94px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/SlAu4-VnbrI/AAAAAAAABeU/03-mGI_6mpw/s200/IMG_1523.JPG" alt="" id="BLOGGER_PHOTO_ID_5354831513284734642" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;It's not the easiest to use, but it outputs ~3V, has a switch and two leads (not obvious which one is positive and which one is ground though since they're both red).  I ended up getting frustrated whilst holding the ends of the wires onto the LEDs and then switching over wondering if the batteries were dead, the LED was dead or if I was just crap at getting a decent connection between the leads.&lt;br /&gt;&lt;br /&gt;Anyway, what all this blathering is getting to is that I wanted something simpler and more reliable to use.  You know, something that doesn't make me want to throw it against the wall in frustration...  I'd been messing with 8 pin IC sockets and perf board for other projects and realised that they are perfect for this as well.  So I got together the old battery pack from the &lt;a href="http://fangletronics.blogspot.com/2009/05/jar-o-fireflies.html"&gt;JarOFireflies&lt;/a&gt; prototype (which is why it has a magnet still glued on top), a small bit of perfboard, an 8 pin IC socket and 4, 330 ohm, resistors.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/SlAu4oEYqHI/AAAAAAAABeM/YW2fpZ7Clco/s1600-h/IMG_1412.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 120px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/SlAu4oEYqHI/AAAAAAAABeM/YW2fpZ7Clco/s200/IMG_1412.JPG" alt="" id="BLOGGER_PHOTO_ID_5354831507306883186" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I soldered the resistors and socket onto the board at the same time.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/SlAu5SosFtI/AAAAAAAABek/0aOPWEyrAKs/s1600-h/P1000419.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 150px;" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/SlAu5SosFtI/AAAAAAAABek/0aOPWEyrAKs/s200/P1000419.JPG" alt="" id="BLOGGER_PHOTO_ID_5354831518733440722" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I used the wires from the last resistor to solder all the connections on each side together forming two rails (positive and ground): &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/SlAu5ch541I/AAAAAAAABes/AyCAKjx2rcM/s1600-h/P1000421.JPG"&gt;&lt;img style="cursor: pointer; width: 200px; height: 148px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/SlAu5ch541I/AAAAAAAABes/AyCAKjx2rcM/s200/P1000421.JPG" alt="" id="BLOGGER_PHOTO_ID_5354831521389339474" border="0" /&gt;&lt;/a&gt;&lt;div&gt;&lt;br /&gt;Then I soldered in the wires from the battery pack, connecting one to each rail,  and voila!&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/SlAu-kJBs8I/AAAAAAAABe0/G4K1Uvxp1wo/s1600-h/P1000423.JPG"&gt;&lt;img style="cursor: pointer; width: 156px; height: 200px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/SlAu-kJBs8I/AAAAAAAABe0/G4K1Uvxp1wo/s200/P1000423.JPG" alt="" id="BLOGGER_PHOTO_ID_5354831609331823554" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The nice thing about this is that it's easy to check a single led without messing much with it's leads (since there's 4 holes a side, there's plenty of room) and it'll also accommodate, up to, 4 LEDs at a time:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/SlAu_QQBj9I/AAAAAAAABfM/AS0ANWQNtdY/s1600-h/P1000427.JPG"&gt;&lt;img style="cursor: pointer; width: 176px; height: 200px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/SlAu_QQBj9I/AAAAAAAABfM/AS0ANWQNtdY/s200/P1000427.JPG" alt="" id="BLOGGER_PHOTO_ID_5354831621172334546" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/SlAu-x0astI/AAAAAAAABe8/cRgROMuudWA/s1600-h/P1000424.JPG"&gt;&lt;img style="cursor: pointer; width: 173px; height: 200px;" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/SlAu-x0astI/AAAAAAAABe8/cRgROMuudWA/s200/P1000424.JPG" alt="" id="BLOGGER_PHOTO_ID_5354831613003477714" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/SlAu_PVlaWI/AAAAAAAABfE/_lHvGXwLwyI/s1600-h/P1000425.JPG"&gt;&lt;img style="cursor: pointer; width: 165px; height: 200px;" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/SlAu_PVlaWI/AAAAAAAABfE/_lHvGXwLwyI/s200/P1000425.JPG" alt="" id="BLOGGER_PHOTO_ID_5354831620927220066" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This took about 20 mins to put together including frequent interruptions from the kids wondering what I was doing by myself in the garage.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;UPDATE (2009-09-19): The resistor set-up I created is obviously crazy, I'm not sure what I was thinking (or not) at this point...  The resistors should be separating pins 1 - 4 from the positive rail.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-4110916108244460540?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/4110916108244460540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=4110916108244460540' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/4110916108244460540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/4110916108244460540'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2009/07/led-tester.html' title='LED tester'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_oN6pPL-C9vc/SlAu_QQBj9I/AAAAAAAABfM/AS0ANWQNtdY/s72-c/P1000427.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-7905754486770583640</id><published>2009-06-17T22:25:00.000-07:00</published><updated>2009-06-17T22:50:19.996-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefly'/><category scheme='http://www.blogger.com/atom/ns#' term='solar'/><category scheme='http://www.blogger.com/atom/ns#' term='AVR'/><title type='text'>Solar powered fireflies</title><content type='html'>I've been wanting to make something solar powered for some time &amp;amp; figured the firefly kit would be perfect to upgrade to solar power. &lt;br /&gt;&lt;br /&gt;I just came across some cheap, second hand, solar powered light fixtures from &lt;a href="http://www.allelectronics.com/"&gt;allelectronics&lt;/a&gt;, which is a great place to pick up bits and bats for your electronic projects.  Here's the actual solar lights I bought - &lt;a href="http://www.allelectronics.com/make-a-store/item/SPL-07/SOLAR-CELL-W/CHARGING-CIRCUIT-1-RED-LED/-/1.html"&gt;solar-cell w/charging circuit&lt;/a&gt;.  As the description says, they come with two solar panels, an LDR, a charging circuit (including - old - batteries) and some LEDs (one LED with this particular one and three with a different &lt;a href="http://www.allelectronics.com/make-a-store/item/SPL-05/SOLAR-CELLS-W/CHARGING-CIRCUIT-3-RED-LED-S/-/1.html"&gt;product&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/SjnSuAExDQI/AAAAAAAABdM/46opBE0rK1Y/s1600-h/IMG_1130.jpg"&gt;&lt;img style="cursor: pointer; width: 200px; height: 134px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/SjnSuAExDQI/AAAAAAAABdM/46opBE0rK1Y/s200/IMG_1130.jpg" alt="" id="BLOGGER_PHOTO_ID_5348537720214981890" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/SjnSuBxUozI/AAAAAAAABdE/w_BI4Z3rViU/s1600-h/IMG_1127.jpg"&gt;&lt;img style="cursor: pointer; width: 200px; height: 157px;" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/SjnSuBxUozI/AAAAAAAABdE/w_BI4Z3rViU/s200/IMG_1127.jpg" alt="" id="BLOGGER_PHOTO_ID_5348537720670298930" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As  you can see from the pictures, all the components are easily acessible; these seemed perfect for hacking. &lt;br /&gt;&lt;br /&gt;My first attempt was pretty simple, I just de-soldered the battery wires from my old &lt;a href="http://fangletronics.blogspot.com/2009/05/jar-o-fireflies.html"&gt;JarOFireflies &lt;/a&gt;project, snipped the leads to the LED on the solar light kit and soldered the two kits together (the leads to the LED actually have a + and - designation printed on the board).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/SjnSuVEao0I/AAAAAAAABdU/Mv2Xj7lI-Q4/s1600-h/IMG_1132.jpg"&gt;&lt;img style="cursor: pointer; width: 200px; height: 134px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/SjnSuVEao0I/AAAAAAAABdU/Mv2Xj7lI-Q4/s200/IMG_1132.jpg" alt="" id="BLOGGER_PHOTO_ID_5348537725850657602" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The LED wires are solid core and quite thick so there's no worry about them snapping under the strain and it made positioning the firefly board easier too.  Speaking of which, I cut down the  board to a more reasonable size for this project.&lt;br /&gt;&lt;br /&gt;I didn't know if the batteries on the solar kit were duff so I left the hybrid out in the sunshine for a full day to charge then brought it indoors to see if it works:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/SjnSuiWtTfI/AAAAAAAABdc/71tHwfw8dO4/s1600-h/IMG_1134.jpg"&gt;&lt;img style="cursor: pointer; width: 130px; height: 200px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/SjnSuiWtTfI/AAAAAAAABdc/71tHwfw8dO4/s200/IMG_1134.jpg" alt="" id="BLOGGER_PHOTO_ID_5348537729417039346" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/SjnSu2Sx60I/AAAAAAAABdk/qT7p6tTYiNQ/s1600-h/IMG_1135.jpg"&gt;&lt;img style="cursor: pointer; width: 152px; height: 200px;" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/SjnSu2Sx60I/AAAAAAAABdk/qT7p6tTYiNQ/s200/IMG_1135.jpg" alt="" id="BLOGGER_PHOTO_ID_5348537734769273666" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;And it does!  What a pleasant surprise for something to work first time!&lt;br /&gt;&lt;br /&gt;I think I'll cut a hole in the original jar's lid and place the kit in it more securely.  Might be nice just to put it out in the garden to confuse the next door neighbours cats who seem to prefer our back yard to their own...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-7905754486770583640?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/7905754486770583640/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=7905754486770583640' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/7905754486770583640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/7905754486770583640'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2009/06/solar-powered-fireflies.html' title='Solar powered fireflies'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_oN6pPL-C9vc/SjnSuAExDQI/AAAAAAAABdM/46opBE0rK1Y/s72-c/IMG_1130.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-1613824874603999905</id><published>2009-06-06T14:18:00.000-07:00</published><updated>2009-06-08T09:07:18.056-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='For the kids'/><category scheme='http://www.blogger.com/atom/ns#' term='555'/><title type='text'>555 noisemaker</title><content type='html'>When I started off on the electronics journey I bought the &lt;a href="http://www.makershed.com/ProductDetails.asp?ProductCode=MKCWR1"&gt;solar powered theramin kit&lt;/a&gt; (heliophone) from the makershed I thought it'd be a fun thing for the kids and would be a good starting point for learning to solder.  The heliophone uses a solar panel to generate power and produces a clicking noise (the frequency of clicks varies with the intensity of ambient light).&lt;br /&gt;&lt;br /&gt;&lt;div&gt;The noisemaker I wanted to make sounds pretty similar but runs off a battery and uses a &lt;a href="http://en.wikipedia.org/wiki/555_timer"&gt;555 timer&lt;/a&gt; to generate pulses which drive the speaker.   Like with the heliophone kit,  we alter the frequency of the 'clicks' with changes in ambient light intensity.   In this case, it uses the standard "astable" set-up for the 555 and switches R1 for an &lt;a href="http://en.wikipedia.org/wiki/Light_Dependent_Resistor"&gt;LDR&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This is a pretty simple set-up and it makes a horrendously annoying noise; so it's perfect for the kids :)  My inspiration for this came from this &lt;a href="http://hackaday.com/"&gt;hack-a-day&lt;/a&gt; post on &lt;a href="http://hackaday.com/2008/10/25/tiny-optical-theremins/"&gt;tiny-optical-theramins&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I'd already bought a few 555s and LDRs (again due to my eBay issues) so it seemed daft not to make something out of them, especially if the kids were likely to enjoy it.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/Sg-7xh5ziiI/AAAAAAAABao/beSHVQQ86mY/s1600-h/IMG_0122.jpg"&gt;&lt;img style="cursor: pointer; width: 200px; height: 190px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/Sg-7xh5ziiI/AAAAAAAABao/beSHVQQ86mY/s200/IMG_0122.jpg" alt="" id="BLOGGER_PHOTO_ID_5336690543046134306" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/Sg-7xcRmosI/AAAAAAAABag/3h2BvQqDuUw/s1600-h/IMG_0120.jpg"&gt;&lt;img style="cursor: pointer; width: 200px; height: 142px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/Sg-7xcRmosI/AAAAAAAABag/3h2BvQqDuUw/s200/IMG_0120.jpg" alt="" id="BLOGGER_PHOTO_ID_5336690541535339202" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here's the final kit.  I still want to house it in an interesting way, but I'll have to employ my lady's creative talent to produce something attractive.  Maybe I'll paint an alien face on the tin with the LDR sticking through as it's mouth and get the kids to 'feed' it light.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/Sg-7x904quI/AAAAAAAABaw/drSFZuCf3m8/s1600-h/IMG_0123.jpg"&gt;&lt;img style="cursor: pointer; width: 200px; height: 160px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/Sg-7x904quI/AAAAAAAABaw/drSFZuCf3m8/s200/IMG_0123.jpg" alt="" id="BLOGGER_PHOTO_ID_5336690550541691618" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/Sg-7xzXeSII/AAAAAAAABa4/R2PBcEgL8s0/s1600-h/IMG_0124.jpg"&gt;&lt;img style="cursor: pointer; width: 200px; height: 132px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/Sg-7xzXeSII/AAAAAAAABa4/R2PBcEgL8s0/s200/IMG_0124.jpg" alt="" id="BLOGGER_PHOTO_ID_5336690547733973122" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here's a little test run I did with Ffion, she got distracted pretty quickly by stuff going on in the next room...&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-850028aeb632d7c1" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v7.nonxt1.googlevideo.com/videoplayback?id%3D850028aeb632d7c1%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329988015%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D55457D6A4BC123D2B4C947795A3EE3AE252F8774.2C52485DD8779C7C775B958E802AFBCF03AEEF42%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D850028aeb632d7c1%26offsetms%3D5000%26itag%3Dw160%26sigh%3D9yF3EDJpUz6vk5RF09tCageSY3k&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v7.nonxt1.googlevideo.com/videoplayback?id%3D850028aeb632d7c1%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329988015%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D55457D6A4BC123D2B4C947795A3EE3AE252F8774.2C52485DD8779C7C775B958E802AFBCF03AEEF42%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D850028aeb632d7c1%26offsetms%3D5000%26itag%3Dw160%26sigh%3D9yF3EDJpUz6vk5RF09tCageSY3k&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-1613824874603999905?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=850028aeb632d7c1&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/1613824874603999905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=1613824874603999905' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/1613824874603999905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/1613824874603999905'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2009/05/555-noisemaker.html' title='555 noisemaker'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_oN6pPL-C9vc/Sg-7xh5ziiI/AAAAAAAABao/beSHVQQ86mY/s72-c/IMG_0122.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-1153115283164928523</id><published>2009-05-18T08:30:00.000-07:00</published><updated>2009-07-10T16:57:59.612-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ATtiny13'/><category scheme='http://www.blogger.com/atom/ns#' term='AVR'/><title type='text'>ATtiny header board</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/ShGEB2e3fPI/AAAAAAAABbI/2tpmeuFTm4A/s1600-h/IMG_0130.jpg"&gt;&lt;img style="cursor: pointer; width: 200px; height: 138px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/ShGEB2e3fPI/AAAAAAAABbI/2tpmeuFTm4A/s200/IMG_0130.jpg" alt="" id="BLOGGER_PHOTO_ID_5337192200750464242" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I've been programming my AVRs using the &lt;a href="http://www.sparkfun.com/commerce/tutorial_info.php?tutorials_id=93"&gt;SparkFun &lt;/a&gt;set-up since I started.  This is fine for the odd bit of tinkering, but it's a pain having all those wires poked into the programming cable and getting in the way on the breadboard.  With an 8-pin dip, there's not a lot of room around the chip for my fat fingers to add wires.&lt;br /&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/SfsUwCdmZYI/AAAAAAAABXY/juzdNaql9tE/s1600-h/IMG_9620_web.jpg"&gt;&lt;img src="http://4.bp.blogspot.com/_oN6pPL-C9vc/SfsUwCdmZYI/AAAAAAAABXY/juzdNaql9tE/s320/IMG_9620_web.jpg" alt="" id="BLOGGER_PHOTO_ID_5330877399450412418" style="cursor: pointer; width: 320px; height: 226px;" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;I'd seen &lt;a href="http://tinkerlog.com/2009/01/18/attiny-breadboard-headers/"&gt;these&lt;/a&gt; breadboard headers over at &lt;a href="http://tinkerlog.com/"&gt;Tinkerlog.com&lt;/a&gt; and fancied having a go at making my own using the components I'd got lying around (well, ok, I bough the male/female header pins from &lt;a href="http://shop.ebay.com/items/_W0QQ_nkwZheaderQ20pinsQQ_armrsZ1QQ_fromZR40QQ_mdoZ"&gt;eBay&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;First a rough idea of how I thought it should look:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/ShGEGE2kWHI/AAAAAAAABbo/nKi4g8JJzsk/s1600-h/top_view.jpg"&gt;&lt;img style="cursor: pointer; width: 200px; height: 149px;" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/ShGEGE2kWHI/AAAAAAAABbo/nKi4g8JJzsk/s200/top_view.jpg" alt="" id="BLOGGER_PHOTO_ID_5337192273327446130" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Then I tried to figure out where the wires should go based on my original set-up (pic of wire mess above) and the ATtiny13 datashet.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/ShGEBt7GeCI/AAAAAAAABbA/t5VijnfHQak/s1600-h/block_diagram.jpg"&gt;&lt;img style="cursor: pointer; width: 200px; height: 136px;" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/ShGEBt7GeCI/AAAAAAAABbA/t5VijnfHQak/s200/block_diagram.jpg" alt="" id="BLOGGER_PHOTO_ID_5337192198452967458" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Finally I gave a little thought as to where the physical wires were going to go on the perfboard.   I decided to swap the position of the 6-pin programming header to make the wiring a little easier.  I'm sure there's a better solution, but I was impatient and wanted to get on with it.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/ShGEGL02fII/AAAAAAAABbw/-_ziv306Wps/s1600-h/wiring_perf.jpg"&gt;&lt;img style="cursor: pointer; width: 200px; height: 110px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/ShGEGL02fII/AAAAAAAABbw/-_ziv306Wps/s200/wiring_perf.jpg" alt="" id="BLOGGER_PHOTO_ID_5337192275199294594" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Then it was a matter of soldering everything together.  I am not an accomplished solderer - this is only my 3rd real soldering project and I'm sure most people wouldn't even consider the ones I've done so far 'projects'.&lt;br /&gt;&lt;br /&gt;First off I soldered the headers, push switch (cannibalized from a broken kids toy) and IC socket.  This is pretty much how the finished project looks from the top.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/ShGEB2e3fPI/AAAAAAAABbI/2tpmeuFTm4A/s1600-h/IMG_0130.jpg"&gt;&lt;img style="cursor: pointer; width: 200px; height: 138px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/ShGEB2e3fPI/AAAAAAAABbI/2tpmeuFTm4A/s200/IMG_0130.jpg" alt="" id="BLOGGER_PHOTO_ID_5337192200750464242" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Then I realise that I could bridge pins 1 and 8 using the 10K resisitor and have the resistor out of the way of the rest of the wires by having it on the front of the board.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/ShGEBzV6o3I/AAAAAAAABbQ/tXcRfceaWsY/s1600-h/IMG_0131.jpg"&gt;&lt;img style="cursor: pointer; width: 200px; height: 162px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/ShGEBzV6o3I/AAAAAAAABbQ/tXcRfceaWsY/s200/IMG_0131.jpg" alt="" id="BLOGGER_PHOTO_ID_5337192199907615602" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;After that it all got a little messy...  I need to give myself more time to figure out wiring/routing!  I guess this is all a learning experience :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/ShGEBzQrusI/AAAAAAAABbY/QHUcxYIqQHk/s1600-h/IMG_0135.jpg"&gt;&lt;img style="cursor: pointer; width: 200px; height: 167px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/ShGEBzQrusI/AAAAAAAABbY/QHUcxYIqQHk/s200/IMG_0135.jpg" alt="" id="BLOGGER_PHOTO_ID_5337192199885667010" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/ShGECJr7eeI/AAAAAAAABbg/H9CH9x42Wrc/s1600-h/IMG_0140.jpg"&gt;&lt;img style="cursor: pointer; width: 200px; height: 142px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/ShGECJr7eeI/AAAAAAAABbg/H9CH9x42Wrc/s200/IMG_0140.jpg" alt="" id="BLOGGER_PHOTO_ID_5337192205905525218" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;I kept the insulation on the long wires to prevent short circuits, unfortunately I also ended up melting a lot of the plastic which caused a few issues around pin 5 of the IC socket hence the blackened mess and excess solder around there...  I think I managed to sort out my technique a bit better after than and the remaining solder bridges are ok (tips on creating these gratefully received!).&lt;br /&gt;&lt;br /&gt;Here it is in action (note that I have to bring in power from the breadboard with my particular programmer).  &lt;enter picture="" of="" firefly="" test="" with="" the="" board=""&gt;&lt;br /&gt;&lt;/enter&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/ShJOwxanf7I/AAAAAAAABcA/g8HEjXheHBU/s1600-h/IMG_0144.jpg"&gt;&lt;img style="cursor: pointer; width: 118px; height: 200px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/ShJOwxanf7I/AAAAAAAABcA/g8HEjXheHBU/s200/IMG_0144.jpg" alt="" id="BLOGGER_PHOTO_ID_5337415108193124274" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/ShJOw0y_epI/AAAAAAAABb4/t177w4kfgo4/s1600-h/IMG_0142.jpg"&gt;&lt;img style="cursor: pointer; width: 163px; height: 200px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/ShJOw0y_epI/AAAAAAAABb4/t177w4kfgo4/s200/IMG_0142.jpg" alt="" id="BLOGGER_PHOTO_ID_5337415109100665490" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-1153115283164928523?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/1153115283164928523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=1153115283164928523' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/1153115283164928523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/1153115283164928523'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2009/05/attiny-header-board.html' title='ATtiny header board'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_oN6pPL-C9vc/ShGEB2e3fPI/AAAAAAAABbI/2tpmeuFTm4A/s72-c/IMG_0130.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-1357083579323536975</id><published>2009-05-09T15:20:00.000-07:00</published><updated>2009-05-09T23:21:02.926-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='AVR'/><title type='text'>Basic AVR IO</title><content type='html'>I found this very confusing when I started to program my &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;ATtiny&lt;/span&gt;13.  I read a bunch of different sites/blogs/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;datasheets&lt;/span&gt; to get a feel for it (and am still slightly confused &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;tbh&lt;/span&gt;).  So, I thought I'd give a brief overview of the basics in a way that makes sense to me.  I'm not going to cover input here, just output; but it's a good start.&lt;br /&gt;&lt;br /&gt;Here's the key concepts:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;AVR&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;uCs&lt;/span&gt; are 8-bit devices.&lt;/li&gt;&lt;li&gt;Every &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;AVR&lt;/span&gt; has at least some pins which can act as either Input or Output (I/O) devices.&lt;/li&gt;&lt;li&gt;The voltage on the pins can be sensed or controlled via software.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Because of 1. physical pins are logically grouped in sets of 8 as I/O ports.  For my &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;ATtiny&lt;/span&gt;13 there is only one port (port B) as there are only 8 pins.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Each I/O port has 3 registers associated with it: &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;DDRx&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;PINx&lt;/span&gt; and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;PORTx&lt;/span&gt; (more on this later), where x represents the port (in my case there's only &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;BBRB&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;PINB&lt;/span&gt; and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;PORTB&lt;/span&gt; available).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;I/O pins exists as registers inside the processor.  It's the software controlled contents of these registers that controls the state and operation of the I/O ports and pins.&lt;/li&gt;&lt;li&gt;The registers are 8-bits in size.  Each bit in the register determines the operation of the corresponding number pin (0-7).&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;DDRx&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;This register the direction (input/output) of the pins on port x.  Again, for the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;ATtiny&lt;/span&gt;13 there is only a port B so we only have &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;DDRB&lt;/span&gt; available but on other &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;AVRs&lt;/span&gt; there can be many ports (e.g. the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;atmega&lt;/span&gt;168 has 3 ports B, C and D controlling 23 programmable I/O pins) .&lt;br /&gt;&lt;br /&gt;A '0' bit makes that port pin act as input.&lt;br /&gt;A '1' bit makes that port pin act as output.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;PORTx&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;This register contains the output state of the pins on port x.&lt;br /&gt;&lt;br /&gt;A '0' bit is considered LOW (~0V)&lt;br /&gt;A '1' bit is considered HIGH (~&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;Vcc&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;PINx&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;This register contains the input state of the pins on port x.&lt;br /&gt;&lt;br /&gt;A '0' bit indicates that the port pin is LOW (~0V).&lt;br /&gt;A '1' bit indicates that the port pin is HIGH (~&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;Vcc&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;So let's take a quick look at the simple code I posted in "&lt;a href="http://fangletronics.blogspot.com/2009/04/starting-with-avr-microcontroller.html"&gt;Starting with the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;AVR&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;uC&lt;/span&gt;&lt;/a&gt;":&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;1:  #include &lt;avr h=""&gt;&lt;br /&gt;2:  #include &lt;avr h=""&gt;&lt;br /&gt;3:&lt;br /&gt;4:  //LED is wired into pin 7 (PB2)&lt;br /&gt;5:  #define LED PB2&lt;br /&gt;6:&lt;br /&gt;7:  int main(void){&lt;br /&gt;8:   //set data direction register for pin 7 to output&lt;br /&gt;9:   &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;DDRB&lt;/span&gt; |= _&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;BV&lt;/span&gt;(&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;DDB&lt;/span&gt;2);&lt;br /&gt;10:&lt;br /&gt;11:  //infinite loop&lt;br /&gt;12:  while (1) {&lt;br /&gt;13:   //turn on the LED&lt;br /&gt;14:   &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;PORTB&lt;/span&gt; |= _&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;BV&lt;/span&gt;(LED);&lt;br /&gt;15:   //wait for 1/4 of a second&lt;br /&gt;16:   _delay_ms(250);&lt;br /&gt;17:   //turn off the LED&lt;br /&gt;18:   &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;PORTB&lt;/span&gt; &amp;amp;= ~_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;BV&lt;/span&gt;(LED);&lt;br /&gt;19:   //wait for 1/4 second&lt;br /&gt;20:   _delay_ms(250);&lt;br /&gt;21:  }&lt;br /&gt;22: }&lt;/avr&gt;&lt;/avr&gt;&lt;/pre&gt;5: define LED as PB2.  This is just a convenience to allow us to refer to pin 7 as the variable LED.  I have the LED wired into pin 7 and this pin is called PB2 according to my &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;datasheet&lt;/span&gt; (this can be different for different &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;uCs&lt;/span&gt;).  PB2 is actually another variable which has been defined thanks to the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;avr&lt;/span&gt;/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_34"&gt;io&lt;/span&gt;.h import statement.  I could have used the number 7 instead but I decided to use the name of the pin from the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_35"&gt;datasheet&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;9: This sets bit 7 of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_36"&gt;DDRB&lt;/span&gt; to '1' without affecting any of the other bits in the register.  This is the data direction register (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_37"&gt;DDR&lt;/span&gt;), setting a pin in this register to a '1' makes that pin act as an output.  I think I should have used the LED variable (defined earlier) rather than &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_38"&gt;DDR&lt;/span&gt;2, just for clarity.  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_39"&gt;Ok&lt;/span&gt;, next time.&lt;br /&gt;&lt;br /&gt;14: Here we manipulate the bits in the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_40"&gt;PORTB&lt;/span&gt; register.  This statement sets bit 7 to '1'  without affecting any of the other bits in the register.  Assigning a '1' to bit 7 of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_41"&gt;PORTB&lt;/span&gt; sets pin 7 to HIGH (~&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_42"&gt;Vcc&lt;/span&gt;).  This allows current to flow through our LED, lighting it up (or burning it out if you've not added a resistor in serial with it).&lt;br /&gt;&lt;br /&gt;18: This statement sets bit 7 of the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_43"&gt;PORTB&lt;/span&gt; register to '0' without affecting any of the other bits.  Pin 7 is now LOW, no current flows through the LED (so we've turned it off).&lt;br /&gt;&lt;br /&gt;Now, here's a little nugget of info that didn't click until my trip to &lt;a href="http://fangletronics.blogspot.com/2009/04/noisebridge.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_44"&gt;Noisebridge&lt;/span&gt; &lt;/a&gt;and a chat with Mitch Altman:  I/O pins, by their very nature, are ambivalent towards the direction of current flow.  Let me say that again as it's something I didn't realise to begin with and it has an impact on programming &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_45"&gt;LEDs&lt;/span&gt; with the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_46"&gt;AVR&lt;/span&gt;.  &lt;span style="font-weight: bold;"&gt;I/O pins don't care which way current flows through them&lt;/span&gt;.  So, if you have an LED attached to an I/O port (via a resistor) then it can be orientated in either direction (i.e. connected to ground or &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_47"&gt;Vcc&lt;/span&gt;, it doesn't matter), the only difference will be whether or not a '1' or a '0' on the corresponding &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_48"&gt;PORTB&lt;/span&gt; pin switches it on or off.  If the LED is connected to ground, then a '1' in the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_49"&gt;PORTB&lt;/span&gt; register will turn it on; on the other hand, if it's connected to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_50"&gt;Vcc&lt;/span&gt;, then a '0' will switch the LED on.&lt;br /&gt;&lt;br /&gt;I know I laboured that last point, but it was non-obvious to me (as a beginner) so I wanted to share.  It also meant that those common cathode &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_51"&gt;RGB&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_52"&gt;LEDs&lt;/span&gt; I bought aren't as useless as I thought - I was under the wrong impression that I'd only be able to program them using 3 transistors attached to the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_53"&gt;AVR&lt;/span&gt; as switches, because I thought you could only turn on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_54"&gt;LEDs&lt;/span&gt; [with an &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_55"&gt;AVR&lt;/span&gt;] by placing a '1' in the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_56"&gt;PORTB&lt;/span&gt; register... &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_57"&gt;doh&lt;/span&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-1357083579323536975?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/1357083579323536975/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=1357083579323536975' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/1357083579323536975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/1357083579323536975'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2009/05/basic-avr-io.html' title='Basic AVR IO'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-8629498817696406218</id><published>2009-05-02T11:34:00.000-07:00</published><updated>2010-03-21T10:12:51.504-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefly'/><category scheme='http://www.blogger.com/atom/ns#' term='ATtiny13'/><category scheme='http://www.blogger.com/atom/ns#' term='AVR'/><title type='text'>Jar o' Fireflies</title><content type='html'>I've seen a few good examples of micro controller controlled fireflies "in a jar" and I wanted to try this for myself.  This is by no means a new idea (just take a look at this &lt;a href="http://www.youtube.com/results?search_type=&amp;amp;search_query=fireflies+in+a+jar&amp;amp;aq=f"&gt;youtube search&lt;/a&gt; and you'll see tons of examples) but I like the idea and I'd already got the basic set-up (see my previous post on AVR programming).  All I needed to do was work out the programming (the wiring seems pretty obvious - wire LEDs to uC, wire uC to battery).&lt;br /&gt;&lt;br /&gt;What I wanted to do was use all the ATtiny13's 6 output pins to control 6 "fireflies".  I'd be happy with just randomly pulsing green LEDs, but I thought it was important to have the LEDs pulse on and off rather than just switch on an off.  Here's a youtube video showing &lt;a href="http://www.youtube.com/watch?v=9OJpcBGPSEs"&gt;fireflies in New York&lt;/a&gt; as an example of how the real thing looks.  I have a very fond memory of sitting out on a boulder with my brother in Nepal and looking out at a hillside with thousands of fireflies blinking away; we stayed there for ages captivated by the hypnotic display.&lt;br /&gt;&lt;br /&gt;So, the standard way to create pulses with an AVR seems to be with pulse width modulation (&lt;a href="http://en.wikipedia.org/wiki/Pulse-width_modulation"&gt;PWM&lt;/a&gt;).  Unfortunately mine only has 2 PWM outputs and I wanted to use the parts on hand.  A quick search brought up a few possible solutions, but &lt;a href="http://blog.kevinmehall.net/2007/rgb-led-rainbow-fader"&gt;this &lt;/a&gt;post on Kevin Mehall's blog was the winner for me.  I ended up implementing a software PWM solution based on the code Kevin made public - thanks, Kevin!  I've not quite worked out the best way to post code on blogger, when I do I'll post the actual code.&lt;br /&gt;&lt;br /&gt;Here's an overview of the parts that went into the project:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/SfypE0nY0FI/AAAAAAAABZo/q31JIwgO9XU/s1600-h/IMG_9127_web.jpg"&gt;&lt;img style="cursor: pointer; width: 206px; height: 132px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/SfypE0nY0FI/AAAAAAAABZo/q31JIwgO9XU/s200/IMG_9127_web.jpg" alt="" id="BLOGGER_PHOTO_ID_5331321959208243282" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The jar was found in the local Savers, the perf board was bought on eBay as were the IC socket, uC, green LEDs and battery pack (all in batches of 10 or more).  The wire on the bottom left was scavenged from a broken kids princess wand.  The hair clip was an interloper.&lt;br /&gt;&lt;br /&gt;My lovely missus decided to improve my project by drawing a few fireflies on &lt;a href="http://www.youtube.com/watch?v=0Nrt2OuiD0k"&gt;shrinkydinks&lt;/a&gt; so that I could glue them onto the LEDs after the project was finished:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/SfyoVw2VHKI/AAAAAAAABY4/cnVUmHLE6q4/s1600-h/IMG_9163.JPG"&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/SfyoV5hGqeI/AAAAAAAABZA/7L5ceJgSA-g/s1600-h/IMG_9164.JPG"&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/SfypEjgOdrI/AAAAAAAABZY/Bvo9R5fYbco/s1600-h/firefly_off.jpg"&gt;&lt;img style="cursor: pointer; width: 200px; height: 140px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/SfypEjgOdrI/AAAAAAAABZY/Bvo9R5fYbco/s200/firefly_off.jpg" alt="" id="BLOGGER_PHOTO_ID_5331321954614802098" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/SfypEtkgnwI/AAAAAAAABZg/PitjadEYNYw/s1600-h/firefly_on.jpg"&gt;&lt;img style="cursor: pointer; width: 191px; height: 140px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/SfypEtkgnwI/AAAAAAAABZg/PitjadEYNYw/s200/firefly_on.jpg" alt="" id="BLOGGER_PHOTO_ID_5331321957317123842" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here's some photo pr0n of the project in various stages of completion:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/SfypJ1ZXx_I/AAAAAAAABaA/PseUP2NVih4/s1600-h/IMG_9159_web.jpg"&gt;&lt;img style="cursor: pointer; width: 130px; height: 200px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/SfypJ1ZXx_I/AAAAAAAABaA/PseUP2NVih4/s200/IMG_9159_web.jpg" alt="" id="BLOGGER_PHOTO_ID_5331322045317236722" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/SfypFTLjfuI/AAAAAAAABZ4/8ATvsM49iUE/s1600-h/IMG_9133_web.jpg"&gt;&lt;img style="cursor: pointer; width: 131px; height: 200px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/SfypFTLjfuI/AAAAAAAABZ4/8ATvsM49iUE/s200/IMG_9133_web.jpg" alt="" id="BLOGGER_PHOTO_ID_5331321967413001954" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/SfypKOIQUaI/AAAAAAAABaQ/s1b84gLM0Ok/s1600-h/IMG_9167_web.jpg"&gt;&lt;img style="cursor: pointer; width: 114px; height: 200px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/SfypKOIQUaI/AAAAAAAABaQ/s1b84gLM0Ok/s200/IMG_9167_web.jpg" alt="" id="BLOGGER_PHOTO_ID_5331322051956330914" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/SfypE2COW8I/AAAAAAAABZw/j1g-uuTOa08/s1600-h/IMG_9130_we.jpg"&gt;&lt;img style="cursor: pointer; width: 210px; height: 132px;" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/SfypE2COW8I/AAAAAAAABZw/j1g-uuTOa08/s200/IMG_9130_we.jpg" alt="" id="BLOGGER_PHOTO_ID_5331321959589239746" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/SfypJ82JxeI/AAAAAAAABaI/7gZNCuq3sD0/s1600-h/IMG_9162_web.jpg"&gt;&lt;img style="cursor: pointer; width: 200px; height: 134px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/SfypJ82JxeI/AAAAAAAABaI/7gZNCuq3sD0/s200/IMG_9162_web.jpg" alt="" id="BLOGGER_PHOTO_ID_5331322047317001698" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And here's something we bought to scare the fireflies:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/SfypKWbReFI/AAAAAAAABaY/ql5fIr8Pm9o/s1600-h/IMG_9270_web.jpg"&gt;&lt;img style="cursor: pointer; width: 200px; height: 134px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/SfypKWbReFI/AAAAAAAABaY/ql5fIr8Pm9o/s200/IMG_9270_web.jpg" alt="" id="BLOGGER_PHOTO_ID_5331322054183581778" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We got these from Lowes; I think the kids enjoy the venus fly traps much more than the fireflies... c'est la vie.&lt;br /&gt;&lt;br /&gt;And, finally, a little video.  The flicker isn't actually as bad in real life as it appears in the video, hopefully I'll find a way to remove it completely.&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-119c707a1a114844" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v4.nonxt5.googlevideo.com/videoplayback?id%3D119c707a1a114844%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329988015%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D47829DA844B00AA2258444AF5F4D66B5213D6A48.36CDA8A7E796F908ACAEF6E530614FD9B139706F%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D119c707a1a114844%26offsetms%3D5000%26itag%3Dw160%26sigh%3D008ER5ry5C2ynhUGYSARa866qgo&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v4.nonxt5.googlevideo.com/videoplayback?id%3D119c707a1a114844%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329988015%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D47829DA844B00AA2258444AF5F4D66B5213D6A48.36CDA8A7E796F908ACAEF6E530614FD9B139706F%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D119c707a1a114844%26offsetms%3D5000%26itag%3Dw160%26sigh%3D008ER5ry5C2ynhUGYSARa866qgo&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-8629498817696406218?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=119c707a1a114844&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/8629498817696406218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=8629498817696406218' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/8629498817696406218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/8629498817696406218'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2009/05/jar-o-fireflies.html' title='Jar o&apos; Fireflies'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_oN6pPL-C9vc/SfypE0nY0FI/AAAAAAAABZo/q31JIwgO9XU/s72-c/IMG_9127_web.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-6778875868608220088</id><published>2009-04-26T21:51:00.000-07:00</published><updated>2010-02-05T15:58:30.980-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='ATtiny13'/><category scheme='http://www.blogger.com/atom/ns#' term='AVR'/><title type='text'>Starting with the AVR microcontroller</title><content type='html'>&lt;div&gt;I thought it'd be fun to do some microcontroller (uC) programming.  I've been following the Make blog (and a few others) for a while &amp;amp; love the idea of interactive electronics or even something just a little more complicated than vibrating yogurt pots and wired up LEDs.  I can program already, so it seemed like the logical next step.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Well, firstly I spent a fair bit of time being confused by the huge amount of choice (Arduino, BASIC stamp, PIC, AVR etc.).  The Arduino platform is featured heavily in the Maker community, but it seems a bit heavyweight for what I've been thinking about and besides, if you want to make a few "objects of interest" each one would require their own Arduino board which, at $35 a pop and multiple kids on the rampage, could get very expensive.  PIC and BASIC stamp are both good choices but I decided on the AVR series of uCs for a number of reasons:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;They're cheap ($1.50 upwards) and readily available.&lt;/li&gt;&lt;li&gt;You can program them in C (one of the languages I understand).&lt;/li&gt;&lt;li&gt;The compiler and programmer software is available free (I'm using &lt;a href="http://winavr.sourceforge.net/"&gt;WinAVR&lt;/a&gt;, the &lt;a href="http://www.atmel.com/dyn/products/tools.asp?family_id=682"&gt;GNU toolchain&lt;/a&gt; is available from the Atmel website).&lt;/li&gt;&lt;li&gt;There's a large and active community of users (e.g. &lt;a href="http://www.avrfreaks.net/"&gt;AVRFreaks&lt;/a&gt;).&lt;/li&gt;&lt;li&gt;There's an Eclipse &lt;a href="http://avr-eclipse.sourceforge.net/wiki/index.php/The_AVR_Eclipse_Plugin"&gt;plug-in&lt;/a&gt; for AVR programming (&lt;a href="http://www.eclipse.org/"&gt;Eclipse &lt;/a&gt;is my favourite IDE).&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;Unfortunately, in my rush to dive in, I didn't do quite enough reading and ended up buying a batch of 10 ATtiny13s (from eBay). These are great because they have 8 pins (small size), but the problem I found was that they only have two PWM (&lt;a href="http://en.wikipedia.org/wiki/Pulse_width_modulation"&gt;pulse width modulation&lt;/a&gt;) outputs - more on that in a later post though.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, on top of the software and the chip themselves you also need a way to program the chips.  There are dedicated boards available for this, but I chose to use a USB ISP (In-System Programmer).  With these you can have the chip already placed on a breadboard with the project all wired up, program the chip and see what the effects are immediately.  With the dedicated board, you'd have to program the chip, take it out and place it in the project before you could see the effects.  I made another mistake when buying the USB ISP; in my love of eBay I ended up buying an STK500 copy rather than something genuine from DigiKey (e.g. &lt;a href="http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&amp;amp;name=ATAVRISP2-ND"&gt;AVAVRISP2&lt;/a&gt;); my knock-off has some compatibility issues with the Eclipse AVR plug in which has meant that I now program and build in Eclipse but use AVR Studio to send the program to the chips.  Ah well, you live and learn.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Anyway, onto the obligatory "hello world" for micro-controllers; the blinking LED!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Firstly, rather than re-iterate what others have said very well, just do what I did and follow the first couple of sessions of the &lt;a href="http://www.sparkfun.com/commerce/tutorials.php"&gt;sparkfun tutorials&lt;/a&gt;.  I love how ghetto it looks having the wires poked into the programming cable and then into the breadboard; I love it so much that I still have it set-up this way.  The only differences are where to attach the leads to the chip, you can work it out by looking at the &lt;a href="http://www.atmel.com/dyn/resources/prod_documents/doc2535.pdf"&gt;ATtiny13 datasheet&lt;/a&gt; and comparing the pin layout with that of the ATmega8 used by sparkfun.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The picture below shows what I ended up with.  I'd already added the power supply suggestion from the first lesson, which is the purpose of all the electronics at the head of the breadboard, but I'm using a 9v battery rather than an ac adapter.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/SfsUwCdmZYI/AAAAAAAABXY/juzdNaql9tE/s1600-h/IMG_9620_web.jpg"&gt;&lt;img src="http://4.bp.blogspot.com/_oN6pPL-C9vc/SfsUwCdmZYI/AAAAAAAABXY/juzdNaql9tE/s320/IMG_9620_web.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5330877399450412418" style="cursor: pointer; width: 320px; height: 226px; " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here's the code to make the single LED blink:&lt;/div&gt;&lt;br /&gt;&lt;pre class="brush:c"&gt;&lt;br /&gt;#include &amp;lt;avr/io.h&amp;gt;&lt;br /&gt;#include &amp;lt;avr/delay.h&amp;gt;&lt;br /&gt;&lt;br /&gt;//LED is wired into pin 7 (PB2)&lt;br /&gt;#define LED PB2&lt;br /&gt;&lt;br /&gt;int main(void){&lt;br /&gt; //set data direction register for pin 7 to output&lt;br /&gt; DDRB |= _BV(DDB2);&lt;br /&gt;&lt;br /&gt; //infinite loop&lt;br /&gt; while (1) {&lt;br /&gt;  //turn on the LED&lt;br /&gt;  PORTB |= _BV(LED);&lt;br /&gt;  //wait for 1/4 of a second&lt;br /&gt;  _delay_ms(250);&lt;br /&gt;  //turn off the LED&lt;br /&gt;  PORTB &amp;amp;= ~_BV(LED);&lt;br /&gt;  //wait for 1/4 second&lt;br /&gt;  _delay_ms(250);&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Compile (Project-&gt;Build in Eclipse), upload to chip (using AVR Studio) and voila! A blinking LED... not particularly amazing, but it's a good start.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Update: Whilst writing this post I figured out how to get Eclipse to program the uC as well!  AVR Studio can autodetect your programmer, apparently I have an AVR ISP V2.  AVR Studio will also tell you what port it's connected on (is there a way to get the Eclipse plugin to autodetect this?).  In Eclipse I had to open up Project-&gt;Properties-&gt;AVR-&gt;AVRDude-&gt;Programmer and edit the configuration.  I set the programmer to "Atmel AVR ISP V2" and overrode the default port (first dialogue box below the programmer list) to com3 - which is the one reported by AVR Studio for my set-up.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-6778875868608220088?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/6778875868608220088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=6778875868608220088' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/6778875868608220088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/6778875868608220088'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2009/04/starting-with-avr-microcontroller.html' title='Starting with the AVR microcontroller'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_oN6pPL-C9vc/SfsUwCdmZYI/AAAAAAAABXY/juzdNaql9tE/s72-c/IMG_9620_web.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-5079001729495812109</id><published>2009-04-26T12:57:00.000-07:00</published><updated>2009-12-21T17:33:53.753-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='general electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='For the kids'/><title type='text'>Drawing Vibrobots</title><content type='html'>This was one of my first excursions into building a useful or interesting electronic thing for the kids to play with.  The idea is really simple, use the vibrations from a motor to shake a yogurt pot with pens on it.  The result should be some interesting patterns drawn on paper (and probably the floor).&lt;br /&gt;&lt;br /&gt;I sourced the motors from some dollar store fans and a Nintendo rumble pack (found for $1.50 in a thrift store).  The fan motors were great as the were already wired up to a switch and all I had to do was solder on a battery pack.  I glued the battery pack on the insides of the pots and poked some holes in the top to attach the wires to the motors.  I then weighted one of the fan blades with glue to set up a weight offset and increase the amplitude of vibration.&lt;br /&gt;&lt;br /&gt;We made a mistake with the first plastic pot in that we glued on the pen legs to the pot, which meant that they weren't easily changeable (not for kids anyway).  I say "we" because the gluing was done by my wife, who is far more adept with a glue gun that I am.  'er indoors also had the idea of putting in some motion activated flashing lights scavenged from various kiddie toys and gluing them onto the inside of the pots.  That was a nice touch; thanks love!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/SfS_-9e0tmI/AAAAAAAABVw/RBvM0ocF6VY/s1600-h/drawingbot4.jpg"&gt;&lt;img style="cursor: pointer; width: 134px; height: 200px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/SfS_-9e0tmI/AAAAAAAABVw/RBvM0ocF6VY/s200/drawingbot4.jpg" alt="" id="BLOGGER_PHOTO_ID_5329095347462780514" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/SfS_8YvHK-I/AAAAAAAABVo/7HL63SixZZk/s1600-h/drawingbot3.jpg"&gt;&lt;img style="cursor: pointer; width: 134px; height: 200px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/SfS_8YvHK-I/AAAAAAAABVo/7HL63SixZZk/s200/drawingbot3.jpg" alt="" id="BLOGGER_PHOTO_ID_5329095303239248866" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/SfS_5o5TBII/AAAAAAAABVg/mtxeGzfeysI/s1600-h/drawingbot2.jpg"&gt;&lt;img style="cursor: pointer; width: 140px; height: 200px;" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/SfS_5o5TBII/AAAAAAAABVg/mtxeGzfeysI/s200/drawingbot2.jpg" alt="" id="BLOGGER_PHOTO_ID_5329095256037328002" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/SfS_234L20I/AAAAAAAABVY/up6zs-Se1-E/s1600-h/drawingbot1.jpg"&gt;&lt;img style="cursor: pointer; width: 200px; height: 142px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/SfS_234L20I/AAAAAAAABVY/up6zs-Se1-E/s200/drawingbot1.jpg" alt="" id="BLOGGER_PHOTO_ID_5329095208519588674" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For the second pot we glued on the pen lids instead:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/SfTAF9rsPaI/AAAAAAAABWI/KYzmNMY3lgs/s1600-h/drawingbot7.jpg"&gt;&lt;img style="cursor: pointer; width: 151px; height: 200px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/SfTAF9rsPaI/AAAAAAAABWI/KYzmNMY3lgs/s200/drawingbot7.jpg" alt="" id="BLOGGER_PHOTO_ID_5329095467775835554" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_oN6pPL-C9vc/SfTADl6p6rI/AAAAAAAABWA/k839GHYoJ2k/s1600-h/drawingbot6.jpg"&gt;&lt;img style="cursor: pointer; width: 200px; height: 146px;" src="http://2.bp.blogspot.com/_oN6pPL-C9vc/SfTADl6p6rI/AAAAAAAABWA/k839GHYoJ2k/s200/drawingbot6.jpg" alt="" id="BLOGGER_PHOTO_ID_5329095427036408498" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/SfTABLXOENI/AAAAAAAABV4/SM552HCKBIE/s1600-h/drawingbot5.jpg"&gt;&lt;img style="cursor: pointer; width: 138px; height: 200px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/SfTABLXOENI/AAAAAAAABV4/SM552HCKBIE/s200/drawingbot5.jpg" alt="" id="BLOGGER_PHOTO_ID_5329095385548722386" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For some reason this larger one reminds me of those &lt;a href="http://www.i-mockery.com/romhacks/transformers/rou-6.jpg"&gt;ships &lt;/a&gt;in Tron...&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/SfTAOwJ-V9I/AAAAAAAABWg/wRvB66ePgk4/s1600-h/drawingbot10.jpg"&gt;&lt;img style="cursor: pointer; width: 140px; height: 200px;" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/SfTAOwJ-V9I/AAAAAAAABWg/wRvB66ePgk4/s200/drawingbot10.jpg" alt="" id="BLOGGER_PHOTO_ID_5329095618763577298" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/SfTAO7lmDtI/AAAAAAAABWY/KmNnjakjgdI/s1600-h/drawingbot9.jpg"&gt;&lt;img style="cursor: pointer; width: 132px; height: 200px;" src="http://4.bp.blogspot.com/_oN6pPL-C9vc/SfTAO7lmDtI/AAAAAAAABWY/KmNnjakjgdI/s200/drawingbot9.jpg" alt="" id="BLOGGER_PHOTO_ID_5329095621832216274" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/SfTAIG8OOlI/AAAAAAAABWQ/mHVv0tHop5M/s1600-h/drawingbot8.jpg"&gt;&lt;img style="cursor: pointer; width: 200px; height: 178px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/SfTAIG8OOlI/AAAAAAAABWQ/mHVv0tHop5M/s200/drawingbot8.jpg" alt="" id="BLOGGER_PHOTO_ID_5329095504620829266" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It turns out that the results from the drawing actually makes for some good wrapping paper!  Bonus!&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/SfTAPbrBIQI/AAAAAAAABWw/9lHepSX603w/s1600-h/drawingbot12.jpg"&gt;&lt;img style="cursor: pointer; width: 144px; height: 200px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/SfTAPbrBIQI/AAAAAAAABWw/9lHepSX603w/s200/drawingbot12.jpg" alt="" id="BLOGGER_PHOTO_ID_5329095630444896514" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/SfTAPNfQtRI/AAAAAAAABWo/AkSUa76Bh48/s1600-h/drawingbot11.jpg"&gt;&lt;img style="cursor: pointer; width: 128px; height: 200px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/SfTAPNfQtRI/AAAAAAAABWo/AkSUa76Bh48/s200/drawingbot11.jpg" alt="" id="BLOGGER_PHOTO_ID_5329095626637489426" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And, finally, a little video:&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-d808f0b3fa30af83" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v18.nonxt7.googlevideo.com/videoplayback?id%3Dd808f0b3fa30af83%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329988015%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D160D62C41D96C262F04B0CCBC410B5762D38977B.68FEA0F7F8BD483D47572E12CEB6C90A35F9E4EF%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Dd808f0b3fa30af83%26offsetms%3D5000%26itag%3Dw160%26sigh%3DG2IIei_oQ5SqxSAAP54dVH4ARm0&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v18.nonxt7.googlevideo.com/videoplayback?id%3Dd808f0b3fa30af83%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1329988015%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D160D62C41D96C262F04B0CCBC410B5762D38977B.68FEA0F7F8BD483D47572E12CEB6C90A35F9E4EF%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Dd808f0b3fa30af83%26offsetms%3D5000%26itag%3Dw160%26sigh%3DG2IIei_oQ5SqxSAAP54dVH4ARm0&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-5079001729495812109?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=d808f0b3fa30af83&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/5079001729495812109/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=5079001729495812109' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/5079001729495812109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/5079001729495812109'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2009/04/drawing-vibrobots.html' title='Drawing Vibrobots'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_oN6pPL-C9vc/SfS_-9e0tmI/AAAAAAAABVw/RBvM0ocF6VY/s72-c/drawingbot4.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-6570875996099354099</id><published>2009-04-26T11:04:00.001-07:00</published><updated>2009-05-02T13:35:27.347-07:00</updated><title type='text'>NoiseBridge</title><content type='html'>My better half, reminded me about &lt;a href="https://www.noisebridge.net/wiki/Noisebridge"&gt;Noisebridge &lt;/a&gt;a few weeks back.  I heard about it when they first set-up but then promptly forgot.  Noisebridge is a hackerspace located in the Mission district of San Francisco (much like &lt;a href="http://www.nycresistor.com/"&gt;NYC-Resistor&lt;/a&gt;; see &lt;a href="http://hackerspaces.org/wiki/List_of_Hacker_Spaces"&gt;Hackerspaces.org&lt;/a&gt; for a comprehensive list).&lt;br /&gt;&lt;br /&gt;As well as being a general space for people to go and work on projects, they also offer a few tutorials/courses to the general public.   I decided to head along to one of the "Circuit Hacking Mondays" to meet the crew, hone my soldering skills and make something interesting.  This session was hosted by Mitch Altman (of &lt;a href="http://makezine.com/10/brainwave/"&gt;Brain Machine&lt;/a&gt; and &lt;a href="http://tvbgone.com/cfe_tvbg_main.php"&gt;tvbgone &lt;/a&gt;fame - &lt;a href="http://www.youtube.com/watch?v=YJRwZMG5GQ4"&gt;gizmodo with tvbgone at CES2009&lt;/a&gt;), who gave an easy to follow introduction to general electronics and some tips on soldering.&lt;br /&gt;&lt;br /&gt;Mitch got out a load of examples of the kits he'd bought with him for people to make.  I chose to make a "Trippy RGB Waves" kit (also available at the &lt;a href="http://www.makershed.com/ProductDetails.asp?ProductCode=MKCE4"&gt;makershed&lt;/a&gt;), but was tempted by the Mini POV kit and, of course, the TV-B-Gone kit.  I think I may go again just to make another kit in an easygoing environment with some interesting people.&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_oN6pPL-C9vc/SfvPfkDgzBI/AAAAAAAABXg/2X8d6BkMiU8/s1600-h/trippy_kit.jpg"&gt;&lt;img src="http://4.bp.blogspot.com/_oN6pPL-C9vc/SfvPfkDgzBI/AAAAAAAABXg/2X8d6BkMiU8/s320/trippy_kit.jpg" alt="" id="BLOGGER_PHOTO_ID_5331082725084417042" style="cursor: pointer; width: 320px; height: 240px;" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Putting the kit together was pretty simple, I did get off to a slightly shaky start as Mitch decided to use me as the "demo bunny", I'm glad I'd soldered before so I didn't look like too much of a tool ;)  After the initial intro, people just got stuck into soldering their kits.  It was a lot of fun.  Great to meet such a diverse group of people as well - there were Noisebridge regulars popping in and out all the time to work on their personal projects or just to see who was around.&lt;br /&gt;&lt;br /&gt;I'd definitely recommend popping by to anyone who lives nearby!  Another interesting evening is the Machine Learning get together every Wednesday night.  I managed to make it to a couple of the neural net themed ones, and am planning on heading back soon.  I got quite a kick out of coding up a perceptron in the first tutorial.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-6570875996099354099?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/6570875996099354099/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=6570875996099354099' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/6570875996099354099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/6570875996099354099'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2009/04/noisebridge.html' title='NoiseBridge'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_oN6pPL-C9vc/SfvPfkDgzBI/AAAAAAAABXg/2X8d6BkMiU8/s72-c/trippy_kit.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-919742446731219052.post-2985530227435091403</id><published>2009-04-26T09:28:00.000-07:00</published><updated>2009-12-21T17:33:43.617-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='general electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='For the kids'/><title type='text'>LED Power Meter</title><content type='html'>For one of the kids &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;playdates&lt;/span&gt;, my lovely wife requested I make a power meter (the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;playdate&lt;/span&gt; was electricity themed).  Well, this was my first foray into electronics, so it took me a while to pick up the basics (maybe that should be a separate post), then I had to learn how to solder, buy some components (mainly from &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;RadioShack&lt;/span&gt; and eBay) and finally design the circuit and put it all together... phew.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Well that was a great journey, which I &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;heartily&lt;/span&gt; recommend!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I have to admit that I didn't come up with the design from scratch.  I googled for ideas and settled on a simple chained diode approach.  With this design you connect a set of diodes in series with LEDs forking off to from the anode of each.  Each diode creates a voltage drop of ~1V (depending on your choice of diode), so, as you increase the input voltage, you light up more LEDs.  Genius ;)&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I put together a couple of prototypes on a breadboard (bough from eBay) to make sure I was getting it right and then soldered everything together on a prototype PCB board (another eBay purchase).&lt;br /&gt;&lt;br /&gt;To make it more interesting for the kids, I decided to use 3 different colour LEDs: red for "DANGER - low power!"; orange for "medium power"; and green for "WOOT!".&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The result?  Voila!&lt;/div&gt;&lt;div&gt;&lt;div&gt; &lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/SfSaV4LZreI/AAAAAAAABUo/yEBsFmGoUa0/s1600-h/combo_board_web.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 200px; height: 155px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/SfSaV4LZreI/AAAAAAAABUo/yEBsFmGoUa0/s200/combo_board_web.jpg" alt="" id="BLOGGER_PHOTO_ID_5329053959734275554" border="0" /&gt;&lt;/a&gt;&lt;/div&gt; &lt;/div&gt;&lt;/div&gt;&lt;div&gt;The extra diodes at the base create a &lt;a href="http://en.wikipedia.org/wiki/Bridge_rectifier"&gt;bridge-rectifier&lt;/a&gt;; I needed this as I was powering the circuit from a re-purposed hand-crank torch which I'd bought for $2 from &lt;a href="http://www.savers.com/"&gt;savers&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The "who can light up the most LEDs" game turned out to be quite popular :)  Having just two green LEDs at the high end made for quite a challenge; only the "big kids" managed to light them up.  Below is a couple of pictures of the finished product in action:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/SfSa2bezNEI/AAAAAAAABU4/2qTZ7NKKnLs/s1600-h/IMG_7262_web.jpg"&gt;&lt;img style="cursor: pointer; width: 158px; height: 200px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/SfSa2bezNEI/AAAAAAAABU4/2qTZ7NKKnLs/s200/IMG_7262_web.jpg" alt="" id="BLOGGER_PHOTO_ID_5329054518966694978" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/SfSbIvZUQtI/AAAAAAAABVI/IcLLfdX-Pjs/s1600-h/IMG_7256_web.jpg"&gt;&lt;img style="cursor: pointer; width: 134px; height: 200px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/SfSbIvZUQtI/AAAAAAAABVI/IcLLfdX-Pjs/s200/IMG_7256_web.jpg" alt="" id="BLOGGER_PHOTO_ID_5329054833550050002" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_oN6pPL-C9vc/SfSa_NfAseI/AAAAAAAABVA/1nwfrkjDwcw/s1600-h/IMG_7264_web.jpg"&gt;&lt;img style="cursor: pointer; width: 134px; height: 200px;" src="http://3.bp.blogspot.com/_oN6pPL-C9vc/SfSa_NfAseI/AAAAAAAABVA/1nwfrkjDwcw/s200/IMG_7264_web.jpg" alt="" id="BLOGGER_PHOTO_ID_5329054669828305378" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_oN6pPL-C9vc/SfSeksS4jLI/AAAAAAAABVQ/MF8AIKwaCTA/s1600-h/IMG_7265_web.jpg"&gt;&lt;img style="cursor: pointer; width: 200px; height: 192px;" src="http://1.bp.blogspot.com/_oN6pPL-C9vc/SfSeksS4jLI/AAAAAAAABVQ/MF8AIKwaCTA/s200/IMG_7265_web.jpg" alt="" id="BLOGGER_PHOTO_ID_5329058612288982194" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Yes, that's a "Stand Back!  I'm going to try Science!" t-shirt, from &lt;a href="http://store.xkcd.com/xkcd/#StandBackScience"&gt;xkcd&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/919742446731219052-2985530227435091403?l=www.fangletronics.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.fangletronics.com/feeds/2985530227435091403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=919742446731219052&amp;postID=2985530227435091403' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/2985530227435091403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/919742446731219052/posts/default/2985530227435091403'/><link rel='alternate' type='text/html' href='http://www.fangletronics.com/2009/04/led-power-meter.html' title='LED Power Meter'/><author><name>PaulBo</name><uri>http://www.blogger.com/profile/14617260943732454939</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_oN6pPL-C9vc/SWHCQMUcleI/AAAAAAAABP4/i75Xq5f-CwQ/S220/IMG_0018.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_oN6pPL-C9vc/SfSaV4LZreI/AAAAAAAABUo/yEBsFmGoUa0/s72-c/combo_board_web.jpg' height='72' width='72'/><thr:total>1</thr:total></entry></feed>
