<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Rick&#039;s Awesome Blog</title>
	<atom:link href="http://www.richardosgood.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.richardosgood.com</link>
	<description>(Not) Just another WordPress weblog</description>
	<lastBuildDate>Wed, 25 Apr 2012 15:35:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Nissan Altima Stereo Repair</title>
		<link>http://www.richardosgood.com/2012/04/25/nissan-altima-stereo-repair/</link>
		<comments>http://www.richardosgood.com/2012/04/25/nissan-altima-stereo-repair/#comments</comments>
		<pubDate>Wed, 25 Apr 2012 15:30:29 +0000</pubDate>
		<dc:creator>Rick</dc:creator>
				<category><![CDATA[Electronics]]></category>

		<guid isPermaLink="false">http://www.richardosgood.com/?p=885</guid>
		<description><![CDATA[When I first bought my 2008 Nissan Altima back in 2009 I used the auxiliary input jack on the stereo all the time.  I noticed it was a bit finicky though.  It seemed like you could push the stereo plug &#8230; <a href="http://www.richardosgood.com/2012/04/25/nissan-altima-stereo-repair/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>When I first bought my 2008 Nissan Altima back in 2009 I used the auxiliary input jack on the stereo all the time.  I noticed it was a bit finicky though.  It seemed like you could push the stereo plug in most of the way but the final &#8220;click&#8221; into place was difficult.  Eventually (about a year ago) something broke.  The sound quality was suddenly terrible and I was only getting the left channel.  If I wiggled the jack the right way it would start working again, but even that stopped working after a while.  I figured the problem was probably a bad solder joint and wouldn&#8217;t be difficult to fix if it wasn&#8217;t built into my car.  So I stopped using the auxiliary input jack.  For a year.  Last Monday night I finally decided it was time to fix this problem once and for all.  I drove the car down to Eugene Maker Space and pulled into the shop.</p>
<p>Here is a photo of the stereo unit as a whole.</p>
<div id="attachment_887" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_18-38-14_276.jpg"><img class="size-large wp-image-887" title="Stereo unit" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_18-38-14_276-577x1024.jpg" alt="Stereo unit" width="500" height="887" /></a><p class="wp-caption-text">Stereo unit</p></div>
<p>And this was the main problem.</p>
<div id="attachment_888" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_18-38-27_408.jpg"><img class="size-large wp-image-888" title="Auxiliary input jack" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_18-38-27_408-1024x577.jpg" alt="Auxiliary input jack" width="500" height="281" /></a><p class="wp-caption-text">Auxiliary input jack</p></div>
<p>Before taking anything apart, it&#8217;s important to disconnect the ground from the battery.  This helps prevent any accidental short circuits.</p>
<div id="attachment_893" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_18-41-44_332.jpg"><img class="size-large wp-image-893" title="Ground cable removed" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_18-41-44_332-e1335283632610-1024x577.jpg" alt="Ground cable removed" width="500" height="281" /></a><p class="wp-caption-text">Ground cable removed</p></div>
<p>I was able to find some information online about how to remove the stereo.  It&#8217;s surprisingly simple for the newer Nissan Altimas.  In almost a scary way.  It made me realize just how easy it would be for someone to steal the stereo if they were so inclined.</p>
<p>The first step was to remove the plastic panel around the air vents.  The ideal tool would be a plastic pry bar but I didn&#8217;t have one of those.  I used a really old Visa gift card to start prying the plastic away, then I used a flat screwdriver for more strength.  I used the plastic card to protect the plastic from the hard metal screwdriver.  I didn&#8217;t want to scratch or dent the plastic panels if I could help it.</p>
<div id="attachment_896" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_18-44-05_938.jpg"><img class="size-large wp-image-896" title="Prying the vent panel off" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_18-44-05_938-1024x577.jpg" alt="Prying the vent panel off" width="500" height="281" /></a><p class="wp-caption-text">Prying the vent panel off</p></div>
<div id="attachment_897" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_18-44-20_49.jpg"><img class="size-large wp-image-897" title="Coming apart" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_18-44-20_49-1024x577.jpg" alt="Coming apart" width="500" height="281" /></a><p class="wp-caption-text">Coming apart</p></div>
<p>I had to pry apart both sides of the panel.  At some point I heard some snapping sounds that were quite scary but it seems it is actually perfectly normal.  Once I got past those snaps the panel just sort of slid out towards the back of the car.  Then I was able to lift it up.</p>
<div id="attachment_899" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_18-46-55_284.jpg"><img class="size-large wp-image-899" title="Vents removed" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_18-46-55_284-1024x577.jpg" alt="Vents removed" width="500" height="281" /></a><p class="wp-caption-text">Vents removed</p></div>
<p>Once the panel was removed, I could see the two phillips screws that hold the stereo bracket in place on top.</p>
<div id="attachment_901" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_18-47-15_863.jpg"><img class="size-large wp-image-901" title="Top screws" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_18-47-15_863-1024x577.jpg" alt="Top screws" width="500" height="281" /></a><p class="wp-caption-text">Top screws</p></div>
<p>Next I had to remove the bottom plastic panel to expose the bottom two screws.  This is done much in the same way as the top panel, only I found it to be a bit easier.</p>
<div id="attachment_902" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_18-47-50_160.jpg"><img class="size-large wp-image-902" title="Removing the bottom panel" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_18-47-50_160-1024x577.jpg" alt="Removing the bottom panel" width="500" height="281" /></a><p class="wp-caption-text">Removing the bottom panel</p></div>
<div id="attachment_903" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_18-52-10_901.jpg"><img class="size-large wp-image-903" title="Bottom screws" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_18-52-10_901-1024x577.jpg" alt="Bottom screws" width="500" height="281" /></a><p class="wp-caption-text">Bottom screws</p></div>
<p>Next I covered the shifter area in cloth (lab coat) to protect it from getting scratched when I pulled out the stereo.</p>
<div id="attachment_904" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_18-52-40_672.jpg"><img class="size-large wp-image-904" title="Protective lab coat" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_18-52-40_672-1024x577.jpg" alt="Protective lab coat" width="500" height="281" /></a><p class="wp-caption-text">Protective lab coat</p></div>
<p>Then it was time to remove the screws.</p>
<div id="attachment_905" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_18-54-02_806.jpg"><img class="size-large wp-image-905" title="Removing the screws" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_18-54-02_806-1024x577.jpg" alt="Removing the screws" width="500" height="281" /></a><p class="wp-caption-text">Removing the screws</p></div>
<p>Once all four screws were removed, I was able to pull out the stereo.  It actually snapped in around the sides so it took a bit more effort than I anticipated to pull it out.</p>
<div id="attachment_909" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_18-55-57_248.jpg"><img class="size-large wp-image-909" title="Stereo removed" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_18-55-57_248-1024x577.jpg" alt="Stereo removed" width="500" height="281" /></a><p class="wp-caption-text">Stereo removed</p></div>
<p>There were a total of four plugs connected to the unit.  One is for the proprietary Nissan antenna connector, one is for the AC controls, and two go to the stereo itself.</p>
<div id="attachment_912" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_18-56-26_234.jpg"><img class="size-large wp-image-912" title="Plugs" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_18-56-26_234-577x1024.jpg" alt="Plugs" width="500" height="887" /></a><p class="wp-caption-text">Plugs</p></div>
<p>The plugs were in there pretty good but after some wiggling and finger strength I got them all out.</p>
<div id="attachment_913" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_18-59-04_953.jpg"><img class="size-large wp-image-913" title="Empty dash" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_18-59-04_953-577x1024.jpg" alt="Empty dash" width="500" height="887" /></a><p class="wp-caption-text">Empty dash</p></div>
<div id="attachment_914" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_18-59-45_252.jpg"><img class="size-large wp-image-914" title="Front view" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_18-59-45_252-1024x577.jpg" alt="Front view" width="500" height="281" /></a><p class="wp-caption-text">Front view</p></div>
<div id="attachment_915" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-00-02_277.jpg"><img class="size-large wp-image-915" title="Side view" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-00-02_277-1024x577.jpg" alt="Side view" width="500" height="281" /></a><p class="wp-caption-text">Side view</p></div>
<div id="attachment_917" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-00-15_631.jpg"><img class="size-large wp-image-917" title="Back view" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-00-15_631-1024x577.jpg" alt="Back view" width="500" height="281" /></a><p class="wp-caption-text">Back view</p></div>
<div id="attachment_918" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-00-21_751.jpg"><img class="size-large wp-image-918" title="Some of the plugs" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-00-21_751-1024x577.jpg" alt="Some of the plugs" width="500" height="281" /></a><p class="wp-caption-text">Some of the plugs</p></div>
<p>Once I had the thing out of the car I had to figure out how to take it apart in order to get to the stereo jack.  My first inspection led me to believe I had to remove four torx screws on either side of the unit.  It seemed like these were holding the main stereo into the whole assembly and removing them would allow me to slide out the stereo piece to access the audio jack.</p>
<div id="attachment_920" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-03-12_753.jpg"><img class="size-large wp-image-920" title="Side torx screws" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-03-12_753-1024x577.jpg" alt="Side torx screws" width="500" height="281" /></a><p class="wp-caption-text">Side torx screws</p></div>
<p>I managed to remove the four left side screws, but I ended up stripping out one of the screws on the right side because the torx bit I had didn&#8217;t fit perfectly into the screw.  Oops. At this point I thought I might have been screwed but further inspection showed that I might not actually have to remove those side screws after all.  I decided to remove the top metal panel to get a look inside of the stereo.</p>
<div id="attachment_924" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-15-15_544.jpg"><img class="size-large wp-image-924" title="Top screw" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-15-15_544-1024x577.jpg" alt="Top screw" width="500" height="281" /></a><p class="wp-caption-text">Top screw</p></div>
<div id="attachment_927" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-17-06_258.jpg"><img class="size-large wp-image-927" title="Inside the stereo" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-17-06_258-1024x577.jpg" alt="Inside the stereo" width="500" height="281" /></a><p class="wp-caption-text">Inside the stereo</p></div>
<p>Once I got a look inside I was able to see that the audio jack wasn&#8217;t actually physically connected to that large unit anyway.  The jack is in the small square whole near the top center of the below photo.</p>
<div id="attachment_928" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-17-13_81.jpg"><img class="size-large wp-image-928" title="Can't reach the audio jack" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-17-13_81-1024x577.jpg" alt="Can't reach the audio jack" width="500" height="281" /></a><p class="wp-caption-text">Can&#39;t reach the audio jack</p></div>
<p>I inspected the unit further and decided that the front panel looked like it should be able to come off.  I found two small phillips screws on either side holding it on, so I removed them.</p>
<div id="attachment_931" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-18-02_625.jpg"><img class="size-large wp-image-931" title="Front panel screws" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-18-02_625-577x1024.jpg" alt="Front panel screws" width="500" height="887" /></a><p class="wp-caption-text">Front panel screws</p></div>
<p>Then I realized that there were four more black torx screws holding the front panel to the main metal unit.  I didn&#8217;t want to risk stripping them out and I couldn&#8217;t find the right size bit anywhere in the shop.  Luckily we are only two minutes from Harbor Freight!  I drove down there (with gaping dashboard) and managed to find some security bits that included the proper sized bit.</p>
<div id="attachment_933" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-38-52_559.jpg"><img class="size-large wp-image-933" title="Harbor Freight saves the day!" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-38-52_559-e1335284603604-1024x577.jpg" alt="Harbor Freight saves the day!" width="500" height="281" /></a><p class="wp-caption-text">Harbor Freight saves the day!</p></div>
<p>So now it was time to remove the torx screws.  There were two on the top.</p>
<div id="attachment_935" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-40-32_816.jpg"><img class="size-large wp-image-935" title="Top front torx screw" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-40-32_816-1024x577.jpg" alt="Top front torx screw" width="500" height="281" /></a><p class="wp-caption-text">Top front torx screw</p></div>
<p>And two on the bottom.</p>
<div id="attachment_936" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-40-59_206.jpg"><img class="size-large wp-image-936" title="Bottom front torx screw" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-40-59_206-1024x577.jpg" alt="Bottom front torx screw" width="500" height="281" /></a><p class="wp-caption-text">Bottom front torx screw</p></div>
<p>Once all the screws were removed, the plastic was still holding on snug.  I looked around and saw that there were some small snaps holding it in place around the edges of the unit.  The below photo shows some of the snaps after I pried up the plastic to get it off.</p>
<div id="attachment_937" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-42-27_47.jpg"><img class="size-large wp-image-937" title="Front panel snaps" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-42-27_47-1024x577.jpg" alt="Front panel snaps" width="500" height="281" /></a><p class="wp-caption-text">Front panel snaps</p></div>
<p>Once all the snaps were pried up, the unit just came apart into three pieces.</p>
<div id="attachment_938" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-44-02_464.jpg"><img class="size-large wp-image-938" title="Three pieces" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-44-02_464-1024x577.jpg" alt="Three pieces" width="500" height="281" /></a><p class="wp-caption-text">Three pieces</p></div>
<p>This allowed me to get direct access to the solder joints of the audio jack.</p>
<div id="attachment_941" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-44-56_579.jpg"><img class="size-large wp-image-941" title="Audio jack solder joints" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-44-56_579-1024x577.jpg" alt="Audio jack solder joints" width="500" height="281" /></a><p class="wp-caption-text">Audio jack solder joints</p></div>
<p>Surprisingly, they didn&#8217;t look too bad.  This made me worry a bit because I was hoping to just fix a solder joint or two and be done with this project.  I plugged in the stereo plug and used a continuity tester to see which solder joints corresponded to ground, left, and right channels.</p>
<div id="attachment_952" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-57-33_28.jpg"><img class="size-large wp-image-952" title="Testing continuity" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-57-33_28-577x1024.jpg" alt="Testing continuity" width="500" height="887" /></a><p class="wp-caption-text">Testing continuity</p></div>
<p>I was able to find the ground and left channels, but not the right.  This made sense because the right channel was the one having problems.  For the hell of it, I decided to just reflow all of the solder joints and see if it would magically fix the problem.  I tested continuity again and got the same result as last time.  That indicated to me that the problem was actually inside of the audio jack and not just a solder joint.  Time to take this thing apart even further!</p>
<p>First I removed the PCB from the front plastic bezel.</p>
<div id="attachment_944" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-54-06_775.jpg"><img class="size-large wp-image-944" title="PCB removed" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-54-06_775-1024x577.jpg" alt="PCB removed" width="500" height="281" /></a><p class="wp-caption-text">PCB removed</p></div>
<div id="attachment_947" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-54-22_969.jpg"><img class="size-large wp-image-947" title="Audio jack" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-54-22_969-1024x577.jpg" alt="Audio jack" width="500" height="281" /></a><p class="wp-caption-text">Audio jack</p></div>
<div id="attachment_948" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-54-43_226.jpg"><img class="size-large wp-image-948" title="Audio jack with rubber pulled back" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-54-43_226-577x1024.jpg" alt="Audio jack with rubber pulled back" width="500" height="887" /></a><p class="wp-caption-text">Audio jack with rubber pulled back</p></div>
<div id="attachment_949" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-56-10_35.jpg"><img class="size-large wp-image-949" title="With plug inserted" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_19-56-10_35-1024x577.jpg" alt="With plug inserted" width="500" height="281" /></a><p class="wp-caption-text">With plug inserted</p></div>
<p>Once I had the PCB separated from the bezel I was able to remove the audio jack.  I used some desoldering braid to make quick work of the job.</p>
<div id="attachment_954" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_20-15-11_154.jpg"><img class="size-large wp-image-954" title="Audio jack removed" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_20-15-11_154-e1335285174142-1024x577.jpg" alt="Audio jack removed" width="500" height="281" /></a><p class="wp-caption-text">Audio jack removed</p></div>
<div id="attachment_955" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_20-15-23_4.jpg"><img class="size-large wp-image-955" title="Audio jack" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_20-15-23_4-1024x577.jpg" alt="Audio jack" width="500" height="281" /></a><p class="wp-caption-text">Audio jack</p></div>
<p>After inspecting the jack, I saw some snaps on either side that looked like they would allow me to get inside of the actual jack.  This was a good sign because if I couldn&#8217;t get inside then I was going to have to replace this jack with a duplicate, which I didn&#8217;t have.</p>
<div id="attachment_958" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_20-17-59_574.jpg"><img class="size-large wp-image-958" title="Jack separated" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_20-17-59_574-1024x577.jpg" alt="Jack separated" width="500" height="281" /></a><p class="wp-caption-text">Jack separated</p></div>
<p>In the below photograph you can see the metal contacts around the outside of the jack.</p>
<div id="attachment_969" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_20-35-47_161.jpg"><img class="size-large wp-image-969" title="Stereo cable plugged in" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_20-35-47_161-1024x577.jpg" alt="Stereo cable plugged in" width="500" height="281" /></a><p class="wp-caption-text">Stereo cable plugged in</p></div>
<p>I tested continuity again on all of the plug&#8217;s pins and still the right channel was not working.  I had to figure out which one of the pins went to the right channel and remove it.  I just used some pliers to slide out the metal piece.</p>
<div id="attachment_972" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_20-36-26_776.jpg"><img class="size-large wp-image-972" title="The culprit!" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_20-36-26_776-1024x577.jpg" alt="The culprit!" width="500" height="281" /></a><p class="wp-caption-text">The culprit!</p></div>
<p>That tiny piece of metal ended up being the cause of the problem.  I think it somehow got bent out of shape and wasn&#8217;t making contact properly.  I tried a few things to help the problem.  First I sanded the edge to get rid of some of the corrosion but that didn&#8217;t work.  Then I put a small blob of solder on top of the edge to raise it up higher in hopes that it would press against the plug better.  That only made it more difficult to push the plug in and resulted in the metal piece bending further.  Then I noticed that the inside of the jack looked like it was a bit curved.  Like if I pushed in the metal shim it would bend up toward the plug due to the curved design.  I removed the solder and tried straightening out the metal shim so it would go further into the jack.  This seemed to work.  It took a lot of trial and error to find the exact way the shim had to be bent.  If it wasn&#8217;t bent enough then the stereo plug barely snapped into place and could fall out easily.  If it was bent too much then the stereo plug was really difficult to push in and sometimes would even bend the shim back out of the way again.  I finally got it into a place that I thought would work for me.  A continuity test proved it.</p>
<p>I soldered the jack back onto the PCB and did another continuity test just to be sure it would work.  It worked.  I put the stereo unit back together and re-inserted it into my car. I hooked up the battery ground cable again and turned on the stereo&#8230; It turned on!  The buttons all seemed to be working!  Now the moment of truth.  I plugged my cell phone into the auxiliary input jack and started playing some music.  The quality was superb.  I got both left and right channels and it sounded so much better than it did before I was blown away.  I forgot how good the cell phone audio was supposed to sound coming through the stereo.  I screwed the stereo back into the dash and replaced the vent and bottom panels.</p>
<div id="attachment_891" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_18-38-57_320.jpg"><img class="size-large wp-image-891" title="Back together again!" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-23_18-38-57_320-577x1024.jpg" alt="Back together again!" width="500" height="887" /></a><p class="wp-caption-text">Back together again!</p></div>
<p>A job well done!  The stereo got the last laugh though.  Removing the power caused it to forget what time it was and also forget all of my saved radio stations.  Easy enough to fix.  It&#8217;s hard to believe all of that work had to be done because of one tiny piece of metal.  I&#8217;m hoping it won&#8217;t get bent again.  If it does, I&#8217;m going to have to try and just replace that audio jack.  I&#8217;m keeping my fingers crossed though.</p>
<div class="al2fb_like_button"><div id="fb-root"></div><script type="text/javascript">
(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=216748751752592";
  fjs.parentNode.insertBefore(js, fjs);
}(document, "script", "facebook-jssdk"));
</script>
<fb:like href="http://www.richardosgood.com/2012/04/25/nissan-altima-stereo-repair/" layout="standard" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div>]]></content:encoded>
			<wfw:commentRss>http://www.richardosgood.com/2012/04/25/nissan-altima-stereo-repair/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mardi Gras Mask 2012</title>
		<link>http://www.richardosgood.com/2012/04/23/mardi-gras-mask-2012/</link>
		<comments>http://www.richardosgood.com/2012/04/23/mardi-gras-mask-2012/#comments</comments>
		<pubDate>Tue, 24 Apr 2012 05:58:47 +0000</pubDate>
		<dc:creator>Rick</dc:creator>
				<category><![CDATA[Craft]]></category>

		<guid isPermaLink="false">http://www.richardosgood.com/?p=832</guid>
		<description><![CDATA[My work held a Mardi Gras themed party a couple weeks ago.  I originally purchased a mask for the event, but when the event was postponed for a month I decided that it would be way cooler if I could &#8230; <a href="http://www.richardosgood.com/2012/04/23/mardi-gras-mask-2012/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>My work held a Mardi Gras themed party a couple weeks ago.  I originally purchased a mask for the event, but when the event was postponed for a month I decided that it would be way cooler if I could have a mask custom fitted to my face.  The easiest way to get a mask like that would be to make one!  I did some research on the web and I found that it really shouldn&#8217;t be super hard to make a simple mask.  I was able to put this thing together in two days time (barely).</p>
<p>The first step was to make the base mask.  I wanted it to fit my face perfectly, so naturally it had to be molded to my face.  My Internet research showed that the simplest way to get this result was to cover my face in petroleum jelly and then layer plaster strips on my face until they dried.  The jelly prevents the strips from sticking to my face or any of the hairs.  I obtained the plaster strips from our local Michael&#8217;s store.</p>
<div id="attachment_834" class="wp-caption aligncenter" style="width: 510px"><a href="http://richardosgood.com/wp-content/uploads/2012/04/2012-03-30_22-13-52_330.jpg"><img class="size-large wp-image-834" title="Plaster and Petroleum Jelly" src="http://richardosgood.com/wp-content/uploads/2012/04/2012-03-30_22-13-52_330-1024x577.jpg" alt="Plaster and Petroleum Jelly" width="500" height="281" /></a><p class="wp-caption-text">Plaster and Petroleum Jelly</p></div>
<p>First, I covered my face in the petroleum jelly.  I paid special attention to places like my eyebrows and hairline where there was more hair that could possibly get dried into the mask.</p>
<div id="attachment_838" class="wp-caption aligncenter" style="width: 490px"><a href="http://richardosgood.com/wp-content/uploads/2012/04/2012-03-30_22-25-25_1471.jpg"><img class="size-full wp-image-838" title="Jelly face" src="http://richardosgood.com/wp-content/uploads/2012/04/2012-03-30_22-25-25_1471.jpg" alt="Jelly face" width="480" height="640" /></a><p class="wp-caption-text">Jelly face</p></div>
<p>Next I had to start layering the strips onto my face.  I tried to make sure they cris-crossed often to improve the strength of the mask.  I had some help from Shannon with this part.  That is until we kept making each other laugh.  Laughing is a good way to wrinkle the mask  so I had to boot her out of the room until it dried.  We didn&#8217;t get too many photos of this process since it was so messy.</p>
<div id="attachment_843" class="wp-caption aligncenter" style="width: 490px"><a href="http://richardosgood.com/wp-content/uploads/2012/04/2012-03-30_22-31-58_993.jpg"><img class="size-full wp-image-843" title="Start with a cross" src="http://richardosgood.com/wp-content/uploads/2012/04/2012-03-30_22-31-58_993.jpg" alt="Start with a cross" width="480" height="640" /></a><p class="wp-caption-text">Start with a cross</p></div>
<div id="attachment_866" class="wp-caption aligncenter" style="width: 490px"><a href="http://richardosgood.com/wp-content/uploads/2012/04/2012-03-30_22-36-46_59.jpg"><img class="size-full wp-image-866" title="Covering up more" src="http://richardosgood.com/wp-content/uploads/2012/04/2012-03-30_22-36-46_59.jpg" alt="Covering up more" width="480" height="640" /></a><p class="wp-caption-text">Covering up more</p></div>
<div id="attachment_845" class="wp-caption aligncenter" style="width: 510px"><a href="http://richardosgood.com/wp-content/uploads/2012/04/2012-03-30_22-44-11_38.jpg"><img class="size-large wp-image-845" title="Almost done" src="http://richardosgood.com/wp-content/uploads/2012/04/2012-03-30_22-44-11_38-1024x577.jpg" alt="Almost done" width="500" height="281" /></a><p class="wp-caption-text">Almost done</p></div>
<p>&nbsp;</p>
<div id="attachment_846" class="wp-caption aligncenter" style="width: 490px"><a href="http://richardosgood.com/wp-content/uploads/2012/04/2012-03-30_22-55-31_970.jpg"><img class="size-full wp-image-846" title="Fully layered" src="http://richardosgood.com/wp-content/uploads/2012/04/2012-03-30_22-55-31_970.jpg" alt="Fully layered" width="480" height="640" /></a><p class="wp-caption-text">Fully layered</p></div>
<p>Once I had all the layers on and it had dried enough, it was time to try and remove the mask.  This involved me wiggling my face all around in weird ways to get the mask to detach.  It seemed to stick to my forehead the most, but it came off with relative ease.</p>
<p><iframe src="http://www.youtube.com/embed/TAuGcQnBPGI" frameborder="0" width="420" height="315"></iframe></p>
<p>I let the mask dry overnight.  The next day, I used some paper towels to try and wipe off most of the petroleum jelly from the inside of the mask.  The mask was actually pretty strong with just the plaster.  After I removed the jelly I cut the mask down a bit to pretty it up and get rid of any parts I just didn&#8217;t want.</p>
<div id="attachment_849" class="wp-caption aligncenter" style="width: 510px"><a href="http://richardosgood.com/wp-content/uploads/2012/04/2012-03-31_14-23-57_731.jpg"><img class="size-large wp-image-849" title="Dried mask" src="http://richardosgood.com/wp-content/uploads/2012/04/2012-03-31_14-23-57_731-577x1024.jpg" alt="Dried mask" width="500" height="887" /></a><p class="wp-caption-text">Dried mask</p></div>
<div id="attachment_850" class="wp-caption aligncenter" style="width: 510px"><a href="http://richardosgood.com/wp-content/uploads/2012/04/2012-03-31_14-24-01_810.jpg"><img class="size-large wp-image-850" title="Dried mask from the side" src="http://richardosgood.com/wp-content/uploads/2012/04/2012-03-31_14-24-01_810-577x1024.jpg" alt="Dried mask from the side" width="500" height="887" /></a><p class="wp-caption-text">Dried mask from the side</p></div>
<p>Next I decided to try and build up some features onto the mask to make it more interesting.  I used black craft foam to build up some cheek bones and eyebrows.  I cut out some shapes from paper as a template and then cut them out of the foam.  I glued the first layer of foam to the mask using super glue.  Then I glued the rest of the layers together to build up the features.</p>
<div id="attachment_854" class="wp-caption aligncenter" style="width: 510px"><a href="http://richardosgood.com/wp-content/uploads/2012/04/2012-03-31_15-09-43_197.jpg"><img class="size-large wp-image-854" title="Craft foam cheek bones" src="http://richardosgood.com/wp-content/uploads/2012/04/2012-03-31_15-09-43_197-e1333390495585-1024x577.jpg" alt="Craft foam cheek bones" width="500" height="281" /></a><p class="wp-caption-text">Craft foam cheek bones</p></div>
<div id="attachment_855" class="wp-caption aligncenter" style="width: 510px"><a href="http://richardosgood.com/wp-content/uploads/2012/04/2012-03-31_15-09-52_317.jpg"><img class="size-large wp-image-855" title="Craft foam eyebrows" src="http://richardosgood.com/wp-content/uploads/2012/04/2012-03-31_15-09-52_317-577x1024.jpg" alt="Craft foam eyebrows" width="500" height="887" /></a><p class="wp-caption-text">Craft foam eyebrows</p></div>
<p>Once I had the features built up, I had to cover the mask up in Wonderflex.  Wonderflex is this awesome material I found online.  It&#8217;s a stiff plastic sheet that becomes soft and sticky when heated.  You can use a heat gun to make the plastic malleable, and then apply it to a surface and use your fingers to mold it to shape.  The plastic is self-adhesive so it sticks to the object you are molding too.  I decided to use this stuff to smooth out the mask and get rid of that rough plaster texture.  I figured the plastic would also smooth out the cheek bones and eyebrows.</p>
<p>I first cut a piece of Wonderflex that I thought would be big enough for the entire mask.</p>
<div id="attachment_856" class="wp-caption aligncenter" style="width: 510px"><a href="http://richardosgood.com/wp-content/uploads/2012/04/2012-03-31_15-17-01_171-e1333390671876.jpg"><img class="size-large wp-image-856" title="Mask and Wonderflex" src="http://richardosgood.com/wp-content/uploads/2012/04/2012-03-31_15-17-01_171-e1333390671876-1024x577.jpg" alt="Mask and Wonderflex" width="500" height="281" /></a><p class="wp-caption-text">Mask and Wonderflex</p></div>
<p>The Wonderflex has a smooth side and a rough side.  I wanted to put the smooth side on the outside so the mask would have a smoother texture.</p>
<div id="attachment_857" class="wp-caption aligncenter" style="width: 510px"><a href="http://richardosgood.com/wp-content/uploads/2012/04/2012-03-31_15-17-06_107.jpg"><img class="size-large wp-image-857" title="Close up of the Wonderflex" src="http://richardosgood.com/wp-content/uploads/2012/04/2012-03-31_15-17-06_107-1024x577.jpg" alt="Close up of the Wonderflex" width="500" height="281" /></a><p class="wp-caption-text">Close up of the Wonderflex</p></div>
<p>I didn&#8217;t get a lot of photos of this process because I was finishing the mask on the day of the event so I was in a rush.  You can get a basic idea of what I did with the few photos that I did take.  I ended up having to cut my one sheet of Wonderflex down into smaller pieces.  I was hoping to use just one piece to prevent any seams from showing on the mask but the mask had so many features it proved difficult.</p>
<p>It seemed like the best approach was to just get the Wonderflex to stick to the mask and get a basic shape around all of the features.  It helped to wrap the Wonderflex around the edges of the mask to help it stick down.  Once I had an entire piece of Wonderflex stuck down it was easier to reheat areas and smooth it all out with my fingers.  This stuff is so great in that you can reheat it as many times as you want.  I also found that if you heated it and pressed it enough, you could basically squish two pieces of Wonderflex into each other and almost completely remove any seams.</p>
<div id="attachment_858" class="wp-caption aligncenter" style="width: 510px"><a href="http://richardosgood.com/wp-content/uploads/2012/04/2012-03-31_15-58-00_497.jpg"><img class="size-large wp-image-858" title="Getting close to done" src="http://richardosgood.com/wp-content/uploads/2012/04/2012-03-31_15-58-00_497-e1333390950872-1024x577.jpg" alt="Getting close to done" width="500" height="281" /></a><p class="wp-caption-text">Getting close to done</p></div>
<div id="attachment_859" class="wp-caption aligncenter" style="width: 510px"><a href="http://richardosgood.com/wp-content/uploads/2012/04/2012-03-31_15-58-06_892.jpg"><img class="size-large wp-image-859" title="Trying to just cover the mask" src="http://richardosgood.com/wp-content/uploads/2012/04/2012-03-31_15-58-06_892-e1333391079959-1024x577.jpg" alt="Trying to just cover the mask" width="500" height="281" /></a><p class="wp-caption-text">Trying to just cover the mask</p></div>
<div id="attachment_880" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-10_08-14-15_646.jpg"><img class="size-large wp-image-880" title="Wonderflex wrapped around the eye holes" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-10_08-14-15_646-1024x577.jpg" alt="Wonderflex wrapped around the eye holes" width="500" height="281" /></a><p class="wp-caption-text">Wonderflex wrapped around the eye holes</p></div>
<div id="attachment_860" class="wp-caption aligncenter" style="width: 510px"><a href="http://richardosgood.com/wp-content/uploads/2012/04/2012-03-31_16-10-59_153.jpg"><img class="size-large wp-image-860" title="Just needs a bit more smoothing" src="http://richardosgood.com/wp-content/uploads/2012/04/2012-03-31_16-10-59_153-e1333391137647-1024x577.jpg" alt="Just needs a bit more smoothing" width="500" height="281" /></a><p class="wp-caption-text">Just needs a bit more smoothing</p></div>
<div id="attachment_861" class="wp-caption aligncenter" style="width: 490px"><a href="http://richardosgood.com/wp-content/uploads/2012/04/2012-03-31_16-11-17_267.jpg"><img class="size-full wp-image-861" title="Much better" src="http://richardosgood.com/wp-content/uploads/2012/04/2012-03-31_16-11-17_267.jpg" alt="Much better" width="480" height="640" /></a><p class="wp-caption-text">Much better</p></div>
<p>The next step was to paint the mask.  The cosplay website that sold the Wonderflex recommended using acrylic paint.  I bought some red and black paints from Michael&#8217;s so I would match Shannon&#8217;s outfit and got to work.  I didn&#8217;t get any photos of this process because time was starting to run really short and my hands got pretty messy with the paint.</p>
<p>After the paint was applied, I had to add feathers.  What proper Mardi Gras mask doesn&#8217;t have feathers?  I added a couple of black and red feathers for flair using super glue.  The super glue didn&#8217;t work out too well because once it fully dried, it left some white residue on the front of the mask.  I&#8217;m thinking I can probably just paint over that if I ever want to use this mask again though.</p>
<div id="attachment_862" class="wp-caption aligncenter" style="width: 510px"><a href="http://richardosgood.com/wp-content/uploads/2012/04/2012-03-31_17-44-14_87.jpg"><img class="size-large wp-image-862" title="Painted with feathers glued on" src="http://richardosgood.com/wp-content/uploads/2012/04/2012-03-31_17-44-14_87-1024x577.jpg" alt="Painted with feathers glued on" width="500" height="281" /></a><p class="wp-caption-text">Painted with feathers glued on</p></div>
<div id="attachment_876" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-10_08-13-39_413.jpg"><img class="size-large wp-image-876" title="Glue residue after it fully dried" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-10_08-13-39_413-1024x577.jpg" alt="Glue residue after it fully dried" width="500" height="281" /></a><p class="wp-caption-text">Glue residue after it fully dried</p></div>
<p>Next I super glued some felt to the inside of the mask.  The idea was that it would cover up the plaster and hopefully provide a softer surface against my skin.  This didn&#8217;t work as well as I had hoped.  The felt I put in the forehead area stuck pretty well, but the felt in the cheeks didn&#8217;t stick enough and I ended up having to remove that felt because I ran out of time before the party.</p>
<p>The final step was to add some sort of strap to hold the mask to my face.  I used my Leatherman knife to poke some holes in the sides of the mask to attach some lace.  I found some suede black lace at Michael&#8217;s that I thought would give a fancier touch to the mask.  I just poked the lace through with a small screwdriver and tied it to the holes.  Voila! Mask complete!</p>
<div id="attachment_874" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-10_08-13-18_899.jpg"><img class="size-large wp-image-874" title="Lace tied from the back" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-10_08-13-18_899-577x1024.jpg" alt="Lace tied from the back" width="500" height="887" /></a><p class="wp-caption-text">Lace tied from the back</p></div>
<div id="attachment_875" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-10_08-13-30_473.jpg"><img class="size-large wp-image-875" title="Lace view from the front" src="http://www.richardosgood.com/wp-content/uploads/2012/04/2012-04-10_08-13-30_473-1024x577.jpg" alt="Lace view from the front" width="500" height="281" /></a><p class="wp-caption-text">Lace view from the front</p></div>
<p>Once thing I wish I had noticed before I started this project was that the super glue says on the packaging not to use it for fabrics.  Apparently the glue eats through the fabric and doesn&#8217;t work as you would hope.  I learned this the hard way by using the glue to hold the felt in place.  When I got to the party I assumed the glue had completely dried since it had been about 45 minutes to an hour but I was WRONG.  I wore the mask for about 45 minutes or so and then took it off.  What I saw after that was a bit disconcerting.</p>
<div id="attachment_869" class="wp-caption aligncenter" style="width: 490px"><a href="http://richardosgood.com/wp-content/uploads/2012/04/2012-03-31_21-01-05_471.jpg"><img class="size-full wp-image-869" title="White spots" src="http://richardosgood.com/wp-content/uploads/2012/04/2012-03-31_21-01-05_471.jpg" alt="White spots" width="480" height="640" /></a><p class="wp-caption-text">White spots</p></div>
<p>Those white spots on my forehead are from the super glue.  It hadn&#8217;t dried to the felt but it dried really fast once it made contact with my skin!  Luckily, the mask didn&#8217;t actually glue itself to my face.  The glue just seeped through the felt and dried to my skin.  I ended up leaving the party early to go remove the glue from my face to ensure I didn&#8217;t break out in some kind of rash.  I had to rub acetone onto my face (probably not the best idea) in order to dissolve the glue.  I removed most of it with the acetone and now a few days later there is barely anything left of it.  My skin seems fine so far, but consider this a lesson learned the hard way.  Don&#8217;t use super glue on fabrics, especially if those fabrics are going to be pressed against your skin!</p>
<div id="attachment_881" class="wp-caption aligncenter" style="width: 650px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/04/MeAndShannon.jpg"><img class="size-full wp-image-881" title="Me and Shannon in the photo booth" src="http://www.richardosgood.com/wp-content/uploads/2012/04/MeAndShannon.jpg" alt="Me and Shannon in the photo booth" width="640" height="480" /></a><p class="wp-caption-text">Me and Shannon in the photo booth</p></div>
<p>&nbsp;</p>
<div class="al2fb_like_button"><div id="fb-root"></div><script type="text/javascript">
(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=216748751752592";
  fjs.parentNode.insertBefore(js, fjs);
}(document, "script", "facebook-jssdk"));
</script>
<fb:like href="http://www.richardosgood.com/2012/04/23/mardi-gras-mask-2012/" layout="standard" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div>]]></content:encoded>
			<wfw:commentRss>http://www.richardosgood.com/2012/04/23/mardi-gras-mask-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Splunk Meter Bug Fix #2</title>
		<link>http://www.richardosgood.com/2012/03/12/splunk-meter-bug-fix-2/</link>
		<comments>http://www.richardosgood.com/2012/03/12/splunk-meter-bug-fix-2/#comments</comments>
		<pubDate>Mon, 12 Mar 2012 23:10:37 +0000</pubDate>
		<dc:creator>Rick</dc:creator>
				<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Splunk Monitor]]></category>

		<guid isPermaLink="false">http://www.richardosgood.com/?p=828</guid>
		<description><![CDATA[** Click here to check out Part 1 of this project ** ** Click here to check out Part 2 of this project ** ** Click here to check out Part 3 of this project ** ** Click here to check out &#8230; <a href="http://www.richardosgood.com/2012/03/12/splunk-meter-bug-fix-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>** <a title="Click here" href="http://www.richardosgood.com/2012/02/25/splunk-led-meter/">Click here</a> to check out Part 1 of this project **<br />
** <a title="Click here" href="http://www.richardosgood.com/2012/02/28/more-work-completed-on-splunk-led-meter/">Click here</a> to check out Part 2 of this project **<br />
** <a title="Click here" href="http://www.richardosgood.com/2012/03/01/splunk-led-meter-complete/">Click here</a> to check out Part 3 of this project **<br />
** Click here to check out <a title="Bug Fix #1" href="http://www.richardosgood.com/2012/03/09/splunk-meter-bug-fix/ ">Bug Fix #1</a> **</p>
<p>I thought I had fixed the crashing problem I was experiencing, but when I showed up to work after the weekend the script had crashed again.  This time the error was different though:</p>
<pre>Traceback (most recent call last):
  File "splunkMeter.py", line 41, in
    result = result[1]
IndexError: list index out of range</pre>
<p>This error is different from the last one.  It occurs on a different line.  I looked through the script and realized my stupid mistake.  Of course it crashed, basically the entire rest of the script relies on the fact that a result was returned.  If no result was returned then not only would the original line fail but so would this one.  The simple fix was to just include the rest of the script under that IF block.  Here is the new version of the script:</p>
<pre>import time
import splunk.auth
import splunk.search
import sys, os, serial

#change these to fit your installation
COM_PORT = 'COM3'
DEFAULT_BAUDRATE = 9600

SPLUNK_LICENSE_LIMIT = "10240"
SPLUNK_USERNAME = ''
SPLUNK_PASSWORD = ''
SPLUNK_URL = 'https://:8089'
SPLUNK_SEARCH = 'search index=_internal metrics kb series!=_* "group=per_index_thruput" series=main | eval indexed_mb = kb / 1024 | stats sum(indexed_mb)'

# Open the serial port (Teensy)
ser = serial.Serial(COM_PORT)

# loop forever
while True:

	# Authenticate to splunk server
	key = splunk.auth.getSessionKey(SPLUNK_USERNAME, SPLUNK_PASSWORD, hostPath=SPLUNK_URL)

	# Set up the Splunk search (@d means return all results from today)
	job = splunk.search.dispatch(SPLUNK_SEARCH, earliest_time='@d', hostPath=SPLUNK_URL)

	# wait for the search to finish
	while not job.isDone:
	    time.sleep(.25)

	# Without this IF, the script crashes at night.  I think once the day
	# changes there are 0 results so the script crashes.
	if job.count &gt; 0:
		# get the first result (only result) and convert it to a string
		result = str(job.results[0])

		# Split the result into two pieces because Splunk returns the time and the number we want.
		result = result.split('=', 1)
		# We only want the actual license usage, not the time
		result = result[1]

		# Turn the string into a float, round to the nearest 0 and then convert it to an into to drop the decimal
		intResult = int(round(float(result)))

		# Close out the Splunk job
		job.cancel()

		# This section sends the data to the Teensy.
	        ser.write("m") #send "m" to tell the Teensy to expect the "mb" variable
		time.sleep(0.1)
	        ser.write(str(intResult)) #convert the splunk result to a string and send it to the Teensy
	        time.sleep(1)
	        ser.write("t") #send "t" to tell the Teensy to expect the "totalMB" variable
		time.sleep(0.1)
	        ser.write(SPLUNK_LICENSE_LIMIT) #tell the Teensy what your license limit is.
		time.sleep(0.5)        

		# For debugging purposes
		print intResult

ser.close()</pre>
<p>At least, I think that should fix it.  It&#8217;s working so far but I guess I&#8217;ll know after letting it run overnight for a few more days.  We&#8217;ll see!</p>
<div class="al2fb_like_button"><div id="fb-root"></div><script type="text/javascript">
(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=216748751752592";
  fjs.parentNode.insertBefore(js, fjs);
}(document, "script", "facebook-jssdk"));
</script>
<fb:like href="http://www.richardosgood.com/2012/03/12/splunk-meter-bug-fix-2/" layout="standard" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div>]]></content:encoded>
			<wfw:commentRss>http://www.richardosgood.com/2012/03/12/splunk-meter-bug-fix-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Splunk Meter Bug Fix</title>
		<link>http://www.richardosgood.com/2012/03/09/splunk-meter-bug-fix/</link>
		<comments>http://www.richardosgood.com/2012/03/09/splunk-meter-bug-fix/#comments</comments>
		<pubDate>Fri, 09 Mar 2012 19:02:51 +0000</pubDate>
		<dc:creator>Rick</dc:creator>
				<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Splunk Monitor]]></category>

		<guid isPermaLink="false">http://www.richardosgood.com/?p=822</guid>
		<description><![CDATA[** Click here to check out Part 1 of this project ** ** Click here to check out Part 2 of this project ** ** Click here to check out Part 3 of this project ** Ever since I got the Splunk &#8230; <a href="http://www.richardosgood.com/2012/03/09/splunk-meter-bug-fix/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>** <a title="Click here" href="http://www.richardosgood.com/2012/02/25/splunk-led-meter/">Click here</a> to check out Part 1 of this project **<br />
** <a title="Click here" href="http://www.richardosgood.com/2012/02/28/more-work-completed-on-splunk-led-meter/">Click here</a> to check out Part 2 of this project **<br />
** <a title="Click here" href="http://www.richardosgood.com/2012/03/01/splunk-led-meter-complete/">Click here</a> to check out Part 3 of this project **</p>
<p>Ever since I got the Splunk LED meter up and running, I had a problem with it.  The problem was that every morning when I came into work, the LEDs were lit up as though the license was at it&#8217;s highest point from the day before.  If I looked at the Python script output, there was always an error.  <a href="http://www.richardosgood.com/2012/03/01/splunk-led-meter-complete/comment-page-1/#comment-16831">This</a> comment from Bryan made me think that perhaps the problem was Windows power management shutting down the USB port at night.  I tried disabling the power management for USB ports but that did not help.  Although, it&#8217;s good to know about that for future projects.</p>
<p>I looked closer at the Python error I was getting:</p>
<pre>Traceback (most recent call last):
 File "splunkMeter.py", line 33, in &lt;module&gt;
 result = str(job.results[0])
 File "C:\Program Files\Splunk\Python-2.6\Lib\site-packages\splunk\search\__ini
t__.py", line 1343, in __getitem__
 raise IndexError
IndexError</pre>
<p>&#8220;IndexError&#8221;.  The problem was with the line &#8220;result = str(job.results[0])&#8221;.  Usually when you see some kind of Index error, it means that the index you tried to access doesn&#8217;t exist. I thought about why this would happen in this case.  The Splunk job automatically fills the &#8220;results&#8221; array with all of the results that are returned from the search.  If job.results[0] is invalid, that would probably mean that zero results were returned to Splunk.  But how could that happen?  I thought about it some more and realized that the result is generated from the events that the search finds.  If you actually plug the search</p>
<pre>search index=_internal metrics kb series!=_* "group=per_index_thruput" series=main | eval indexed_mb = kb / 1024 | stats sum(indexed_mb)</pre>
<p>into Splunk, you can see that one result is returned but there is one event found for every 30 seconds or so.  Since there is that 30 second gap between events, I figured that once the clock turns past midnight, my script runs the search and finds zero results for the current day because no events were logged in the first 3-5 seconds of the day.  Since no events were found, the index[0] is not created and Python crashes.  To resolve this problem, I took the portion of the splunkMeter.py code that looks like:</p>
<pre># get the first result (only result) and convert it to a string
result = str(job.results[0])</pre>
<p>and I changed it to:</p>
<pre># Without this IF, the script crashes at night.  I think once the
# day changes there are 0 results so the script crashes.
if job.count &gt; 0:
	# get the first result (only result) and convert it to a string
	result = str(job.results[0])</pre>
<p>This code makes sure that at least one event was found from the search.  If one event was found, then we know the search generated a result and we can proceed.  If zero events were found, then we know that no result was generated and we can&#8217;t do anything yet.</p>
<p>I tested this change last night and when I came into the office this morning my meter was still running with no crashes.  I&#8217;m guessing that fixed the problem, but I will know for sure if I leave my workstation on all weekend and it is still running on Monday.</p>
<div class="al2fb_like_button"><div id="fb-root"></div><script type="text/javascript">
(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=216748751752592";
  fjs.parentNode.insertBefore(js, fjs);
}(document, "script", "facebook-jssdk"));
</script>
<fb:like href="http://www.richardosgood.com/2012/03/09/splunk-meter-bug-fix/" layout="standard" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div>]]></content:encoded>
			<wfw:commentRss>http://www.richardosgood.com/2012/03/09/splunk-meter-bug-fix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Splunk LED Meter Complete!</title>
		<link>http://www.richardosgood.com/2012/03/01/splunk-led-meter-complete/</link>
		<comments>http://www.richardosgood.com/2012/03/01/splunk-led-meter-complete/#comments</comments>
		<pubDate>Thu, 01 Mar 2012 17:35:21 +0000</pubDate>
		<dc:creator>Rick</dc:creator>
				<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Splunk Monitor]]></category>

		<guid isPermaLink="false">http://www.richardosgood.com/?p=773</guid>
		<description><![CDATA[** Click here to check out Part 1 of this project ** ** Click here to check out Part 2 of this project ** I was able to finish the Splunk LED meter on Monday.  There were two things I &#8230; <a href="http://www.richardosgood.com/2012/03/01/splunk-led-meter-complete/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>** <a title="Click here" href="http://www.richardosgood.com/2012/02/25/splunk-led-meter/">Click here</a> to check out Part 1 of this project **<br />
** <a title="Click here" href="http://www.richardosgood.com/2012/02/28/more-work-completed-on-splunk-led-meter/">Click here</a> to check out Part 2 of this project **</p>
<p>I was able to finish the Splunk LED meter on Monday.  There were two things I had left to do.  The first thing was to add some kind of diffusing screen to the project housing.  The second (the harder part) was to figure out how to get the license usage data from Splunk and send that to the Teensy via serial.  Let&#8217;s start with the easy part.</p>
<p>First I had to figure out a way to hold to top of the LED strip against the back of the housing.  I ended up cutting a slit at the top of the housing and just sticking a thin piece of card into the slit.  The slit is tight enough to hold the card in place and the card keeps the strip pressed against the back of the housing.</p>
<div id="attachment_803" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-27_13-03-24_119.jpg"><img class="size-large wp-image-803" title="Card holding the strip in place" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-27_13-03-24_119-1024x577.jpg" alt="Card holding the strip in place" width="500" height="281" /></a><p class="wp-caption-text">Card holding the strip in place</p></div>
<div id="attachment_804" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-27_13-03-39_58.jpg"><img class="size-large wp-image-804" title="Side view of the card" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-27_13-03-39_58-1024x577.jpg" alt="Side view of the card" width="500" height="281" /></a><p class="wp-caption-text">Side view of the card</p></div>
<p>Next I decided to keep the Teensy inside of the housing rather than hanging outside of it like I did previously.  The reason is that I am afraid the stress on the Teensy will eventually cause the solder joints to break.</p>
<div id="attachment_810" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-27_13-25-58_277.jpg"><img class="size-large wp-image-810" title="Teensy inside the housing" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-27_13-25-58_277-1024x577.jpg" alt="Teensy inside the housing" width="500" height="281" /></a><p class="wp-caption-text">Teensy inside the housing</p></div>
<p>I decided to use wax paper as a diffusing screen since I had it at home already.  I cut a length of paper long enough for the plastic housing.  I simply wrapped it around the outside of the housing and taped it in the back.</p>
<div id="attachment_813" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-27_13-30-00_262.jpg"><img class="size-large wp-image-813" title="Wax paper taped" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-27_13-30-00_262-1024x577.jpg" alt="Wax paper taped" width="500" height="281" /></a><p class="wp-caption-text">Wax paper taped</p></div>
<p>Then I cut it to size so it wouldn&#8217;t stick off the top or bottom too much.  I originally had a different method for this that only diffused the front of the casing and not the sides.  I decided it would be nice to have the sides diffused as well so I could see the meter status from other areas on the room rather than just right in front of the meter.</p>
<p>The next step to complete the housing was to figure out how to mount it to my monitor.  I had to work with what I had at my desk so I ended up with a really MacGyver&#8217;d solution.  I used a part of a plastic fork to attach the top of the meter to the top of my monitor with the help of some Scotch tape.  I then used more tape at the bottom of the meter to keep it flat against the side of the monitor.  It works&#8230; but it&#8217;s not ideal.  It looks slapped together up close, mostly because of the broken plastic fork, but it gets the job done.</p>
<div id="attachment_780" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-27_14-26-39_411.jpg"><img class="size-large wp-image-780" title="Monitor mount" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-27_14-26-39_411-1024x577.jpg" alt="Monitor mount" width="500" height="281" /></a><p class="wp-caption-text">Monitor mount</p></div>
<p>Now the tricky part was writing the code.  I originally tried using Curl to authenticate to the Splunk web interface but I had problems with this.  I think the main problem is that Splunk provides you with a cookie and session ID and I just couldn&#8217;t figure out how to get Curl to set and use the cookie properly.  I tried a bunch of different things but nothing seemed to work.</p>
<p>Next I decided to try authentication to the web server via Python.  Same problem.  I tried a few different methods but nothing would authenticate to the web site properly.  Did I mention I&#8217;m not really a coder and have barely used Python?</p>
<p>Finally, after some searching around on the web, I discovered that Splunk actually provides you with Python libraries to perform Splunk searches from within Python scripts.    <a title="Here's" href="http://blogs.splunk.com/2008/03/26/the-splunk-python-client-library-part-1/">Here&#8217;s</a> a great resource for information on this.  This actually makes a lot of sense considering much of Splunk is written in Python.  With this information I was sure I could get the script working using Python.</p>
<p>The main problem was I did not have Python installed on my Windows workstation.  I had it installed in a co-linux installation on my workstation but it turns out co-linux doesn&#8217;t work with USB to Serial devices.  I thought about installing Python on my workstation but I couldn&#8217;t see where to actually download the Splunk python libraries.  The only way I knew to get them was to install the full version of Splunk.  The Universal Forwarder doesn&#8217;t come with them.  Since the full version of Splunk comes with it&#8217;s own version of Python I figured I might as well do that.  So I installed the full version of Splunk on my workstation and promptly disabled all of it&#8217;s services from running or starting automatically.</p>
<p>Now I had Python installed with the Splunk libraries.  I wrote a script to just pull the information I needed from Splunk and print it to the screen so I could make sure the libraries worked.</p>
<pre># splunkSearchTest.py by Rick Osgood
#
# This script will attempt to search Splunk for the current
# Splunk license usage amount.  It will get the result and
# print it to STDOUT.
#
# For more information, visit http://www.richardosgood.com
#

import time
import splunk.auth
import splunk.search

# Set Variables
username = 'SPLUNK USERNAME HERE'
password = 'SPLUNK PASSWORD HERE'
searchTerms = 'search index=_internal metrics kb series!=_* "group=per_index_thruput" series=main | eval indexed_mb = kb / 1024 | stats sum(indexed_mb)'
url = 'https://SPLUNK_URL_HERE:8089'

# Authenticate to Splunk
key = splunk.auth.getSessionKey(username, password, hostPath=url)

# Run the search
job = splunk.search.dispatch(searchTerms, earliest_time='@d', hostPath=url)

# Wait for the search to complete
while not job.isDone:
    time.sleep(.25)

# Get the first (only) result
result = job.results[0]

# Convert to a string
endResult = str(result)

# Split the result into it's two parts
endResult = endResult.split('=', 1)
# Only take the second part (it contains the actual number I want)
endResult = endResult[1]

# Round the decimal value and drop the decimal completely
intResult = int(round(float(endResult)))

# Print the result
print intResult

# Kill the Splunk job
job.cancel()</pre>
<p>The comments in the script are pretty self explanatory.  The Splunk libraries made it so easy to get what I needed.  Once I had that working, I wrote another test script to get serial communication working between a Python script on my workstation and the Teensy hooked up via USB.</p>
<pre># splunkSerialTest.py by Rick Osgood
#
# This script will send test data to the Teensy Arduino for
# the Splunk meter. It will loop forever until the script
# either dies on its own or you end it with Ctrl+C.
#
# For more information, visit http://www.richardosgood.com
#

import time
import sys, os, serial

# Change these to fit your installation
COM_PORT = 'COM3'
DEFAULT_BAUDRATE = 9600

# This is needed so the Teensy knows the percentages
SPLUNK_LICENSE_LIMIT = 10240
mb = 0

# Open the serial port (Teensy)
ser = serial.Serial(COM_PORT)

# loop forever
while True:

	# This section sends the data to the Teensy.
        ser.write("m") #send "m" to tell the Teensy to expect the "mb" variable
	time.sleep(0.1)
        ser.write(str(mb)) #convert the splunk result to a string and send it to the Teensy
        time.sleep(0.5)
        ser.write("t") #send "t" to tell the Teensy to expect the "totalMB" variable
	time.sleep(0.1)
        ser.write(SPLUNK_LICENSE_LIMIT) #tell the Teensy what your license limit is.
	time.sleep(0.5)        

	print mb
        # Increment forever so we can test the LED meter
	mb = mb + 103

# close serial port
ser.close()</pre>
<p>That script should slowly fill up the LED meter.  This is useful for testing the serial communication and also for testing the Teensy code to make sure it lights up as expected.  If you try to run this script with the default Splunk Python installation it will fail.  That is because the version of Python that comes with Splunk does not have the pySerial library installed.  I was unable to get it installed using the usual methods, but I tried just copying the libraries over into the Splunk Python library directory and that seemed to do the trick. Also, you have to run the scripts using the Splunk executable because Python is only installed with Splunk, not as a standalone installation. Here is a quick run down of how to get these scripts up and running on a windows system:</p>
<ol>
<li>Install the full version of Splunk on the workstation.</li>
<li>Download and extract <a title="pySerial" href="http://pyserial.sourceforge.net/">pySerial</a></li>
<li>Copy the pySerial-2.6\directory folder to &#8220;C:\Program Files\Splunk\Python-2.6\Lib\<wbr>serial&#8221;</wbr></li>
<li>Put the Python scripts you want to run in the &#8220;Splunk\bin\&#8221; directory</li>
<li>Execute the scripts with &#8220;splunk cmd python SPLUNK_SCRIPT.py&#8221; from the &#8220;Splunk\bin\&#8221; directory</li>
</ol>
<p>Once I had that script up and running, I was able to verify that Serial communication to the Teensy was working properly and also the Teensy code was working properly because the LEDs were lighting up as expected.  The final step was to combine those two scripts into one.</p>
<pre># splunkMeter.py by Rick Osgood
#
# This script will grab the current Splunk license usage and
# send it to a Teensy Arduino. It will loop forever until the
# script either dies on its own or you end it with Ctrl+C.
#
# For more information, visit http://www.richardosgood.com
#

import time
import splunk.auth
import splunk.search
import sys, os, serial

#change these to fit your installation
COM_PORT = 'COM3'
DEFAULT_BAUDRATE = 9600

SPLUNK_LICENSE_LIMIT = "10240"
SPLUNK_USERNAME = 'USERNAME'
SPLUNK_PASSWORD = 'PASSWORD'
SPLUNK_URL = 'https://SPLUNKURL:8089'
SPLUNK_SEARCH = 'search index=_internal metrics kb series!=_* "group=per_index_thruput" series=main | eval indexed_mb = kb / 1024 | stats sum(indexed_mb)'

# Open the serial port (Teensy)
ser = serial.Serial(COM_PORT)

# loop forever
while True:

	# Authenticate to splunk server
	key = splunk.auth.getSessionKey(SPLUNK_USERNAME, SPLUNK_PASSWORD, hostPath=SPLUNK_URL)

	# Set up the Splunk search (@d means return all results from today)
	job = splunk.search.dispatch(SPLUNK_SEARCH, earliest_time='@d', hostPath=SPLUNK_URL)

	# wait for the search to finish
	while not job.isDone:
	    time.sleep(.25)

	# get the first result (only result) and convert it to a string
	result = str(job.results[0])

	# Split the result into two pieces because Splunk returns the time and the number we want.
	result = result.split('=', 1)
	# We only want the actual license usage, not the time
	result = result[1]

	# Turn the string into a float, round to the nearest 0 and then convert it to an int to drop the decimal
	intResult = int(round(float(result)))

	# Close out the Splunk job
	job.cancel()

	# This section sends the data to the Teensy.
        ser.write("m") #send "m" to tell the Teensy to expect the "mb" variable
	time.sleep(0.1)
        ser.write(str(intResult)) #convert the splunk result to a string and send it to the Teensy
        time.sleep(1)
        ser.write("t") #send "t" to tell the Teensy to expect the "totalMB" variable
	time.sleep(0.1)
        ser.write(SPLUNK_LICENSE_LIMIT) #tell the Teensy what your license limit is.
	time.sleep(0.5)        

	# For debugging purposes
	print intResult

ser.close()</pre>
<p>That did the trick!  If I hook up the Teensy to my workstation and run that script, it seems to work perfectly.  It will grab the Splunk license usage every few seconds and send it to the Splunk Meter.  It might be a good idea to put a long delay in the Python script so it doesn&#8217;t work the Splunk server so hard.  Our license usage increases so slowly that I could probably have it check the Splunk server every 5 or 10 minutes instead of every few seconds and it would work just as well.  I&#8217;ve noticed that when I lock my workstation overnight and come back in the morning, the Python script crashes.  I&#8217;m not sure what&#8217;s causing that yet.  It might be that the Serial port closes after a while or something.  It&#8217;s not a big deal yet because I can just restart the script in the morning when I come into the office.</p>
<p>So what does it look like?  It was difficult to capture what it truly looks like with my cell phone camera.  The lights are bright enough that they seem to saturate the camera so it is difficult to determine their colors.  With the overhead lights off you can make out the individual LEDs on camera.</p>
<div id="attachment_783" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-27_14-49-55_649.jpg"><img class="size-large wp-image-783" title="With the lights off" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-27_14-49-55_649-577x1024.jpg" alt="With the lights off" width="500" height="887" /></a><p class="wp-caption-text">With the lights off</p></div>
<p>The above photo does not accurately represent our license usage at that time.  I was running the test script so I could get more LEDs to light up.  The photo below does accurately represent our license usage, which you can see highlighted on my monitor.</p>
<div id="attachment_788" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-27_15-06-30_565.jpg"><img class="size-large wp-image-788" title="Another photo" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-27_15-06-30_565-577x1024.jpg" alt="Another photo" width="500" height="887" /></a><p class="wp-caption-text">Another photo</p></div>
<p>I also took a video of my test script running so you can see the LED bar fill up and then run the animation.  Again, it&#8217;s difficult to really determine the colors on camera but it looks great in person.</p>
<p><iframe src="http://www.youtube.com/embed/95vlc4yAfFE" frameborder="0" width="560" height="315"></iframe></p>
<p>If I were to improve this project in any way, it would probably be to make a prettier case for it.  Right now it looks kind of slapped together, which is a shame because it really is a useful project.  Also, the way it is mounted to my monitor could use some improvements.  Other than that, I love it!</p>
<div class="al2fb_like_button"><div id="fb-root"></div><script type="text/javascript">
(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=216748751752592";
  fjs.parentNode.insertBefore(js, fjs);
}(document, "script", "facebook-jssdk"));
</script>
<fb:like href="http://www.richardosgood.com/2012/03/01/splunk-led-meter-complete/" layout="standard" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div>]]></content:encoded>
			<wfw:commentRss>http://www.richardosgood.com/2012/03/01/splunk-led-meter-complete/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>More work completed on Splunk LED meter</title>
		<link>http://www.richardosgood.com/2012/02/28/more-work-completed-on-splunk-led-meter/</link>
		<comments>http://www.richardosgood.com/2012/02/28/more-work-completed-on-splunk-led-meter/#comments</comments>
		<pubDate>Tue, 28 Feb 2012 17:11:57 +0000</pubDate>
		<dc:creator>Rick</dc:creator>
				<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Splunk Monitor]]></category>

		<guid isPermaLink="false">http://www.richardosgood.com/?p=731</guid>
		<description><![CDATA[I got a good amount of work done on the Splunk LED meter on Sunday.  I updated the code quite a bit so not only does it work better, but it provides more helpful information on the LED strip.  I &#8230; <a href="http://www.richardosgood.com/2012/02/28/more-work-completed-on-splunk-led-meter/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I got a good amount of work done on the Splunk LED meter on Sunday.  I updated the code quite a bit so not only does it work better, but it provides more helpful information on the LED strip.  I also started making a housing for the LED meter to make it more rigid and tough.</p>
<p>Let&#8217;s start out with the housing.  I went to Walmart to look around for something that might work.  I was thinking some kind of clear plastic tube would work well.  I could just slide the LED strip down the tube, fasten it in there somehow and then cut the tube to the proper length.  After some searching around, I noticed this.</p>
<div id="attachment_738" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-26_12-50-13_590.jpg"><img class="size-large wp-image-738" title="Welding Electrodes" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-26_12-50-13_590-e1330309162237-577x1024.jpg" alt="Welding Electrodes" width="500" height="887" /></a><p class="wp-caption-text">Welding Electrodes</p></div>
<div id="attachment_740" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-26_12-50-23_371.jpg"><img class="size-large wp-image-740" title="Welding Electrodes Close Up" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-26_12-50-23_371-e1330309330131-1024x577.jpg" alt="Welding Electrodes Close Up" width="500" height="281" /></a><p class="wp-caption-text">Welding Electrodes Close Up</p></div>
<p>I found that box of welding electrodes on the shelf in the hardware isle at Walmart and I figured that plastic case would work perfectly.  The case is clear, strong, but easy to cut if needed.  Also, it can expand and contract in length so it can be easily adjusted to fit the LED strip length.  This whole package of electrodes was less than $5.00 so I figured I might as well give it a shot.  And now we have some welding electrodes at Eugene Maker Space in case we ever find a use for them.</p>
<p>Next I dumped out the electrodes and realized I was going to have to get rid of the sticky label from the plastic housing.  This was pretty tedious.  The best way to remove these labels is to start peeling at a corner and then SLOWLY peel the entire thing away, being careful not to rip it as you go.  After a few minutes of tedious peeling, I had my plastic case.</p>
<div id="attachment_743" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-26_12-59-17_785.jpg"><img class="size-large wp-image-743" title="Plastic Case" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-26_12-59-17_785-1024x577.jpg" alt="Plastic Case" width="500" height="281" /></a><p class="wp-caption-text">Plastic case with LED strip for comparison</p></div>
<p>Next I had to shorten the LED strip.  The strip had 12 LEDs but for this project I wanted 10 LEDs.  One LED would represent one GB of license usage.  These strips are really neat in that you can cut them at a specified place after every two LEDs.  This way you can make strings of LEDs that are as short as you want, as long as each string is a multiple of 2.  To cut the strip, I first located the dividing line.</p>
<div id="attachment_732" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-26_12-48-30_280.jpg"><img class="size-large wp-image-732" title="Dividing line in white" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-26_12-48-30_280-1024x577.jpg" alt="Dividing line in white" width="500" height="281" /></a><p class="wp-caption-text">Dividing line in white</p></div>
<p>You can see the white dividing line above.  Next I had to cut through the flexible plastic housing and the flexible PCB.  It&#8217;s pretty easy to cut through this stuff as long as you have a sharp knife.  The knife in my Leatherman was plenty sharp enough for the job.</p>
<div id="attachment_734" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-26_12-48-47_551.jpg"><img class="size-large wp-image-734" title="Cutting through the plastic" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-26_12-48-47_551-1024x577.jpg" alt="Cutting through the plastic" width="500" height="281" /></a><p class="wp-caption-text">Cutting through the plastic</p></div>
<div id="attachment_735" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-26_12-49-19_199.jpg"><img class="size-large wp-image-735" title="Cutting through the back side" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-26_12-49-19_199-577x1024.jpg" alt="Cutting through the back side" width="500" height="887" /></a><p class="wp-caption-text">Cutting through the back side</p></div>
<div id="attachment_736" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-26_12-49-41_928.jpg"><img class="size-large wp-image-736" title="Success!" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-26_12-49-41_928-1024x577.jpg" alt="Success!" width="500" height="281" /></a><p class="wp-caption-text">Success!</p></div>
<p>Next I drilled a hole in the bottom of the plastic casing so I would be able to plug the USB cable into the LED strip while it was inside the casing.</p>
<div id="attachment_752" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-26_13-24-54_835.jpg"><img class="size-large wp-image-752" title="Hole drilled" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-26_13-24-54_835-1024x577.jpg" alt="Hole drilled" width="500" height="281" /></a><p class="wp-caption-text">Hole drilled</p></div>
<p>I realized later that it would be best to have the Teensy hanging out of the casing so that I could press the reset button in order to update the firmware as I was writing the code.  It would have been a huge pain to take the strip in and out every time I had to program it.  I used my knife to cut a slit in the bottom of the casing big enough for the Teensy to slide through so it will hang out of the bottom.</p>
<div id="attachment_760" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-26_22-07-24_142.jpg"><img class="size-large wp-image-760" title="Teensy hanging out" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-26_22-07-24_142-1024x577.jpg" alt="Teensy hanging out" width="500" height="281" /></a><p class="wp-caption-text">Teensy hanging out</p></div>
<div id="attachment_763" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-26_22-07-49_353.jpg"><img class="size-large wp-image-763" title="LED strip in housing" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-26_22-07-49_353-577x1024.jpg" alt="LED strip in housing" width="500" height="887" /></a><p class="wp-caption-text">LED strip in housing</p></div>
<p>I still have some more work to do on the housing for this project, but the basics are done.  I want to add some kind of diffusing screen on the front of the housing to diffuse the LED light so it is not so bright and blinding.  I think it will also add to the looks of the completed project.  I also need to find a way to mount the strip to the back of the housing so it stays straight and flat rather than wavy.</p>
<p>I spent most of my time on Sunday on the firmware side of this project.  I ended up with three different versions of the Teensy firmware that each act a bit differently.  For the first version, at each GB mark a new LED will light up green.  Once the license limit has been reached, the bar starts over and starts lighting up the LEDs red.</p>
<p>That worked, but I thought I could do better.  I also thought that it wasn&#8217;t really necessary to keep track of the license limit any more once the limit was reached.  The way Splunk licensing works, once you go over the limit that&#8217;s it.  It doesn&#8217;t matter how far over it you go.  So having the LEDs light up one after the other once the license is reached is kind of pointless.  Kevin gave me the idea to have the strip do animations once the limit has been reached.  I liked this idea because an animation would really grab your attention.  So the second version of the firmware lights up one LED per GB in a green color and then once the limit is reached it will display an animation in red.</p>
<p>I still thought I could do better, so I worked on a third version of the firmware.  This version still does an animation once the limit has been reached.  The difference is that the LEDs don&#8217;t just light up green.  Each &#8220;level&#8221; will light up green until that level has reached 50% capacity.  Then it will turn yellow to let you know you are half way to the next level.  Once it reaches 90%, it will turn red.  When it reaches 100%, the LED stays red and the next LED lights up green.  So at the end, all of the LEDs will be red until you go over the license limit and the animation starts.  This is the version of the code I liked the best, so that&#8217;s the one I used.  Here is the code.</p>
<pre>/*
SplunkMeter REV_C
By: Rick Osgood

This sketch waits to receive 'm' via serial.  Once it receives 'm' it waits for the license usage
value.  It also waits to receive 't' via serial.  Once it receives 't' it waits for the total
license value.  For example, 'm' might be 1024 and 't' might be 10240.  It then uses those values
to figure out which LEDs to light up and which colors.
*/

// HL1606strip is an adaptation of LEDstrip from  http://code.google.com/p/ledstrip/
#include "HL1606strip.h"

// use -any- 3 pins!
#define STRIP_D 2
#define STRIP_C 1
#define STRIP_L 6

#define NUMLEDS 10

// Pin S is not really used in this sketch since it doesnt use the built in PWM fade
// The last argument is the number of LEDs in the strip. Each chip has 2 LEDs, and the number
// of chips/LEDs per meter varies so make sure to count them! if you have the wrong number
// the strip will act a little strangely, with the end pixels not showing up the way you like
HL1606strip strip = HL1606strip(STRIP_D, STRIP_L, STRIP_C, 12);

int mb = 0;
int totalMB = 0;
int minMB = 0;  // This will be 1/NUMLEDS of the totalMB

void setup(void) {
  Serial.begin(9600);
  stripOn(GREEN);
  delay(1000);
  stripOff();
  delay(1000);
  stripOn(RED);
  delay(1000);
  stripOff();

  mb = -1; // -1 so we know when we haven't updated it
  totalMB = -1; // -1 so we know when we haven't updated it
}

void loop(void) { 

  int temp = waitForMB();
  if (temp == 1) {
    mb = getMB();
  } else if (temp == 2) {
    totalMB = getTotalMB();
  }

  // if both values were updated
  if (mb != -1 &amp;&amp; totalMB != -1) {
    minMB = totalMB / NUMLEDS;
    mb = scaleDown(mb, totalMB);
    Serial.print("MB scaled down: ");
    Serial.println(mb);
    lightStrip(mb);

    mb = -1; // -1 so we know when we haven't updated it
    totalMB = -1; // -1 so we know when we haven't updated it
  }

}

/**********************************************/

int waitForMB() {
  if (Serial.available() &gt; 0) {
    char temp;

    // read the incoming data:
    temp = Serial.read();

    if (temp == 'm') {
      return 1;
    } else if (temp == 't') {
      return 2;
    }
  }
  return 0;
}

int getMB () {
  Serial.println("Send mb:");
  int temp = getNumber();
  return temp;
}

int getTotalMB() {
  Serial.println("Send totalMB:");
  int temp = getNumber();
  return temp;
}

int getNumber() {
  int number=0;
  int temp=0;

  if (Serial.available() &gt; 0) {

    char buffer[6]={0,0,0,0,0,0}; // Will store each digit of the number

    // read the incoming data:
    for (int i = 0; i &lt; 6; i++) {
      buffer[i] = Serial.read();
    }  

    number = atoi(buffer); // Convert received number string to an int

    // for debugging only:
    Serial.print("I received: ");
    Serial.println(number, DEC);

    return number;
  } else {
    return -1;
  }
}

int scaleDown(int num, int totalNum) {
  // Scale the value and return the result in how many LEDs should be lit up
  //int temp = map(num, 1, totalNum+1, 1, (NUMLEDS * 10)+ 1);
  //int temp = map(num, 1, 100, 1, 100);

  long temp = long(num) * (NUMLEDS * 10) / long(totalNum);

  temp = constrain(temp, 1, NUMLEDS * 10);

//  if (num &lt; minMB) { // For some reason even if num &lt; minMB it still returns 1 unless num = 0
//    return 0;
//  }
  return temp;
}

void lightStrip(int num) {
  int temp = 0;

  // First turn everything off
  stripOff();

  // If it's &lt; NUMLEDS then we light up green
  if (num/10 &lt; NUMLEDS) { // Divide by 10 because we multiplied in scaleDown()
    for (int i = 0; i &lt; num/10; i++) {
      strip.setLEDcolor(i, RED);
    }

    // Set the color of the last LED
    temp = num - (10 * (num / 10)); // Trying to get the ones digit. I.E. 25 would result in 5.
    if (temp &lt; 5) {
      strip.setLEDcolor(num/10, GREEN);
    } else if (temp &lt; 9) {
      strip.setLEDcolor(num/10, YELLOW);
    } else {
      strip.setLEDcolor(num/10, RED);
    }

    strip.writeStrip(); // Now turn on the LEDs that need to be on
  } else {  // If we are NUMLEDS or over then we have reached the license limit and need to alert
    overLicenseAlert();
  }
}  

void overLicenseAlert(){
  for (int j = 0; j &lt; 3; j++) {
    for (int i = 0; i &lt; 5; i++) {
      stripOff();
      strip.setLEDcolor(4 - i, RED);
      strip.setLEDcolor(5 + i, RED);
      strip.writeStrip();
      delay(100);
    }
    stripOff();
  }
  stripOff();
}

// turn everything off (fill with BLACK)
void stripOff(void) {
  // turn all LEDs off!
  for (uint8_t i=0; i &lt; strip.numLEDs(); i++) {
      strip.setLEDcolor(i, BLACK);
  }
  strip.writeStrip();
}

// turn everything on (fill with GREEN for testing)
void stripOn(int color) {
  // turn all LEDs on
  for (uint8_t i=0; i &lt; strip.numLEDs(); i++) {
      strip.setLEDcolor(i, color);
  }
  strip.writeStrip();
}</pre>
<p>That was about it for the work I did on Sunday.  I was able to test out the code on the Teensy by opening a serial terminal connection to the Teensy and entering the data manually.  You just enter &#8220;m&#8221; to let it know you are going to enter the &#8220;mb&#8221; variable, then enter the number for mb.  Then you enter &#8220;t&#8221; to let the Teensy know you are going to enter the data for the &#8220;totalMB&#8221; variable, and then again submit the actual number.  Once the Teensy has registered both numbers it will light up appropriately and stay lit that way until it receives new data.</p>
<p>Next I have to add a diffusing screen to the housing and write the software that will run on the computer.  The software will be tricky because I&#8217;m not much of a programmer.  I need to find a way to get the license data from Splunk and then send that over serial to the Teensy.  I think I might try to use Python since I have used it for serial communication in the past and it was pretty simple.  More updates soon!</p>
<div class="al2fb_like_button"><div id="fb-root"></div><script type="text/javascript">
(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=216748751752592";
  fjs.parentNode.insertBefore(js, fjs);
}(document, "script", "facebook-jssdk"));
</script>
<fb:like href="http://www.richardosgood.com/2012/02/28/more-work-completed-on-splunk-led-meter/" layout="standard" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div>]]></content:encoded>
			<wfw:commentRss>http://www.richardosgood.com/2012/02/28/more-work-completed-on-splunk-led-meter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Splunk LED Meter</title>
		<link>http://www.richardosgood.com/2012/02/25/splunk-led-meter/</link>
		<comments>http://www.richardosgood.com/2012/02/25/splunk-led-meter/#comments</comments>
		<pubDate>Sun, 26 Feb 2012 00:22:17 +0000</pubDate>
		<dc:creator>Rick</dc:creator>
				<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Splunk Monitor]]></category>

		<guid isPermaLink="false">http://www.richardosgood.com/?p=716</guid>
		<description><![CDATA[A few weeks back I had an idea to build an LED meter to display our Splunk license usage at work.  Splunk is an application we use to collect and monitor logs all across our systems.  I currently have a &#8230; <a href="http://www.richardosgood.com/2012/02/25/splunk-led-meter/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_717" class="wp-caption aligncenter" style="width: 510px"><a href="http://richardosgood.com/wp-content/uploads/2012/02/2012-02-24_19-17-18_492.jpg"><img class="size-large wp-image-717" title="RGB LED Strip and Teensy Arduino" src="http://richardosgood.com/wp-content/uploads/2012/02/2012-02-24_19-17-18_492-1024x577.jpg" alt="RGB LED Strip and Teensy Arduino" width="500" height="281" /></a><p class="wp-caption-text">RGB LED Strip and Teensy Arduino</p></div>
<p>A few weeks back I <a title="had an idea" href="https://twitter.com/#!/rickoooooo/status/166340665398140928">had an idea</a> to build an LED meter to display our Splunk license usage at work.  Splunk is an application we use to collect and monitor logs all across our systems.  I currently have a web dashboard that will tell me what our license usage is.  A normal day follows a relatively standard license usage pattern.  It generally rises at a certain rate and hits a certain log volume by the end of the day.  If the log volume is higher or lower than usual, it is a basic signal that something may be wrong on the network.  The problem with the web dashboard is that I have to remember to open that tab and refresh it every so often in order to keep tabs on it.  I figured if I could just have an LED bar on the side of my monitor keeping tabs on the license usage for me, my brain would naturally get used to daily patterns and be able to notice subconsciously when something is wrong.  Last night was our open house night at <a title="Eugene Maker Space" href="http://www.eugenemakerspace.com">Eugene Maker Space</a> and I finally had some time to start working on this project.</p>
<p>The first thing I had to do was figure out how I was going to build this thing.  I knew that Adafruit sold some nice RGB LED strips so I figured those would be perfect for the LED bar.  They are already in a strip and they are super easy to interface with a microcontroller.  For my microcontroller I decided to use an Arduino since they are cheap, simple to use and I am the most familiar with it.  However, rather than use a normal Arduino I decided to use one of my <a title="Teensy Arduinos" href="http://www.pjrc.com/teensy/">Teensy Arduinos</a> that I bought a few months back.  The Teensy acts just like a normal Arduino for the most part.  It is just way smaller and has a build in USB interface in it&#8217;s tiny package.  It can also support USB serial communication as well as emulate a keyboard or mouse!  For this project, I figure I will end up just using the USB connection for serial communication and perhaps power.</p>
<p>Those are really the only two parts I need for this project.  The LED strip should be able to interface directly to the Teensy with no supporting circuitry.  My friend @willbradley in Arizona was kind enough to send me an RGB LED strip that is just about the right length for this project.  The strip he sent me is the old model of <a title="this strip" href="http://www.adafruit.com/products/306">this strip</a> sold by Adafruit.  The Adafruit tutorial for using the old version of the strip is located <a title="here" href="http://www.ladyada.net/wiki/tutorials/products/digitalrgbledstrip/index-hl1606.html">here</a>.  I had used the newer version of the strip before and it was dead simple.  The older version has an extra pin I had to interface with called the &#8220;latch&#8221; pin in order to get it working.</p>
<p>I had a heck of a time getting this to work.  There were multiple problems.  The main problem I had was getting the &#8221;advanced&#8221; <a title="PWN Adafruit libraries" href="https://github.com/adafruit/HL1606-LED-Strip-PWM">PWM Adafruit libraries</a> to work with this strip on the Teensy.  I&#8217;m not sure why but I just could not get it to work right.  Originally I had the wires soldered to the wrong pins on the Teensy but I finally figured out which pins were needed and I still couldn&#8217;t get it to work right.  I had to use the build in hardware SPI pins and even though I was, it just didn&#8217;t seem to ever work properly.  Sometimes the strip would light up but never in a pattern that made sense for the example code.</p>
<p>Here are some shots of the solder connections on the Teensy.  You can see that the Data and Clock pins of the RGB strip are soldered to the Teensy&#8217;s pins 1 and 2 which should be correct.</p>
<div id="attachment_718" class="wp-caption aligncenter" style="width: 510px"><a href="http://richardosgood.com/wp-content/uploads/2012/02/2012-02-24_21-45-23_30.jpg"><img class="size-large wp-image-718" title="Teensy from the front" src="http://richardosgood.com/wp-content/uploads/2012/02/2012-02-24_21-45-23_30-1024x577.jpg" alt="Teensy from the front" width="500" height="281" /></a><p class="wp-caption-text">Teensy from the front</p></div>
<div id="attachment_719" class="wp-caption aligncenter" style="width: 510px"><a href="http://richardosgood.com/wp-content/uploads/2012/02/2012-02-24_21-45-30_387.jpg"><img class="size-large wp-image-719" title="Teensy from the back" src="http://richardosgood.com/wp-content/uploads/2012/02/2012-02-24_21-45-30_387-1024x577.jpg" alt="Teensy from the back" width="500" height="281" /></a><p class="wp-caption-text">Teensy from the back</p></div>
<div id="attachment_720" class="wp-caption aligncenter" style="width: 510px"><a href="http://richardosgood.com/wp-content/uploads/2012/02/2012-02-24_21-45-52_769.jpg"><img class="size-large wp-image-720" title="RGB LED strip connections" src="http://richardosgood.com/wp-content/uploads/2012/02/2012-02-24_21-45-52_769-1024x577.jpg" alt="RGB LED strip connections" width="500" height="281" /></a><p class="wp-caption-text">RGB LED strip connections</p></div>
<p>After a couple hours of debugging and swapping pins and soldering and desoldering I finally noticed that there was a more basic library I could try.  I must have skimmed right past that part in the tutorial.  The downside to the basic library is that it doesn&#8217;t support PWM control, meaning that you only get about 7 colors to choose from instead of millions.  Also, it doesn&#8217;t directly support dimming the lights which could be an issue if the USB port doesn&#8217;t provide enough current to light up all of the LEDs in full brightness at once.  I figured that I would go ahead and try it any way since for this project I really only need Green, Red, Yellow and maybe one other color.  All of those colors can be created without PWM.  The basic library does not use hardware SPI because it doesn&#8217;t need that high speed.  Therefore, you can choose any output pins in software to use to control the LED strip.  This makes things much easier because I don&#8217;t have to desolder and move the wires around if I attach them to the wrong place.</p>
<p>I downloaded and installed the Adafruit Basic library for the LED strip.  After restarting the Arduino app I was ready to go.  I loaded up the one example program that came with the library and modified the pin settings in the code to the pins that I used.  I also changed the number of LEDs in the strip from 32 to 12 since my strip only has 12 LEDs on it.  I flashed over the code and lo and behold, it worked!  After a few hours I finally had some basic animation patterns working on this thing.</p>
<p><iframe src="http://www.youtube.com/embed/jKg63T3t9lE?hl=en&amp;fs=1" frameborder="0" width="425" height="349"></iframe></p>
<p>I managed to get it working just before I had decided to leave the shop.  Now that I have the basic animations working I need to get some code written and working to control the strip the way I want.  I&#8217;m hoping to use serial communication to control the strip.  I want the Arduino code to just listen for two number values.  One value is the total license we are allowed from Splunk.  The second value will be our current license usage.  Then the Arduino will use those two numbers to figure out how many LEDs to light up and what colors those LEDs should be.  I&#8217;ll post another update once I have made more progress.</p>
<div class="al2fb_like_button"><div id="fb-root"></div><script type="text/javascript">
(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=216748751752592";
  fjs.parentNode.insertBefore(js, fjs);
}(document, "script", "facebook-jssdk"));
</script>
<fb:like href="http://www.richardosgood.com/2012/02/25/splunk-led-meter/" layout="standard" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div>]]></content:encoded>
			<wfw:commentRss>http://www.richardosgood.com/2012/02/25/splunk-led-meter/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Raja&#8217;s Day Out</title>
		<link>http://www.richardosgood.com/2012/02/16/rajas-day-out/</link>
		<comments>http://www.richardosgood.com/2012/02/16/rajas-day-out/#comments</comments>
		<pubDate>Thu, 16 Feb 2012 17:26:38 +0000</pubDate>
		<dc:creator>Rick</dc:creator>
				<category><![CDATA[Project]]></category>

		<guid isPermaLink="false">http://www.richardosgood.com/?p=709</guid>
		<description><![CDATA[We recently started letting our cat go outside and we started wondering what she actually does out there.  She tends to wander off for an hour or so and we have no idea where she goes or what she is &#8230; <a href="http://www.richardosgood.com/2012/02/16/rajas-day-out/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_416" class="wp-caption aligncenter" style="width: 510px"><a href="http://richardosgood.com/wp-content/uploads/2012/01/2012-01-30_17-39-55_270.jpg"><img class="size-large wp-image-416" title="Raja!" src="http://richardosgood.com/wp-content/uploads/2012/01/2012-01-30_17-39-55_270-1024x577.jpg" alt="Raja!" width="500" height="281" /></a><p class="wp-caption-text">Raja!</p></div>
<div id="attachment_414" class="wp-caption aligncenter" style="width: 510px"><a href="http://richardosgood.com/wp-content/uploads/2012/01/2012-01-30_17-38-35_383.jpg"><img class="size-large wp-image-414" title="Camera collar" src="http://richardosgood.com/wp-content/uploads/2012/01/2012-01-30_17-38-35_383-1024x577.jpg" alt="Camera collar" width="500" height="281" /></a><p class="wp-caption-text">Camera collar</p></div>
<p>We recently started letting our cat go outside and we started wondering what she actually does out there.  She tends to wander off for an hour or so and we have no idea where she goes or what she is doing.  I borrowed a mini color video camera from Eugene Maker Space and and attached it to my cat&#8217;s collar.  I <a title="put up a blog post" href="http://www.richardosgood.com/2012/02/01/productive-sunday/">put up a blog post</a> about that a couple weeks ago.  I finally got some longer video uploaded to share.</p>
<p>The aspect ratio is weird because the video camera had to be mounted sideways in order to be securely fastened.  I had to rotate the video after it was uploaded to YouTube.  Also, the date and time are completely wrong because I haven&#8217;t figured out how to set them yet.</p>
<p><object width="420" height="315" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/Rwh5U-IsbRs?version=3&amp;hl=en_US" /><param name="allowfullscreen" value="true" /><embed width="420" height="315" type="application/x-shockwave-flash" src="http://www.youtube.com/v/Rwh5U-IsbRs?version=3&amp;hl=en_US" allowFullScreen="true" allowscriptaccess="always" allowfullscreen="true" /></object></p>
<div class="al2fb_like_button"><div id="fb-root"></div><script type="text/javascript">
(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=216748751752592";
  fjs.parentNode.insertBefore(js, fjs);
}(document, "script", "facebook-jssdk"));
</script>
<fb:like href="http://www.richardosgood.com/2012/02/16/rajas-day-out/" layout="standard" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div>]]></content:encoded>
			<wfw:commentRss>http://www.richardosgood.com/2012/02/16/rajas-day-out/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bacon Roses</title>
		<link>http://www.richardosgood.com/2012/02/15/bacon-roses/</link>
		<comments>http://www.richardosgood.com/2012/02/15/bacon-roses/#comments</comments>
		<pubDate>Wed, 15 Feb 2012 18:13:37 +0000</pubDate>
		<dc:creator>Rick</dc:creator>
				<category><![CDATA[Food]]></category>

		<guid isPermaLink="false">http://www.richardosgood.com/?p=669</guid>
		<description><![CDATA[I decided to make my girlfriend some bacon roses for Valentine&#8217;s day this year.  I wanted to do something different and something she wouldn&#8217;t expect.  I had seen this idea on Instructables a few months before and I knew I &#8230; <a href="http://www.richardosgood.com/2012/02/15/bacon-roses/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_698" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-14_17-19-16_359.jpg"><img class="size-large wp-image-698" title="Bacon roses" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-14_17-19-16_359-1024x577.jpg" alt="Bacon roses" width="500" height="281" /></a><p class="wp-caption-text">Bacon roses</p></div>
<p>I decided to make my girlfriend some bacon roses for Valentine&#8217;s day this year.  I wanted to do something different and something she wouldn&#8217;t expect.  I had seen this idea on <a title="Instructables" href="http://www.instructables.com/id/Bacon-Roses/">Instructables</a> a few months before and I knew I would have to try it some day.  I did some things a bit differently though and I figured I might as well detail the process I took here.  Most of these photos aren&#8217;t very good.  That&#8217;s a result of me rushing to get these bacon roses completed before my girlfriend got home from work combined with the fact that my house has terrible lighting for photos.</p>
<p>First off, I had to get a cupcake pan and poke a hole in each spot.  The Instructable recommended using a mini muffin pan but I forgot that when I was at Walmart and I purchased a regular sized cupcake pan instead.</p>
<div id="attachment_673" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-13_17-29-04_863.jpg"><img class="size-large wp-image-673" title="Cupcake tin with holes" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-13_17-29-04_863-1024x577.jpg" alt="Cupcake tin with holes" width="500" height="281" /></a><p class="wp-caption-text">Cupcake tin with holes</p></div>
<p>The dots in the center of each spot are holes that I poked using a hammer and a large nail. The hole is supposed to allow the bacon grease to drain out of the pan while the bacon is baking.  The Instructable suggesting drilling out the holes, but a commenter suggested using a nail to avoid creating metal shavings that may get into the food.  I liked that idea better and thought it would be easier to pound a few holes in the metal rather than try to drill them out.</p>
<div id="attachment_676" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-13_17-29-37_940.jpg"><img class="size-large wp-image-676" title="Tools" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-13_17-29-37_940-1024x577.jpg" alt="Tools" width="500" height="281" /></a><p class="wp-caption-text">Tools</p></div>
<p>After washing out the pan, I had to prepare the bacon.  I followed the Instructable exactly for this part.  I just rolled up each strip of bacon individually starting at the wider end.  Once I rolled a strip of bacon, I pressed it into one of the muffin spots with the fat side down.  When you press them in the bottom flares out a bit and helps create the rosebud look as well as helps the bacon stand up.</p>
<div id="attachment_678" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-14_16-20-25_926.jpg"><img class="size-large wp-image-678" title="Raw bacon" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-14_16-20-25_926-1024x577.jpg" alt="Raw bacon" width="500" height="281" /></a><p class="wp-caption-text">Raw bacon</p></div>
<p>The Instructable recommended placing a broiling pan underneath the cupcake pan to both allow the grease to drain out and to also catch the grease from falling into the oven.  I don&#8217;t have a boiling pan so I used a cookie sheet covered in foil instead.  I then created two large rolls of foil to use as stands to hold the cupcake pan up above the cookie sheet.  Without those, there would be less room underneath the cupcake pan and the grease would have a harder time draining.</p>
<div id="attachment_679" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-14_16-20-38_602.jpg"><img class="size-large wp-image-679" title="Foil sheet with risers" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-14_16-20-38_602-1024x577.jpg" alt="Foil sheet with risers" width="500" height="281" /></a><p class="wp-caption-text">Foil sheet with risers</p></div>
<p>Once the bacon was prepared I stuck them in the oven for 40 minutes at 350 degrees.  While that was cooking, I prepared the rose stems.</p>
<p>I bought the same roses listed in the Instructable.  They cost me $0.97 at Walmart for one &#8220;bouquet&#8221; of seven roses.  I found them over near the crafts section where they had a selection of fake floral arrangements.  I bought two and ended up cutting off one rose from each bouquet because I only had 12 strips of bacon.</p>
<div id="attachment_682" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-14_16-22-25_665.jpg"><img class="size-large wp-image-682" title="Fake roses" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-14_16-22-25_665-1024x577.jpg" alt="Fake roses" width="500" height="281" /></a><p class="wp-caption-text">Fake roses</p></div>
<div id="attachment_684" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-14_16-22-42_361.jpg"><img class="size-large wp-image-684" title="Close up" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-14_16-22-42_361-1024x577.jpg" alt="Close up" width="500" height="281" /></a><p class="wp-caption-text">Close up</p></div>
<p>The first step was to remove all of the rosebuds from the stems.  They slide off pretty easily.</p>
<div id="attachment_685" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-14_16-23-42_902.jpg"><img class="size-large wp-image-685" title="Rosebuds removed" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-14_16-23-42_902-1024x577.jpg" alt="Rosebuds removed" width="500" height="281" /></a><p class="wp-caption-text">Rosebuds removed</p></div>
<p>Next I had to take apart each rosebud.  This part was pretty easy to figure out.  It was tougher to take apart but these plastic pieces are pretty strong so I really didn&#8217;t have to worry about breaking anything.</p>
<div id="attachment_687" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-14_16-25-43_497.jpg"><img class="size-large wp-image-687" title="Flower pieces separated" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-14_16-25-43_497-1024x577.jpg" alt="Flower pieces separated" width="500" height="281" /></a><p class="wp-caption-text">Flower pieces separated</p></div>
<p>Once all of the pieces were separated, I put all of the green pieces back together and stuck the empty rose leaves back onto the stems.</p>
<div id="attachment_688" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-14_16-31-07_648.jpg"><img class="size-large wp-image-688" title="Green pieces reassembled" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-14_16-31-07_648-1024x577.jpg" alt="Green pieces reassembled" width="500" height="281" /></a><p class="wp-caption-text">Green pieces reassembled</p></div>
<p>Here is a shot of all 14 rose stems waiting for the bacon to finish cooking.</p>
<div id="attachment_689" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-14_16-48-08_747.jpg"><img class="size-large wp-image-689" title="Ready for the bacon" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-14_16-48-08_747-1024x577.jpg" alt="Ready for the bacon" width="500" height="281" /></a><p class="wp-caption-text">Ready for the bacon</p></div>
<p>After 40 minutes I was worried that the bacon hadn&#8217;t cooked enough.  I had a problem where my holes weren&#8217;t big enough and the bacon grease didn&#8217;t drain.  This seemed to result in the fatty part of the bacon at the bottom of the pan not cooking as much as the top.  Unfortunately Shannon was going to be home in about 10 minutes so I really didn&#8217;t have time to cook these any longer.  Also, the tops of the rosebuds were already crispy so I was afraid I would burn them.  Also, about half of the buds fell over while cooking.  I was able to stand most of them back up halfway through but it became clear why a mini cupcake pan would have been a better choice.</p>
<div id="attachment_692" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-14_17-05-35_175.jpg"><img class="size-large wp-image-692" title="Bacon all cooked" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-14_17-05-35_175-1024x577.jpg" alt="Bacon all cooked" width="500" height="281" /></a><p class="wp-caption-text">Bacon all cooked</p></div>
<div id="attachment_693" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-14_17-06-47_755.jpg"><img class="size-large wp-image-693" title="Soaking up the grease" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-14_17-06-47_755-1024x577.jpg" alt="Soaking up the grease" width="500" height="281" /></a><p class="wp-caption-text">Soaking up the grease</p></div>
<p>Once the bacon rosebuds were dried off and cool enough to hold I just slid them onto the rose stems.  I underestimated how heavy these bacon flowers would be and I really needed some kind of gravel or sand or something in the vase to hold them in place.  I managed without it but it was tricky to move the arrangement around without the stems falling over and the bacon falling off.</p>
<div id="attachment_696" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-14_17-12-55_591.jpg"><img class="size-large wp-image-696" title="Fully assembled" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-14_17-12-55_591-1024x577.jpg" alt="Fully assembled" width="500" height="281" /></a><p class="wp-caption-text">Fully assembled</p></div>
<p>I had a few minutes to spare before Shannon got home so I decided to do a bit extra for the presentation.  I took those otherwise wasted fake roses and chopped all of the petals off into individual petals.  I then scattered a bunch of them around the arrangement so she wouldn&#8217;t be able to miss it when she got home from work.</p>
<div id="attachment_703" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-14_17-20-05_465.jpg"><img class="size-large wp-image-703" title="The presentation" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-14_17-20-05_465-1024x577.jpg" alt="The presentation" width="500" height="281" /></a><p class="wp-caption-text">The presentation</p></div>
<p>She seemed to really like the bacon roses and definitely didn&#8217;t expect them.  The bacon ended up being a bit under cooked, especially at the center of the rosebud.  Also, the fat was extra chewy since it wasn&#8217;t cooked enough and I tend to like my bacon a bit crispier.  Next time I might try cooking the bacon longer or perhaps on a higher temperature setting.  I&#8217;ll also have to make the holes bigger so the grease can drain out more easily.</p>
<div class="al2fb_like_button"><div id="fb-root"></div><script type="text/javascript">
(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=216748751752592";
  fjs.parentNode.insertBefore(js, fjs);
}(document, "script", "facebook-jssdk"));
</script>
<fb:like href="http://www.richardosgood.com/2012/02/15/bacon-roses/" layout="standard" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div>]]></content:encoded>
			<wfw:commentRss>http://www.richardosgood.com/2012/02/15/bacon-roses/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Worst. Soldering iron holder. Ever.</title>
		<link>http://www.richardosgood.com/2012/02/13/worst-soldering-iron-holder-ever/</link>
		<comments>http://www.richardosgood.com/2012/02/13/worst-soldering-iron-holder-ever/#comments</comments>
		<pubDate>Mon, 13 Feb 2012 17:39:15 +0000</pubDate>
		<dc:creator>Rick</dc:creator>
				<category><![CDATA[Failures]]></category>
		<category><![CDATA[Wood Working]]></category>

		<guid isPermaLink="false">http://www.richardosgood.com/?p=656</guid>
		<description><![CDATA[For the Eugene Maker Space grand opening, we purchased a few electronics kits so people can learn to solder.  Three of the kits came with soldering irons for a fantastic deal.  Unfortunately, I thought the soldering iron holders looked a &#8230; <a href="http://www.richardosgood.com/2012/02/13/worst-soldering-iron-holder-ever/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>For the Eugene Maker Space grand opening, we purchased a few electronics kits so people can learn to solder.  Three of the kits came with soldering irons for a fantastic deal.  Unfortunately, I thought the soldering iron holders looked a bit flimsy for people just learning how to solder.  I didn&#8217;t want anyone to knock their iron over and burn themselves easily.  Because of this, I decided to try and make a simple soldering iron holder out of materials we had laying around at the shop.  I only made one attempt&#8230; and it didn&#8217;t turn out that great.  I decided to blog about it anyway because why not?</p>
<p>The soldering iron that came with the kit is a very basic &#8220;disposable&#8221; type.  I figured it would be a great tool to have at the shop though for whenever we do events like this.  I&#8217;d rather have people learn to solder on a junker iron than on a nice expensive one.</p>
<div id="attachment_658" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-10_19-12-59_998.jpg"><img class="size-large wp-image-658" title="Soldering Iron" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-10_19-12-59_998-1024x577.jpg" alt="Soldering Iron" width="500" height="281" /></a><p class="wp-caption-text">Soldering Iron</p></div>
<p>For the design, my original thought was to just use a block of wood and stick a piece of strong wire into it and bend the wire into a curly shape to hold the iron.  We didn&#8217;t have strong enough wire at the shop so I decided to try and make something completely out of wood.  Therefore, my materials consisted of one chunk of 2&#8243;x4&#8243; board and some screws.</p>
<div id="attachment_659" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-10_19-13-07_657.jpg"><img class="size-large wp-image-659" title="Materials" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-10_19-13-07_657-1024x577.jpg" alt="Materials" width="500" height="281" /></a><p class="wp-caption-text">Materials</p></div>
<p>I first cut a piece of wood about the length of the iron.  I think cut a second piece of wood that was about 1/2 of the length of the first.  I cut a 45 degree angle into the second piece of wood with the miter saw.</p>
<div id="attachment_660" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-10_19-32-00_352.jpg"><img class="size-large wp-image-660" title="Wood chunks" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-10_19-32-00_352-1024x577.jpg" alt="Wood chunks" width="500" height="281" /></a><p class="wp-caption-text">Wood pieces</p></div>
<p>Then I used the drill press to drill a 5/16&#8243; hole in the shorter piece of wood.  This hole was just big enough for the soldering iron to slide through it and stop where the handle of the iron starts.</p>
<div id="attachment_662" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-10_19-35-03_595.jpg"><img class="size-large wp-image-662" title="Drilling a hole" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-10_19-35-03_595-1024x577.jpg" alt="Drilling a hole" width="500" height="281" /></a><p class="wp-caption-text">Drilling a hole</p></div>
<div id="attachment_663" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-10_19-38-01_251.jpg"><img class="size-large wp-image-663" title="Hole drilled out" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-10_19-38-01_251-1024x577.jpg" alt="Hole drilled out" width="500" height="281" /></a><p class="wp-caption-text">Hole drilled out</p></div>
<p>The final step was to attach the two pieces together.  This part was a pain because of the angles.  I didn&#8217;t want to use glue because I hate waiting for glue to dry.  I opted to try screwing them together.  There was really no good way for me to clamp the work down to the bench with the tools I had on hand.  Also, I was feeling lazy so I did not pre-drill the holes which made the whole thing more difficult.</p>
<div id="attachment_664" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-10_19-42-50_564.jpg"><img class="size-large wp-image-664" title="Attaching the pieces" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-10_19-42-50_564-1024x577.jpg" alt="Attaching the pieces" width="500" height="281" /></a><p class="wp-caption-text">Attaching the pieces</p></div>
<p>The final piece works but since the screws are not countersunk, it is wobbly on the table.  Also, since I didn&#8217;t have a good way to hold the pieces together while I was attaching them, there is a small gap between the pieces of wood that looks horrible.  The smaller piece also ended up rotating a bit and is obviously crooked when looking at it in person.</p>
<div id="attachment_665" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-10_19-49-43_312.jpg"><img class="size-large wp-image-665" title="Final piece" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-10_19-49-43_312-1024x577.jpg" alt="Final piece" width="500" height="281" /></a><p class="wp-caption-text">Final piece</p></div>
<p>The end result was something that works, but not well enough that I am actually going to use it.  In fact, I already threw this thing away.  I wasn&#8217;t even going to document this but I figured that 1) it is funny and 2) it&#8217;s important to keep track of our failures because we learn more from our failures than we do from our successes.  I learned that I need more practice working with wood and that I need to be less lazy when building things.</p>
<div id="attachment_666" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-10_19-50-13_10.jpg"><img class="size-large wp-image-666" title="Tada!" src="http://www.richardosgood.com/wp-content/uploads/2012/02/2012-02-10_19-50-13_10-1024x577.jpg" alt="Tada!" width="500" height="281" /></a><p class="wp-caption-text">Tada!</p></div>
<div class="al2fb_like_button"><div id="fb-root"></div><script type="text/javascript">
(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=216748751752592";
  fjs.parentNode.insertBefore(js, fjs);
}(document, "script", "facebook-jssdk"));
</script>
<fb:like href="http://www.richardosgood.com/2012/02/13/worst-soldering-iron-holder-ever/" layout="standard" show_faces="true" width="450" action="like" font="arial" colorscheme="light" ref="AL2FB"></fb:like></div>]]></content:encoded>
			<wfw:commentRss>http://www.richardosgood.com/2012/02/13/worst-soldering-iron-holder-ever/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

