<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;A0UBR3k6fSp7ImA9WhRUEk0.&quot;"><id>tag:blogger.com,1999:blog-2476607838833857507</id><updated>2012-01-21T21:14:16.715-08:00</updated><category term="Cars" /><category term="Aerodynamics" /><category term="radio astronomy" /><category term="Robots" /><category term="VW" /><category term="Physics" /><category term="Music" /><category term="Rock Tumbler" /><category term="Math" /><category term="National parks" /><category term="Science" /><category term="Skiing" /><category term="Camping" /><category term="bicycles" /><category term="555 Contest" /><category term="lock-in amplifier" /><category term="Nostalgia" /><category term="Bullshit" /><category term="Grazing" /><category term="Anti-science" /><category term="Electronics" /><category term="Arduino" /><category term="Ham radio" /><category term="Calculators" /><category term="Collectables" /><category term="Maker Faire" /><category term="Sparkfun Autonomous Vehicle Competition" /><category term="GPS" /><category term="Slide Rules" /><category term="Hacking" /><category term="Color Organ" /><category term="LaTeX" /><category term="Oddball" /><category term="Westfalia" /><title>Scott's Blog</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://scottrharris.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://scottrharris.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Scott</name><uri>http://www.blogger.com/profile/09963523054031313575</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/_Eogk12oYm-g/Sqvbzuk-7LI/AAAAAAAAABU/QyZVdagkjCY/S220/IR_0022.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>89</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/blogspot/CJHnF" /><feedburner:info uri="blogspot/cjhnf" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;DkUGQngzeSp7ImA9WhRVGU8.&quot;"><id>tag:blogger.com,1999:blog-2476607838833857507.post-8507822169746340209</id><published>2012-01-18T14:03:00.000-08:00</published><updated>2012-01-18T14:03:43.681-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-18T14:03:43.681-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Science" /><category scheme="http://www.blogger.com/atom/ns#" term="Electronics" /><title>Microwave Reflectometer for Antenna Trimming</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/SnybrBZSnlKTxnTyA0ScQEoDpjk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SnybrBZSnlKTxnTyA0ScQEoDpjk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/SnybrBZSnlKTxnTyA0ScQEoDpjk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SnybrBZSnlKTxnTyA0ScQEoDpjk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;I built a copy of the &lt;a href="http://ocw.mit.edu/resources/res-ll-003-build-a-small-radar-system-capable-of-sensing-range-doppler-and-synthetic-aperture-radar-imaging-january-iap-2011/"&gt;MIT/LL coffee can radar&lt;/a&gt; last year, but I'm just now getting serious about documenting my results. The coffee can antennas work fine if you build them exactly as described in the course notes, but I wanted to explore a bit more. Although I do have an antenna analyzer, it's only for the lower ham bands and won't help me tune up a 2.4 GHz antenna, so I built a simple reflectometer to look at the reflected power coming from the coffee can antennas. Here's the video.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;iframe allowfullscreen="" frameborder="0" height="360" src="http://www.youtube.com/embed/n-5cZc_QIbc" width="640"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2476607838833857507-8507822169746340209?l=scottrharris.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/CJHnF/~4/bin0ogwl8ac" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scottrharris.blogspot.com/feeds/8507822169746340209/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scottrharris.blogspot.com/2012/01/microwave-reflectometer-for-antenna.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/8507822169746340209?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/8507822169746340209?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/CJHnF/~3/bin0ogwl8ac/microwave-reflectometer-for-antenna.html" title="Microwave Reflectometer for Antenna Trimming" /><author><name>Scott</name><uri>http://www.blogger.com/profile/09963523054031313575</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/_Eogk12oYm-g/Sqvbzuk-7LI/AAAAAAAAABU/QyZVdagkjCY/S220/IR_0022.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/n-5cZc_QIbc/default.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://scottrharris.blogspot.com/2012/01/microwave-reflectometer-for-antenna.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MMR3Y5fCp7ImA9WhdVEEk.&quot;"><id>tag:blogger.com,1999:blog-2476607838833857507.post-3993369347794021529</id><published>2011-09-14T18:16:00.000-07:00</published><updated>2011-09-14T18:18:06.824-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-14T18:18:06.824-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Calculators" /><category scheme="http://www.blogger.com/atom/ns#" term="Electronics" /><title>HP 33C Repair</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/rSsdwWDzRDyq-eCifWg-NUYNW4A/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rSsdwWDzRDyq-eCifWg-NUYNW4A/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/rSsdwWDzRDyq-eCifWg-NUYNW4A/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rSsdwWDzRDyq-eCifWg-NUYNW4A/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;I got this HP 33C at a garage sale (plus another one for five bucks total!) and there was a lot of corrosion damage on the inside.&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-Tiyr7F7OBSA/TnFQa50mP9I/AAAAAAAAAWw/_-QdhwwCVEU/s1600/HP33COutside1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="640" src="http://4.bp.blogspot.com/-Tiyr7F7OBSA/TnFQa50mP9I/AAAAAAAAAWw/_-QdhwwCVEU/s640/HP33COutside1.jpg" width="362" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;They don't make them like they used to.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Some new NiCd batteries and quite a few jumpers to fix traces that corroded away were all that were required to get it running again.&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-zpeGsfDuEbc/TnFPu8g3CiI/AAAAAAAAAWs/nIsv35vYEXI/s1600/HP33C1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="480" src="http://4.bp.blogspot.com/-zpeGsfDuEbc/TnFPu8g3CiI/AAAAAAAAAWs/nIsv35vYEXI/s640/HP33C1.jpg" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;All of the flex traces were hosed and quite a few flex-to-PCB connections were bad too.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div&gt;Here's the working calculator brought back to life.&lt;/div&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-SM7TWjn-420/TnFRmEx3A-I/AAAAAAAAAW0/UHkkP-DYedk/s1600/HP33COutside2.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="640" src="http://1.bp.blogspot.com/-SM7TWjn-420/TnFRmEx3A-I/AAAAAAAAAW0/UHkkP-DYedk/s640/HP33COutside2.jpg" width="362" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Never throw away tools. Fix them.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&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/2476607838833857507-3993369347794021529?l=scottrharris.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/CJHnF/~4/zVVimZYWO0A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scottrharris.blogspot.com/feeds/3993369347794021529/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scottrharris.blogspot.com/2011/09/hp33c-repair.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/3993369347794021529?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/3993369347794021529?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/CJHnF/~3/zVVimZYWO0A/hp33c-repair.html" title="HP 33C Repair" /><author><name>Scott</name><uri>http://www.blogger.com/profile/09963523054031313575</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/_Eogk12oYm-g/Sqvbzuk-7LI/AAAAAAAAABU/QyZVdagkjCY/S220/IR_0022.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-Tiyr7F7OBSA/TnFQa50mP9I/AAAAAAAAAWw/_-QdhwwCVEU/s72-c/HP33COutside1.jpg" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://scottrharris.blogspot.com/2011/09/hp33c-repair.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU8GSXg8eip7ImA9WhdSGEQ.&quot;"><id>tag:blogger.com,1999:blog-2476607838833857507.post-2346161674464006698</id><published>2011-07-28T16:00:00.000-07:00</published><updated>2011-07-28T17:03:48.672-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-28T17:03:48.672-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Math" /><category scheme="http://www.blogger.com/atom/ns#" term="Robots" /><category scheme="http://www.blogger.com/atom/ns#" term="Arduino" /><title>chipKIT Max32 board benchmarks and transistor trouble</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/RFGdPnxmK68wZjXg_Fu0M4gQuNM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RFGdPnxmK68wZjXg_Fu0M4gQuNM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/RFGdPnxmK68wZjXg_Fu0M4gQuNM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RFGdPnxmK68wZjXg_Fu0M4gQuNM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;-- Update:&amp;nbsp;Digilent got back to me and they are sending out a replacement board. Very quick and positive response. Way to go Digilent! --&lt;br /&gt;
&lt;br /&gt;
I was planning on reviewing and the new chipKIT Max32 board and comparing performance to the Arduino Mega 2560, so I downloaded the modified Arduino environment and downloaded the blink demo to the board. Everything seemed to be OK, but there was no blinking light. This is pretty much the simplest program on the Arduino and all it does is toggle digital pin 13 high and low with a two second period. Most Arduino boards have a LED on pin 13.&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Time to debug. &amp;nbsp;Probing around, starting at the socket for pin 13, I saw that the digital line was toggling, but I was getting no LED action.&amp;nbsp;Let's take a look at the chipKIT schematic. Here is the LED driver on the chipKIT. They use a transistor to drive the LED instead of driving it directly as on the Arduino.&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-OTTQIb9GIyE/TjHmpTSSdOI/AAAAAAAAAVw/JQzMVW5gO54/s1600/chipKIT+LED+Driver.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="640" src="http://4.bp.blogspot.com/-OTTQIb9GIyE/TjHmpTSSdOI/AAAAAAAAAVw/JQzMVW5gO54/s640/chipKIT+LED+Driver.png" width="620" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;The chipKIT LED driver for pin 13. They don't load down the I/O pin. Nice.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;OK, so let's see what's going on over at the LED driver.&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-DwLqm4OMCaY/TjHnAXA-ZzI/AAAAAAAAAV0/u7ZuZfSUlCg/s1600/chipKit1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="540" src="http://4.bp.blogspot.com/-DwLqm4OMCaY/TjHnAXA-ZzI/AAAAAAAAAV0/u7ZuZfSUlCg/s640/chipKit1.jpg" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Q2! Where are you?&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;What a bummer. Q2 is missing! I sent a note off to Digilent's tech support and got a response in just a few minutes. I'm hoping that this is a one-off mistake and that they aren't saddled with hundreds of bad boards. Did somebody forget to load a reel? I wonder who is making the boards for Digilent.&lt;br /&gt;
&lt;br /&gt;
Anyhow, how about some benchmark action?&lt;br /&gt;
&lt;br /&gt;
Let's look at the time required to invert a 5x5 single-precision floating point matrix. The time for an Arduino Mega 2560 is 3.2 ms while the chipKIT only takes 260 us. That's a speed up factor of 12.3. Not too shabby.&lt;br /&gt;
&lt;br /&gt;
My intention for the chipKIT board is to upgrade Tobor's brain for next year's Sparkfun AVC with minimal effort. I can drop a Tobor shield onto the chipKIT, keep all of the Tobor code unmodified, and add a ton of processing headroom. That's the theory, at least. Not all of the Arduino libraries are working on the chipKIT. Currently, (I think) I2C, interrupts, and servo need work.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;div&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/2476607838833857507-2346161674464006698?l=scottrharris.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/CJHnF/~4/MqRAMy4Uqi8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scottrharris.blogspot.com/feeds/2346161674464006698/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scottrharris.blogspot.com/2011/07/chipkit-max32-board-benchmarks-and.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/2346161674464006698?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/2346161674464006698?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/CJHnF/~3/MqRAMy4Uqi8/chipkit-max32-board-benchmarks-and.html" title="chipKIT Max32 board benchmarks and transistor trouble" /><author><name>Scott</name><uri>http://www.blogger.com/profile/09963523054031313575</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/_Eogk12oYm-g/Sqvbzuk-7LI/AAAAAAAAABU/QyZVdagkjCY/S220/IR_0022.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-OTTQIb9GIyE/TjHmpTSSdOI/AAAAAAAAAVw/JQzMVW5gO54/s72-c/chipKIT+LED+Driver.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://scottrharris.blogspot.com/2011/07/chipkit-max32-board-benchmarks-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0cASXY_fyp7ImA9WhdTEUQ.&quot;"><id>tag:blogger.com,1999:blog-2476607838833857507.post-6681818707067377460</id><published>2011-07-08T22:15:00.000-07:00</published><updated>2011-07-09T00:04:08.847-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-09T00:04:08.847-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="lock-in amplifier" /><category scheme="http://www.blogger.com/atom/ns#" term="Electronics" /><category scheme="http://www.blogger.com/atom/ns#" term="radio astronomy" /><title>Lock-in Amplifier</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7ykSUZFQWbY60Mqo02J0L81igkE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7ykSUZFQWbY60Mqo02J0L81igkE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/7ykSUZFQWbY60Mqo02J0L81igkE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7ykSUZFQWbY60Mqo02J0L81igkE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;I'm a big fan of lock-in amplifiers; I'm always scanning eBay for a good deal. Recently I got a pair of EG&amp;amp;G 5207 lock-ins. Both were busted. One seemed to have ended up in the auction chain due to some bad buttons and the other one booted up with error messages. I bought both cheap and was able to Frankenstein a working unit of of the two of them. The main issue was the sticky buttons on the good unit causing the control computer to be unresponsive. That was the unit I saved. All I had to do to get it working was to swap in the good switch array board from the unit with the bad computer. Lots of screws and standoffs, but it wasn't too bad.&lt;br /&gt;
&lt;br /&gt;
Here's the organ donor:&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-w6gyktE7y9c/ThfhYuF5FNI/AAAAAAAAAUY/79XM61_3zfg/s1600/OrganDonerLockin.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="480" src="http://1.bp.blogspot.com/-w6gyktE7y9c/ThfhYuF5FNI/AAAAAAAAAUY/79XM61_3zfg/s640/OrganDonerLockin.jpg" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;I might be able to get this one working too. I'll have to fiddle with the CPU card on the far left.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;The organ donor had cards in it for two frequency ranges: 0-20 kHz and 0-100kHz. I pulled the broadband card and put it into the working unit. Even better, the local reference oscillator card from the donor was moved over to the new unit too. So now I have nice single phase lock-in with two front ends optimized for audio and 0-100kHz inputs. I've got almost all of the available options in the good unit now.&lt;br /&gt;
&lt;br /&gt;
How well does it work? I'm feeding a 90 kHz 1V peak-to-peak sine wave into the lock-in reference and signal inputs. The correct RMS voltage is 0.354 V. It's not too far off for a 24 year old instrument that I saved from from the junk pile. I haven't tested the GPIB or RS232 interfaces, but I bet they work too. I'm not sure how to calibrate the thing, and I'm not even sure I want to try. A few percent absolute accuracy is fine and I'll mostly be doing relative measurements anyhow.&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-DYz6MvvHy1k/ThfhbcW3oOI/AAAAAAAAAUc/Hpzq-tB9FFM/s1600/LockinWorking.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="192" src="http://1.bp.blogspot.com/-DYz6MvvHy1k/ThfhbcW3oOI/AAAAAAAAAUc/Hpzq-tB9FFM/s640/LockinWorking.jpg" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;All that's left to do is clean the front panel.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&amp;nbsp;Plans? Well, I'm going to try building a phase-switched radio interferometer so I can do some radio astronomy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2476607838833857507-6681818707067377460?l=scottrharris.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/CJHnF/~4/ILQb4HlL1uQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scottrharris.blogspot.com/feeds/6681818707067377460/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scottrharris.blogspot.com/2011/07/lock-in-amplifier.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/6681818707067377460?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/6681818707067377460?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/CJHnF/~3/ILQb4HlL1uQ/lock-in-amplifier.html" title="Lock-in Amplifier" /><author><name>Scott</name><uri>http://www.blogger.com/profile/09963523054031313575</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/_Eogk12oYm-g/Sqvbzuk-7LI/AAAAAAAAABU/QyZVdagkjCY/S220/IR_0022.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-w6gyktE7y9c/ThfhYuF5FNI/AAAAAAAAAUY/79XM61_3zfg/s72-c/OrganDonerLockin.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://scottrharris.blogspot.com/2011/07/lock-in-amplifier.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0UMR34-eyp7ImA9WhZVEEw.&quot;"><id>tag:blogger.com,1999:blog-2476607838833857507.post-2782822029338026014</id><published>2011-05-21T13:54:00.000-07:00</published><updated>2011-05-21T13:54:46.053-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-21T13:54:46.053-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Color Organ" /><category scheme="http://www.blogger.com/atom/ns#" term="Maker Faire" /><title>I'm at Maker Faire!</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/VmIbsW-kkYFNlr2bgijYDr2-vjg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VmIbsW-kkYFNlr2bgijYDr2-vjg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/VmIbsW-kkYFNlr2bgijYDr2-vjg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VmIbsW-kkYFNlr2bgijYDr2-vjg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Come by and see me!&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: 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/-7DATM7Rpm4s/TdgmYAp_z8I/AAAAAAAAARc/ysyFd_paSD4/s1600/MakerFaireBooth1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://2.bp.blogspot.com/-7DATM7Rpm4s/TdgmYAp_z8I/AAAAAAAAARc/ysyFd_paSD4/s640/MakerFaireBooth1.jpg" width="640" /&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/2476607838833857507-2782822029338026014?l=scottrharris.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/CJHnF/~4/Lk-Rlp8LGqs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scottrharris.blogspot.com/feeds/2782822029338026014/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scottrharris.blogspot.com/2011/05/im-at-maker-faire.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/2782822029338026014?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/2782822029338026014?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/CJHnF/~3/Lk-Rlp8LGqs/im-at-maker-faire.html" title="I'm at Maker Faire!" /><author><name>Scott</name><uri>http://www.blogger.com/profile/09963523054031313575</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/_Eogk12oYm-g/Sqvbzuk-7LI/AAAAAAAAABU/QyZVdagkjCY/S220/IR_0022.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-7DATM7Rpm4s/TdgmYAp_z8I/AAAAAAAAARc/ysyFd_paSD4/s72-c/MakerFaireBooth1.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://scottrharris.blogspot.com/2011/05/im-at-maker-faire.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkIBSXo6cSp7ImA9WhZXFEs.&quot;"><id>tag:blogger.com,1999:blog-2476607838833857507.post-4818752346430964732</id><published>2011-05-03T15:09:00.000-07:00</published><updated>2011-05-03T15:09:18.419-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-03T15:09:18.419-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Color Organ" /><category scheme="http://www.blogger.com/atom/ns#" term="Maker Faire" /><category scheme="http://www.blogger.com/atom/ns#" term="Arduino" /><title>Tiny Color Organ</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/CQAHtCgzNETBsgDQm5e7eCfwZYs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CQAHtCgzNETBsgDQm5e7eCfwZYs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/CQAHtCgzNETBsgDQm5e7eCfwZYs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CQAHtCgzNETBsgDQm5e7eCfwZYs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;I'm working on some wearable, tiny color organ controllers for Maker Faire. Here's a prototype.&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-D1Ycb9sGD_o/TcB8h_nBY5I/AAAAAAAAAQw/C1zF2VXev6Y/s1600/miniMSGeq71.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="480" src="http://3.bp.blogspot.com/-D1Ycb9sGD_o/TcB8h_nBY5I/AAAAAAAAAQw/C1zF2VXev6Y/s640/miniMSGeq71.jpg" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;An Arduino Mini Shield color organ driver&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;Not bad for toner transfer. I did have to brutalize some of the board to fix some shorts. 12 mils is pushing iron-on technology.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2476607838833857507-4818752346430964732?l=scottrharris.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/CJHnF/~4/br7NP_c0Rfk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scottrharris.blogspot.com/feeds/4818752346430964732/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scottrharris.blogspot.com/2011/05/tiny-color-organ.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/4818752346430964732?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/4818752346430964732?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/CJHnF/~3/br7NP_c0Rfk/tiny-color-organ.html" title="Tiny Color Organ" /><author><name>Scott</name><uri>http://www.blogger.com/profile/09963523054031313575</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/_Eogk12oYm-g/Sqvbzuk-7LI/AAAAAAAAABU/QyZVdagkjCY/S220/IR_0022.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-D1Ycb9sGD_o/TcB8h_nBY5I/AAAAAAAAAQw/C1zF2VXev6Y/s72-c/miniMSGeq71.jpg" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://scottrharris.blogspot.com/2011/05/tiny-color-organ.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMNRncyeip7ImA9WhZXE0w.&quot;"><id>tag:blogger.com,1999:blog-2476607838833857507.post-4488528127260816513</id><published>2011-04-30T13:21:00.000-07:00</published><updated>2011-05-01T21:28:17.992-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-01T21:28:17.992-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Sparkfun Autonomous Vehicle Competition" /><title>Sparkfun AVC 2011 Report</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/hoeeH0K1blNLhFxuE8-Mm_wwDRI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hoeeH0K1blNLhFxuE8-Mm_wwDRI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/hoeeH0K1blNLhFxuE8-Mm_wwDRI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hoeeH0K1blNLhFxuE8-Mm_wwDRI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="font: 16px Times; margin: 0px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;First of all I want to thank Sparkfun, the competitors, and all the spectators for making the day so much fun.&lt;/span&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-fviT9MOdY6Y/TbxsL1NNO1I/AAAAAAAAAQM/7HxS70jJ63A/s1600/ToborAfter20111.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="342" src="http://1.bp.blogspot.com/-fviT9MOdY6Y/TbxsL1NNO1I/AAAAAAAAAQM/7HxS70jJ63A/s640/ToborAfter20111.jpg" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Tobor after the 2011 AVC. The Xbee got ripped off in the mass start.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div style="font: 16px Times; margin: 0px; min-height: 19px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;I had gone to Sparkfun a few times in the weeks before the 2011 AVC trying to get Tobor back into racing trim and I had zero luck each time. The weather was downright chilly every time I went to test and that just added to my misery. In fact, Tobor had only made it around the course twice before. Once on the morning of the 2010 AVC and once during the AVC with the 2010 winning time of 1:55. I also had big hopes of adding five Maxbotix sonar range finders, but they reported all sorts of nonsense readings while I was at Sparkfun. Even when I pointed the sensors into the sky, I got readings of about fifty inches. I never figure that one out. In addition, one of the sensors decided to start emitting magic smoke for no reason during a test. That one is going back to Maxbotix for some forensic analysis. Of course, the Maxbotix sensors always seemed to worked great at home.&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px; min-height: 19px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;The night before the AVC I was there with a few other competitors in the SFE parking lot, including team AutoCrusher, but I just could not get Tobor to successfully complete a lap. During my best attempt, I got around three sides only to veer into the curb just before turn four, but that's when I notices that the green LED that indicates GPS lock went out. I also had some telemetry data from another run (Tobor logs run data onto a micro SD card as well as broadcasts the same data back to the laptop via a XBee) that indicated my GPS horizontal accuracy was rapidly increasing to several km! Clearly something was up with the GPS.&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px; min-height: 19px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;I went home in the dark very frustrated an even joked with Sarah that I wasn't even going to show up for the AVC on Saturday. I sat on the couch, had a few beers, and pondered the situation. On AVC day I got up at 5am, took a look at the snow falling outside, and went to the kitchen table to fiddle with Tobor for a few hours before the race. Sitting on the table I got a GPS lock in about 30 seconds, but if I touched or tapped the GPS unit, I lost lock. Ah ha! Then I took a look at the GPS connection to the DIY drones breakout board: the female connector on the uBlox GPS was pretty green from corrosion (it looks like the flux wasn't cleaned well) and it was clear that the connection between the GPS and breakout board was very flakey. I sprayed both connectors with flux cleaner and gave them a good scrubbing with a horse hair brush. Then I reassembled the GPS and breakout board and put a few drops of hot glue in between the boards. Now, when I tapped, tugged, or generally abused the GPS unit I kept lock. I was back in the game!&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-0XdRu9J7oLY/TbxsZydEvSI/AAAAAAAAAQQ/ecV50_3AJdg/s1600/HotGlueGPS1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="342" src="http://1.bp.blogspot.com/-0XdRu9J7oLY/TbxsZydEvSI/AAAAAAAAAQQ/ecV50_3AJdg/s640/HotGlueGPS1.jpg" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;The hot glue GPS fix. The ublox connectors aren't robust at all. Last year, I just wrapped the whole assembly with a rubber band.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div style="font: 16px Times; margin: 0px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;At the 2010 AVC, I had a run where the car "diverged" and went in circles. I assumed this behavior was due to some sort of interference from the wet pavement and the IR curb sensors, but it must have been the dodgy GPS connection. I saw similar behavior the night before at SFE.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px; min-height: 19px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;Feeling a bit better about my chances, I woke Sarah up, took a shower, packed, and then we got coffee and headed down the hill to Sparkfun. There was about 2 inches of snow at our place by this point. I was almost hoping for snow at Sparkfun. Those sand tires might work well on the snow.&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px; min-height: 19px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;We got to Sparkfun early and I was able to get Tobor out for a test run. He almost made it around the building, but I had to pause my test run due to some folks on the course. Tobor’s overall performance was much improved, so I tweaked the waypoints and called it good. At this point, I still had not made it around the building fully autonomously. I left the bracket for the Maxbotix sensors on Tobor, but they weren't even hooked up. Intimidation purposes only.&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px; min-height: 19px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;I also had to poke some holes into the rear tires since the pressure and temperature change from Nederland to Boulder had actually caused the rear tires to buckle inward. I had hoped to do a recalibration on the odometry, but I had to let it slide.&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px; min-height: 19px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Heat 1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px; min-height: 19px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;I had set Tobor to have a constant throttle setting for heat run and the setting was just a bit faster than the setting I had used in Heat 1 in 2010. Things went well and I almost made it through the hoop, but the cow catcher hit on the left side of the car and I scraped by on the right side of the hoop. I got around in 1:22, but the last segment of the course was a bit too far north and Tobor charged the finish line by driving right through the crowd in front of the stands. If you look on the video you can see the cow catcher bouncing off of some poor spectators ankle. I thought I was in first place, and was confused later when I saw that Minuteman was actually in first. I never saw him pass me. I had to read Nathan’s blog entry on DIY Drones to find out that Minuteman was stepped on during heat one and he got a do-over because of judge interference.&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px; min-height: 19px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Heat 2&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px; min-height: 19px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;I bumped the speed up significantly at the start and finish of the course, and only slightly for the portions of the course between turns one and four. I also moved waypoint #2 (the one right after the hoop) one meter to the East and waypoint #4 south a bit to keep Tobor out of the crowd on the home stretch. This run went well (I don’t know my actual time), but I missed the hoop again. This time on the East side by just a few inches.&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px; min-height: 19px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;After heat two I noticed that the Sparkfun judges had awarded me the 30 second deduction for going through the hoop. I was running, so I didn’t see what happened, but my family told me that Tobor had, in fact, gone wide to the East. I told the judges about their error and they joked about an additional 20 second deduction for honesty.&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px; min-height: 19px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Heat 3&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px; min-height: 19px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;I knew that Minuteman’s time was going to be hard to beat, so for heat three I increased the throttle command to maximum. I had never run Tobor this fast before, but the navigation system seemed to be working amazingly well. I even took off the inert Maxbotix gear to cut down on drag! On run two, I don’t think the curb avoidance system had to do much work at all. I also moved the waypoint #2 half a meter back to the East. I figured that I would get the hoop bonus by successive approximations.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px; min-height: 19px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;During the wait for run three, I was kicking myself for not installing the bigger motor. The Tamiya Grasshopper comes standard with a Mabuchi 380 motor. This motor was great for getting a longer run time back in the day when RC cars ran NiCd batteries since the 380 draw a lot less current that the standard 540 motor. Nowadays, folks run brushless motors, so Tobor is at a huge disadvantage when it comes to maximum possible speeds.&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-kZ8cQjx1f_8/Tbxs2aWcvsI/AAAAAAAAAQU/YjUDsDfjsno/s1600/540+Motor1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="640" src="http://1.bp.blogspot.com/-kZ8cQjx1f_8/Tbxs2aWcvsI/AAAAAAAAAQU/YjUDsDfjsno/s640/540+Motor1.jpg" width="558" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Here's my speed boost for next year. It's not even one of the "race-tuned" models.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div style="font: 16px Times; margin: 0px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;There was nothing I could do except cross my fingers and wait. Heat 3 came and started out great. Minuteman was running faster than Tobor, but he missed the hoop and Tobor made it through. The rest of Tobor’s run was flawless. Minuteman clipped one of the concrete islands and didn’t complete the heat.&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px; min-height: 19px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;I couldn’t believe it, but Tobor beat Minuteman’s time by only one second. You couldn't script better drama!&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px; min-height: 19px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Tech&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-Kw24981u5lE/TbxtK0aRQFI/AAAAAAAAAQY/GG8S7kAJ8jI/s1600/ToborUnderTheHood1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="480" src="http://2.bp.blogspot.com/-Kw24981u5lE/TbxtK0aRQFI/AAAAAAAAAQY/GG8S7kAJ8jI/s640/ToborUnderTheHood1.jpg" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Here's the under-the-hood shot of the rat's nest. The Arduino Mini monitors channel three on the RC so I can switch to manual control if the Arduino Mega crashes. The openlog stores all the sensor and state data. The gyro is buried under the Mega and the magnetometer is up front away from the steering servo. Two regulators generate the extra current needed for the Sharp IR sensors and GPS. It's all wired up with wire-wrap and point to point.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div style="font: 16px Times; margin: 0px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;This year the curb avoidance system was greatly improved by replacing the three long distance Sharp GP2Y0A700K IR sensors with the more reasonable Sharp GP2Y0A02YK0F IR sensors. The IR sensor from last year had a minimum distance that was just too large and Tobor could end up in an oddball nonlinear limit cycle near curbs. It sort-of worked, but was very suboptimal. I also changed their angle so they looked ahead quite a bit more. I also removed the third straight-ahead looking sensor, since I never came up with a good heuristic to integrate that reading with the other two. In addition, I replaced the old curb avoidance scheme which just fed the range sensor readings into the steering servo with a first order low-pass filter set to a time constant that was about equal to the left-right transit time of the steering servo. This really smoothed out the curb avoidance and rejected sensor noise pretty well. I also added a removable pot bank to the car so that I could adjust system gains without reprogramming Tobor. Unfortunately, I had such poor luck testing, this was never really used. That cow catcher I added seemed to be a good idea. It prevents the car from catching a tire on an obstacle and at high speeds, and curb scrapes are recoverable.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px; min-height: 19px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;The navigation system in Tobor 2011 is the same one I used in 2010. I think that flaky GPS connection was the root of all of my problems and Tobor could have gone three for three in 2010 had I fixed it then. I didn’t even change any of the numbers in the noise covariance matrices!&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-ShOZ1--C9jU/TbxrGJNh7kI/AAAAAAAAAQI/wDZ4fWCtc5Q/s1600/state.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/-ShOZ1--C9jU/TbxrGJNh7kI/AAAAAAAAAQI/wDZ4fWCtc5Q/s200/state.png" width="60" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Here's the state vector for Tobor. This gets updated at 20 Hz.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div style="font: 16px Times; margin: 0px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;Tobor runs a six state Extended Kalman Filter at 20 Hz. The sensors either provide four or six measurements depending on if new GPS data is available. Since the ublox GPS runs at 4 Hz, most of the update only fuse dual wheel odometry (two numbers), the gyro (one number), and the magnetometer (one number). Every fifth update uses a bigger H (observer) matrix and GPS gets fused in. That observation has six elements. The EKF uses single precision floating point arithmetic and there are no optimizations. It’s a textbook implementation and I do a matrix inverse 20 times a second. I use the reported horizontal accuracy from the GPS in order to form the GPS covariance. That way is the GPS accuracy degrades, the sensor fusion is still “optimal.” Surprisingly, the time to do the data logging is a significant portion of the loop time. The serial.print() function on the Arduino is pretty slow and I output human readable data. A binary format would free up some processing time to add more states. The Arduino Mega is required for the extra serial port and the RAM to hold the big matrices.&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-IMs_Il7KhHE/TbxugPjeHeI/AAAAAAAAAQc/s3PELM9Y6Ug/s1600/WheelEncoder1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="480" src="http://1.bp.blogspot.com/-IMs_Il7KhHE/TbxugPjeHeI/AAAAAAAAAQc/s3PELM9Y6Ug/s640/WheelEncoder1.jpg" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Wheel encoder details. The encoder wheels are laser printed and glued to thin model airplane plywood. They've lasted through two wet AVCs! The sensors are the analog Pololu models and I square-up the signal with a Schmidt trigger. There is no provision for going backwards. If you have to back up, you've already lost.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div style="font: 16px Times; margin: 0px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;I’ve got an identical EKF implemented in Matlab and Tobor logs all the sensor data as well as the state output of the EKF running on the Arduino. As a result, I can re-run any course offline and tune the filter and sensor calibration. For example, driving the car open loop around a known course and stopping exactly where the car started generates sensor data that I can feed through the Matlab copy of the EKF. Running the EKF with GPS turned off allows me to run a second optimizer that adjusts the calibration factors on the wheels (left diameter, right diameter, and separation) in order to minimize an accuracy metric that measured the difference between the start and end points. Last year, the data showed that the rotation angle from the differential odometry was good, but not great. The fusion of gyro data and odometry, however, was pretty impressive. I never spent any significant effort on using just odometry for distance and the gyro for angle. This approach, however, is basically what Minuteman is did. Tobor also fuses a magnetometer into the state estimate, but I’ve got the sensor noise covariance turned way up so local variation in the magnetometer reading don’t affect that state too much, but over longish times, the magnetometer and GPS track give Tobor an accurate estimate of heading.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px; min-height: 19px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;Before each run I reboot Tobor and drive in a few circles. I’ve got an adaptive calibration running on the magnetometer and it takes about four circles to get a good calibration. I also drive in a straight line for about ten meters in order to get a GPS track to fuse into the heading. By this point, the EKF state has converged to a good estimate of location and position.&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px; min-height: 19px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;Another key point is that the Tobor state vector is augmented with a gyro bias term. Temperature calibrations can work, but they are just the wrong way to approach the problem. Tobor has plenty of other sensors that give information about angular rate, so you just let the EKF generate an optimal estimate of the gyro bias term as well.&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px; min-height: 19px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;Once you have a good state vector, control is easy. The steering servo is driven by a proportional control term that is given by the difference between the vehicle heading angle and the computed heading to the next waypoint based upon the cars estimated position. There isn’t a need for more complicated control since the steering servo angle sets heading rate and that gets integrated by the car kinematics to give heading angle. Once the state vector says Tobor is withing a certain distance of the waypoint, the waypoint index is incremented. The waypoints on Tobor wrap around, so the car should, in theory, keep going around the course until the batteries die.&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px; min-height: 19px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;Throttle is open loop. There is no need for fancy PID speed control since Tobor had to run at full throttle anyway just to be competitive this year.&amp;nbsp;The only reason to add an I term is to get the steady state error down, but this doesn't matter since the speed control on these bots isn’t calibrated. You only need D if you can’t get a good enough response time with K alone. Throttle control is just step on the gas.&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px; min-height: 19px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Some numbers&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px; min-height: 19px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;Tobor's best time was 55 seconds and Minuteman was only a second behind. Working from my waypoints, the distance around the course is about 270 meters and based on our times Minuteman and Tobor were both doing almost 11 MPH on their best runs.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px; min-height: 19px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;Since Minuteman runs in a dead reckoning mode, the starting angle is very important. Each miliRadian of error in its starting alignment results in about a foot of error over the course. That’s a foot of error for every 0.06 deg. Not to bad, but alignment is definitely important.&lt;/span&gt;&lt;br /&gt;
&lt;span style="letter-spacing: 0px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style="letter-spacing: 0px;"&gt;Finally, the winning speeds this year were about 1.2 m/s, so you only get a GPS update every 30 cm. That's not so bad, but you need odometry to fill in the blanks. Odometry is very accurate over small distances, but errors grow with time. GPS is bad over short distances, but long time averages are great. Synergy.&lt;/span&gt;&lt;br /&gt;
&lt;span style="letter-spacing: 0px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px; min-height: 19px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;I’ll be going through the data logs from the runs and posting tracks soon.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="font: 16px Times; margin: 0px; min-height: 19px;"&gt;&lt;span style="letter-spacing: 0px;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2476607838833857507-4488528127260816513?l=scottrharris.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/CJHnF/~4/CORsCDAYuKk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scottrharris.blogspot.com/feeds/4488528127260816513/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scottrharris.blogspot.com/2011/04/sparkfun-avc-2011-report.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/4488528127260816513?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/4488528127260816513?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/CJHnF/~3/CORsCDAYuKk/sparkfun-avc-2011-report.html" title="Sparkfun AVC 2011 Report" /><author><name>Scott</name><uri>http://www.blogger.com/profile/09963523054031313575</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/_Eogk12oYm-g/Sqvbzuk-7LI/AAAAAAAAABU/QyZVdagkjCY/S220/IR_0022.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-fviT9MOdY6Y/TbxsL1NNO1I/AAAAAAAAAQM/7HxS70jJ63A/s72-c/ToborAfter20111.jpg" height="72" width="72" /><thr:total>4</thr:total><feedburner:origLink>http://scottrharris.blogspot.com/2011/04/sparkfun-avc-2011-report.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0ADQ3o8eip7ImA9WhZXEEk.&quot;"><id>tag:blogger.com,1999:blog-2476607838833857507.post-4144939737903177944</id><published>2011-04-28T21:02:00.000-07:00</published><updated>2011-04-28T21:02:52.472-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-28T21:02:52.472-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Color Organ" /><category scheme="http://www.blogger.com/atom/ns#" term="Arduino" /><title>Digital Color Organ Update</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/TTKXL4OD6pQ0AqKHFSME6_u6i6U/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TTKXL4OD6pQ0AqKHFSME6_u6i6U/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/TTKXL4OD6pQ0AqKHFSME6_u6i6U/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TTKXL4OD6pQ0AqKHFSME6_u6i6U/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Here's a quick video showing off the new color organ. Come see it (and me) at the Bay Area Maker Faire!&lt;br /&gt;
&lt;br /&gt;
&lt;iframe allowfullscreen="" frameborder="0" height="390" src="http://www.youtube.com/embed/uLg89bmQpFg?hd=1" width="640"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2476607838833857507-4144939737903177944?l=scottrharris.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/CJHnF/~4/r74qd6xKwX0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scottrharris.blogspot.com/feeds/4144939737903177944/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scottrharris.blogspot.com/2011/04/digital-color-organ-update.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/4144939737903177944?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/4144939737903177944?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/CJHnF/~3/r74qd6xKwX0/digital-color-organ-update.html" title="Digital Color Organ Update" /><author><name>Scott</name><uri>http://www.blogger.com/profile/09963523054031313575</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/_Eogk12oYm-g/Sqvbzuk-7LI/AAAAAAAAABU/QyZVdagkjCY/S220/IR_0022.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/uLg89bmQpFg/default.jpg" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://scottrharris.blogspot.com/2011/04/digital-color-organ-update.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MDQHs4fCp7ImA9WhZQGE0.&quot;"><id>tag:blogger.com,1999:blog-2476607838833857507.post-2580158726639855422</id><published>2011-04-26T00:03:00.000-07:00</published><updated>2011-04-26T00:04:31.534-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-26T00:04:31.534-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Sparkfun Autonomous Vehicle Competition" /><title>Sparkfun AVC 2011 Video</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/18hTtOOqlafY9_XFgUFYMzP9Zag/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/18hTtOOqlafY9_XFgUFYMzP9Zag/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/18hTtOOqlafY9_XFgUFYMzP9Zag/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/18hTtOOqlafY9_XFgUFYMzP9Zag/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;I'll post a wrap up on the 2011 AVC soon, but here's a quick video I made from the footage we gathered.&lt;br /&gt;
&lt;br /&gt;
The mass start is epic. I'm hoping that Sparkfun has better footage of Tobor threading the needle. I lost track of how many flipped bots there were in the first few seconds.&lt;br /&gt;
&lt;br /&gt;
&lt;iframe allowfullscreen="" frameborder="0" height="390" src="http://www.youtube.com/embed/E6-ng7DFRRA?hd=1" title="YouTube video player" width="640"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2476607838833857507-2580158726639855422?l=scottrharris.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/CJHnF/~4/5Dz79pe4msY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scottrharris.blogspot.com/feeds/2580158726639855422/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scottrharris.blogspot.com/2011/04/sparkfun-avc-2011-video.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/2580158726639855422?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/2580158726639855422?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/CJHnF/~3/5Dz79pe4msY/sparkfun-avc-2011-video.html" title="Sparkfun AVC 2011 Video" /><author><name>Scott</name><uri>http://www.blogger.com/profile/09963523054031313575</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/_Eogk12oYm-g/Sqvbzuk-7LI/AAAAAAAAABU/QyZVdagkjCY/S220/IR_0022.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/E6-ng7DFRRA/default.jpg" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://scottrharris.blogspot.com/2011/04/sparkfun-avc-2011-video.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEEHSHk8fyp7ImA9WhZQEUU.&quot;"><id>tag:blogger.com,1999:blog-2476607838833857507.post-6169580748251478812</id><published>2011-04-18T20:10:00.000-07:00</published><updated>2011-04-18T20:10:39.777-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-18T20:10:39.777-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Sparkfun Autonomous Vehicle Competition" /><category scheme="http://www.blogger.com/atom/ns#" term="Robots" /><title>Low Pass Filter</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-jcjyJD5_5-uZc6WDVrCfMsNgZU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-jcjyJD5_5-uZc6WDVrCfMsNgZU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-jcjyJD5_5-uZc6WDVrCfMsNgZU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-jcjyJD5_5-uZc6WDVrCfMsNgZU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;So my obstacle avoidance last year was a total last minute hack. This year, I left things to the last minute again, but I still have time to replace a major hack with something that's at least reasonable. The jittery steering when obstacle avoidance is turned on is due to the fact that I'm feeding the scaled sensor values directly into a steering offset. Noise in the sensors ends up as noise on the steering servos. And the sensors are pretty noisy.&lt;br /&gt;
&lt;br /&gt;
I've implemented a simple first order system to smooth out the obstacle avoidance error signals and it seems to work well. The other thing I'm adding is a bank of pots on the outside of the car. I'm going to use them to adjust some of the system gains so I can run the car, stop it, turn a knob, and re-run the car. I'm hoping that this will increase my iteration rate so I can dial in on a collection of gains that work. Once I have it working, I'll take the pot values and hard code them into the car. The more system tuning I can do without re-compiling, the better.&lt;br /&gt;
&lt;br /&gt;
Time for bed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2476607838833857507-6169580748251478812?l=scottrharris.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/CJHnF/~4/KJFMDpUcEhw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scottrharris.blogspot.com/feeds/6169580748251478812/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scottrharris.blogspot.com/2011/04/low-pass-filter.html#comment-form" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/6169580748251478812?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/6169580748251478812?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/CJHnF/~3/KJFMDpUcEhw/low-pass-filter.html" title="Low Pass Filter" /><author><name>Scott</name><uri>http://www.blogger.com/profile/09963523054031313575</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/_Eogk12oYm-g/Sqvbzuk-7LI/AAAAAAAAABU/QyZVdagkjCY/S220/IR_0022.jpg" /></author><thr:total>3</thr:total><feedburner:origLink>http://scottrharris.blogspot.com/2011/04/low-pass-filter.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkYFSX06fyp7ImA9WhZQEUg.&quot;"><id>tag:blogger.com,1999:blog-2476607838833857507.post-930997776576220226</id><published>2011-04-18T13:08:00.000-07:00</published><updated>2011-04-18T13:21:58.317-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-18T13:21:58.317-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Sparkfun Autonomous Vehicle Competition" /><category scheme="http://www.blogger.com/atom/ns#" term="Robots" /><title>Sunday AVC Trouble</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/TdJP0CZxkwzksKeqpD7mUCc3yPU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TdJP0CZxkwzksKeqpD7mUCc3yPU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/TdJP0CZxkwzksKeqpD7mUCc3yPU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TdJP0CZxkwzksKeqpD7mUCc3yPU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Sarah and I drove down to SFE HQ on Sunday afternoon. I was hoping to spend most of my time optimizing the new obstacle avoidance system that uses three Maxbotix LV-EZ4 sensors along with the Sharp IR range finders from last year. Unfortunately, the trouble started as soon as we got there.&lt;br /&gt;
&lt;br /&gt;
First off, my Mac didn't go to sleep when I put it in my bag for the trip down the hill, so it was toasty hot when I pulled it out. I gave it a reboot and it seems to be fine.&lt;br /&gt;
&lt;br /&gt;
Then I started putting the lid back on the bot and loaded up some test code. I smelled burning electronics and sure enough, there was a tendril of smoke rising from one of the Maxbotix sensors. I cut power and checked everything. Nothing seemed wrong so I replaced that unit with a spare and everything seemed to work.&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-i3Y6R75qG_I/TayVdtvg7_I/AAAAAAAAAPk/lOZg96WKkQo/s1600/MaxbotixSmoke1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="480" src="http://4.bp.blogspot.com/-i3Y6R75qG_I/TayVdtvg7_I/AAAAAAAAAPk/lOZg96WKkQo/s640/MaxbotixSmoke1.jpg" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;That component just above the ROHS label got pretty hot. As a bonus, you get to see the ultrasonic transducer. I'm guessing that the little dish on top of the piezo element sets the beam width.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;When I got home I shot an email off to Maxbotix and they are going to do a replacement for me and try and figure out what caused the problem. So far they have no idea about what would cause things to fry like that. Quick response!&lt;br /&gt;
&lt;br /&gt;
Anyhow, I started off with an attempt to repeat last years run using the same code, parameters, and waypoints. I might have made it around the building if all the cars were gone, but it was not an impressive test. Turing on the sonar system just resulted in jittery steering.&lt;br /&gt;
&lt;br /&gt;
Finally, I gave up and decided to do an open loop drive around the course. One lap hugged the inside and the next lap followed the outside edge of the clear course. Here's what the output of the Kalman filter looks like.&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-91FBsz--GIU/TayXMAF1EgI/AAAAAAAAAPo/jhF5_YjmM8Y/s1600/SFEBuilding.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="640" src="http://4.bp.blogspot.com/-91FBsz--GIU/TayXMAF1EgI/AAAAAAAAAPo/jhF5_YjmM8Y/s640/SFEBuilding.png" width="568" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Position estimates form the car's Kalman filter. Red dots indicate locations where the car velocity was zero.&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
I stopped at each course corner, places where curbs stick out, and the two lamp posts (near the lake and turn #1 and the one in the northeast corner of the parking lot). From the size of the red blobs, you can get an idea of my Kalman filter performance (or lack, thereof). I think it could use a lot of improvement. Take a look at the track on the right side of the graph: the inside track crosses over the outside track!&lt;br /&gt;
&lt;br /&gt;
I'll have to go back and do a few more runs where I log the sensor data as well as the estimator state output. I think I can improve things.&lt;br /&gt;
&lt;br /&gt;
Finally, there were quite a few other teams there testing. Nobody had much time to chat because we were all too busy chasing bugs. I'm looking forward to trading stories at the Dark Horse after the AVC.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: center;"&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/2476607838833857507-930997776576220226?l=scottrharris.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/CJHnF/~4/yKqVUSELcFg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scottrharris.blogspot.com/feeds/930997776576220226/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scottrharris.blogspot.com/2011/04/sunday-avc-trouble.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/930997776576220226?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/930997776576220226?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/CJHnF/~3/yKqVUSELcFg/sunday-avc-trouble.html" title="Sunday AVC Trouble" /><author><name>Scott</name><uri>http://www.blogger.com/profile/09963523054031313575</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/_Eogk12oYm-g/Sqvbzuk-7LI/AAAAAAAAABU/QyZVdagkjCY/S220/IR_0022.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-i3Y6R75qG_I/TayVdtvg7_I/AAAAAAAAAPk/lOZg96WKkQo/s72-c/MaxbotixSmoke1.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://scottrharris.blogspot.com/2011/04/sunday-avc-trouble.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MMRHw-fyp7ImA9WhZRF0g.&quot;"><id>tag:blogger.com,1999:blog-2476607838833857507.post-3887322991985234504</id><published>2011-04-13T20:24:00.000-07:00</published><updated>2011-04-13T20:24:45.257-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-13T20:24:45.257-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Color Organ" /><category scheme="http://www.blogger.com/atom/ns#" term="Arduino" /><title>A New Color Organ</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/xvnEV9KDyNqSrVJa3K9jVJGMQnc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xvnEV9KDyNqSrVJa3K9jVJGMQnc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/xvnEV9KDyNqSrVJa3K9jVJGMQnc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xvnEV9KDyNqSrVJa3K9jVJGMQnc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Just a teaser. I got some junk color organs on eBay and I used one of the cases to hold a string of 36 RGB LEDs in a 6x6 array.&lt;br /&gt;
&lt;br /&gt;
It looks pretty good. I'll be taking this one to Maker Faire too!&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/-P2isD_qDEfU/TaZokpV21lI/AAAAAAAAAPg/8kUcV2Sq6FU/s1600/Digital+color+organ.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="418" src="http://2.bp.blogspot.com/-P2isD_qDEfU/TaZokpV21lI/AAAAAAAAAPg/8kUcV2Sq6FU/s640/Digital+color+organ.jpg" width="640" /&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/2476607838833857507-3887322991985234504?l=scottrharris.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/CJHnF/~4/3gv4MLBIAKM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scottrharris.blogspot.com/feeds/3887322991985234504/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scottrharris.blogspot.com/2011/04/new-color-organ.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/3887322991985234504?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/3887322991985234504?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/CJHnF/~3/3gv4MLBIAKM/new-color-organ.html" title="A New Color Organ" /><author><name>Scott</name><uri>http://www.blogger.com/profile/09963523054031313575</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/_Eogk12oYm-g/Sqvbzuk-7LI/AAAAAAAAABU/QyZVdagkjCY/S220/IR_0022.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-P2isD_qDEfU/TaZokpV21lI/AAAAAAAAAPg/8kUcV2Sq6FU/s72-c/Digital+color+organ.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://scottrharris.blogspot.com/2011/04/new-color-organ.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEcNQXw7fSp7ImA9WhZRFkg.&quot;"><id>tag:blogger.com,1999:blog-2476607838833857507.post-1049548122824609880</id><published>2011-04-12T16:48:00.000-07:00</published><updated>2011-04-12T16:48:10.205-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-12T16:48:10.205-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Sparkfun Autonomous Vehicle Competition" /><title>Sonar Interference</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/262VRCNPGaq756Jj-5qFxcIz3s8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/262VRCNPGaq756Jj-5qFxcIz3s8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/262VRCNPGaq756Jj-5qFxcIz3s8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/262VRCNPGaq756Jj-5qFxcIz3s8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;In my last post, I showed the basic layout of my five new sonar sensors. I was hoping that I could run the three middle sensors sequentially, and ping the two side sensor simultaneously, but I was seeing a periodic error in the sensors that I'm assuming was due to beating between the two banks. I'm going to take a step back and only run the three middle sensors for now.&lt;br /&gt;
&lt;br /&gt;
In order to avoid any interference, they need to run sequentially, so I get an update rate of 20/3 Hz. That's not great since my main steering loop runs at 20 Hz. We'll have to see how well it works.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2476607838833857507-1049548122824609880?l=scottrharris.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/CJHnF/~4/fWqpLm9_-AY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scottrharris.blogspot.com/feeds/1049548122824609880/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scottrharris.blogspot.com/2011/04/sonar-interference.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/1049548122824609880?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/1049548122824609880?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/CJHnF/~3/fWqpLm9_-AY/sonar-interference.html" title="Sonar Interference" /><author><name>Scott</name><uri>http://www.blogger.com/profile/09963523054031313575</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/_Eogk12oYm-g/Sqvbzuk-7LI/AAAAAAAAABU/QyZVdagkjCY/S220/IR_0022.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://scottrharris.blogspot.com/2011/04/sonar-interference.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YER3cycSp7ImA9WhZRFEQ.&quot;"><id>tag:blogger.com,1999:blog-2476607838833857507.post-1974181347695790441</id><published>2011-04-10T20:05:00.000-07:00</published><updated>2011-04-10T20:05:06.999-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-10T20:05:06.999-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Sparkfun Autonomous Vehicle Competition" /><title>Obstacle Avoidance</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/U8Wdcsfs3HKXGVQKSXZf1Div7G0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/U8Wdcsfs3HKXGVQKSXZf1Div7G0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/U8Wdcsfs3HKXGVQKSXZf1Div7G0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/U8Wdcsfs3HKXGVQKSXZf1Div7G0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;I've been way (way!) too busy lately, so as usual I'm leaving things to the last minute. Here's an update on my Sparkfun AVC 2011 plans.&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'm entering the same car as last year, but with some upgrades. On the steering front, I'm going to spend some more time tweaking my navigation system. Last year, I got a six state extended Kalman filter up and running on an Arduino Mega and it worked great. I fused gyro, magnetometer, differential odometry, and GPS. Having multiple sensors, with different error behavior, telling you the same thing is key. Odometry is very good for short distance, GPS is good for big distances. The gyro beats the magnetometer over short time scales, but the magnetometer along with the GPS and differential odometry cancel gyro drift.&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;This year, I'm keeping the same code, but I'm doing more testing and tuning.&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 may also switch to non-paddle tires to improve the odometry, but I love sand tires. I'm also worried that the trip from Ned (8500 feet ASL) to Sparkfun (~5500 feet ASL) may mess up my odometry calibration because the tire pressure will change. I'll have to check that and do a quick cal on race day.&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;As far as obstacle avoidance goes, that's where I'm investing most of my time. Last year, the rain seemed to mess up the effective ness of my three IR range sensors. I'm not sure why (glare? specular reflections?), but the only heat where I made it all the way around the building was the first, dry attempt. One other attempt went very haywire due to IR sensor problems and one heat where I upped the speed (and added some last-minute cardboard blinders) hit a a curb head on. Just a foot to the right would have resulted in a much faster completion time.&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;So this year I'm adding five Maxbotix ultrasonic range sensors. The three center sensors are intended for barrel avoidance as well as preventing head-on collisions. The two side sensors will keep me centered in the course.&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;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-FSdJrRvN-30/TaJrNGmo97I/AAAAAAAAAPY/CJzpofBMPs8/s1600/AVC2011Sonar2.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="460" src="http://2.bp.blogspot.com/-FSdJrRvN-30/TaJrNGmo97I/AAAAAAAAAPY/CJzpofBMPs8/s640/AVC2011Sonar2.jpg" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Top view of the current sonar arrangement. Angles are currently set by intuition. I'll eventually set them to just overlap the beams at my (to be determined) obstacle-keep-away distance.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-Aom_D7s_tB8/TaJrQ9NrZcI/AAAAAAAAAPc/kEn3XcaYwt0/s1600/AVC2011Sonar1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="480" src="http://4.bp.blogspot.com/-Aom_D7s_tB8/TaJrQ9NrZcI/AAAAAAAAAPc/kEn3XcaYwt0/s640/AVC2011Sonar1.jpg" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Front view. Angles and locations will change.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;Field testing starts tomorrow. I'm going to take new waypoint measurements at Sparkfun. Last year I was nudging that third waypoint around to avoid that curb. I'm also going to add more waypoints on the day of the race to optimize my course given the obstacle locations.&lt;br /&gt;
&lt;br /&gt;
Finally, I've got business travel right before the race day. Same as last year.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2476607838833857507-1974181347695790441?l=scottrharris.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/CJHnF/~4/FYwjgwnlYEk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scottrharris.blogspot.com/feeds/1974181347695790441/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scottrharris.blogspot.com/2011/04/obstacle-avoidance.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/1974181347695790441?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/1974181347695790441?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/CJHnF/~3/FYwjgwnlYEk/obstacle-avoidance.html" title="Obstacle Avoidance" /><author><name>Scott</name><uri>http://www.blogger.com/profile/09963523054031313575</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/_Eogk12oYm-g/Sqvbzuk-7LI/AAAAAAAAABU/QyZVdagkjCY/S220/IR_0022.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-FSdJrRvN-30/TaJrNGmo97I/AAAAAAAAAPY/CJzpofBMPs8/s72-c/AVC2011Sonar2.jpg" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://scottrharris.blogspot.com/2011/04/obstacle-avoidance.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIGQHg8eip7ImA9WhZREk8.&quot;"><id>tag:blogger.com,1999:blog-2476607838833857507.post-5902845532833562131</id><published>2011-04-07T17:28:00.001-07:00</published><updated>2011-04-07T17:28:41.672-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-07T17:28:41.672-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Nostalgia" /><category scheme="http://www.blogger.com/atom/ns#" term="Electronics" /><title>Vintage Heathkit Multimeter</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fD8MRdu1elSXQPXeMpkhqL5T3WI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fD8MRdu1elSXQPXeMpkhqL5T3WI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fD8MRdu1elSXQPXeMpkhqL5T3WI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fD8MRdu1elSXQPXeMpkhqL5T3WI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;I found this Heathkit multimeter with Nixie tubes at JB Saunders the other day and it still works after 38 years!&lt;br /&gt;
&lt;br /&gt;
&lt;object height="390" width="640"&gt;&lt;param name="movie" value="http://www.youtube.com/v/jOPmEqX3kEA&amp;hl=en_US&amp;feature=player_embedded&amp;version=3"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/jOPmEqX3kEA&amp;hl=en_US&amp;feature=player_embedded&amp;version=3" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="390"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2476607838833857507-5902845532833562131?l=scottrharris.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/CJHnF/~4/WqxfiHsd_6k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scottrharris.blogspot.com/feeds/5902845532833562131/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scottrharris.blogspot.com/2011/04/vintage-heathkit-multimeter.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/5902845532833562131?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/5902845532833562131?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/CJHnF/~3/WqxfiHsd_6k/vintage-heathkit-multimeter.html" title="Vintage Heathkit Multimeter" /><author><name>Scott</name><uri>http://www.blogger.com/profile/09963523054031313575</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/_Eogk12oYm-g/Sqvbzuk-7LI/AAAAAAAAABU/QyZVdagkjCY/S220/IR_0022.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://scottrharris.blogspot.com/2011/04/vintage-heathkit-multimeter.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04ASXYyfCp7ImA9WhZTGEg.&quot;"><id>tag:blogger.com,1999:blog-2476607838833857507.post-7860074443850561834</id><published>2011-03-22T20:45:00.000-07:00</published><updated>2011-03-22T20:45:48.894-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-22T20:45:48.894-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Science" /><title>Bug collection</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/USqi-0tzOSFps354l1MP7Z3zPhk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/USqi-0tzOSFps354l1MP7Z3zPhk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/USqi-0tzOSFps354l1MP7Z3zPhk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/USqi-0tzOSFps354l1MP7Z3zPhk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;I found my high school bug collection the other day. Actually, I found what was left of it. 27 years old!&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://lh5.googleusercontent.com/-nDL3U7nq0dA/TYlrsmQRv3I/AAAAAAAAAPU/16cz5mLp36o/s1600/bug1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="480" src="https://lh5.googleusercontent.com/-nDL3U7nq0dA/TYlrsmQRv3I/AAAAAAAAAPU/16cz5mLp36o/s640/bug1.jpg" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;My dad made the box for me. Oak!&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://lh3.googleusercontent.com/-cRHsWu31YSc/TYlrlLJJx8I/AAAAAAAAAPQ/QsILTsVclvI/s1600/bug2.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="640" src="https://lh3.googleusercontent.com/-cRHsWu31YSc/TYlrlLJJx8I/AAAAAAAAAPQ/QsILTsVclvI/s640/bug2.jpg" width="560" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;I broke a leg off this bug so I had to carve a fake one out of a toothpick. A little black Testors paint and that bug was museum quality! The prosthesis must have broken off.&lt;br /&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/2476607838833857507-7860074443850561834?l=scottrharris.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/CJHnF/~4/XEoongC4IpI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scottrharris.blogspot.com/feeds/7860074443850561834/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scottrharris.blogspot.com/2011/03/bug-collection.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/7860074443850561834?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/7860074443850561834?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/CJHnF/~3/XEoongC4IpI/bug-collection.html" title="Bug collection" /><author><name>Scott</name><uri>http://www.blogger.com/profile/09963523054031313575</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/_Eogk12oYm-g/Sqvbzuk-7LI/AAAAAAAAABU/QyZVdagkjCY/S220/IR_0022.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh5.googleusercontent.com/-nDL3U7nq0dA/TYlrsmQRv3I/AAAAAAAAAPU/16cz5mLp36o/s72-c/bug1.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://scottrharris.blogspot.com/2011/03/bug-collection.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUEER308fip7ImA9Wx9bGU4.&quot;"><id>tag:blogger.com,1999:blog-2476607838833857507.post-7460314922222566323</id><published>2011-02-28T15:34:00.000-08:00</published><updated>2011-02-28T16:00:06.376-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-28T16:00:06.376-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="555 Contest" /><category scheme="http://www.blogger.com/atom/ns#" term="Electronics" /><title>555 Contest entry: The Sleep Stopper</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fQxwsr7f8OKigeeNnJZHnUZSnrw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fQxwsr7f8OKigeeNnJZHnUZSnrw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fQxwsr7f8OKigeeNnJZHnUZSnrw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fQxwsr7f8OKigeeNnJZHnUZSnrw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Here's my entry in the 555 design contest.&amp;nbsp;I wanted to make a very minimal circuit for the contest and only use stuff I had laying around. This is what I came up with.&lt;br /&gt;
&lt;br /&gt;
After being in the dark for a few minutes, the piezo buzzer starts up and emits a really irritating tone, but it turns off almost as soon as light hits it. Hide this in a lamp or light fixture before somebody goes to bed!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here's a video description:&lt;br /&gt;
&lt;br /&gt;
&lt;iframe allowfullscreen="" frameborder="0" height="390" src="http://www.youtube.com/embed/xHRaisQ3k4M" title="YouTube video player" width="480"&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
I originally built this circuit on a breadboard, but wanted something nicer for the contest (and easier to hide) so I made a quick toner transfer PCB. Not my best work: the ground plane is broken into two pieces, hence the black jumper.&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://lh4.googleusercontent.com/-DM-mlWUstok/TWwsji1NiAI/AAAAAAAAAPE/dtcslOvT-mw/s1600/sleepstopper2.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="480" src="https://lh4.googleusercontent.com/-DM-mlWUstok/TWwsji1NiAI/AAAAAAAAAPE/dtcslOvT-mw/s640/sleepstopper2.jpg" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Yeah, the cap is big.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://lh6.googleusercontent.com/-C2TA8DLFJHM/TWwsxiI7-4I/AAAAAAAAAPI/8yHHJHOBI8A/s1600/sleepstopper1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="480" src="https://lh6.googleusercontent.com/-C2TA8DLFJHM/TWwsxiI7-4I/AAAAAAAAAPI/8yHHJHOBI8A/s640/sleepstopper1.jpg" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;When I added my name on the board, I broke the ground plane into two parts.&lt;br /&gt;
&lt;br /&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;How it works:&lt;br /&gt;
&lt;br /&gt;
R1, R2, and C3 and the 555 form an astable multivibrator that drives the piezo buzzer (I used JP2 for the footprint to save time). Basically C3 chargers through R1 and R2, but once the voltage gets to about 2/3 Vin, the flop flop in the circuit is reset and that discharges C3 through R2. Once the voltage drops to about 1/3 Vin, the flip flop is set and the cap starts charging again.&lt;br /&gt;
&lt;br /&gt;
Meanwhile, pin 4 on a 555 is a master reset pin and pulling it low will hold the flip flop low. So it needs to be high for the circuit to oscillate. C1 is the big electrolytic cap (2200 uF). It charges slowly through the voltage divider formed by R3 (20 Meg in my example) and the CdS cell (about 1-2 Meg in the dark). Once C1 charges to about 0.6 V, the buzzer starts. It needs to be dark for this to happen. When light hits the CdS cell, the resistance drops to about 100K so C1 rapidly discharges and turns the buzzer off.&lt;br /&gt;
&lt;br /&gt;
So long as Vin X R5/(R3+R5) &amp;gt; 0.6 the circuit will work as described. Increase R3 and make C1 bigger for a longer turn-on delay. Ideally, you want somebody to go to sleep before the buzzer turns on.&lt;br /&gt;
&lt;br /&gt;
A lot of circuits you find online use pin 4 to make a light or dark activated buzzer, but I could not find any existing circuits that use this configuration to generate different turn on and turn off time constants.&lt;br /&gt;
&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://lh5.googleusercontent.com/-ZCzetiCO_ps/TWwuCNPQRjI/AAAAAAAAAPM/r1qWado7P64/s1600/SleepStopperSchematic.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="554" src="https://lh5.googleusercontent.com/-ZCzetiCO_ps/TWwuCNPQRjI/AAAAAAAAAPM/r1qWado7P64/s640/SleepStopperSchematic.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Here is the schematic in Eagle. I'm not a fan of the 555 part layout in the library.&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/2476607838833857507-7460314922222566323?l=scottrharris.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/CJHnF/~4/d2Pd0HGkw5U" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scottrharris.blogspot.com/feeds/7460314922222566323/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scottrharris.blogspot.com/2011/02/555-contest-entry-sleep-stopper.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/7460314922222566323?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/7460314922222566323?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/CJHnF/~3/d2Pd0HGkw5U/555-contest-entry-sleep-stopper.html" title="555 Contest entry: The Sleep Stopper" /><author><name>Scott</name><uri>http://www.blogger.com/profile/09963523054031313575</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/_Eogk12oYm-g/Sqvbzuk-7LI/AAAAAAAAABU/QyZVdagkjCY/S220/IR_0022.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/xHRaisQ3k4M/default.jpg" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://scottrharris.blogspot.com/2011/02/555-contest-entry-sleep-stopper.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkIFQHcyfSp7ImA9Wx9VFkw.&quot;"><id>tag:blogger.com,1999:blog-2476607838833857507.post-8006543338437554989</id><published>2011-02-01T17:35:00.000-08:00</published><updated>2011-02-01T17:35:11.995-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-01T17:35:11.995-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Science" /><title>Hot Water + Cold Air</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4M7E25D7ld3aTojuvCaXRCCsj6k/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4M7E25D7ld3aTojuvCaXRCCsj6k/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4M7E25D7ld3aTojuvCaXRCCsj6k/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4M7E25D7ld3aTojuvCaXRCCsj6k/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;It got down to -20F last night, but it was only -8F at lunch when I made these videos. Not much wind, so it was actually pleasant in the sun.&lt;br /&gt;
&lt;br /&gt;
&lt;iframe allowfullscreen="" class="youtube-player" frameborder="0" height="390" src="http://www.youtube.com/embed/NAuQAApHKnc" title="YouTube video player" type="text/html" width="640"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2476607838833857507-8006543338437554989?l=scottrharris.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/CJHnF/~4/gMpaOqF9fMA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scottrharris.blogspot.com/feeds/8006543338437554989/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scottrharris.blogspot.com/2011/02/hot-water-cold-air.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/8006543338437554989?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/8006543338437554989?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/CJHnF/~3/gMpaOqF9fMA/hot-water-cold-air.html" title="Hot Water + Cold Air" /><author><name>Scott</name><uri>http://www.blogger.com/profile/09963523054031313575</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/_Eogk12oYm-g/Sqvbzuk-7LI/AAAAAAAAABU/QyZVdagkjCY/S220/IR_0022.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/NAuQAApHKnc/default.jpg" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://scottrharris.blogspot.com/2011/02/hot-water-cold-air.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YHSH48eip7ImA9Wx9WGUo.&quot;"><id>tag:blogger.com,1999:blog-2476607838833857507.post-1422995371245289561</id><published>2011-01-25T09:00:00.000-08:00</published><updated>2011-01-25T10:12:19.072-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-25T10:12:19.072-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Electronics" /><category scheme="http://www.blogger.com/atom/ns#" term="Hacking" /><title>Drill Bits!</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/6TrNuFDifHb6hhqp_CE20wEZ6UI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6TrNuFDifHb6hhqp_CE20wEZ6UI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/6TrNuFDifHb6hhqp_CE20wEZ6UI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6TrNuFDifHb6hhqp_CE20wEZ6UI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;I've gotten into making my own PCBs so I had to get some drill bits. The folks over at &lt;a href="http://drillcity.stores.yahoo.net/"&gt;drill bit city&lt;/a&gt; are really nice and I picked up a good assortment of new and used (cheap!) carbide bits. I even got some router bits just in case I want to get into CNC PCB manufacture.&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_Eogk12oYm-g/TT38RR24bAI/AAAAAAAAAOs/Sn8h9HYA4Hw/s1600/DrillBits3.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="430" src="http://4.bp.blogspot.com/_Eogk12oYm-g/TT38RR24bAI/AAAAAAAAAOs/Sn8h9HYA4Hw/s640/DrillBits3.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;I expect to break a lot of bits.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_Eogk12oYm-g/TT38T38X8OI/AAAAAAAAAO0/MF0sFjBVn90/s1600/DrillBits1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="406" src="http://3.bp.blogspot.com/_Eogk12oYm-g/TT38T38X8OI/AAAAAAAAAO0/MF0sFjBVn90/s640/DrillBits1.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Maybe I should have made an unboxing video?&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_Eogk12oYm-g/TT38S0m_P_I/AAAAAAAAAOw/W6CfCeLJYSo/s1600/DrillBits2.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="412" src="http://3.bp.blogspot.com/_Eogk12oYm-g/TT38S0m_P_I/AAAAAAAAAOw/W6CfCeLJYSo/s640/DrillBits2.png" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;What you get in the PCB starter kit.&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&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/2476607838833857507-1422995371245289561?l=scottrharris.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/CJHnF/~4/ZVOykU-66NE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scottrharris.blogspot.com/feeds/1422995371245289561/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scottrharris.blogspot.com/2011/01/drill-bits.html#comment-form" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/1422995371245289561?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/1422995371245289561?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/CJHnF/~3/ZVOykU-66NE/drill-bits.html" title="Drill Bits!" /><author><name>Scott</name><uri>http://www.blogger.com/profile/09963523054031313575</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/_Eogk12oYm-g/Sqvbzuk-7LI/AAAAAAAAABU/QyZVdagkjCY/S220/IR_0022.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_Eogk12oYm-g/TT38RR24bAI/AAAAAAAAAOs/Sn8h9HYA4Hw/s72-c/DrillBits3.png" height="72" width="72" /><thr:total>5</thr:total><feedburner:origLink>http://scottrharris.blogspot.com/2011/01/drill-bits.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYGRHw9fSp7ImA9Wx9WGU0.&quot;"><id>tag:blogger.com,1999:blog-2476607838833857507.post-6440961576426063468</id><published>2011-01-24T13:52:00.000-08:00</published><updated>2011-01-24T13:55:25.265-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-24T13:55:25.265-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Aerodynamics" /><category scheme="http://www.blogger.com/atom/ns#" term="Sparkfun Autonomous Vehicle Competition" /><title>Hover Power</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/A5w7VRZz13EYpxRUqrL96vNXpB0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/A5w7VRZz13EYpxRUqrL96vNXpB0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/A5w7VRZz13EYpxRUqrL96vNXpB0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/A5w7VRZz13EYpxRUqrL96vNXpB0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;a href="http://www.sparkfun.com/news/526"&gt;The Sparkfun AVC 2011&lt;/a&gt; is coming up and this year I might enter a hovering robot. Quad rotors are all the rage now, but I'm not into high disc loadings. So I'm thinking about entering a robot that hovers on one rotor and uses control vanes to cancel the rotor torque and maneuver. This configuration is unstable, so I'll have to close a few control loops. Once you get a stable platform, the navigation is simple: You just pick waypoints far enough away from the Sparkfun building and a do carrot and stick control law. Simple.&lt;br /&gt;
&lt;br /&gt;
Anyhow, how much power does it take to hover? Momentum disc theory to the rescue. The result is (derive it yourself. It's easy!)&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/_Eogk12oYm-g/TT3yRt2HFkI/AAAAAAAAAOc/Phfg3DGJzF4/s1600/HoverPowerEq.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="85" src="http://2.bp.blogspot.com/_Eogk12oYm-g/TT3yRt2HFkI/AAAAAAAAAOc/Phfg3DGJzF4/s200/HoverPowerEq.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;T is thrust, rho is the density of air, and A is the rotor area.&lt;br /&gt;
&lt;br /&gt;
Here are some curves for 1 kg and 0.5 kg vehicle.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_Eogk12oYm-g/TT3yA3iNt6I/AAAAAAAAAOY/mtY_9IpAuhA/s1600/HoverPower.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_Eogk12oYm-g/TT3yA3iNt6I/AAAAAAAAAOY/mtY_9IpAuhA/s1600/HoverPower.png" /&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;I'll double these numbers and pick a motor. It looks like a 300 W motor and prop bigger than 8 inches will do the job. Something like &lt;a href="http://www3.towerhobbies.com/cgi-bin/wti0001p?&amp;amp;I=LXLWU0&amp;amp;P=ML"&gt;this motor&lt;/a&gt;&amp;nbsp;fits the bill nicely. Notice that the motor is rated for 333 W and 3D aircraft up to 2 lbs. That's consistent with my numbers.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&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/2476607838833857507-6440961576426063468?l=scottrharris.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/CJHnF/~4/DQKnW9HxMCY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scottrharris.blogspot.com/feeds/6440961576426063468/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scottrharris.blogspot.com/2011/01/hovering-power.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/6440961576426063468?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/6440961576426063468?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/CJHnF/~3/DQKnW9HxMCY/hovering-power.html" title="Hover Power" /><author><name>Scott</name><uri>http://www.blogger.com/profile/09963523054031313575</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/_Eogk12oYm-g/Sqvbzuk-7LI/AAAAAAAAABU/QyZVdagkjCY/S220/IR_0022.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_Eogk12oYm-g/TT3yRt2HFkI/AAAAAAAAAOc/Phfg3DGJzF4/s72-c/HoverPowerEq.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://scottrharris.blogspot.com/2011/01/hovering-power.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8CQn8yeyp7ImA9Wx9WF0k.&quot;"><id>tag:blogger.com,1999:blog-2476607838833857507.post-6904343708850220366</id><published>2011-01-22T17:00:00.000-08:00</published><updated>2011-01-22T17:07:43.193-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-22T17:07:43.193-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="LaTeX" /><title>LaTeX and Blogger</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jHSrOsnetCMnJagcaQAjUGoYOxk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jHSrOsnetCMnJagcaQAjUGoYOxk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/jHSrOsnetCMnJagcaQAjUGoYOxk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jHSrOsnetCMnJagcaQAjUGoYOxk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;After a few minutes of searching around, I found a quick way to get LaTeX onto this blog. Although, it seems like Wordpress is the way to go if I want to get serious.&lt;br /&gt;
&lt;br /&gt;
Here's a preview: $P_{hover} = \sqrt{\frac{T^3}{2 \rho A}}$&lt;br /&gt;
&lt;br /&gt;
Crap! That script uses MathML and that doesn't work with Safari. Back to the drawing board.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2476607838833857507-6904343708850220366?l=scottrharris.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/CJHnF/~4/M6-ZNAJTz0o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scottrharris.blogspot.com/feeds/6904343708850220366/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scottrharris.blogspot.com/2011/01/latex-and-blogger_22.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/6904343708850220366?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/6904343708850220366?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/CJHnF/~3/M6-ZNAJTz0o/latex-and-blogger_22.html" title="LaTeX and Blogger" /><author><name>Scott</name><uri>http://www.blogger.com/profile/09963523054031313575</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/_Eogk12oYm-g/Sqvbzuk-7LI/AAAAAAAAABU/QyZVdagkjCY/S220/IR_0022.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://scottrharris.blogspot.com/2011/01/latex-and-blogger_22.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0IHQ3wyfyp7ImA9Wx9WEEs.&quot;"><id>tag:blogger.com,1999:blog-2476607838833857507.post-1778578762487561188</id><published>2011-01-14T20:25:00.000-08:00</published><updated>2011-01-14T20:25:32.297-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-14T20:25:32.297-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Color Organ" /><category scheme="http://www.blogger.com/atom/ns#" term="Arduino" /><title>Arduino Color Organ Shield</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/hqlwnvy0O_O7UpjKtJzvBp_-y5g/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hqlwnvy0O_O7UpjKtJzvBp_-y5g/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/hqlwnvy0O_O7UpjKtJzvBp_-y5g/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hqlwnvy0O_O7UpjKtJzvBp_-y5g/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;I've finished my new Ardunio Color Organ shield and it works great. The PCB fab was pretty easy for my second try at toner transfer.&lt;br /&gt;
&lt;br /&gt;
Here's the finished product:&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_Eogk12oYm-g/TTEfc7l7DMI/AAAAAAAAAOE/9QsEwcdkGcU/s1600/arduinocolororganshield3.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="380" src="http://1.bp.blogspot.com/_Eogk12oYm-g/TTEfc7l7DMI/AAAAAAAAAOE/9QsEwcdkGcU/s640/arduinocolororganshield3.jpg" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;I had no 200k resistors handy.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_Eogk12oYm-g/TTEfe4K66yI/AAAAAAAAAOI/FE2xkaGykkE/s1600/arduinocolororganshield2.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="640" src="http://4.bp.blogspot.com/_Eogk12oYm-g/TTEfe4K66yI/AAAAAAAAAOI/FE2xkaGykkE/s640/arduinocolororganshield2.jpg" width="616" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;No soldermask means it's ugly and the prototyping area vias only show up on the bottom&lt;span class="Apple-style-span" style="font-size: small;"&gt;.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_Eogk12oYm-g/TTEfheybmkI/AAAAAAAAAOM/3jP7_UTxwlM/s1600/arduinocolororganshield1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="450" src="http://1.bp.blogspot.com/_Eogk12oYm-g/TTEfheybmkI/AAAAAAAAAOM/3jP7_UTxwlM/s640/arduinocolororganshield1.jpg" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Quick and dirty, but it's better than a breadboard.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;It's a lot sturdier than the breadboard version:&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_Eogk12oYm-g/TTEhWGP7ZdI/AAAAAAAAAOQ/k-_qrLskSIc/s1600/arduinocolororganshieldmore1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://3.bp.blogspot.com/_Eogk12oYm-g/TTEhWGP7ZdI/AAAAAAAAAOQ/k-_qrLskSIc/s640/arduinocolororganshieldmore1.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;I'm probably going to get some nice PCBs made. Let me know if you're interested in a kit!&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/2476607838833857507-1778578762487561188?l=scottrharris.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/CJHnF/~4/abru7ncKF8E" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scottrharris.blogspot.com/feeds/1778578762487561188/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scottrharris.blogspot.com/2011/01/arduino-color-organ-shield.html#comment-form" title="6 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/1778578762487561188?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/1778578762487561188?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/CJHnF/~3/abru7ncKF8E/arduino-color-organ-shield.html" title="Arduino Color Organ Shield" /><author><name>Scott</name><uri>http://www.blogger.com/profile/09963523054031313575</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/_Eogk12oYm-g/Sqvbzuk-7LI/AAAAAAAAABU/QyZVdagkjCY/S220/IR_0022.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_Eogk12oYm-g/TTEfc7l7DMI/AAAAAAAAAOE/9QsEwcdkGcU/s72-c/arduinocolororganshield3.jpg" height="72" width="72" /><thr:total>6</thr:total><feedburner:origLink>http://scottrharris.blogspot.com/2011/01/arduino-color-organ-shield.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIHRXw_fSp7ImA9Wx9XGUs.&quot;"><id>tag:blogger.com,1999:blog-2476607838833857507.post-7021011154654696046</id><published>2011-01-13T15:48:00.000-08:00</published><updated>2011-01-13T15:48:54.245-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-13T15:48:54.245-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Hacking" /><title>Holiday Creations Xmas Light Guts</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/2Rwk1cTC3fkwtebVOpZU1pZ-4SU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2Rwk1cTC3fkwtebVOpZU1pZ-4SU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/2Rwk1cTC3fkwtebVOpZU1pZ-4SU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2Rwk1cTC3fkwtebVOpZU1pZ-4SU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;Here are some photos of the innerds. I'm not sure how much help they'll be.&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;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_Eogk12oYm-g/TS-O9ELK2cI/AAAAAAAAANg/cQ3NoGEMMrc/s1600/xmasguts1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="430" src="http://2.bp.blogspot.com/_Eogk12oYm-g/TS-O9ELK2cI/AAAAAAAAANg/cQ3NoGEMMrc/s640/xmasguts1.jpg" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Very handy labels.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_Eogk12oYm-g/TS-O-44Ru4I/AAAAAAAAANk/6SH9lAFx7m4/s1600/xmasguts2.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="570" src="http://1.bp.blogspot.com/_Eogk12oYm-g/TS-O-44Ru4I/AAAAAAAAANk/6SH9lAFx7m4/s640/xmasguts2.jpg" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Five LEDs!&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_Eogk12oYm-g/TS-PAb_kFII/AAAAAAAAANo/hEbtmnsObzU/s1600/xmasguts3.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="442" src="http://4.bp.blogspot.com/_Eogk12oYm-g/TS-PAb_kFII/AAAAAAAAANo/hEbtmnsObzU/s640/xmasguts3.jpg" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;All the action happens under that potted blob.&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/2476607838833857507-7021011154654696046?l=scottrharris.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/CJHnF/~4/4ggMPLOwLuw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scottrharris.blogspot.com/feeds/7021011154654696046/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scottrharris.blogspot.com/2011/01/holiday-creations-xmas-light-guts.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/7021011154654696046?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/7021011154654696046?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/CJHnF/~3/4ggMPLOwLuw/holiday-creations-xmas-light-guts.html" title="Holiday Creations Xmas Light Guts" /><author><name>Scott</name><uri>http://www.blogger.com/profile/09963523054031313575</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/_Eogk12oYm-g/Sqvbzuk-7LI/AAAAAAAAABU/QyZVdagkjCY/S220/IR_0022.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_Eogk12oYm-g/TS-O9ELK2cI/AAAAAAAAANg/cQ3NoGEMMrc/s72-c/xmasguts1.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://scottrharris.blogspot.com/2011/01/holiday-creations-xmas-light-guts.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4MQ3wzcSp7ImA9Wx9XGEU.&quot;"><id>tag:blogger.com,1999:blog-2476607838833857507.post-7506213489902440848</id><published>2011-01-12T18:48:00.000-08:00</published><updated>2011-01-12T18:49:42.289-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-12T18:49:42.289-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Hacking" /><category scheme="http://www.blogger.com/atom/ns#" term="Arduino" /><title>More Holiday Hacking</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7dI6RjvEwa6ylAaLgyRJJsS_IjQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7dI6RjvEwa6ylAaLgyRJJsS_IjQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/7dI6RjvEwa6ylAaLgyRJJsS_IjQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7dI6RjvEwa6ylAaLgyRJJsS_IjQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;McGuckin Hardware had Christmas lights on closeout the other day and I picked up five boxes of these lights for $2.50 each! They seem pretty similar to the GE lights, but I don't have the controller. These are just extension strands.&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/_Eogk12oYm-g/TS5nQtYoRhI/AAAAAAAAANc/m5KZjXguaCs/s1600/P1020119.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://3.bp.blogspot.com/_Eogk12oYm-g/TS5nQtYoRhI/AAAAAAAAANc/m5KZjXguaCs/s640/P1020119.jpg" style="cursor: move;" width="640" /&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;br /&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Here's what I've learned:&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;1. The ribbed wire on these lights is POSITIVE unlike the GE strands where the ribbed wire is negative.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;2. Hooking the strand up backwards draws upwards of 2 Amps.&amp;nbsp;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;3. They don't respond to the same protocol as the GE lights. I get some random flickering, but no joy.&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&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/_Eogk12oYm-g/TS5nJeZYE8I/AAAAAAAAANU/S5a4fww-LYU/s1600/P1020111.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="480" src="http://4.bp.blogspot.com/_Eogk12oYm-g/TS5nJeZYE8I/AAAAAAAAANU/S5a4fww-LYU/s640/P1020111.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Does anyone have a controller for these lights or more information? If I had a controller I could snoop the lines with a logic analyzer. The protocol has to be somewhat similar the one used by the GE lights. Contact me!&amp;nbsp;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2476607838833857507-7506213489902440848?l=scottrharris.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/CJHnF/~4/PPcUcHRDvDI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scottrharris.blogspot.com/feeds/7506213489902440848/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scottrharris.blogspot.com/2011/01/more-holiday-hacking.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/7506213489902440848?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/7506213489902440848?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/CJHnF/~3/PPcUcHRDvDI/more-holiday-hacking.html" title="More Holiday Hacking" /><author><name>Scott</name><uri>http://www.blogger.com/profile/09963523054031313575</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/_Eogk12oYm-g/Sqvbzuk-7LI/AAAAAAAAABU/QyZVdagkjCY/S220/IR_0022.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_Eogk12oYm-g/TS5nQtYoRhI/AAAAAAAAANc/m5KZjXguaCs/s72-c/P1020119.jpg" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://scottrharris.blogspot.com/2011/01/more-holiday-hacking.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEEMRHc4eCp7ImA9Wx9SFkU.&quot;"><id>tag:blogger.com,1999:blog-2476607838833857507.post-1353062990888523652</id><published>2010-12-06T16:41:00.000-08:00</published><updated>2010-12-06T16:44:45.930-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-06T16:44:45.930-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Arduino" /><title>Controlling GE Color Effects lights with the Ardunio</title><content type="html">
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/nkJZpdc5oOiRrsDCXi63QCtixBw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nkJZpdc5oOiRrsDCXi63QCtixBw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/nkJZpdc5oOiRrsDCXi63QCtixBw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nkJZpdc5oOiRrsDCXi63QCtixBw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Here's the code. Power up the lights first and then the Arduino so that the lights get enumerated properly.&lt;br /&gt;
&lt;br /&gt;
The ground wire (has ridges) from the strand is connected to GND on the Arduino and and the center wire is connected to digital output 4.&lt;br /&gt;
&lt;br /&gt;
Enjoy&lt;br /&gt;
&lt;pre style="background-image: URL(http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif); background: #f0f0f0; border: 1px dashed #CCCCCC; color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"&gt;&lt;code style="color: black; word-wrap: normal;"&gt; // GE Christmas light control for Arduino  
 // Ported by Scott Harris &amp;lt;scottrharris@gmail.com&amp;gt;  
 // scottrharris.blogspot.com  
   
   
 // Based on this code:  
   
 /*!     Christmas Light Control  
 **     By Robert Quattlebaum &amp;lt;darco@deepdarc.com&amp;gt;  
 **     Released November 27th, 2010  
 **  
 **     For more information,  
 **     see &amp;lt;http://www.deepdarc.com/2010/11/27/hacking-christmas-lights/&amp;gt;.
 **  
 **     Originally intended for the ATTiny13, but should  
 **     be easily portable to other microcontrollers.  
 */  
   
 #define xmas_color_t uint16_t // typedefs can cause trouble in the Arduino environment  
   
 // Eliminate the .h file  
   
 #define XMAS_LIGHT_COUNT          (36) //I only have a 36 light strand. Should be 50 or 36  
 #define XMAS_CHANNEL_MAX          (0xF)  
 #define XMAS_DEFAULT_INTENSITY     (0xCC)  
 #define XMAS_HUE_MAX               ((XMAS_CHANNEL_MAX+1)*6-1)  
 #define XMAS_COLOR(r,g,b)     ((r)+((g)&amp;lt;&amp;lt;4)+((b)&amp;lt;&amp;lt;8))  
 #define XMAS_COLOR_WHITE     XMAS_COLOR(XMAS_CHANNEL_MAX,XMAS_CHANNEL_MAX,XMAS_CHANNEL_MAX)  
 #define XMAS_COLOR_BLACK     XMAS_COLOR(0,0,0)  
 #define XMAS_COLOR_RED          XMAS_COLOR(XMAS_CHANNEL_MAX,0,0)  
 #define XMAS_COLOR_GREEN     XMAS_COLOR(0,XMAS_CHANNEL_MAX,0)  
 #define XMAS_COLOR_BLUE          XMAS_COLOR(0,0,XMAS_CHANNEL_MAX)  
 #define XMAS_COLOR_CYAN          XMAS_COLOR(0,XMAS_CHANNEL_MAX,XMAS_CHANNEL_MAX)  
 #define XMAS_COLOR_MAGENTA     XMAS_COLOR(XMAS_CHANNEL_MAX,0,XMAS_CHANNEL_MAX)  
 #define XMAS_COLOR_YELLOW     XMAS_COLOR(XMAS_CHANNEL_MAX,XMAS_CHANNEL_MAX,0)  
   
 // Pin setup  
 #define XMASPIN 4 // I drive the LED strand from pin #4  
 #define STATUSPIN 13 // The LED  
   
 // The delays in the begin, one, and zero functions look funny, but they give the correct  
 // pulse durations when checked with a logic analyzer. Tested on an Arduino Uno.  
   
 void xmas_begin()  
 {  
  digitalWrite(XMASPIN,1);  
  delayMicroseconds(7); //The pulse should be 10 uS long, but I had to hand tune the delays. They work for me  
  digitalWrite(XMASPIN,0);   
 }  
   
 void xmas_one()  
 {  
  digitalWrite(XMASPIN,0);  
  delayMicroseconds(11); //This results in a 20 uS long low  
  digitalWrite(XMASPIN,1);  
  delayMicroseconds(7);   
  digitalWrite(XMASPIN,0);  
 }  
   
 void xmas_zero()  
 {  
  digitalWrite(XMASPIN,0);  
  delayMicroseconds(2);   
  digitalWrite(XMASPIN,1);  
  delayMicroseconds(20-3);   
  digitalWrite(XMASPIN,0);  
 }  
   
 void xmas_end()  
 {  
  digitalWrite(XMASPIN,0);  
  delayMicroseconds(40); // Can be made shorter  
 }  
   
   
 // The rest of Robert's code is basically unchanged  
   
 void xmas_fill_color(uint8_t begin,uint8_t count,uint8_t intensity,xmas_color_t color)  
 {  
      while(count--)  
      {  
           xmas_set_color(begin++,intensity,color);  
      }  
 }  
   
 void xmas_fill_color_same(uint8_t begin,uint8_t count,uint8_t intensity,xmas_color_t color)  
 {  
      while(count--)  
      {  
           xmas_set_color(0,intensity,color);  
      }  
 }  
   
   
 void xmas_set_color(uint8_t led,uint8_t intensity,xmas_color_t color) {  
      uint8_t i;  
      xmas_begin();  
      for(i=6;i;i--,(led&amp;lt;&amp;lt;=1))  
           if(led&amp;amp;(1&amp;lt;&amp;lt;5))  
                xmas_one();  
           else  
                xmas_zero();  
      for(i=8;i;i--,(intensity&amp;lt;&amp;lt;=1))  
           if(intensity&amp;amp;(1&amp;lt;&amp;lt;7))  
                xmas_one();  
           else  
                xmas_zero();  
      for(i=12;i;i--,(color&amp;lt;&amp;lt;=1))  
           if(color&amp;amp;(1&amp;lt;&amp;lt;11))  
                xmas_one();  
           else  
                xmas_zero();  
      xmas_end();  
 }  
   
   
 xmas_color_t  
 xmas_color(uint8_t r,uint8_t g,uint8_t b) {  
      return XMAS_COLOR(r,g,b);  
 }  
   
 xmas_color_t  
 xmas_color_hue(uint8_t h) {  
      switch(h&amp;gt;&amp;gt;4) {  
           case 0:     h-=0; return xmas_color(h,XMAS_CHANNEL_MAX,0);  
           case 1:     h-=16; return xmas_color(XMAS_CHANNEL_MAX,(XMAS_CHANNEL_MAX-h),0);  
           case 2:     h-=32; return xmas_color(XMAS_CHANNEL_MAX,0,h);  
           case 3:     h-=48; return xmas_color((XMAS_CHANNEL_MAX-h),0,XMAS_CHANNEL_MAX);  
           case 4:     h-=64; return xmas_color(0,h,XMAS_CHANNEL_MAX);  
           case 5:     h-=80; return xmas_color(0,XMAS_CHANNEL_MAX,(XMAS_CHANNEL_MAX-h));  
      }  
 }  
   
   
   
 void setup()  
 {  
  pinMode(XMASPIN, OUTPUT);  
  pinMode(STATUSPIN, OUTPUT);  
  xmas_fill_color(0,XMAS_LIGHT_COUNT,XMAS_DEFAULT_INTENSITY,XMAS_COLOR_BLACK); //Enumerate all the lights  
  xmas_fill_color(0,XMAS_LIGHT_COUNT,XMAS_DEFAULT_INTENSITY,XMAS_COLOR_BLUE); //Make them all blue  
 }  
 
   
 void loop()  
 {  
  digitalWrite(STATUSPIN,1);  
  xmas_fill_color(0,XMAS_LIGHT_COUNT,XMAS_DEFAULT_INTENSITY,XMAS_COLOR_RED);  
  delay(100);  
  digitalWrite(STATUSPIN,0);  
  xmas_fill_color(0,XMAS_LIGHT_COUNT,XMAS_DEFAULT_INTENSITY,XMAS_COLOR_BLUE);  
  delay(100);  
 }   
   
&lt;/scott@cheapscience.com&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2476607838833857507-1353062990888523652?l=scottrharris.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/CJHnF/~4/1Q4RduuB0Ks" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://scottrharris.blogspot.com/feeds/1353062990888523652/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://scottrharris.blogspot.com/2010/12/controlling-ge-color-effects-lights.html#comment-form" title="13 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/1353062990888523652?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2476607838833857507/posts/default/1353062990888523652?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/CJHnF/~3/1Q4RduuB0Ks/controlling-ge-color-effects-lights.html" title="Controlling GE Color Effects lights with the Ardunio" /><author><name>Scott</name><uri>http://www.blogger.com/profile/09963523054031313575</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/_Eogk12oYm-g/Sqvbzuk-7LI/AAAAAAAAABU/QyZVdagkjCY/S220/IR_0022.jpg" /></author><thr:total>13</thr:total><feedburner:origLink>http://scottrharris.blogspot.com/2010/12/controlling-ge-color-effects-lights.html</feedburner:origLink></entry></feed>

