Differduino

A Project by Nateful



Open source temperature differential controller based on the Arduino prototyping platform


The Parts

The Circuit

The Code



Coming soon! The differduino will soon be available as a single circuit board!

Features:
-based on established duino clone circuits
-designed to use the 812MJ Wiznet ethernet module
-on board relay circuitry
-screw terminals for all the main connections
, or alternately .1" header pins
-lcd header for an lcd option
-voltage divider circuit for sensing power supply voltage, or a seperate DC voltage
-through holes for 3mm screw terminals,
-small 6x6 .1" prototyping area with ground and 5v buss.
-versitile board that can be used for all sorts of arduino projects, not just solar hot water.
-

Expected to be available for sale in May, initally as just the circuit board, and then later a full kit.

Here is a picture of the completed and working proto-type.




And here is the next iteration, and very close to the one that will actually be sold.




What's a differential controller?

A Temperature Differential Controller is a basically a thermostat. They are used in thermal energy systems to decide when to cycle heat, or when to collect available heat, or both at the same time.  Your home thermometer is a differential controller that decides when to cycle heat, based on the difference between the desired temperature, and the actual measured temperature. A solar differential controller decides when to cycle based on the difference in tank temperature vs collector temperature. Most modern solar controllers allow the user to set a max tank temperature, or in the case of a solar hot air collector, the desired maximum room temperature. Even better controllers will log data. This is not only interesting (everyone loves a good graph) but beneficial as you can see the performance of your system, and be alerted to any potential problems, or room for improvement in efficiency.

The brains of a modern differential controller (or your coffee maker) is a microcontroller. It's basically a small, programmable computer on a single microchip. The Arduino is a platform for hobbyists and do-it-yourselfers that makes it easy to harness the power of microcontrollers for our own projects. They can be programmed for projects as complex as an autonomous flying machine, or a simple as blinking an LED. And since both the hardware and software of Arduino is open source, lots of code and arduino clone circuits can be found on the internet.

A good commercial differential controller can easily run you $200 or more. Add data-logging and other cool features, and they can get very expensive. Also, they are generally only for one system. You might need a controller for your radiant heat, and another one for your solar water, even though both have microcontrollers that are plenty capable of doing both.

A basic differduino project can be built, as per this guide, for around $40. Add an LCD readout and a couple other niceties, and your still around $60. Add an ethernet shield and the capability of logging data directly to the internet and have it automatically graphed for you, and your still under $100. It can do any of the things an expensive controller can do, plus some. The same device could easily control two systems at once, or even multiple systems as one smart thermal system. With the added ethernet, your device can be hooked up to the "internet of things". Then, you could even program it to make decisions based on sensors elsewhere in the 'cloud'.

Here is the solar hot water system I control with my differduino, and here are my graphs from that system.





The Differduino will provide you a basis on which to build from.
I've provided different versions of code that should work with various projects, as well as good comments so the code can easily be customized as per your needs. Features can easily be added, or taken away. For about the cost of a snap switch, a bare bones arduino clone circuit could be assembled and embedded into your system, adding much function-ability for a low price. Feel free to let me know as you suit the Differduino to your own needs and improve upon it. I would like to see this grow into something useful for many.

Some features of the Differduino:

  *Currently the settings are only adjustable by modifying the variables in the code and uploading the new code to the controller. This is not a huge problem because once you adjust it to your needs, it just works. Eventually it would be nice if adjustments could be made via a web browser, or with a buttom pad and LCD screen. Feel free to contribute.

The Arduino is a powerful and flexible tool that can be made to do many things. For example, other sensors could be added, like a light sensor, or a voltage sensing circuit to control when to start photo-voltaic powered pumps. The Arduino runs on a range of DC voltages so the unit itself could be powered by solar. Data could be logged directly to an SD card using a data logging shield. Data could be logged directly to a PC using the serial i/o.  Arduino's could be added throughout your house doing various automation tasks, all communicating with each other wirelessly with xbee. You only limited by your imagination.

I am not a programmer by trade. I am just an all around do-it-yourselfer who is not afraid to attempt something new. I figure it can't be that hard! Arduino is no exception. It can get very complex, but it's also not that hard to get some simple code working for you. Since Arduino is open source, the web is full of examples, guides, and many forums with people willing to help.

So Lets get started!

If you've never played with an Arduino,
start here. Do a tutorial project or three.  It is very helpful to be somewhat familiar with how arduino code works, that way your are better prepared to alter the code per your requirements. The smallest mistakes, like a missing bracket, can cause your program not to work, so it helps if you kind of know what your looking at.

The Parts

The Circuit

The Code