<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"
xmlns:dc="http://purl.org/dc/elements/1.1/"
>
    <title>deep darc</title>
    <link rel="alternate" type="text/html" href="http://www.deepdarc.com/" />
    <id>http://www.deepdarc.com/</id>
    <subtitle>deep and darc stuff</subtitle>
    <updated>2013-05-24T16:01:14Z</updated>
    <rights>Copyright 2005</rights>
    <generator version="0.2">darcness</generator>

        
        <entry>
            <title type="html"><![CDATA[Startling Revelations]]></title>
            <author>
                <name>darco</name>
            </author>
            <link rel="alternate" type="text/html" href="http://www.deepdarc.com/2013/05/21/startling-revelations/" />
            <id>http://www.deepdarc.com/2013/05/21/startling-revelations/</id>
                            <updated>2013-05-22T04:04:59Z</updated>
                                        <published>2013-05-22T04:04:59Z</published>
                                                <summary type="html"><![CDATA[<p>My father, Dr. Robert Bugg Quattlebaum, was born on November 23rd, 1923. To put things into prospective, he was an army medic in <em>World War II</em>. By the time he got around to having me he was 57 years old. There was clearly a bit of a generation gap between us.</p>

<p>In early 2001, my father was diagnosed with terminal liver cancer. He passed away that summer. It was a bad year. I miss him greatly.</p>

<p>Fast forward a decade or so and the world is now a totally different place. Star-trek-like computing gadgets are common. Video phones actually work and work well. You can even spit in a tube and get your DNA analyzed, giving you important information on your disease risk, for less than two-hundred dollars.</p>

<p>Which brings me to <a href="http://23andme.com/">23andme.com</a>. If you've never heard of 23andme.com, it is a relatively inexpensive chip-based genetic profiling service. You start by ordering a kit, spitting in a tube, and mailing it off to them for analysis. There is a strong social aspect to the website which allows you to find both distant and close relatives.  My wife and I got a great deal a while back and signed up. </p>

<p>During the sign up process, I found some of the warnings to be curious. Stuff to the effect of, <em>'you can't unlearn what you find out from this, so if you can't handle the truth then you may not want to consider this service'</em>.</p>

<p>This got me to thinking: I bet a few people learn some rather startling information. Imagine signing up and then finding that you have a 25% genetic match with... A childhood friend who lived down the street. <em>Oops.</em> Someone just got busted. </p>

<p>There are many variations but they all cause a bit of an identity crisis—and potentially a strong sense of betrayal. Clearly, the 23andme.com experience has the potential to be profoundly shocking and life changing. But, hey, I'm not one of <em>those</em> people, right? No worries here.</p>

<div><a href="http://www.deepdarc.com/2013/05/21/startling-revelations/">Read the rest of this entry &raquo;</a></div>
]]></summary>
        </entry>
        
        <entry>
            <title type="html"><![CDATA[Comment Fail]]></title>
            <author>
                <name>darco</name>
            </author>
            <link rel="alternate" type="text/html" href="http://www.deepdarc.com/2013/05/21/comment-fail/" />
            <id>http://www.deepdarc.com/2013/05/21/comment-fail/</id>
                            <updated>2013-05-22T03:36:52Z</updated>
                                        <published>2013-05-22T03:36:52Z</published>
                                                <summary type="html"><![CDATA[<p>It very much saddens me to discover that the comments table from the MySQL database has for some reason disappeared during the migration process. Poof. Gone. I have no idea what happened to it, but it is gone without a trace. As a result, all of the comments on this website have been lost. This is quite distressing, especially considering the immense value the comment threads on <a href="http://www.deepdarc.com/2010/11/27/hacking-christmas-lights/">various</a> <a href="http://www.deepdarc.com/miredo-osx/">posts</a> added.</p>

<p>If I somehow manage to recover the comments I will do so, but at the moment it looks like a total loss.</p>
]]></summary>
        </entry>
        
        <entry>
            <title type="html"><![CDATA[Hosting Fail]]></title>
            <author>
                <name>darco</name>
            </author>
            <link rel="alternate" type="text/html" href="http://www.deepdarc.com/2013/05/07/hosting-fail/" />
            <id>http://www.deepdarc.com/2013/05/07/hosting-fail/</id>
                            <updated>2013-05-08T04:26:09Z</updated>
                                        <published>2013-05-08T04:26:09Z</published>
                                                <summary type="html"><![CDATA[<p>Late last week, my web and email hosting provider decided to switch servers. It was a total cluster-fudge. My server-side email sorting script (via procmail) totally broke. SSH logins were no longer allowed. And let's not even go over the website itself—I couldn't even figure out where it was serving files from.</p>

<p>With my patience running low and my annoyance high, I decided that this was a good opportunity to switch to a VPS at a different company. It has been a slow process, but things are now starting to slowly come back online. Comments are still busted, but I'll get those back online soon.</p>

<p>Anyway, In light of this mess, I hope to totally revamp the website at some point over the next few weeks so that it will be easier to maintain and nicer to look at. </p>
]]></summary>
        </entry>
        
        <entry>
            <title type="html"><![CDATA[Hexbright]]></title>
            <author>
                <name>darco</name>
            </author>
            <link rel="alternate" type="text/html" href="http://www.deepdarc.com/2013/03/05/hexbright/" />
            <id>http://www.deepdarc.com/2013/03/05/hexbright/</id>
                            <updated>2013-03-05T22:33:03Z</updated>
                                        <published>2013-03-05T22:33:03Z</published>
                                                <summary type="html"><![CDATA[<p>Over a year and a half ago, I put some money into the <a href="http://www.kickstarter.com/projects/527051507/hexbright-an-open-source-light">Hexbright Kickstarter</a> and promptly forgot about it. Earlier this week a box appeared on my doorstep with a brand-new <a href="http://www.hexbright.com/products/hexbright-flex">Hexbright Flex</a>, "the world's first open-source LED light".</p>

<p>Notable features:</p>

<ul>
<li>Light output over 500 Lumens. CREE XM-L U2 LED.</li>
<li>TIR (Total internal refraction) lens.</li>
<li>Waterproof solid aluminum housing.</li>
<li>Comes with a <a href="http://www.hexbright.com/products/hexbright-lithium-ion-rechargeable-battery">3.7v 2400mAh 18650 rechargeable lithium-ion battery</a>.</li>
<li>USB rechargeable, comes with micro-usb cable.</li>
<li>USB programmable. It works just like an Arduino...!</li>
<li>Built-in three-axis accelerometer. (!?)</li>
</ul>

<p>This flashlight is probably one of the most over-engineered devices I own, and <em>I love it</em>, but I'm sure you are wondering, "It's a f'ing flashlight. Why bother programming for it? There is only so many things you can do with one button and 500 lumen LED..."</p>

<p>Well, I thought that, too. But after trying the factory firmware and a few of the samples, I realized that this is actually a very interesting human interface problem. Just how <em>should</em> a flashlight behave? What behavior makes it feel <em>right</em>? What is the bare minimum that a flashlight needs to be able to do to be considered seriously?</p>

<div><a href="http://www.deepdarc.com/2013/03/05/hexbright/">Read the rest of this entry &raquo;</a></div>
]]></summary>
        </entry>
        
        <entry>
            <title type="html"><![CDATA[Introducing SMCP]]></title>
            <author>
                <name>darco</name>
            </author>
            <link rel="alternate" type="text/html" href="http://www.deepdarc.com/2013/01/29/introducing-smcp/" />
            <id>http://www.deepdarc.com/2013/01/29/introducing-smcp/</id>
                            <updated>2013-01-29T20:30:10Z</updated>
                                        <published>2013-01-29T20:30:10Z</published>
                                                <summary type="html"><![CDATA[<p>As some of you know, I've been working on a <a href="http://en.wikipedia.org/wiki/Constrained_Application_Protocol">CoAP</a> stack for embedded devices for some time now. Things have gotten to the point now where I'd like see if other people are interested in using it and/or contributing. So today I am announcing that I am making my first release: <a href="https://github.com/darconeous/smcp/tree/smcp-0.6">SMCP-0.6</a>.</p>

<div><a href="http://www.deepdarc.com/2013/01/29/introducing-smcp/">Read the rest of this entry &raquo;</a></div>
]]></summary>
        </entry>
        
        <entry>
            <title type="html"><![CDATA[Google Plus]]></title>
            <author>
                <name>darco</name>
            </author>
            <link rel="alternate" type="text/html" href="http://www.deepdarc.com/2012/07/09/google-plus/" />
            <id>http://www.deepdarc.com/2012/07/09/google-plus/</id>
                            <updated>2012-07-10T05:27:54Z</updated>
                                        <published>2012-07-10T05:27:54Z</published>
                                                <summary type="html"><![CDATA[<p>I seem to be one of those rare people who don't actually work for Google, but love <a href="http://plus.google.com/">Google Plus</a> anyway. (We do exist!) In case you've been wondering what I've been up to, your best bet is to <a href="http://www.google.com/profiles/darconeous">follow me</a> there. Unlike my Facebook account, my Google Plus profile is public: so everyone should be able to follow me.</p>

<p>I'll make longer, more detailed, more formal posts here when I have time, but for the vast majority of my posts, comments, and pictures will be available only via Google Plus.</p>

<p>Again: If you want to see the cool stuff that I'm up to, <a href="https://plus.google.com/112605652687169110943">follow me on Google Plus</a>.</p>
]]></summary>
        </entry>
        
        <entry>
            <title type="html"><![CDATA[Radio Frequency URI Scheme Parser]]></title>
            <author>
                <name>darco</name>
            </author>
            <link rel="alternate" type="text/html" href="http://www.deepdarc.com/2011/11/06/x-freq-parser/" />
            <id>http://www.deepdarc.com/2011/11/06/x-freq-parser/</id>
                            <updated>2011-11-06T19:37:30Z</updated>
                                        <published>2011-11-06T19:37:30Z</published>
                                                <summary type="html"><![CDATA[<p>A while back I informally proposed the <a href="http://www.deepdarc.com/2011/09/30/x-freq-uri/">radio-frequency URI scheme</a>,
<code>x-freq</code>. I've since written a simple parser for this scheme so that if anyone wants
to adopt it that they can do so as easily and correctly as
possible. I've released this code into the public domain<sup><a href="http://www.deepdarc.com/2011/11/06/x-freq-parser/#pd">1</a></sup>. You can find it
<a href="https://github.com/darconeous/freq-uri-parser">here</a> on Github.</p>

<p>The incentive for using this code instead of rolling your own
<code>x-freq</code> URI parser is that implementing a correct URI parser is a
deceivingly difficult task. I wrote this because I didn't want
everyone who wanted to use the <code>x-freq</code> URI in their programs to
end up writing their own slightly broken parsers. People invariably
tend to not read specs for this sort of thing and just go on their
gut.  I'd like to avoid that by providing this canonical implementation
to the public domain. You are free to use and abuse this source
code to your heart's content, with or without attribution.</p>

<p>To put it bluntly, this code is far more likely to be correct than
what you would likely write in a short period of time. If you want
to use <code>x-freq</code> in your C program, at least use this code as a starting
point.</p>

<p>If you happen to find problems, bugs, or want to suggest
improvements, check out the
<a href="https://github.com/darconeous/freq-uri-parser">project page on Github</a>.</p>

<div><a href="http://www.deepdarc.com/2011/11/06/x-freq-parser/">Read the rest of this entry &raquo;</a></div>
]]></summary>
        </entry>
        
        <entry>
            <title type="html"><![CDATA[Windows and Embedded Development]]></title>
            <author>
                <name>darco</name>
            </author>
            <link rel="alternate" type="text/html" href="http://www.deepdarc.com/2011/10/22/windows-and-embedded-dev/" />
            <id>http://www.deepdarc.com/2011/10/22/windows-and-embedded-dev/</id>
                            <updated>2011-10-22T07:58:08Z</updated>
                                        <published>2011-10-22T07:58:08Z</published>
                                                <summary type="html"><![CDATA[<p>I am really getting frustrated by the fact that the development tools for just about every embedded platform are Windows only. No Linux support, and most certainly no support for OSX. (The same thing applies to amateur radio software, but that is a rant for a different post)</p>

<p>Writing and compiling the code isn't (usually) the problem—GCC and SDCC are both well supported on Linux and OSX, and between the two I can write code for nearly every architecture I would ever need to. The problem I'm  talking about is support for devices like programmers and debuggers—devices necessary for actually getting the code onto the chip I'm trying to develop for.</p>

<p>Nothing quite dampens my enthusiasm for a platform like having to fire-up VMWare to upload new code or debug a problem. For example, I recently picked up an STM32F4-Discovery board from ST Microelectronics, which is a development board for their nice 32-bit ARM Cortex-M4 STM32F4 microcontrollers. The board has two USB ports: one connected directly to the STM32F4 microcontroller, and the other dedicated for in-circuit programming. What software do you use to program this lovely demo board? The ST-Link software. What is the only platform it runs on? Windows.</p>

<p>What a waste of time.</p>

<p>I understand that development resources are limited for things like this, and that these companies want to target the platform that they perceive is used by the majority of their customers. However times are changing.</p>

<p>The thing is, the majority of my frustration could be relieved by manufacturers doing one simple thing: document the USB protocols for their programmers and debuggers. If I had this, I could write the programs necessary to program and debug their platforms on Linux (or OSX) <em>myself</em>.</p>

<p>I found this situation so frustrating that I was actually considering snooping the USB traffic of these devices so I could reverse engineer the protocol. I've since realized that there are much more interesting things that I could be doing with my limited free time. If the manufacturer can't even take the simple step of documenting their protocol then their platform just isn't worth my time.</p>

<p><strong>Hey, TI and ST</strong>: If you are listening, please make an effort to at least document the USB protocol that your USB-based programmers and debuggers are using. If you could do that, then people like me will fill in the gaps in your development environment for you. Sounds like a good deal, no?</p>
]]></summary>
        </entry>
        
        <entry>
            <title type="html"><![CDATA[Radio Frequency URI]]></title>
            <author>
                <name>darco</name>
            </author>
            <link rel="alternate" type="text/html" href="http://www.deepdarc.com/2011/09/30/x-freq-uri/" />
            <id>http://www.deepdarc.com/2011/09/30/x-freq-uri/</id>
                            <updated>2011-10-01T03:15:34Z</updated>
                                        <published>2011-10-01T03:15:34Z</published>
                                                <summary type="html"><![CDATA[<p>Over the past few weeks, I've been thinking that it would be useful to have a URI format for describing a radio frequency or channel. Such a URI scheme would be useful for hyperlinking to a specific frequency from a link and for exchanging radio frequency lists between devices, programs, and people. (Think QR-codes)</p>

<p>I looked around to see if such a URI scheme had been developed, but I couldn't find anything. Since I think such a scheme would be useful, and I would like to use such a scheme in the future, I decided to go ahead and throw together an informal proposal for what such a scheme would look like and how it would work.</p>

<p>For now the scheme identifier is "<code>x-freq</code>" because it is experimental at this point. If this scheme is ever formalized into a real standard then the "<code>x-</code>" prefix would be dropped.</p>

<p>Here are the use cases that I would like to be able to specify this this URI scheme, along with some examples:</p>

<ul>
<li>A specific single frequency.<br />
<small>Ex: &lt;x-freq:107.9m></small></li>
<li>A frequency with a repeater input shift.<br />
<small>Ex: &lt;x-freq:145.23m-0.6></small></li>
<li>Split receive and transmit frequencies.<br />
<small>Ex: &lt;x-freq:145.93m/435.75></small></li>
<li>Modulation type and other parameters.<br />
<small>Ex: &lt;x-freq:145.23m-0.6?m=fm;dv=5;ts=100></small></li>
</ul>

<div><a href="http://www.deepdarc.com/2011/09/30/x-freq-uri/">Read the rest of this entry &raquo;</a></div>
]]></summary>
        </entry>
        
        <entry>
            <title type="html"><![CDATA[ARISSat-1]]></title>
            <author>
                <name>darco</name>
            </author>
            <link rel="alternate" type="text/html" href="http://www.deepdarc.com/2011/09/25/arissat-1/" />
            <id>http://www.deepdarc.com/2011/09/25/arissat-1/</id>
                            <updated>2011-09-25T23:24:25Z</updated>
                                        <published>2011-09-25T23:24:25Z</published>
                                                <summary type="html"><![CDATA[<p><a href="http://www.deepdarc.com/module/album/view/1480"><img align="middle" src="http://www.deepdarc.com/module/album/getpic/pic-1480-medium.png" alt="ARISSAT-1 SSTV Image (Filtered)" width="320" height="240" style="border: 0;margin-left:auto; margin-right:auto; display:block;"  /></a></p>

<p>Hey look! It's Earth! I think...</p>

<p>This is the first <a href="http://en.wikipedia.org/wiki/Slow-scan_television"><acronym title="Slow-Scan Television">SSTV</acronym></a> image I've ever captured. It was sent from <a href="http://www.arissat1.org/">ARISSat-1</a> at 2011-09-25T18:47:11Z and recorded on my computer using a <a href="http://www.yaesu.com/indexVS.cfm?cmd=DisplayProducts&amp;ProdCatID=111&amp;encProdID=03484E782FF9B7DFA27AEE086A68F530&amp;DivisionID">Yaesu VX-8DR</a> and a homebrew <a href="http://en.wikipedia.org/wiki/J-pole_antenna">j-pole</a> I recently constructed. Yeah, it looks like crap, but... well... IT'S FROM <em>SPACE</em>!</p>

<p>The reason it craps out at the end was because of doppler shift, and the fact that I'm not dynamically tuning my radio to account for it. I guess I need to get a computer-controlled radio next... And a good yagi.</p>
]]></summary>
        </entry>
        
        <entry>
            <title type="html"><![CDATA[Amateur Radio]]></title>
            <author>
                <name>darco</name>
            </author>
            <link rel="alternate" type="text/html" href="http://www.deepdarc.com/2011/09/09/amateur-radio/" />
            <id>http://www.deepdarc.com/2011/09/09/amateur-radio/</id>
                            <updated>2011-09-09T19:01:56Z</updated>
                                        <published>2011-09-09T19:01:56Z</published>
                                                <summary type="html"><![CDATA[<p>The home automation project that I've discussed a lot on this blog got me interested in how radios work. When I started it all seemed a bit magical.</p>

<p>Then I went ahead and built the <a href="http://www.deepdarc.com/2011/02/28/im-me-spectrum-analyzer/">IM-Me Spectrum Analyzer</a>, and I was fascinated. I could now see how the radio spectrum was being used in real-time. I started to wonder, what were those blips around 430-460MHz? It turned out a large chunk of it was an amateur radio band. My curiosity piqued, and I knew what had to happen next.</p>

<p>I got my <a href="http://en.wikipedia.org/wiki/Amateur_radio">amateur radio</a> license (Callsign: <tt>N6DRC</tt>) a few weeks ago, and I love it. I highly recommend anyone even remotely interested in electronics, radio, or public safety to go out and get at least the technician-class license. Best twelve bucks I ever spent.</p>

<p>From the public safety perspective, when <acronym title="The Shit Hits The Fan">TSHTF</acronym> and your power is out and your cell phone doesn't work the hams are the only ones who can communicate easily. I don't want to be just another casualty who is at the mercy of others when the big one hits. I want to know what's going on around me in an emergency situation, and be able to let others know when I or someone I care about needs help.</p>

<p>From the curious engineer perspective, the deeper I dive into this stuff the more parallels I see with the world around me and the projects I've been working on. For example, a new approach for the soil moisture sensor might be to treat the length of the sensor as an unterminated transmission line. My measuring the time and magnitude of the reflections I should be able to calculate the <a href="http://en.wikipedia.org/wiki/Relative_permittivity">dielectric constant</a> of the soil and thus determine its moisture content. Maybe.</p>
]]></summary>
        </entry>
        
        <entry>
            <title type="html"><![CDATA[Square One]]></title>
            <author>
                <name>darco</name>
            </author>
            <link rel="alternate" type="text/html" href="http://www.deepdarc.com/2011/09/08/square-one/" />
            <id>http://www.deepdarc.com/2011/09/08/square-one/</id>
                            <updated>2011-09-08T08:35:54Z</updated>
                                        <published>2011-09-08T08:35:54Z</published>
                                                <summary type="html"><![CDATA[<p><a href="http://www.deepdarc.com/module/album/view/1478"><img align="right" src="http://www.deepdarc.com/module/album/getpic/pic-1478-thumb.jpeg" alt="bad-sensors/DSC_2389" width="150" height="115" style="border: 0;float:right; margin-left:2px; margin-top: 2px;"  /></a>
It has been a few weeks since I have updated this blog about how the whole soil moisture sensor project is going. I've had lots of ups and downs along the way, and I've learned quite a bit more about electrical engineering and materials science that I didn't have a firm grasp of before I started this project. Unfortunately, I've encountered a significant technical setback which necessitates abandoning my current approach and all but starting over.</p>

<div><a href="http://www.deepdarc.com/2011/09/08/square-one/">Read the rest of this entry &raquo;</a></div>
]]></summary>
        </entry>
        
        <entry>
            <title type="html"><![CDATA[Hackable Christmas Lights at Costco?]]></title>
            <author>
                <name>darco</name>
            </author>
            <link rel="alternate" type="text/html" href="http://www.deepdarc.com/2011/09/01/hackable-xmas-lights-at-cosco/" />
            <id>http://www.deepdarc.com/2011/09/01/hackable-xmas-lights-at-cosco/</id>
                            <updated>2011-09-01T17:10:16Z</updated>
                                        <published>2011-09-01T17:10:16Z</published>
                                                <summary type="html"><![CDATA[<p>I've heard that the <a href="http://www.deepdarc.com/2010/11/27/hacking-christmas-lights/">hackable RGB christmas lights I blogged about</a> are once again available at <a href="http://www.costco.com/">Costco</a>. I haven't had a chance to run by Costco in the past few days, but when I head over to pick that up I'll be sure to grab a string and see if it uses the same protocol. Who knows what other sorts of hackable holiday cheer they might have.</p>

<p>I've run out of <a href="http://imageshack.us/photo/my-images/26/tazochailatte3x946ml208.jpg/">Tazo Chai Latté</a> mix, so a Costco run is imminent. <small><em>twitch</em></small></p>
]]></summary>
        </entry>
        
        <entry>
            <title type="html"><![CDATA[Capacitance Sensing]]></title>
            <author>
                <name>darco</name>
            </author>
            <link rel="alternate" type="text/html" href="http://www.deepdarc.com/2011/08/04/capacitance-sensing/" />
            <id>http://www.deepdarc.com/2011/08/04/capacitance-sensing/</id>
                            <updated>2011-08-04T23:44:33Z</updated>
                                        <published>2011-08-04T23:44:33Z</published>
                                                <summary type="html"><![CDATA[<p><small><strong>Update</strong>: After building out a few more boards and doing some additional testing, it seems as though things aren't quite as bad as I originally portrayed them in this post—the boards I made may still be usable as designed, albeit with a few quirks. However, I will be incorporating the design changes outlined below into the project for future devices to improve the consistency and performance.</small></p>

<p>After building out a few of the soil moisture sensor boards, I'm starting to think I may have been a bit hasty in <a href="http://www.deepdarc.com/2011/07/20/sensor-panel/">ordering forty of them</a>. The biggest problem I'm running into is <a href="http://en.wikipedia.org/wiki/Noise_(electronics)">noise</a>. <em>Lots</em> of noise. Practically <a href="http://en.wikipedia.org/wiki/Noise_reduction">unfilterable</a> noise, the nature of which is entirely dependent on material the sensor is embedded in. It is as if the sensing plane is acting like a large antenna, picking up all sorts of crap.</p>

<p>Some noise is actually a good thing, because it acts as a <a href="http://en.wikipedia.org/wiki/Dither">dither</a>. allows me to super sample the capacitance and get a filtered result that is of a higher resolution than that of a single sample. Without any noise supersampling would not yield any better results. </p>

<p>But <em>this</em> kind of noise is on a whole different level. About the only thing these sensors (as currently designed) are good for at the moment is as a touch sensor... Which happens to be exactly what the capacitive circuit I borrowed from the QTouch guidelines was originally intended for.</p>

<p><a href="http://www.deepdarc.com/module/album/view/1475"><img align="middle" src="http://www.deepdarc.com/module/album/getpic/pic-1475-medium.png" alt="qtouch-sensor" width="400" height="350" style="border: 0;margin-left:auto; margin-right:auto; display:block;"  /></a><center><small>QTouch capacitive sensing channel schematic from the <a href="http://www.atmel.com/dyn/resources/prod_documents/doc8207.pdf">Atmel QTouch Library User Guide</a>.</small></center></p>

<p>I am not an electrical engineer, so when the <a href="http://www.atmel.com/dyn/resources/prod_documents/doc10620.pdf">QTouch sensor design guide</a> said on page 2-1 that the measurement circuit was capable of measuring capacitance down to a few femto-farads, I believed it—even though the circuit made no sense to me (See figure above). Initial testing seemed to indicate that the method did work to some degree, so I went with it. I now see that was a mistake; I should have trusted my instincts more. </p>

<p>This is not to say that my original capacitance sensing circuit (which simply discharged a capacitor thru a known resistance) was any better. Looking back at it, I think that it would likely be just as susceptible to noise as the QTouch design.</p>

<p>In order to keep moving forward with this project, I've come up with an entirely different circuit that should hopefully prove to be far less noisy than the previous methods: </p>

<p><a href="http://www.deepdarc.com/module/album/view/1476"><img align="middle" src="http://www.deepdarc.com/module/album/getpic/pic-1476-medium.png" alt="darco-sensor" width="313" height="314" style="border: 0;margin-left:auto; margin-right:auto; display:block;"  /></a><center><small>New low-noise capacitive sensing circuit.</small></center></p>

<p>The circuit actually works in the way that I originally imagined how the QTouch sensing circuit would work. What we do is charge up the capacitor we want to measure using a pulse, and then wait a little bit for this charge to distribute to the holding capacitor. We calculate the capacitance of the target by counting the number of pulses it takes before the sensing pin goes high.</p>

<p>While we end up operating this circuit in close to the same way as the QTouch method, the results are interpreted a bit differently. For example with the previous capacitance measurement fewer pulses meant less capacitance and more pulses meant more capacitance. In this circuit however the opposite is true: fewer pulses means more capacitance, and more pulses means less.</p>

<p>There are three things I really like about this circuit:</p>

<ol>
<li>It effectively has a built-in low-pass filter, so it should be less prone to noise.</li>
<li>It doesn't increase the part count. </li>
<li>There are upper and lower bounds on the capacitance reading, whereas with the previous method there was no upper bound on the number of pulses required to measure a capacitance. </li>
</ol>

<p>Unfortunately the resulting pulse count does not have a linear relationship with the actual capacitance. This means that some sort of compensation (via a look-up table or other methods) will have to be performed to get a linear output.</p>

<h2>New sensor orientation</h2>

<p>Since I'm going to be re-designing the board yet again, I might as well make a few more radical changes, right?</p>

<p>One of the problems with this sensor is the fact that the electrodes are not only parallel, but they are also co-linear to each other. Ideally a capacitor is made like a sandwich: two electrodes with a dielectric between them.</p>

<p>While the "ideal" case might not be such a good idea in this case, I think I may have come up with a compromise: have two circuit boards that slide together so that the electrodes are oriented 90° from each other. I took a Dremel to two of the boards to start to put together a prototype:</p>

<p><a href="http://www.deepdarc.com/module/album/view/1477"><img align="middle" src="http://www.deepdarc.com/module/album/getpic/pic-1477-medium.png" alt="another-prototype" width="400" height="104" style="border: 0;margin-left:auto; margin-right:auto; display:block;"  /></a><center><small>Dual-board moisture sensor prototype. Work in progress.</small></center></p>

<p>As an added bonus, this sensor should be significantly more sturdy than the previous single-board design, while being more sensitive. Of course, it could just not work at all. We'll see.</p>

<div><a href="http://www.deepdarc.com/2011/08/04/capacitance-sensing/">Read the rest of this entry &raquo;</a></div>
]]></summary>
        </entry>
        
        <entry>
            <title type="html"><![CDATA[Moisture Sensors Arrive]]></title>
            <author>
                <name>darco</name>
            </author>
            <link rel="alternate" type="text/html" href="http://www.deepdarc.com/2011/07/20/sensor-panel/" />
            <id>http://www.deepdarc.com/2011/07/20/sensor-panel/</id>
                            <updated>2011-07-20T22:48:20Z</updated>
                                        <published>2011-07-20T22:48:20Z</published>
                                                <summary type="html"><![CDATA[<p>The circuit boards for my <a href="http://www.deepdarc.com/soil-moisture-sensor/">soil moisture sensors</a> arrived yesterday. I ordered four panels with ten sensors each, for a total of forty sensors. I ended up receiving five panels—25% more than I ordered—at no additional cost.</p>

<p><a href="http://www.deepdarc.com/module/album/view/1474"><img align="middle" src="http://www.deepdarc.com/module/album/getpic/pic-1474-medium.jpeg" alt="sensor-panel" width="400" height="365" style="border: 0;margin-left:auto; margin-right:auto; display:block;"  /></a></p>

<p>I populated one sensor last night and put it thru a quick smoke test this morning. No smoke, and it seems to be working fine. Unfortunately I won't have time to populate any more until next week.</p>

<p>The carefully observant will notice that despite <a href="http://www.deepdarc.com/2011/06/28/final-soil-moisture-sensor-desig/">my previous claim</a> that I had created the "final" layout weeks ago, the layout has indeed changed once again. It turned out the edge connector wasn't the best idea, so I've settled on a <a href="http://search.digikey.com/scripts/DkSearch/dksus.dll?keywords=A26757-ND">shrouded locking 3x2 right-angle header</a> for the connector.</p>
]]></summary>
        </entry>
        
        <entry>
            <title type="html"><![CDATA[Strange Oscillations]]></title>
            <author>
                <name>darco</name>
            </author>
            <link rel="alternate" type="text/html" href="http://www.deepdarc.com/2011/07/05/strange-oscillations/" />
            <id>http://www.deepdarc.com/2011/07/05/strange-oscillations/</id>
                            <updated>2011-07-05T19:49:12Z</updated>
                                        <published>2011-07-05T19:49:12Z</published>
                                                <summary type="html"><![CDATA[<p>I stuck one of my soil moisture sensors in a potted plant last Friday before I left for a weekend trip. It was working fantastically. I watched as the soil moisture reading increased as I added water to the plant—working exactly as expected. However, when I returned Monday evening, I noticed that the values were all over the place. I took some samples on 100ms intervals and plotted the results:</p>

<p><a href="http://www.deepdarc.com/module/album/view/1470"><img align="middle" src="http://www.deepdarc.com/module/album/getpic/pic-1470-medium.png" alt="soil-moisture-osc" width="400" height="192" style="border: 0;margin-left:auto; margin-right:auto; display:block;"  /></a></p>

<p>Oh my. It's oscillating with an amplitude of around 10% of the capacitance reading. Not only that, my readings are an order of magnitude larger than what I was getting on Friday—when if anything they should be smaller.</p>

<p>I'm wondering if the 60Hz mains frequency is somehow affecting my readings, which would imply that what I'm looking at is the alias of 60Hz sampled at whatever interval I'm polling sensor. The power company regularly adjusts the frequency by ±1Hz or so, which could explain why I didn't notice the ripple earlier (Slight changes in the mains frequency would yield large changes in the alias frequency). This doesn't explain the large increase in the reading, however. </p>

<p>I also noticed some interesting behavior back on Friday. Whenever I grasped the stem of the plant, it caused the moisture level to increase. This makes sense, now that I think about it, but the implications are that each soil moisture sensor may have to be individually calibrated for differences in soil type, amount of soil in potted plants, etc. Not ideal, but not a show-stopper either.</p>

<p>Obviously, still some kinks to work out.</p>

<p>I hope to have the wire protocol solidified this week, at which point I'll actually deploy a few of these things in the yard to see what kind of readings I get. Should be interesting.</p>
]]></summary>
        </entry>
        
        <entry>
            <title type="html"><![CDATA[Final Soil Moisture Sensor Design]]></title>
            <author>
                <name>darco</name>
            </author>
            <link rel="alternate" type="text/html" href="http://www.deepdarc.com/2011/06/28/final-soil-moisture-sensor-desig/" />
            <id>http://www.deepdarc.com/2011/06/28/final-soil-moisture-sensor-desig/</id>
                            <updated>2011-06-28T19:18:28Z</updated>
                                        <published>2011-06-28T19:18:28Z</published>
                                                <summary type="html"><![CDATA[<p>I think this is the final re-design of the soil moisture sensor that I will be sending off to <a href="http://www.goldphoenixpcb.biz/">Gold Phoenix</a> for panelization and a small production run.</p>

<p><a href="http://www.deepdarc.com/module/album/view/1467"><img align="middle" src="http://www.deepdarc.com/module/album/getpic/pic-1467-medium.png" alt="sms-2011-06-27-full" width="400" height="24" style="border: 0;margin-left:auto; margin-right:auto; display:block;"  /></a></p>

<p><a href="http://www.deepdarc.com/module/album/view/1469"><img align="middle" src="http://www.deepdarc.com/module/album/getpic/pic-1469-medium.png" alt="sms-2011-06-27-zoom" width="400" height="181" style="border: 0;margin-left:auto; margin-right:auto; display:block;"  /></a></p>

<p>Just seven parts: two capacitors, three resistors, one <a href="http://www.atmel.com/dyn/products/product_card.asp?part_id=3610">ATTiny25</a> and a circuit board. I switched over to largish surface-mount parts and an edge connector instead of a standard 3x2 header. This board will be able to temperature-compensate using the on-board temperature sensor on the ATTiny25. I've also increased the length of the sensor to nine inches. Here is the schematic:</p>

<p><a href="http://www.deepdarc.com/module/album/view/1468"><img align="middle" src="http://www.deepdarc.com/module/album/getpic/pic-1468-medium.png" alt="sms-2011-06-27-sch" width="400" height="252" style="border: 0;margin-left:auto; margin-right:auto; display:block;"  /></a></p>

<p>By my calculations I should get back around twenty to thirty boards. Should be more than enough to cover the front and back lawns and the garden. Now to just work out how to wire them all up... </p>
]]></summary>
        </entry>
        
        <entry>
            <title type="html"><![CDATA[Soil Moisture Sensor Update]]></title>
            <author>
                <name>darco</name>
            </author>
            <link rel="alternate" type="text/html" href="http://www.deepdarc.com/2011/06/24/soil-moisture-sensor-update/" />
            <id>http://www.deepdarc.com/2011/06/24/soil-moisture-sensor-update/</id>
                            <updated>2011-06-24T21:43:55Z</updated>
                                        <published>2011-06-24T21:43:55Z</published>
                                                <summary type="html"><![CDATA[<p>I've heard a lot of feedback on my <a href="http://www.deepdarc.com/2011/01/08/soil-moisture-sensor-update/">soil moisture sensor</a> project, and I wanted to update everyone on how it is going.</p>

<p>Last weekend I did a lot of work on these devices and I've made some significant progress. I now have the firmware to a point where I can remotely communicate with the sensor, perform readings, etc. I've also made a few observations after working with the most recent board layout.</p>

<div><a href="http://www.deepdarc.com/2011/06/24/soil-moisture-sensor-update/">Read the rest of this entry &raquo;</a></div>
]]></summary>
        </entry>
        
        <entry>
            <title type="html"><![CDATA[sf2email]]></title>
            <author>
                <name>darco</name>
            </author>
            <link rel="alternate" type="text/html" href="http://www.deepdarc.com/2011/05/11/sf2email/" />
            <id>http://www.deepdarc.com/2011/05/11/sf2email/</id>
                            <updated>2011-05-11T20:30:39Z</updated>
                                        <published>2011-05-11T20:30:39Z</published>
                                                <summary type="html"><![CDATA[<p>Now that I'm a <a href="http://www.deepdarc.com/2011/04/18/git-out/">fully-committed git user</a>, I now find myself using the <code>git svn clone</code> command fairly often. One problem with this command is how the authors are translated: Subversion uses simple usernames for the author-ids, whereas git uses full email address lines. You can supply an 'authors file' for git to use to look up author email addresses, but for large projects on <a href="http://sf.net/">Sourceforge</a> that just becomes unwieldy.</p>

<p>Luckily, recent versions of <code>git-svn</code> support the <tt>&#x002D;-authors-prog</tt> argument, which allows you to specify a program to use for the lookup process instead of an authors file. With the right authors-prog, you can have <code>git-svn</code> automatically look up the name and email address for a given Sourceforge user id. And that's exactly what <a href="http://gist.github.com/935424">this bash script I wrote</a> does.</p>

<p>If you want to make sure the program is used for future fetches from svn, then set <code>svn.authorsprog</code> to point to the location of <code>sf2email</code>:</p>

<blockquote>
<pre><code>git config svn.authorsprog ~/bin/sf2email
</code></pre>
</blockquote>

<div><a href="http://www.deepdarc.com/2011/05/11/sf2email/">Read the rest of this entry &raquo;</a></div>
]]></summary>
        </entry>
        
        <entry>
            <title type="html"><![CDATA[Git Out]]></title>
            <author>
                <name>darco</name>
            </author>
            <link rel="alternate" type="text/html" href="http://www.deepdarc.com/2011/04/18/git-out/" />
            <id>http://www.deepdarc.com/2011/04/18/git-out/</id>
                            <updated>2011-04-18T07:40:48Z</updated>
                                        <published>2011-04-18T07:40:48Z</published>
                                                <summary type="html"><![CDATA[<p>About a month ago, I started making a concerted effort to use <a href="http://en.wikipedia.org/wiki/Git_(software)">Git</a>. I mean, heck, <a href="http://www.synfig.org/">Synfig</a> development has been using Git for a while now, <em>and I wrote it</em>. I figured it was about time to learn once and for all what all the fuss was about.</p>

<p>I had been aware of Git for years, but could never quite wrap my <a href="http://en.wikipedia.org/wiki/Subversion_(software)">Subversion</a>-oriented head around it. I've known about <a href="http://en.wikipedia.org/wiki/Linus_Torvalds">Linus Torvalds</a>' infamous disdain for version control since 2004. Like him, I learned to hate <a href="http://en.wikipedia.org/wiki/CVS_(software)">CVS</a>. Unlike him I was quite fond of Subversion, and found Linus' complete dismissal of it confusing. It wasn't until <a href="http://en.wikipedia.org/wiki/Bitkeeper">Bitkeeper</a> that Linus finally figured out that there was something to this whole version control thing.</p>

<blockquote>
  <p>BitKeeper was not only the first source control system that I ever felt was worth using at all, it was also the source control system that taught me why there's a point to them, and how you actually can do things. <small>— Linus Torvalds <sup><a href="http://www.youtube.com/watch?v=4XpnKHJAok8">1</a></sup></small></p>
</blockquote>

<p>Now, after a month of using Git heavily, I finally understand what Linus was talking about. I am now a convert—Git represents a clearly superior way of group collaboration.</p>

<p>Previously, all of my code was hosted on <a href="http://svn.deepdarc.com/">svn.deepdarc.com</a>. From now on, all of my publicly-available open-source projects will be available from <a href="http://github.com/darconeous">github.com/darconeous</a>. I've already migrated most of the public projects over (Including ybox2 stuff), and this is where all future development will take place. </p>

<p>I'll be updating past posts and pages to point to the new Github-hosted repositories over the next week or two. If I've skipped migrating a project, let me know and I'll make sure I get it copied over.</p>
]]></summary>
        </entry>
        
</feed>
