You can view all of the construction pictures here.
The controller is based on an Arduino Diecimila and is essentially just a connector shield that happens to be bigger then the Arduino. I started off with some cheap, copper clad proto board from radio shack and then mounted six 10 pin connectors for the sensors, six 3 pin connectors for the servos and a series of pins to match the Arduino connector.
I had never used this proto board stuff before and had instead preferred to simply etch a copper sheet, but overall it wasn’t bad stuff to work with. The underside shows some of the early circuits going in, but it’s really not a very complex piece of hardware. I plan on shrinking this whole thing down to the size of a double stacked arduino shield at some point.
The arduino mounts right onto the board, but backwards. It honestly makes prototyping so much easier to be able to pop the entire micro out of the sensor circuit. A brief word about the Arduino. This little micro changed the world for me. It’s not that they did anything new from a hardware perspective, it’s what they did from a design and usability perspective that makes the arduino amazing. No having to purchase a programmer, no having to mess with bootloaders, the thing is just good to go. Much respect to the Arduino Ninjas.
The connectors are just keyed 10 conductor crimp type plugs. You’ll find these things everywhere. Jamco wants almost 2 bucks for the male and female side of this connection. My local electronics recyclers wanted 15 cents. Yeah, I recycle.
The 1-wire network needs to have a 4.7k ohm pull up resistor to keep the bus hot so the internal capacitors on the sensors have a chance to charge between readings. I was about to wire in seven 4.7k resistors, but found a nice resistor pack that I was able to mount under the Arduino.
At this point, the controller was built enough that I could begin testing, and as you might expect, it didn’t work. Out comes the logic probe and the multimeter. About an hour later I make the discovery that lost me my junior Mr. Wizard badge, I hadn’t hooked up the system ground. All of the components hooked into to it and looked for ground, but it wasn’t there. So a little solder later and viola!
The controller is built and working. All of my 1-wire devices are being read except for one that seems to be totally dark. I added on a little polycarbonate base to keep the wiring off of anything metal. Always drill this stuff slow and as far away from the edges as you can. It likes to break.
And with that, the 1-wire portion of the controller was complete. It took about 2 days total when you factor in all of the wiring into the different rooms. I did have to swing things to external power, but I expected that once the servos came online, so no big deal.
I added on an LED that blinks every time a sensor is scanned and then mounted the whole thing up in the basement. I had to create a 15 foot USB cable to get the data from the controller over to my rack, but I don’t seem to have any signal problems. I have cleaned up the cables since this picture was taken, so no hating.
The next step is creating the brackets that will hold the servos close to the HVAC dampers, making either a cantilever system or just a big old servo arm to be able to get a full 90 degree swing out of the damper and then wiring that all up.
Next: Building the servos
February 8th, 2010 at 6:17 pm
Are you putting one sensor per port on the Arduino? Might be interesting to chain them to save some ports.
February 8th, 2010 at 6:42 pm
I did indeed use 1 sensor per port. The 1-wire stuff is really brilliant, but is somewhat picky in how you run it’s bus. I ran my wires in a star topology, which most people would do in this environment, one wire to each room. The 1-wire gear would rather you had, literally, one wire and that the sensors were spaced at even intervals long that wire. In fact, if you get too far out of the target design, the sensors stop working entirely which is the problem I ran into. In a star, you have the option of adding a FET based amplifier to the line and hoping that it will work, buying 1-wire hub chips or just simply doing a distinct 1-wire network per cable. I elected to do the distinct networks because it was easier, cheaper and the suggested method from Dallas Semi. It works, I would like to cut down my pin usage, but overall I’m happy.