SensorServer Transitions to Txtzyme

By: WardCunningham

2010-09-13 07:04:03

I've come to depend on my home sensor network and am continually frustrated by outages that run on for hours. I expect this to improve as I transition from Arduino with Ethernet Shield to a Txtzyme system.

img

I've supplemented the flexibility of the breadboard with equally flexible spring clip strain-relief for inbound cables. By building on foam-core, I can easily slip the whole assembly behind my workbench where it is held in place with spring-clips screwed into the back of my bench.

img

With this upgrade I've also abandoned "parasitic" power for my one-wire thermometers. Thank goodness. I now send power and ground out to every unit and bit-bang on a third wire with Txtzyme to complete the communication package.

This is a new role for Txtzyme. I've made lots of demos with Txtzyme, as you know, but now I am expecting it to provide routine service in a system of continually growing complexity.

Like the breadboards and spring clips, I'm finding my software has settled into something equally as mutable while still being sufficiently durable. The total stack is now:

I find functionality moves easily between each of these levels as needs and loads change. I'll close with one simple, but typical, example. My thermometers require 750 milliseconds to complete an analog to digital conversion. I had been timing this out in Txtzyme as "750m". This was long enough to interfere with my one-second "heartbeat blink". I moved that pause up to unix, freeing Txtzyme to serve multiple masters. Here is a scope picture of activity on two different Teensy pins:

img

The one-wire discovery, conversion pause, and then data read are on the top trace. The bottom trace is the LED power which is sometimes full on and other times modulated.

This was a one-line change, the exact form of tinkering with immediate results that keeps me interested in my own projects.

img

The code above is in the guts of my Txtzyme one-wire driver. I replace a one-way "putz" with a full turn-around "getz" just to sync up over the USB before starting a unix-level sleep. I'll leave a full discussion of Txtzyme one-wire for another post. Interested parties are, as always, welcome to browse my work in progress on GitHub.

Back to archive index