A project by Nateful

Open source temperature differential controller based on the Arduino prototyping platform

The Parts

The Circuit

The Code

What is the Differduino?
The Differduino is an open source project that uses the Arduino proto-typing platform to build a solar differential controller. The code is compatible with any arduino that uses the atmega328 microprocessor, including clone circuits.
The Differduino is made to communicate with the free graphing site, www.cosm.com. Cosm provides a very simple and reliable way to do your data-logging, where your system graphs can be accessed online from any internet connection. Data-logging is not only interesting, but also beneficial as you can visually see the performance of your system and be alerted to any potential problems, or room for improvement in efficiency, etc. Cosm also makes it possible to easily remote control the Differduino, so the control variables can be adjusted from anywhere you have an internet connection.

An Arduino based differential controller, using a commercial Arduino w/ 'shields'

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. Even better controllers will log data.

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.

Where to start
First off, you don't have to be a programmer or electrical engineer. If you're an all around do-it-yourselfer who is not afraid to attempt something new, you can probably learn how to use and program duino's. 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 others willing to help.

If you're completely unfamiliar with the Arduino prototyping platform, start here.

Get and properly assemble a Differduino. The Differduino is a fully compatible Arduino Duemilanove clone. Of course, if you prefer, you can order a commercial Arduino. They are not expensive and offer the quickest, easiest way to get started learning Arduino.

Do a tutorial project or three.
It is very helpful to be at least 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 know what your looking at.

The Differduino is available as a single circuit board!
The Differduino PCB is an arduino clone circuit designed with thermal control, or differential control in mind. The resistor needed for Dallas DS18B20 1-wire thermometers is on-board, and there is a "1-wire" screw terminal position. These solid state sensors are accurate, and easy to use and work well in thermal control systems. There is also an on board relay circuit with high voltage rated screw terminals and a mechanical relay. This can be used for switching on/off pumps etc. This PCB is ready made to use the Wiznet 812MJ ethernet module. This is like the 'ethernet shield' that stacks directly on a commercial Arduino, but in a more compact form factor. It uses the same wiz5100 chipset, and the standard Arduino ethernet libraries.
I also included an lcd header to simplify the connection of an lcd display.

-based on established duino clone circuits
-designed to use the 812MJ Wiznet ethernet module
-on board relay circuitry

-lcd header for simple connection of an lcd display
-voltage divider circuit for sensing power supply voltage, or a seperate DC voltage
-through holes for 3mm screw terminals, and .1" headers
-small 6x6 .1" prototyping area with ground and 5v buss.
-versatile board that can be used for all sorts of arduino projects, not just solar hot water.

The cost is $10 plus shipping. Email nateful(at)gmail(dot)com
for info. Paypal  to same email address. The Parts page contains a list of components, as well a link to a Mouser project.

Controlling my own solar hot water using the Differduino

Notes on this first iteration Differduino PCB:

This is a prototype board. Consequently, there are a few minor issues with this pcb that will be corrected in the next iteration.

-I got a little carried away with mounting hole size! oops. The mounting holes are .2", but they do work.
-The relay screw terminal is mislabeled as "Com NO NC". I should be "Com NC NO".
- R6 is labeled with a value of 1K. This does not let enough current through the transistor to consistently trigger the relay. The correct value is reflected in the schematic.
-The program header is right above the microprocessor. This makes it difficult to remove the chip.

This is a hobbyist board. It is NOT a commercial product. I make no claim that it will work for your situation, or even work at all. After all, your going to soldier it. This circuit is open source and based on other open source circuits. The circuit or design can be freely used, re-used, modified, improved upon, given away, sold, etc, as long as all iterations remain open source. Use this product, and any code or advise on this website at your own risk. Do your research.

The Parts

The Circuit

The Code