<?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>Matthew C Good &#187; Projects</title>
	<atom:link href="http://www.matthewcgood.com/blog/topics/projects/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.matthewcgood.com/blog</link>
	<description>Musician, Web Developer, Hobbyist.</description>
	<lastBuildDate>Sun, 25 Jul 2010 20:56:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Trotsky Drive Breadboard</title>
		<link>http://www.matthewcgood.com/blog/2010/02/08/trotsky-drive-breadboard/</link>
		<comments>http://www.matthewcgood.com/blog/2010/02/08/trotsky-drive-breadboard/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 06:07:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[guitar pedals]]></category>
		<category><![CDATA[Love the Russians]]></category>
		<category><![CDATA[making stuff]]></category>

		<guid isPermaLink="false">http://www.matthewcgood.com/blog/?p=759</guid>
		<description><![CDATA[After finally having some success with my &#8220;Mastodon Dave&#8221; guitar distortion pedal, I&#8217;ve been wanting to make a few more.  I&#8217;m continually amazed, however, at how many different electronics parts there are out there&#8230;  I&#8217;ve got coffee tins full, rubbermaid organizers full, and I STILL hardly ever have the parts on hand I need to [...]]]></description>
			<content:encoded><![CDATA[<p>After finally having some success with my &#8220;Mastodon Dave&#8221; guitar distortion pedal, I&#8217;ve been wanting to make a few more.  I&#8217;m continually amazed, however, at how many different electronics parts there are out there&#8230;  I&#8217;ve got coffee tins full, rubbermaid organizers full, and I STILL hardly ever have the parts on hand I need to make one of practically anything.  So I was looking around for a pedal circuit I could build without waiting around for parts to show up, and I found the <a href="http://www.beavisaudio.com/Projects/TrotskyDrive/" target="_blank">Trotsky Drive</a>.  After digging around to see what diodes I had, BINGO!  So tonight I threw it all together on the breadboard.</p>
<p><a rel="attachment wp-att-761" href="http://www.matthewcgood.com/blog/2010/02/08/trotsky-drive-breadboard/trotsky_breadboard/"><img class="aligncenter size-full wp-image-761" title="Trotsky Drive on the breadboard" src="http://www.matthewcgood.com/blog/wp-content/uploads/2010/02/trotsky_breadboard.jpg" alt="" width="640" height="640" /></a></p>
<p>It sounds pretty good too, but it&#8217;s a little hummy &#8211; which I think is probably the breadboard.  A very simple circuit, but has a couple options for modding.  There&#8217;s a low-pass switch you can throw, and you can swap out the capacitor for different amounts of low-pass.  And you can mess with the kinds of diodes you use, and whatnot.  Fun project, with a Russian name, so I&#8217;m going to have fun painting this one.</p>
<p>Most of the trouble with this project was hacking through the various electronics components grab bags I bought to find the right parts.  The numbering schemes on the caps in particular are tricky.  I got a few that I <em>think</em> are caps, but I&#8217;m still not sure.  And how do I tell what kind a random diode is?  If I ever find out, I&#8217;ll let you know.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthewcgood.com/blog/2010/02/08/trotsky-drive-breadboard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Workspace</title>
		<link>http://www.matthewcgood.com/blog/2010/02/06/my-workspace/</link>
		<comments>http://www.matthewcgood.com/blog/2010/02/06/my-workspace/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 00:01:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Aquariums]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[FishApp]]></category>
		<category><![CDATA[Programming/Tech]]></category>

		<guid isPermaLink="false">http://www.matthewcgood.com/blog/?p=756</guid>
		<description><![CDATA[
This was my workspace on 2-5-2010.  Click for a humongous version (1.9mb).
Items of note:

Ohm&#8217;s Law
Medicine Man balsa wood glider (half finished)
Make:Electronics book, Maker&#8217;s Notebook
Woolly Mammoth clone guitar pedal, nearly done
2.5 gallon fishtank, testing out temperature logging via LM34 and Arduino (see FishApp) for more details.
There are no less than five computers on/around my desk. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="/blogpics/workspace/workspace_large.jpg"><img src="/blogpics/workspace/workspace640.jpg" alt="My Workspace" /></a></p>
<p>This was my workspace on 2-5-2010.  Click for a humongous version (1.9mb).</p>
<p>Items of note:</p>
<ul>
<li>Ohm&#8217;s Law</li>
<li>Medicine Man balsa wood glider (half finished)</li>
<li>Make:Electronics book, Maker&#8217;s Notebook</li>
<li>Woolly Mammoth clone guitar pedal, nearly done</li>
<li>2.5 gallon fishtank, testing out temperature logging via LM34 and Arduino (see FishApp) for more details.</li>
<li>There are no less than five computers on/around my desk. Not all are visible.</li>
<li>Small cheap telescope</li>
<li>Printing plate of some old ship</li>
<li>Guitars.</li>
<li>More guitars.</li>
</ul>
<p>The mess?  Oh, that just means I&#8217;m getting work done.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthewcgood.com/blog/2010/02/06/my-workspace/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>FishApp &#8211; Water Change Detection</title>
		<link>http://www.matthewcgood.com/blog/2009/10/24/fishapp-water-change-detection/</link>
		<comments>http://www.matthewcgood.com/blog/2009/10/24/fishapp-water-change-detection/#comments</comments>
		<pubDate>Sun, 25 Oct 2009 03:50:46 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Aquariums]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[computers]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[FishApp]]></category>
		<category><![CDATA[netbooks]]></category>
		<category><![CDATA[Programming/Tech]]></category>

		<guid isPermaLink="false">http://www.matthewcgood.com/blog/?p=734</guid>
		<description><![CDATA[The other day, I went to the mall with Kristin.  I usually finish up quicker than her, and this time being in possession of a shiny tiny netbook, I was able to code and tweak the water change detection algorithm for the FishApp while sitting on a bench outside of Macy&#8217;s.  I had a couple [...]]]></description>
			<content:encoded><![CDATA[<p>The other day, I went to the mall with Kristin.  I usually finish up quicker than her, and this time being in possession of a shiny tiny netbook, I was able to code and tweak the water change detection algorithm for the FishApp while sitting on a bench outside of Macy&#8217;s.  I had a couple rather confused onlookers.  I may or may not be on a &#8220;do-not-fly&#8221; list now.</p>
<p>To refresh your memory, the FishApp keeps track of water changes, and gives you a graph showing weighted-age values for the water in your fish tank.  This requires you to pay attention while you&#8217;re doing the water change, and to log in to the website and report how much water you changed when.  Well, I want to have the FishApp sense, measure, and publish water changes for me.  To those ends, I designed a system that can measure the water level in the tank over time, report it to a computer, figure out when and how much water was changed, and report that back to the main fishapp web application.  The measurement is done using a Ping))) ultrasonic rangefinder, and data from that (and other sensors) is fed into a computer.</p>
<p>But just how is the computer supposed to figure out when a water change happened?  It&#8217;s input is just a string of numbers, and it&#8217;s gotta be smart enough to filter out random noise from tank cleanings, frisky fish, the water filter starting and stopping for one reason or another, or any of a hundred other situations.  What to do?</p>
<p>If you&#8217;ve read the last post about the FishApp, you know where to start &#8211; smooth out the data.  To recap, I have the sensor set to read the water level every half-second, and report it to the computer.  The raw data is pretty noisy:</p>
<p><a href="http://www.matthewcgood.com/gallery/main.php?g2_itemId=89846"><img class="alignnone" title="Raw Water Change Data" src="http://www.matthewcgood.com/gallery/main.php?g2_view=core.DownloadItem&amp;g2_itemId=89848&amp;g2_serialNumber=2" alt="" width="640" height="483" /></a></p>
<p>but if we make new data points from the median of  every 20 samples, things smooth out pretty quickly:</p>
<p><a href="http://www.matthewcgood.com/gallery/main.php?g2_itemId=89840"><img class="alignnone" title="Smoothed Water Change Data" src="http://www.matthewcgood.com/gallery/main.php?g2_view=core.DownloadItem&amp;g2_itemId=89842&amp;g2_serialNumber=2" alt="" width="640" height="483" /></a></p>
<p>The system should be able to handle this muuuch easier.</p>
<p>The algorithm works by keeping a queue of recent (smoothed) samples.  By comparing the oldest sample with the newest sample, you can get a &#8220;slope&#8221; value.   On the graph above, for example, it doesn&#8217;t take very many samples until the oldest will be just over 600 but the most recent will be around 800 or so, and you&#8217;ll have a large positive slope.  Once the algorithm sees this large positive slope (above a certain trigger value), it knows that a water change is beginning, and notes the water level beforehand.  At some point in the process of a water change, I start filing the tank up again, and we see a large negative slope (around 55-60 on the graph above).  The algorithm notes the capitulation and the minimum water level.  If the absolute value of the slope stays low enough for long enough, the algorithm detects a steady state, and calls it the end of the water change.  The &#8220;steps&#8221; you see on the graph are because I do my water changes bucket-by-bucket, but because the algorithm is using a slope from a queue maybe 10 samples long, it already does a pretty good job of smoothing these steps out, and not getting too confused.</p>
<p>After running the algorithm against the data above, it worked flawlessly.  Take a look at this graph:</p>
<p><a href="http://www.matthewcgood.com/gallery/main.php?g2_itemId=89849"><img class="alignnone" title="Water Change Detection Algorithm" src="http://www.matthewcgood.com/gallery/main.php?g2_view=core.DownloadItem&amp;g2_itemId=89851&amp;g2_serialNumber=2" alt="" width="640" height="483" /></a></p>
<p>The gray lines are where the important steps in the process were detected.  For example, the first gray line @ x=10 is where the algorithm first noticed we were emptying water out of the tank.  It looks late &#8211; and it is, but that&#8217;s merely a consequence of using a queue of 10 samples to generate the slope.  The actual &#8220;before&#8221; water level value it uses is not the one at the gray line, but the minimum one in the queue &#8211; which is correct (enough for rock and roll).  Then, at x=54, the algorithm detected a large negative slope and decided that we were filling the tank up again.  It started looking for the start of a steady state, which it found at x=121, and it stayed steady long enough that at x=150, the algorithm wrapped up and decided that we&#8217;ve done a water change.  NIFTY!</p>
<p>If you think about what is going on here, it&#8217;s really calculus, under the covers.  The slope value is the derivative of the function, and we look for the points that derivative changes sign.  But the function we&#8217;re using isn&#8217;t perfect, and isn&#8217;t continuous, and so we&#8217;ve got to build in a little extra wonkitude-resistance.  The algorithm has inputs for the size of the queue, the trigger value for large positive/negative slopes, a tolerance value to ignore noise during steady states, and the number of samples to go during a steady state before deciding we&#8217;re really done with the water change &#8211; so in theory, this algorithm could be adapted and tuned for a wide range of input sources with little-to-no modification.</p>
<p>Right now, the algorithm is coded in python, but I think it might even be possible to do the crunching on the Arduino.  If I did that and wired the Arduino up to an ethernet shield, I could ALMOST eliminate the computer altogether.  I still need the computer to run the webcam, however, so there&#8217;s no point in trying to run this code on the chip or anything like that.  But I think it would be possible in theory, if you don&#8217;t want the cam server running.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthewcgood.com/blog/2009/10/24/fishapp-water-change-detection/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>What A Water Change Looks Like to the FishApp</title>
		<link>http://www.matthewcgood.com/blog/2009/10/04/what-a-water-change-looks-like-to-the-fishapp/</link>
		<comments>http://www.matthewcgood.com/blog/2009/10/04/what-a-water-change-looks-like-to-the-fishapp/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 05:21:29 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Aquariums]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[computers]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[FishApp]]></category>
		<category><![CDATA[Programming/Tech]]></category>

		<guid isPermaLink="false">http://www.matthewcgood.com/blog/?p=719</guid>
		<description><![CDATA[One of the goals of the FishApp is to have automatic water change detection available in phase 1.  In order to do this, I have a Ping))) ultrasonic distance sensor pointed down at my fishtank.  This little guy works by producing a sound above human hearing range, and listening for it to bounce [...]]]></description>
			<content:encoded><![CDATA[<p>One of the goals of the <a href="http://www.matthewcgood.com/fishapp" target="_blank">FishApp</a> is to have automatic water change detection available in phase 1.  In order to do this, I have a<a href="http://www.parallax.com/StoreSearchResults/tabid/768/txtSearch/ping/List/0/SortField/4/ProductID/92/Default.aspx" target="_blank"> Ping))) ultrasonic distance sensor</a> pointed down at my fishtank.  This little guy works by producing a sound above human hearing range, and listening for it to bounce back.  If you know the speed of sound, you can calculate how far away the object was that caused the reflection.  The sensor I am using is mounted above the tank in a piece of 1/4 inch wood to help shield it from the moisture, and samples the water level at predetermined intervals, sending its data over a serial connection to a host computer via an <a href="http://www.arduino.cc" target="_blank">Arduino</a> controller.</p>
<p>The host computer gets this stream of numbers, and has to have some way of determining when I&#8217;ve done a water change, and how much water I&#8217;ve changed.  I got the feeling that random variation (noise) in the data from the sensor could throw off whatever method I use to compute all of this, so I needed to figure out exactly what the data looks like coming in to the computer, preferably saving it so I can test my algorithms against it without having to do a water change after each revision &#8211; that would be a heck of a lot worse than just waiting for the code to recompile.</p>
<p>So I fired up Arduino and Python did a water change, saving the raw data from the Ping))) sensor to a file.  Without further ado, this is what a water change looks like to a computer:</p>
<p><a href="http://www.matthewcgood.com/gallery/main.php?g2_itemId=89846"><img class="alignnone" title="Raw Ping))) Data" src="http://www.matthewcgood.com/gallery/main.php?g2_view=core.DownloadItem&amp;g2_itemId=89848&amp;g2_serialNumber=2" alt="" width="640" height="483" /></a></p>
<p>Pretty cool, huh?  When I do a water change, I siphon water out of the tank into a 3 gallon bucket, and empty it a bucket at a time, until I&#8217;ve taken out as much as I like, and then I re-fill the think 3 gallons at a time.  You end up with the very visible &#8220;steps&#8221; on the graph.  While the data looks mostly consistent, you can see some wonkiness in some of the steps &#8211; which almost looks like thick lines.  The sensor isn&#8217;t quite reading the distance regularly in this case.  This looks to me like the kind of data which could really throw of my detection algorithm.  So I had the bright idea of taking a median of 5 samples for each data point and using that series for detection.  Here&#8217;s what a median-of-five graph looks like:</p>
<div class="wp-caption alignnone" style="width: 650px"><a href="http://www.matthewcgood.com/gallery/main.php?g2_itemId=89843"><img title="Median of Five Graph" src="http://www.matthewcgood.com/gallery/main.php?g2_view=core.DownloadItem&amp;g2_itemId=89845&amp;g2_serialNumber=2" alt="Median of Five Graph" width="640" height="483" /></a><p class="wp-caption-text">Median of Five Graph</p></div>
<p>You should notice two things: 1) there are fewer datapoints by an order of five, because of the median, and 2) the curve is smoother.  I could prove this by computing the standard deviation on some of those trouble spots from above, but I don&#8217;t think it&#8217;s necessary: it&#8217;s plain to see when graphed.  The data could still be better though &#8211; look at the jaggies around 100.  We&#8217;ve got plenty of data, so we should be able to create a very smooth line and still have enough resolution to see each step, etc.</p>
<p>I&#8217;ll spare you all the gory details, but suffice it to say that the larger the median used, the better.  A median of 10 was better, but still not good.  A median of 15 was nearly perfect, but there was still just a <em>little</em> weirdness.  A median of 20 was perfect:</p>
<div class="wp-caption alignnone" style="width: 650px"><a href="http://www.matthewcgood.com/gallery/main.php?g2_itemId=89840"><img title="Median of 20 graph" src="http://www.matthewcgood.com/gallery/main.php?g2_view=core.DownloadItem&amp;g2_itemId=89842&amp;g2_serialNumber=2" alt="Median of 20 graph" width="640" height="483" /></a><p class="wp-caption-text">Median of 20 graph</p></div>
<p>That&#8217;s more like it.  We&#8217;ve still got enough data there to see the water change in detail, but smoothed out all the ugliness that could throw off the computer.  Cool stuff.</p>
<p>More details on the detection algorithm&#8217;s implementation to follow.  Charts generated with my new favorite tool, Python.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthewcgood.com/blog/2009/10/04/what-a-water-change-looks-like-to-the-fishapp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Make-ing Things</title>
		<link>http://www.matthewcgood.com/blog/2009/09/03/make-ing-things/</link>
		<comments>http://www.matthewcgood.com/blog/2009/09/03/make-ing-things/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 03:57:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Aquariums]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[DIY]]></category>
		<category><![CDATA[make]]></category>

		<guid isPermaLink="false">http://www.matthewcgood.com/blog/?p=715</guid>
		<description><![CDATA[I&#8217;ve been busily  making stuff.  Here&#8217;s what&#8217;s been keeping me busy:

This is my version of a Woolly Mammoth guitar pedal I&#8217;m going to call &#8220;Mastodon Dave.&#8221; This is the test wiring.  Yet to be done is to get Kristin to paint the case, and then I&#8217;ll do the final wiring.

I&#8217;m working on a balsa glider [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been busily  making stuff.  Here&#8217;s what&#8217;s been keeping me busy:</p>
<p><a href="http://www.matthewcgood.com/gallery/main.php?g2_itemId=89818"><img class="alignnone" title="Mastodon dave" src="http://www.matthewcgood.com/gallery/main.php?g2_view=core.DownloadItem&amp;g2_itemId=89820&amp;g2_serialNumber=2" alt="" width="480" height="640" /></a></p>
<p>This is my version of a Woolly Mammoth guitar pedal I&#8217;m going to call &#8220;Mastodon Dave.&#8221; This is the test wiring.  Yet to be done is to get Kristin to paint the case, and then I&#8217;ll do the final wiring.</p>
<p><a href="http://www.matthewcgood.com/gallery/main.php?g2_itemId=89822"><img class="alignnone" title="Building the Fuselage" src="http://www.matthewcgood.com/gallery/main.php?g2_view=core.DownloadItem&amp;g2_itemId=89824&amp;g2_serialNumber=2" alt="" width="640" height="480" /></a></p>
<p>I&#8217;m working on a balsa glider with plans I got from (the incomparable) <a href="http://www.makezine.com" target="_blank">Make Magazine</a>.  Here I am working on the critical step of joining the two sides of the fuselage together.</p>
<p><a href="http://www.matthewcgood.com/gallery/main.php?g2_itemId=89825"><img class="alignnone" title="Straight?" src="http://www.matthewcgood.com/gallery/main.php?g2_view=core.DownloadItem&amp;g2_itemId=89827&amp;g2_serialNumber=2" alt="" width="480" height="640" /></a></p>
<p>You can see that the two sides are more or less straight.  After doing some more finicky work, sanding, gluing, tweaking, and fussing, it looks even a little better now.  In the background of the above photo, you can see my new telescope &#8211; the latest accoutrement for  my long series of intellectual obsessions.</p>
<p><a href="http://www.matthewcgood.com/gallery/main.php?g2_itemId=89831"><img class="alignnone" title="Fuselage" src="http://www.matthewcgood.com/gallery/main.php?g2_view=core.DownloadItem&amp;g2_itemId=89833&amp;g2_serialNumber=2" alt="" width="640" height="480" /></a></p>
<p>The fuselage nearing completion.  Shaping the nose cone was a little hard.</p>
<p><a href="http://www.matthewcgood.com/gallery/main.php?g2_itemId=89828"><img class="alignnone" title="Equipment bay hack" src="http://www.matthewcgood.com/gallery/main.php?g2_view=core.DownloadItem&amp;g2_itemId=89830&amp;g2_serialNumber=2" alt="" width="640" height="480" /></a></p>
<p>Here&#8217;s a little trick I picked up from <a href="http://www.dunephotos.com/gallery/7710282_Yw4uu#498158600_nEhqV" target="_blank">this guy&#8217;s photoset</a> &#8211; bevel the edges of the equipment bay hatch so it will slide in and out rather than tack-gluing it or using tabs like the plans said.  I am really happy with the job I did on it, too, and when it is closed, you can barely tell there are two seams there.</p>
<p>I&#8217;m also working on the physical hardware for the sensors for my <a href="http://www.matthewcgood.com/fishapp" target="_blank">Fishapp.</a> It&#8217;s coming along well, but slowly, as the mounting and hardware is the hardest thing about those kinds of projects for me.</p>
<p>Happy Making!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthewcgood.com/blog/2009/09/03/make-ing-things/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FishApp Update &#8211; It&#8217;s Doing Stuff</title>
		<link>http://www.matthewcgood.com/blog/2009/08/21/fishapp-update-its-doing-stuff/</link>
		<comments>http://www.matthewcgood.com/blog/2009/08/21/fishapp-update-its-doing-stuff/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 22:30:23 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Aquariums]]></category>
		<category><![CDATA[FishApp]]></category>
		<category><![CDATA[Programming/Tech]]></category>
		<category><![CDATA[Web Applications]]></category>
		<category><![CDATA[Wildlife]]></category>

		<guid isPermaLink="false">http://www.matthewcgood.com/blog/?p=707</guid>
		<description><![CDATA[It looks like the FishApp is already providing me with some really neat and useful insights into my aquarium.  I recently added the ability to overlay and toggle multiple series on the graphs it displays, to make it easy to see if one parameter has an effect on another.  Take a look at this snapshot [...]]]></description>
			<content:encoded><![CDATA[<p>It looks like the <a href="http://www.matthewcgood.com/blog/2009/06/04/a-sneak-peak-at-the-fishapp/">FishApp</a> is already providing me with some really neat and useful insights into my aquarium.  I recently added the ability to overlay and toggle multiple series on the graphs it displays, to make it easy to see if one parameter has an effect on another.  Take a look at this snapshot I took today:</p>
<div id="attachment_708" class="wp-caption alignnone" style="width: 768px"><img class="size-full wp-image-708" title="Water Age and Nitrate Levels" src="http://www.matthewcgood.com/blog/wp-content/uploads/2009/08/FishApp-Chart.gif" alt="Water age &amp; nitrate levels over time" width="758" height="303" /><p class="wp-caption-text">Water age &amp; nitrate levels over time</p></div>
<p>This chart shows the average age (in days) of the water in my tank compared with the levels of Nitrate I measure using an aquarium test kit.  I compute the water age using information I record about water changes I do to my tank (a more detailed explanation can be found in the original <a href="http://www.matthewcgood.com/blog/2009/06/04/a-sneak-peak-at-the-fishapp/">FishApp post</a>), and Nitrate is a mildly-bad chemical the can build up in your tank over time.  It&#8217;s the end-product of the <a href="http://fins.actwin.com/mirror/begin-cycling.html">Nitrogen Cycle</a> in most fish tanks, and can only be removed by water changes or chemical absorption (which some plants and special filter media can do).</p>
<p>At least that&#8217;s the theory.  What this chart is showing me is that the theory seems to actually work out in practice, and that my tests are precise enough to actually be useful &#8211; always a good thing.  Even though I only have five data points for the nitrate series (because I don&#8217;t always test as much as I should), it is easy to see the nitrate curve following the water age curve.  They actually track pretty well, I think. You can see an ugly spike in the water age when I wasn&#8217;t paying enough attention to the tank, and the resulting high nitrate levels, which backed down after a series of regular water changes.  When the water age started creeping back up again, so did Nitrate levels, and then both went down again after we moved from Tennessee to North Carolina (and changed out about 2/3 of the tank water for fresh in the process).  Very cool.</p>
<p>Since nitrate is the last state that fish poo reaches in the nitrogen cycle, it would not surprise me if there were a delay between water age and its effects on nitrate levels.  I don&#8217;t really have the data to support that right now, but I will try to be more diligent in my testing, and perhaps we can figure that out soon.</p>
<p>If there are any aquarium owners out there who are interested in the FishApp, you can sign up free and track your own fish tank in a similar fashion. <a href="http://matthewcgood.com/fishapp/admin/index.php"> Here&#8217;s a link to sign up</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthewcgood.com/blog/2009/08/21/fishapp-update-its-doing-stuff/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Naughty Rams, Caught on Video!</title>
		<link>http://www.matthewcgood.com/blog/2008/11/09/naughty-rams-caught-on-video/</link>
		<comments>http://www.matthewcgood.com/blog/2008/11/09/naughty-rams-caught-on-video/#comments</comments>
		<pubDate>Mon, 10 Nov 2008 06:30:03 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Aquariums]]></category>
		<category><![CDATA[Wildlife]]></category>

		<guid isPermaLink="false">http://www.pedalboy.net/blog/?p=228</guid>
		<description><![CDATA[Caught my German Blue Rams spawning:

Get the Flash Player to see this player.

var sd = new SWFObject('https://media.dreamhost.com/mediaplayer.swf','mpl','640','480','8');
sd.addParam('allowscriptaccess','always');
sd.addParam('allowfullscreen','true');
sd.addVariable('height','480');
sd.addVariable('width','640');
sd.addVariable('file','http://www.pedalboy.net/blogpics/ramsspawn/CIMG5654_640x480.flv');
sd.write('CIMG5654_640x480.flv');

Check out what happens when one of the Cory&#8217;s gets too close.  They are so oblivious to their surroundings sometimes&#8230;  We had heard horror stories about Rams getting aggressive when mating and corys losing their eyes&#8230;  [...]]]></description>
			<content:encoded><![CDATA[<p>Caught my German Blue Rams spawning:<br />
<script type="text/javascript" src="https://media.dreamhost.com/swfobject.js"></script></p>
<div id="CIMG5654_640x480.flv"><a href="http://www.macromedia.com/go/getflashplayer">Get the Flash Player</a> to see this player.</div>
<p><script type="text/javascript">
var sd = new SWFObject('https://media.dreamhost.com/mediaplayer.swf','mpl','640','480','8');
sd.addParam('allowscriptaccess','always');
sd.addParam('allowfullscreen','true');
sd.addVariable('height','480');
sd.addVariable('width','640');
sd.addVariable('file','http://www.pedalboy.net/blogpics/ramsspawn/CIMG5654_640x480.flv');
sd.write('CIMG5654_640x480.flv');
</script><br />
Check out what happens when one of the Cory&#8217;s gets too close.  They are so oblivious to their surroundings sometimes&#8230;  We had heard horror stories about Rams getting aggressive when mating and corys losing their eyes&#8230;  Luckily none of that here.<br />
I also <a href="http://matthewcgood.com/gallery/main.php?g2_itemId=52334&#038;g2_highlightId=52420">got some stills</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthewcgood.com/blog/2008/11/09/naughty-rams-caught-on-video/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building the A12 Microphone Preamp</title>
		<link>http://www.matthewcgood.com/blog/2008/10/15/building-the-a12-microphone-preamp/</link>
		<comments>http://www.matthewcgood.com/blog/2008/10/15/building-the-a12-microphone-preamp/#comments</comments>
		<pubDate>Thu, 16 Oct 2008 05:44:28 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Recording]]></category>
		<category><![CDATA[DIY]]></category>

		<guid isPermaLink="false">http://www.pedalboy.net/blog/?p=227</guid>
		<description><![CDATA[Lately I&#8217;ve really been in the mood to build things.  So I was very happy when I finally got some cash lined up and plunked down for the really nice-looking Seventh Circle Audio A12 preamp kit.  My audio/recording friends will know why this is such a big deal, but for the others, it&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>Lately I&#8217;ve really been in the mood to build things.  So I was very happy when I finally got some cash lined up and plunked down for the really nice-looking <a href="http://www.seventhcircleaudio.com/A12/A12R16/a12_about.htm">Seventh Circle Audio A12 preamp kit</a>.  My audio/recording friends will know why this is such a big deal, but for the others, it&#8217;s a thingy that makes mics sound better.  And its way cheaper than many of the alternatives.  But the real beauty of this particular kit is that you can mix and match eight different channels of several different &#8220;sounds&#8221; in one box.  So it&#8217;s got lots of room to grow.  Check out their full line of preamps at <a href="http://www.seventhcircleaudio.com/">seventhcircleaudio.com</a>.<br />
Here&#8217;s a basic walkthrough of what I did to get my preamp running.<br />
When you get the kit and break through the really great job they did packing the thing, you find yourself with a chassis &#038; power supply prebuilt, and then a circuit board, some bags of parts, and a schematic.<br />
<a href="http://www.matthewcgood.com/gallery/main.php?g2_itemId=28846"><img src="http://www.matthewcgood.com/gallery/main.php?g2_view=core.DownloadItem&#038;g2_itemId=28848&#038;g2_serialNumber=2" /></a><br />
So you have this blank circuit board in front of you and it&#8217;s a little daunting. There are a lot of holes and many of them are tiny and close together.  Luckily, you have just bought a <a href="http://www.circuitspecialists.com/prod.itml/icOid/7501">nice soldering iron</a> and some <a href="http://www.circuitspecialists.com/prod.itml/icOid/7230">helping hands</a>, so you shouldn&#8217;t worry too much.  Download the assembly instructions pdf and get going.<br />
<a href="http://www.matthewcgood.com/gallery/main.php?g2_itemId=28849"><img src="http://www.matthewcgood.com/gallery/main.php?g2_view=core.DownloadItem&#038;g2_itemId=28851&#038;g2_serialNumber=2" /></a><br />
Be sure your work area is well-let, and start stuffing the components. Follow all directions carefully, look up what you don&#8217;t fully understand, and double-check each resistor with a DMM.  I just have a cheapy $10 DMM i got at Sears, but it was enough to complete the project with relative ease.<br />
<a href="http://www.matthewcgood.com/gallery/main.php?g2_itemId=28858"><img src="http://www.matthewcgood.com/gallery/main.php?g2_view=core.DownloadItem&#038;g2_itemId=28860&#038;g2_serialNumber=2" /></a><br />
Remember to trim the leads on the back a little.  It will make working with the board easier.  I used a nail clippers to do this, I&#8217;m not sure what you&#8217;re <em>supposed</em> to use&#8230;<br />
<a href="http://www.matthewcgood.com/gallery/main.php?g2_itemId=28855"><img src="http://www.matthewcgood.com/gallery/main.php?g2_view=core.DownloadItem&#038;g2_itemId=28857&#038;g2_serialNumber=2" /></a><br />
Before long, it will start looking like something:<br />
<a href="http://www.matthewcgood.com/gallery/main.php?g2_itemId=28861"><img src="http://www.matthewcgood.com/gallery/main.php?g2_view=core.DownloadItem&#038;g2_itemId=28863&#038;g2_serialNumber=2" /></a><br />
<a href="http://www.matthewcgood.com/gallery/main.php?g2_itemId=28870"><img src="http://www.matthewcgood.com/gallery/main.php?g2_view=core.DownloadItem&#038;g2_itemId=28872&#038;g2_serialNumber=2" /></a><br />
The kit uses high-quality Cinemag transformers, which should make EVERYONE happy.  Audio guys sometimes underestimate the amount of coloration that comes from big iron transformers, and just call everything that&#8217;s colored &#8220;tube.&#8221;<br />
<a href="http://www.matthewcgood.com/gallery/main.php?g2_itemId=28864"><img src="http://www.matthewcgood.com/gallery/main.php?g2_view=core.DownloadItem&#038;g2_itemId=28866&#038;g2_serialNumber=2" /></a><br />
Before long, the board is fully-populated.<br />
<a href="http://www.matthewcgood.com/gallery/main.php?g2_itemId=28873"><img src="http://www.matthewcgood.com/gallery/main.php?g2_view=core.DownloadItem&#038;g2_itemId=28875&#038;g2_serialNumber=2" /></a><br />
Before you go plugging anything in, be sure to follow the instructions carefully and test as much as you can.  I did fully re-check all the resistor color codes and cap values, as it said.  It took a while, but you can smoke components if something is wrong.  And that&#8217;s a hassle, I&#8217;d imagine.<br />
At about this time you realize that there&#8217;s a few things you need to do with the power supply too, like attaching the ground wire (VERY IMPORTANT), and soldering up the lamp and power switch.  My only gripe out of the whole project came here, because the PDF of instructions for the power supply appears to be for a previous revision where you had to do more of the wiring yourself.  Now, they ship with a wiring harness.  This normally would make your life a lot easier (and probably still does), but the instructions are vague on what you need to do and what you can skip.  Also, the freakin&#8217; little metal things you crimp on the wires to get into the white connectors are REALLY hard to get on solid.  I suggest soldering them all after you crimp them, to be safe.<br />
Now all that&#8217;s left to do is power up, do more testing with your DMM, and then calibrate the voltages with your DMM.  Note that at no point should the bottom of the board or any of its electrical contacts touch the case or anything.  This could create a short and I think bad things would happen.  Note the bubble wrap:<br />
<a href="http://www.matthewcgood.com/gallery/main.php?g2_itemId=28876"><img src="http://www.matthewcgood.com/gallery/main.php?g2_view=core.DownloadItem&#038;g2_itemId=28878&#038;g2_serialNumber=6" /></a><br />
You&#8217;re supposed to connect the leads to the op amp at one point here, and it is a little tricky.  Some notes: You NEED both alligator clips and probes for your DMM.  Mine just had probes, so I bought a cheap bag of alligator clip jumpers to attach, and that worked fine.  It just looked funny.  Also, you might wonder how you&#8217;re supposed to get the clips on the op amp leads while the op amp is still in the socket &#8211; well, the simple answer (for me) was to clip them on to the back of the board, attaching them to the big metal post things the op amp pins go into.  Hope that makes sense.  You&#8217;ll figure it out either way, I&#8217;m sure.<br />
Wahoo!  Stick it in its case, plug a mic, power it up, and YOU&#8217;VE GOT YOURSELF AN AWESOME PREAMP!<br />
<a href="http://www.matthewcgood.com/gallery/main.php?g2_itemId=28882"><img src="http://www.matthewcgood.com/gallery/main.php?g2_view=core.DownloadItem&#038;g2_itemId=28884&#038;g2_serialNumber=2" /></a><br />
Hope that&#8217;s been enlightening.  I hope to do more of these photoblog type things for more projects in the near future.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthewcgood.com/blog/2008/10/15/building-the-a12-microphone-preamp/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>More Tetras</title>
		<link>http://www.matthewcgood.com/blog/2008/02/21/more-tetras/</link>
		<comments>http://www.matthewcgood.com/blog/2008/02/21/more-tetras/#comments</comments>
		<pubDate>Thu, 21 Feb 2008 07:21:02 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Aquariums]]></category>
		<category><![CDATA[Wildlife]]></category>

		<guid isPermaLink="false">http://www.pedalboy.net/blog/?p=204</guid>
		<description><![CDATA[Kristin and I were finally able to track down more tetras on the other side of the city tonight, so after getting lost and turning around several times, we finally cleaned out the cardinal tetra stock at the 2nd petsmart in nashville.  Now there are none in like a 30 mile radius.  jeeeezz [...]]]></description>
			<content:encoded><![CDATA[<p>Kristin and I were finally able to track down more tetras on the other side of the city tonight, so after getting lost and turning around several times, we finally cleaned out the cardinal tetra stock at the 2nd petsmart in nashville.  Now there are none in like a 30 mile radius.  jeeeezz they are hard to find sometimes.  But they are cool little suckers.<br />
<img src="http://www.matthewcgood.com/gallery/main.php?g2_view=core.DownloadItem&#038;g2_itemId=2369&#038;g2_serialNumber=2" /><br />
Fish are very sensitive to their water conditions, and these fish are kinda sensitive in particular.  Sudden changes in things like ph, chemical composition, temperature, hardness, and cleanliness can stress fish out, even if its a change &#8220;for the better.&#8221;  So its best to slowly adjust the fish to their new water.<br />
<img src="http://www.matthewcgood.com/gallery/main.php?g2_view=core.DownloadItem&#038;g2_itemId=2381&#038;g2_serialNumber=2" /><br />
The most commonly-suggested way to do this is to float the bag that the fish come in at the top of your aquarium for about 15 minutes and then add the fish.  The theory here is that the temperatures will be equalized and that is the most important part.  That may be true, but it is a much less than perfect method.  The water can be heated by the florescent lamps and this method does nothing to adjust for chemical differences which can really freak fish out.  If they aren&#8217;t used to the water chemically, they can have a hard time breathing (through their gills, ya know?) and that&#8217;s not good for anybody.<br />
<img src="http://www.matthewcgood.com/gallery/main.php?g2_view=core.DownloadItem&#038;g2_itemId=2378&#038;g2_serialNumber=2" /><br />
We did this last time with our cardinal tetras and the fish had a rough time making the transition.  A couple of them actually were belly-up for a few seconds before they came to.  Not what you like to see.<br />
We found a better way of doing it.  You put the fish in a small quarantine container and slowly take out some of the old water and replace it with the new water.  Badda-bing, badda-boom, your fish are a WHOLE LOT LESS FREAKED when you add em.<br />
<img src="http://www.matthewcgood.com/gallery/main.php?g2_view=core.DownloadItem&#038;g2_itemId=2372&#038;g2_serialNumber=2" /><br />
After we added the new guys, they immediately started schooling with the old guys.  They&#8217;re super-cute.  There&#8217;s one guy, we call him &#8220;Lemon,&#8221; he&#8217;s the littles of the bunch and when we added him, his dorsal was clamped down a bit, and he had like no red or blue/green color &#8211; he was all pale yellow.  In like three minutes though, he started getting some color back and perking up.  He&#8217;ll always be little Lemon, though.<br />
Oh, and here&#8217;s some more pictures of the corys feeding.<br />
<img src="http://www.matthewcgood.com/gallery/main.php?g2_view=core.DownloadItem&#038;g2_itemId=2387&#038;g2_serialNumber=2" /><br />
See the one in the front here?<br />
<img src="http://www.matthewcgood.com/gallery/main.php?g2_view=core.DownloadItem&#038;g2_itemId=2384&#038;g2_serialNumber=2" /><br />
That one&#8217;s ol&#8217; blackeyes.  Or blackie.  He seems to be the smartest, least psycho of the bunch.  All the other corys will be freaking out, swimming up and down the side of the tank, and blackie will be eating excess food off the log.  Good ol&#8217; blackeyes.  What a good fish<br />
&#8212;<br />
That&#8217;s all I got for now.  The [submersible] fish cam will be coming soon[-ish].</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthewcgood.com/blog/2008/02/21/more-tetras/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>New Fish &#8211; Corys</title>
		<link>http://www.matthewcgood.com/blog/2008/02/14/new-fish-corys/</link>
		<comments>http://www.matthewcgood.com/blog/2008/02/14/new-fish-corys/#comments</comments>
		<pubDate>Fri, 15 Feb 2008 06:38:58 +0000</pubDate>
		<dc:creator>matt</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Aquariums]]></category>
		<category><![CDATA[Corydoras]]></category>
		<category><![CDATA[Wildlife]]></category>

		<guid isPermaLink="false">http://www.pedalboy.net/blog/?p=203</guid>
		<description><![CDATA[We added four more fish to our tank&#8230;  slowly, we&#8217;ll have it fully stocked.  The four new guys are cute little Corydoras (C.trilineatus).  They are little catfish-like schooling dudes that come from peru and ecuador.  Here&#8217;s what one looks like:

The pet store had them incorrectly labeled as Corydoras Julli, but they [...]]]></description>
			<content:encoded><![CDATA[<p>We added four more fish to our tank&#8230;  slowly, we&#8217;ll have it fully stocked.  The four new guys are cute little Corydoras (C.trilineatus).  They are little catfish-like schooling dudes that come from peru and ecuador.  Here&#8217;s what one looks like:<br />
<img src="http://www.matthewcgood.com/gallery/main.php?g2_view=core.DownloadItem&#038;g2_itemId=2366&#038;g2_serialNumber=2" alt="Cory close up" /><br />
The pet store had them incorrectly labeled as Corydoras Julli, but they are apparently commonly mislabled this way.  When we first put them in, for the first few days, all they did was swim up and down and up and down along the right side of the tank, like a dog chasing its tail.  They were acting all crazy.<br />
They&#8217;ve calmed down a bit now, and spend most of their time looking for food along the bottom, or on the driftwood, or on plants.<br />
They scurry about very cutely.  And when they get spooked (which happens easily, sensitive little dudes), they kinda play dead..  they just go real still along the bottom of the tank and wait it out for a bit.  kinda neat i guess.<br />
<img src="http://www.matthewcgood.com/gallery/main.php?g2_view=core.DownloadItem&#038;g2_itemId=2363&#038;g2_serialNumber=2"  alt="all four corys hanging out"/><br />
Anyway, for those of you who are actually nice enough to have read this far, i&#8217;ve got a little treat for you, i think.  Assuming it works, I&#8217;ve posted a <a href="http://www.matthewcgood.com/gallery/main.php?g2_itemId=2358">video of me feeding our tetras</a>.  They zip and zoop like crazies when there&#8217;s food in the water&#8230;  its pretty cool.  Check it out.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.matthewcgood.com/blog/2008/02/14/new-fish-corys/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->