View Full Version : Solar water heater controller, heliostat tracker controller, and data logger.

01-22-2009, 01:56 AM
Ok, i know this is a long list of things to get done, but here’s the basic story, I'm building a tracking solar water heater, and i need to build the controller.
The requirements of the system are as follows:
read the output temperature of each of 2 collectors
control a solenoid valve to divert fluid to one or the other of the collectors
control a second solenoid valve to divert fluid to 1 of 2 holding tanks
read the temperature of each of the 2 tanks
read the temperature of the input and output of each heat exchanger(1 per tank)
control 3 pumps, 1 on the collector loop, and 1 on each tank
measure where the sun is in the sky relative to the collector(ie left, center, right)
drive a linear actuator to move the collector array to follow the sun.
display the temperatures of the sensors(perhaps just 1 at a time with a pushbutton to roll through all the selections, or maybe 2 displays that each change to another reading with a pushbutton)
create and store a data log with time stamps and all of the data, that can be opened and graphed in excel.
so by my count, i need to read 8 temperatures
operate 2 valves, (these should be simple power on/off)
control 3 pumps(on or off)
read·2 photo resistors(will be measured to tell if the collector is aimed at the sun)
a few other details.. the u-controller can be anywhere, preferably in the house.· the photo resistors, some of the temp sensors, the 2 solenoids, and linear actuator will all be around 100 feet from the house.
The displays will be with the controller, along with any supporting electronics (relays, power supplies, and so on)
What i need to know is how to do it.· and which chip i should go with.·
Can i use all 1 wire temp sensors? can they all be on one pin of the stamp? if so then that’s 1 I/O line,· the 2 valves each use a line, so thats 3 so far, 1 each for the pumps, 6, the linear actuator can be controlled in both directions with 2 relays, 8, 2 photo resistors, 10.
now, do i add to my I/O pin count for the display(s)? if so how many for each?
As of right now, I’m thinking that the bs2p24 is looking like its gonna do everything.· Am I thinking correctly?
I also know I need the temp sensors, and the data logger to usb thing, I would really like to have it dump the data file to a usb thumb drive.
The data logging is one of the biggest mysteries to me, but I’m sure I’ll learn.
Also, what do I do about timing?· What I mean is as far as getting the time stamp on the measurements.· This is very important.· I would like to be able to set the interval for taking the measurements, and for the data logging.
Also, at night, the unit will need to go to a “park” position, basically all the way to the east, so its ready for the following morning. so i'm thinking that this might require one more input, a "park" sensor switch
I would also like to consider somewhere in my programming to have it set up so that if the temperatures go too high, that it will un-aim the collector off the sun.· What I was thinking was to have each of the photo resistors output a value, some numeric representation of their output, and then for every degree that the system is over temp, it could add to that numeric representation, and then move to equalize the numbers.
IF the whole cycle, taking measurements, updating position, updating pump outputs, and data logging, took say 30 seconds, that should be way fast enough, faster of course would be fine, but I don’t think I would want it to take any more than a minute.
As of right now the system is fairly smaller than all of this, but this is the ultimate goal, so, I would like to start out and then be able to add parts, and update the programming as the system grows..
So… what’s everyone’s input?· Particular part #’s I should look at?· Places to get parts cheap?(I have lots of descrete parts, resistors, relays and things like that)

01-22-2009, 02:54 AM
If you are new to programming you might consider the propeller chip as it has more power to do computations and the program isn't that hard to learn if you are starting from the begining. You might also consider one controller at the collector and one in the house rather than trying to "cram" it all in one.

- Stephen

Carl Hayes
01-22-2009, 03:13 AM
Not going to address all your queries, but here are a few comments.

(1) Parking the sun-tracker at night. You don't need separate photocells to detect nighttime. Simply detect the light levels on the two you need for tracking. If it's dark out according to these, park pointing east.

(2) Sun-tracker. You really don't need a computer for this, although you could use one, perhaps for the fun of it. Point one sensor left of center (perhaps 30 degrees), the other right of center. If they differ by more than some set amount (determined by experiment, probably not worth moving when the difference indicates an aiming error less than ten degrees or so) -- if they differ by more than a set amount, crank the thing towards the brighter one until they're more equal (within that set amount). Close enough is close enough, for you don't want the thing constantly hunting. Compare the two to see which way to steer. Subtract the two and take the absolute value of the difference to see whether you need to do any steering. Look at either one to see whether it's dark out and time to park. I'd call the parking position "Lovers' Lane", but that's just me.

(3) If you add enough electronics, you can use the generated heat to heat the water when the sun's not out. An aluminum radiator from a Corvette, placed in a chimney over the electronics, will work well for this without poisoning the water. [Joke].

· -- Carl, nn5i@arrl.net (mailto:nn5i@arrl.net)

01-22-2009, 04:41 AM
Stephen -
i had considered using sepperated units, but in the long run i thought it'd be cheaper to use the one.
I do remember some basic, and thats what this stuff looks like to me, so that shouldnt be too hard to make a run at, but i will definately take a look at the propeller...

Carl -
1, understood, and was already part of the plan.
2, i would prefer to use computing power to do this, for a couple reasons, 1 data tracking, i can use the readings from the sensors, and if i'm understanding what your telling me, this thing will drag along on the following sensor, almost like hunting, cause you'll only move enough to satisfy your "happy range" and then stop moving, my thought would be to have it move from behind the sun to infront of it the distance that corrisponds with your happy range, does that make sence? Lover's lane, funny...
3, you'd have to really wash out the radiator well, if its in the potable loop, ethaline glycol... hehehe

ok, heres the list of parts i've had time to put together thus far...
1 LCD 27979 (i can easily get 4 to 8 sensor readings on this display)
1 stamp either bs2p24 or bs2px, (need to research the propeller)
8 lm34 temp sensors(already calibrated for F) this does increase the # of I/O lines i need.(i can start with 4 and mux them later if i run outta lines)

01-22-2009, 04:49 AM
Another $.02, take a look at zone valves instead of solenoid. Solenoid valves use power while activated, whereas zone valves do not. They are more expensive. My solar hot tub uses the Propeller, while it can be done with a Stamp, the Prop makes it really easy. I have a controller located near the panels, which sends data to the Prop cpntroller.


www.madlabs.info (http://www.madlabs.info) - Home of the Hydrogen Fuel Cell Robot

01-22-2009, 05:21 AM
BTW, I don't think you can mux LM34's. They are an analog output (10mV/degree) and a such need their own line to an ADC. Also, I don't see an ADC on your list. I like the TLC2543, 12 bits, 11 inputs, available in DIP.

www.madlabs.info (http://www.madlabs.info) - Home of the Hydrogen Fuel Cell Robot

01-22-2009, 05:33 AM
If you are going to do data logging with time stamps, you will need a Real Time Clock that the stamp can read. The DS1302 is good with a stamp for generating the time stamps for the log. This can also be used to set the interval to take your measurements and perform the data logging.
One other consideration, once you have an accurate clock on the system, you can use a data table to determine the position of the sun and use that to aim the collectors (keeps it from potentially chasing a cloud).

Carl Hayes
01-22-2009, 06:40 AM
Project5k said...

Carl -
2, i would prefer to use computing power to do this, for a couple reasons, 1 data tracking, i can use the readings from the sensors, and if i'm understanding what your telling me, this thing will drag along on the following sensor, almost like hunting, cause you'll only move enough to satisfy your "happy range" and then stop moving, my thought would be to have it move from behind the sun to infront of it the distance that corrisponds with your happy range, does that make sence? Lover's lane, funny...
Yes, a little hysteresis would be good so you move a little farther, less frequently.· Perhaps the easiest to program would be "move until equal", which would be, say, 5 degrees.· The sun will move, very roughly, 180 degrees in 12 hours, 15 degrees per hour, so it would move, then, 5 degrees or so, every twenty minutes, to stay within 5 degrees of Ol' Sol, which is plenty close.· At 5 degrees off, you still get 99.6 percent of the illumination you would get at center (cos 1 degree).

· -- Carl, nn5i@arrl.net (mailto:nn5i@arrl.net)

Carl Hayes
01-22-2009, 06:53 AM
Jonathan said...
BTW, I don't think you can mux LM34's. They are an analog output (10mV/degree) and a such need their own line to an ADC. Also, I don't see an ADC on your list. I like the TLC2543, 12 bits, 11 inputs, available in DIP.

Thanks to the existence of MOSFets, you can mux analog signals perfectly well.· Probably the devices we used 40 years ago when I was practicing are no longer available, but I'm sure there are modern ones that are better and cheaper.· Everything is better and cheaper nowadays, except me.· I'm only cheaper.

· -- Carl, nn5i@arrl.net (mailto:nn5i@arrl.net)

01-22-2009, 11:51 PM
let me see if i can cover everything... looked at the propeller, liking what i'm seeing so far.. but i still need to better understand the differences between the propeller and the stamps. My main interest in the prop right now is its price compared to the stamp.

zone valves, ok, on the list to look at. good point on using power vs not using...

do i really need an adc, i thought that the stamp and or propeller could do that intermally

real time clock, ok, do i need a RTC with the propeller chip?

predictive aiming is something that i had considered.. but that would require some pretty complex math to work year round.. thats kinda why i was looking at active sensor traking.

now, i saw something that would work for data logging on the stamps, but i need to go find it again and see if it will work with the propeller...

looks like the display i had picked out will still work with the prop

if i did go with sepperated controllers, say one for tracking, and then the main brain, how would they communicate, or would they need to? well, yes, they do need to communicate, i want the data from the tracking sensors... how does that work with something like 100' of cable between them?

I'm not cheaper, i'm not better, i'm just have less money to spend.

01-23-2009, 12:55 AM
ok, so here is the shopping list i think i've come up with.. can anyone see anything i'm missing? I know with the stamps i can download the programming software free, is the same true for the propeller? should i add a couple of thoes darlington IC's to go between the propellor output pins and the relays that i'm gonna have to drive?
part # how many price each total
propeller chip P8X32A-D40 1 12.99 12.99
Memory Stick Datalogger 27937 1 $34.99 34.99
32KB I²C EEPROM 602-00032 1 1.99 1.99
3.3V Regulator 601-00513 1 1.99 1.99
Parallax 4x20 Serial LCD (Backlit) 27979 0 39.99 0 out of stock
Parallax 2x16 Serial LCD (Backlit) 27977 1 29.99 29.99
LM34 Temperature Sensor 604-00011 8 3.99 31.92
Photoresistor - VT935G-B 350-00009 4 1.99 7.96
DS1302 Timekeeping Chip 604-00005 1 4.98 4.98
Parallax USB to Serial (RS-232) Adapter 28030 1 14.99 14.99
Total 141.8

Chris Savage
01-23-2009, 12:58 AM
Of course you should use the Propeller if you feel it will better suit your needs, especially future ones. But as a note, from what you have posted so far I believe a BS2p will do the job as well. BASIC Stamps are very good at monitoring temperatures and activating solenoids/valves, etc. Even incorporating time events should not be an issue, especially with a BS2p, which would allow you multiple program slots, access to data across slots, Scratch Pad RAM and more. Take care.

Chris Savage
Parallax Engineering

01-23-2009, 01:26 AM
I still don't see an ADC on your list. You can get around 8 bit resolution or so without one, but I'd just use an ADC. In fact, I did. :) I like tenths of a degree, and you won't get that with an LM34 without 10 bits or better, due to the output of 10mV per degree.

I'd also get a precision 2.5V reference voltage regulator to use with the ADC, like the LM336. This will improve stability and increase resolution. Make sure to get an ADC with a VREF pin. As I said before, I think the TLC2543 is a good choice. There is sample code both in PBASIC and Spin.

The Prop can do a reasonable RTC. I was just looking at a thread talking about losing 18 minutes a year without correction. Prolly just fine for a solar system, especially if you have to change for DST twice a year anyway. You could fine tune it to less with a software correction.

You don't *need* a Prop for this project. I'd use one for sure, I love 'em. You will have to learn Spin and wrap your head around multicores, but even I manage to kludge stuff together, so I am sure you can too. :) And yes, the Spin editor is free.

If you do go Prop, look at the proto board. Has regulators, eeprom and so on already built in. It's a good deal, I often use them.

www.madlabs.info (http://www.madlabs.info) - Home of the Hydrogen Fuel Cell Robot

Chris Savage
01-23-2009, 01:49 AM
Depending on how many LM34 sensors you need to read you could get one multi-channel ADC to read them all and it would use 3 I/O pins, which could share 2 of the pins with the RTC.

Chris Savage
Parallax Engineering

01-23-2009, 02:53 AM
Chris, can you please explain "multiple program slots" to me?

I'm leaning towards the propeller due to its price by comparison to the stamps. do you see a realistic reason where a stamp would actually perform my tasks better than a propeller? I dont know enough yet to even head down this path, but i was thinking that i could use one cog to handle data logging duties, one to handle tracking, one to handle temp measurements, one to run the display, and so on, deviding up the duties between the cogs, seems logical to me, and spreading the load out should help things run more smoothly and faster. But like i said, i dont even know if i can do it that way, or if maybe its better not to devide it up like that.

ADC, ok you convinced me, better accuracy, and tenths are good things, i'll add it to the list, along with the vref regulator.

if i loose 18 hours over the course of a year it wouldnt be that big of a deal, cause i'm gonna be messn with this thing resetting it, rewriting code and everything else. My question is, how does it loos time if your using an external rtc that has better accuracy than that?

I'll take a look at the proto board, is there only one, or is there a particular one that you suggest?

for now, i'm looking at 4 temp sensors, but i can see that # growing to 8 as this project grows...

01-23-2009, 03:37 AM
Ok, in the deeply weird dept...

I just looked up from posting above, and I saw that my solar hot tub controller was reading a way off temp. I investigated and found it was the VERY SAME LM336 vref I mentioned above had a poor solder joint. It had been working fine for 6 months. How weird is that?

There is nothing a Prop can't do that a Stamp can. Basically, the Prop is more powerful but not as easy to use as the Stamp. What Chris said above is very true, a BS2p would do the job just fine. Since water heating systems heat slowly in terms of a uC, you have oodles of time to do what needs to be done, so the slower speed of the Stamp isn't really an issue. What I like about the prop is how easy it makes splitting up tasks. My controller is reading data from the sensors, getting the time via RF from my locally broadcast atomic time, logging data and driving an LCD display and a Nixie tube display. The prop makes it easy beans to intergrate all these functions. There were some times of pulling out hair getting it working, but I am a poor programmer. I'd say if you are comfy with programming consider the prop, but if the idea makes you feel worried, go with the Stamp. You can't really go wrong.

The Stamps memory is in slots of 2k. Look up the RUN command. While there are some limitations in multi-slot programming, you can still get done anything you would need to get done.

And its 18 *minutes* a year, not hours. And there is only one protoboard that I know of.

www.madlabs.info (http://www.madlabs.info) - Home of the Hydrogen Fuel Cell Robot

Chris Savage
01-23-2009, 03:50 AM

I apologize for throwing confusion into your choices. I got the impression you had selected the BASIC Stamp initially and I was basically supporting that it would work. The Propeller is of course more powerful and certainly less expensive. Since you mentioned the BASIC Stamp first I thought you chose a microcontroller you were familiar with. While the Propeller is relatively easy to learn, I wasn’t sure if you wanted to start with a new language.

Sometimes the inclination is to recommend the Propeller for everything…but if you’re trying to read a button, blink an LED and tell the time, the BASIC Stamps are perfectly capable. Multiple program slots on the BASIC Stamp 2p allow you to store multiple programs which could handle different aspects of your project. You can also store data there for logging or user-defined program routines.

P.S. - If this project is going to be Propeller related I will move it to the Propeller forum once you confirm.

Chris Savage
Parallax Engineering

01-23-2009, 04:10 AM
Jonathan, i was making a funny, you said 18 min, and for what i'm doing, even if it did loose 18 hours over a year, it still wouldnt be an issue for me.. with all the restarts and whatnot i'm sure that i'll go through...

ok, so your pulling the broadcast atomic time? like my alarm clock does? oh baby, i gotta do that. If for no other reason than thats WAY COOL! You gotta give me the details on how you did that. Not to mention that i dont have to worrie about the local time getting off... oh and did i mention how cool that is!

Chris, I had originally thought about going with the stamp, only cause its basic, and its what i know, or well, knew, its been so long since i've looked at any language, i'm basically starting from scratch anyway, so if the propeller will do what i wanna do, and i can do it cheaper, then learning the language will just be part of the fun of learning and building the system. Besides, i can allways get on here and ask questions if i get stumped. I say move it, i think i'm sold on the prop.

Furthermore, it really sounds like the propeller is the way to go on another project i've been wanting to work on.. a dyno cell for my rc boat engines.. I originally thought about just using a off the shelf data logger, but with the propeller, i can have it do displays, log the data, and all sorts of stuff... and its cheaper, i'll already know how to program for it(by then i hope)

so in looking at the proto boards, i found one that has the usb already built in.· My question is this... can that be used for data logging in any way? or is that strictly for programming the prop, and then thats about it?· (wondering if i can save some more $$ using that rather than having to get the usb data logger for 30 something bucks..

Post Edited (Project5k) : 1/22/2009 9:19:57 PM GMT

01-23-2009, 05:47 AM
All of this for solar hot water? You really don't need to move a panel to make hot water, here in Northwest Ohio I make hot water when the outside temp in in the single digits. Just mount the array south and you have it. You don't have to worry about flexible hoses to connect the moving parts. Now if you want to make the operating system to run the pumps that's worth it. Save the tracker for photovoltaic, those systems gain upwards of 30% form a unit that tracks the sun in two axis.


01-23-2009, 07:05 AM
I use a GPS receiver, a Motorla Oncore II, to get the time, then I broadcast it locally using a 433mHz TX. That way any of my projects can be on the same time base for the costof a RX unit. I have all sorts of projects using it as a timebase, aqurum, garden timer, nixie clocks, weather logger, etc.. I used to use WWVB, but reception is very dodgy where I am, and when that unit died I went GPS instead.

You can log data to a PC using the programming cable, no extra parts. You can use a terminal program for a dumb type data dump into a .txt file, or write a PC program to do whatever you want with the data.

www.madlabs.info (http://www.madlabs.info) - Home of the Hydrogen Fuel Cell Robot

01-23-2009, 09:44 PM
Mike - I'm working on a 2 fold system, one is flat plate, the other is converted satelite dish, with the flat plate you are correct, but you can still improve its output making it track, with the dish, tracking is an absolute must. I'll send you a pm so you can tell me more about your system...

i guess i could just use one of the many low end pc's i have laying around to act as the data logger.. It would save me some $$ for now, and then later on as i get better at all of this, start working on a better solution. all i need out of the data logging is for it to come out with good time stamps and be in some format that will let me open it in excell to graph it. other than that, for now i'm not gonna be too picky on how i get it done.

01-23-2009, 10:34 PM
If your eventual goal is to move the data to Excel, you might want to look at:
It allows the stamp to write data directly into an Excel spreadsheet. The only limitation is that you can only move 65535 observations before you need to start a new spreadsheet. I have used this with a Bluetooth connection (any rf based link that can emulate a serial port will work) to transmit weather data from a shelter directly into Excel.
There is also a command in the protocol that the stamp can request a time stamp from the host PC. The resolution of the time stamp is the nearest second and is based on the PC clock. So if you can keep the clock on the PC accurate, the time stamps will be accurate. The command from a Basic Stamp looks like:
SEROUT BT_TX,84,["DATA,", "DATE,TIME,",DEC VoltSol DIG 3 .other data points...]
The DATE,TIME entries add the computer clock readings as the first two columns in the speadsheet.

Post Edited (MSDTech) : 1/23/2009 3:41:59 PM GMT

01-24-2009, 02:49 AM
using the host pc time is an interesting idea. If i remember corretly there is an application out there on the net somwhere that will conatantly update system time with the time from the atomic clock. If that works, then you'd have perfect time stamps for this..(so long as you had an allways on and reliable internet connection)

the 65535 lines are an excell limitation, right? i would want data points like every 2 seconds, so thats 43,200 data points per day. so then all i'd need to do is figure out how to make it start a new file, or a new sheet inside that workbook for each day.

Realistically, i think i would prefer a seperate comma delimited file for each day, and then just name the file the date. then that way i can manipulate the data any way i want to and i'm not limited to excell line counts. not to mention that i would have to have excell open the whole time, and i think that if i'm gonna skip using the usb stick data loger, that i would rather have it transmit to a computer on my network so that i can pull up the files as i need to, and not rely on excel to stay open all the time.

Chris - were you going to move this thread to the propeller section? I've started reading the propellor programming book, and started absorbing "SPIN".. i'm thinking seriously that i will place my order for at least the chip and board today so i can start playing and practicing my code, and then order more parts as i learn how to use the ones i have.

01-24-2009, 03:56 AM
ok, i made the commitment, i just ordered the propeller usb board, some sensors, powersupply, usb stick data logger, and stuff from parallax, and then i jumped over to mouser and ordered the 4x20 lcd display and the ADC suggested above.

man shipping has gotten expensive.. anyway, it should all be here bout the middle of next week...

now. where do i DL the software so i can start learning that?

01-24-2009, 05:27 AM
Yes, the line limit is an Excel limitation. The application to continually update the clock is at:
C:\Program Files\AtomTime Pro\Doc\index.html

Chris Savage
01-24-2009, 05:46 AM
This thread is being moved to the Propeller Forum by request from the OP.

Chris Savage
Parallax Engineering

01-24-2009, 06:41 AM
If anyone is interested in solar water heating or photovoltaic system monitoring check out what we have done at

www.577foundation.org/ (http://www.577foundation.org/)


Post Edited (Mike2545) : 1/25/2009 11:15:17 PM GMT

01-24-2009, 08:35 PM
hey msdtech, that link looks to be the location on your local computer, not one that other people can get to...

Mike, you have to tell me how your doing the live data feeds, thats something i've allways wanted to do.

Post Edited (Project5k) : 1/24/2009 1:41:42 PM GMT

01-24-2009, 11:04 PM

that program is all done in Flash. It goes out and reads data files created by the devices, interprets the data and displays it in a nice easy to read format. The PV array is handled by a Sunny-Web box, which is networked on our system. The solar water heating, outdoor weather conditions and dome statistics are handled by some hardware made by Solar Wave. We use a wireless connection for part of the system and have had no problems. Of course the files are very small so speed is not a factor.


01-25-2009, 11:11 PM
very cool stuff, i'll do some research on that, i would like to use some auto updating on my website, once i have something to update that is... if nothing else for me to look at while i'm at work to know how the system is working...

01-26-2009, 11:35 PM
so after looking at the tracking reports online, it looks like my lcd display and my adc's will be at the house today, and the propeller, temp sensors, powersupply, and all the rest of the stuff should get to the house on thursday. I'm all excited !

anyway, so i've been reading the propeller book, trying to absorb as much as i can, really trying to get SPIN. Its a faint candle at the end of a very long tunnel.

Does anyone have a good resource that i can take a look at to try and get as much of this stuff in my head between now and when the parts get here?

I figure i'll probably start out just following the examples, making lights blink, and then making mods to that working example code to see what the changes i make do...

Does anyone have a good system for when they are starting out writing code for something like this?

should i start with a blank page of paper and start laying out all of the "blocks" that will go into my code? at least that way i can start getting an idea of what order to do things in?

i'm open to ideas and suggestions on how best to try and tackle something like all of this...

01-27-2009, 06:47 PM
well the 4x20 lcd and the ADC were sitting at my front door last night when i got home, cant wait till Thursday when the rest gets here.

01-28-2009, 05:40 AM
so i'm sitting here trying to think about how to lay out the data that i want on my lcd display... and this is what i've come up with so far.. suggestions are requested...

starting top left, thats collector input temp, colector output temp, heat exchanger input, heat exchanger output, and then top right is tank temp

I was also thinking about having it display the current time, or maybe some kind of tracking information.. the other thought would be to have it display the kW from the system, once i have a flowmeter...

The other thought was to mount the display behind a bezel, and just have the data on the screen and then have the labels off the lcd, that way i can display more data and not be using up my lcd space for the labels...

The #### is space holders for something like 135.7 just without the decmil

01-29-2009, 09:31 PM
well my prop and sensors and stuff came in last night, a day early, what a surprise..

so now its time to get busy.. since i got the usb board to make my life easier, i was thinking that theres just not enough prototyping space on that board, so i was thinking that i could just solder in some wires to all the pins i neec access to and run them over to one of my breadboards.· anyone got any better ideas?· maybe a picture of what you did?·

I figure once i get everything all wired up and working for the final product, i can then draw up and etch myself a nice pcb and get everything off the breadboards, but for now, i guess thats about the best i can do.

one thing that i'm not sure of right now is which holes are connected to what.· I know that the row around the prop chip on the board is labeled, so thoes are easy, but are any of the other holes connected to thoes, or anything else?· I guess what i mean is on some proto boards, every row of 5 is connected together, is this board the same way?


something else that i've been thinking about for this project, is to use a stepper motor to run the pump to circulate the heat transfer fluid.· so what i would need from the prop is a pulse train, 50% duty, at around 66.6hz(if i use direct drive to the pump, if i geared it say 2:1 then i would want 133Hz, and i would want to vary the freq out dependant on a couple factors.·

The pulses would go to a stepper driver, that only needs direction and speed, well the direction would be fixed, so i could hard wire that outside the prop.· Then the pulses from the prop would tell the controller advance the stepper motor one step per pulse.· I would want to use one of my temp measurements to vary the pump speed, so as temp increased, pump speed would as well.

The other thing that i would want to use this for, is to use the pulses(or the count of them) to calculate the volume of fluid moved.· the pump moves a specific amount per revolution, so at 20rpm, the pump moves 1 gallon per min.· Then take that information, have the prop do some math, and have it display the btu transfer rate on the lcd.

how do i even go about starting something like this?· I have the stepper driver already built, and stepper motors are easy enough to get my hands on...

Post Edited (Project5k) : 1/29/2009 3:25:52 PM GMT

01-29-2009, 11:39 PM

There is a PDF on the site that shows all the connections on the Proto board. No, they aren't connected in rows like some proto boards.

Why do you want to vary the speed of the pump? As long as the pump moves enough water to prevent boiling on your hottest day, you are OK. There is no benefit heat gain-wise by moving the water slower on cooler days.

I just run my pumps and then use a stopwatch and and fill a container for a minute then measure the amount of water. This will allow you to calculate BTU's, which I'm guessing is what you are looking for. For fun, calculate how much electricity it would take to create the same amount of BTU's. It will shock you, my system can create the equivilant of a 12kW electric heater. Of course, the "real" GPM will change when you connect it to the rest of the plumbing, but it will get you in the ballpark. You would need a flow sensor to get an exact GPM under real conditions.

Steppers to drive a pump sounds like a lot of extra trouble, with no real gain and in fact less effecient, electricity-wise.


www.madlabs.info (http://www.madlabs.info) - Home of the Hydrogen Fuel Cell Robot

01-29-2009, 11:47 PM

I forgot to add, you can indeed solder wires for use with a breadboard. When you get to your final stage, look into SIP headers, that's what I do. My solar hit tub controller doesn't use a protoboard, it's a DIP, so a pic of mine wouldn't help.


www.madlabs.info (http://www.madlabs.info) - Home of the Hydrogen Fuel Cell Robot

01-30-2009, 12:51 AM
yea, headers and flat cables would probably be a better long term solution. so i guess all of the pins that i'll need to access are the ones that are already labeled on the board...

02-08-2011, 08:25 PM
I am starting a project that is very similar. I intend to use the Propeller to control mirrors for a solar concentrator. I cannot find any follow up to this thread which seemed to be on the right tract.Is there any progress postings?

Duane C. Johnson
02-08-2011, 09:29 PM
Hi Project5k;
You mentioned you wanted a "Heliostat".
You have not been describing a heliostat.
You have been describing a "Direct Solar Tracker". I.e. aiming directly at the sun.

This is what I wrote on my webpage:
1. A heliostat is, generally, a two axis solar tracking flat mirror that reflects sunlight onto a fixed receiver or target.
2. Furthermore, the geometry between the Sun, Mirror, and Receiver are constantly changing throughout the day.
3. In general the mirror is aimed normal to the bisector between the sun and receiver.

Many mistakenly call "Direct Solar Trackers", such as Dishes, Troughs, and Lenses heliostats. They are not.
Generally, these things are aimed directly at the Sun which violates #2 above.


02-09-2011, 03:38 PM
I am specifically interested in a heliostat with a series of stepper motor controlled mirrors aimed at a target receiver. I have found a very accurate algorithm for calculating sun and target position posted by the National Energy Research Laboratory in Golden , CO. The reference provides source code written in C++ which I am hoping to adapt to PropBasic and compile to Spin. The complex algorithm may be too much for a Propeller but I think the Propeller chip may at least enable the mirror stepper control on multiple reflectors even if I have to crunch the numbers on a separate micro and communicate the targeting information to the Propeller. I have looked at solar parabolic concentrators but the mechanics of multiple focus points makes my application too cumbersome. First estimates are roughly 10 m^2 reflective surface generating a potential of 10kw solar radiation. I am hopeful of around 20% efficiency or better to yield approximately 2 1/2 - 3 hp of usable power. Using a concept originally patented by Einstein, this amount of power should enable air conditioning equivalent to our central air conditioner. I intend to start small with a simple parabolic concentrator tracking the sun but when I can get the tracking right I will scale up to the heliostat concept. So far I am thinking steppers (with power down capability) will be easier to control than servos as their position can be known without feedback loops provided there is sufficient mechanical advantage. I live on the Gulf coast which has similar solar radiation to southern California and our air conditioning costs are huge (approaching $900/month in the middle of summer). If I can provide even a 1/4 of our A/C needs I can pay for this project in a matter of a couple of years. I can camouflage multiple small mirrors in our residential community better than a single large dish. I am fully aware of the Analemma challenge but it seems that with the power of 8 cogs the complexities can be overcome one step at a time (no pun intended).

02-10-2011, 04:39 PM
hi all, sorry for falling off the face of the earth there for a while, but i'm back, and i'm going full strength at this solar water heater project... i have a propellor chip in house, and i have the flat plate solar collector plumbed in and working now as we speak... i'm just manually controlling the pump for now..

getting back on track, i have learned a few things, and have changed my goals a little bit..

List of goals:
measure and log
temperature of:
the collector output at the collector itself
temp of main water heater top and bottom
temps of the 2 pre heat tanks 1 each
temp of the solar loop tank
temp of the in comming ground water
possibly in the future a flow meter with 1 pulse per gallon
solar strength or brightness?
so thats 7 temp inputs, a brightness, and one for a flow meter...
display all data, in F, along with a few calculated values....
have the ability to put unit into override mode, lock pump on or off and things like that...
perhaps use a small peizo element for alarm stuff...

in the future, what about adding an east west sepperator, have 2 collectors, one east for morning, and one west for afternoon, and a valve of some sort so that which ever is doing better is the one that the pump pushes water to...

also seriously considering running the HX loops sepperate from the collector loop(s) this would require an additional pump output...

also need to have a thermal dump... this is easy mechanically, just requires another pump....

hardware i have in house...
#27979 4x20 serial backlit lcd
#27937 memory stick datalogger
#32812 prop proto usb board
1 wall wort power supply out 7.5v 1A
2 vt900 photoconductive cells
6 lm34 temp sensors....
1 tlc2543cn 12 bit ADC w/11ch
2 20W 110vAC pumps
1 300W 110vAC pump
loads of random electronics, relays, proto boards, resistors, and stuff...

I'm working on a couple basic drawings to illustrate the system... and also a logic diagram, cause i know i'm gonna need that when i get to the programming stage....

more to come... just trying to get all my thoughts organized....

02-11-2011, 04:16 PM
so just a short update, i was playing around with the parts, and i now have one of the lm34's on the output of the collector, so i can use a volt meter and read it from inside the house... also have the board and lcd connected and can make text display on the lcd... its progress....

going to frys this afternoon and will be looking to get some header pins and things to make connecting to the board easier... also ... i found a couple things for trying to make the tlc2543 work with the prop, i found some .spin things, but i havent found any solid schematics for the connection yet... looking at the sheets for each, its looking to me like i can get away with 5 connections between the prop and the adc... question becomes, at what point do i need to sepperate the power supplys of the prop, and then external circuitry? i have to drive the lm34's with something, and i'm not thinking that thoes, and the external relays that i'm gonna use to control the pumps and things like that are all gonna be powered by the prop board.. its only got a 300ma supply.....

on the data logger, or usb stick interface, it looks pretty straight fwd, i have schemats for that...

02-11-2011, 07:43 PM
I have solar hot water heater on my house which I’d like to improve the efficiency. Presently, cold water comes into a hot water heater that is designed for solar. It’s a insulated tank with 220v heating elements that kick on approx. 105 deg F. The tank has connections for a 120v circulating pump. The pump draws from the bottom, pumps up to the panels, back down into the tank thru a check valve – it’s not a closed loop, the heated water is mixed with the water in the tank. The check valve is there to stop the flow of hot water back up to the panels at night. The pump is controlled by a module from http://www.butlersunsolutions.com/ which has manuals and other tech info. The module has a high setting limit that shuts the pump off when the tank temperature reaches the high temp – no further heating occurs. Then there is a differential setting which starts the pump when the panel temp is greater than a few degrees of the tank temp. It all works great except I’d like to improve on it. One improvement is to eliminate the check valve, because it leaks back hot water to the panels. I’d replace it with a solenoid or zone valve – all check valves leak to some degree. I’d also like to add a 3 way valve on the cold water inlet. On cloudy days when there’s insufficient sun to heat all the tank, I’d like to at least pre heat the incoming cold water. Cold water would be diverted to the panels then to the tank when hot water is demanded. Even though I would still be heating the water electrically, it would be preheated to some degree by the panels. Also, Id like to cutout the electric elements during the morning after taking a shower. The tank would be heated up by solar later in the day while the sun is overhead. If it’s a cloudy day the elements would kick on to provide hotwater in the evening. I live on Kauai so the sun is plentiful, but the electric rates are high, so it pays to get as much BTU’s out of the sun. Something to consider is freeze protection if you're in a cold climate.

02-14-2011, 12:59 AM
you might like solarpowerforum.net if your not allready familiar... i'm on there as well...

I'm having a real hard time finding information on how to make the TLC2543 talk to my prop... I did find a couple things, the "lm34_sensorDemo" but i'm having no luck getting it working in my situation... i've changed the pins, so i'm getting something from the adc, but the only output i get on the display is 255.. which i'm thinking is the base setting for the adc's output.. but i dont have any kind of a data line to cary data from the prop to the adc, cause that code there just has provisions for input, not output...

does anyone have any suggestions? i'm getting really discouraged at the lack of information... do i need to just order a different ADC? theres one that i see everywhere, um... MCP3208... thats still 12 bit, not that i really think that i need all 12 bits, but hey, why not... would it just be easier to change horses mid stream? hehehe

Duane C. Johnson
02-15-2011, 03:37 AM
Hi All;

Here is a small program snippet written in FemtoBasic that uses a pair of
Blue LEDs as solar light sensors.
The schematic is here:
Blue LEDs generate enough voltage to directly drive Propeller inputs.
In the example I used pins 14 and 15.

The LEDs operate as current sources to charge the capacitor. The LED
with the greater light wins and impresses its polarity onto the capacitor.

The rate of charging is dependent on the light flux and the size of the capacitor.
In this case I used .1uF

There is a FOR NEXT statement that determines how much time it takes to
charge the capacitor. Reducing the capacitor increases the sensitivity.

See other circuits that operate on the same principal:

90 OUTA [27..0] = 0
100 B = 0 : D = 0 : G = 0 : P = 14
210 FOR T = 0 TO $FF
220 A = INA [P+1..P]
230 IF (A & 1) = 1 THEN B = B + 1
240 IF (A & 2) = 2 THEN D = D + 1
280 NEXT T
310 OUTA [P+1..P] = 0
320 PRINT "" : S = D : C = 2 : GOSUB 7000
330 IF D > B THEN DISPLAY 62 ;
340 IF D = B THEN DISPLAY 32 ;
350 IF D < B THEN DISPLAY 60 ;
360 S = B : C = 2 : GOSUB 7000
370 REM PRINT ""
810 GOTO 100
7000 REM Print a HEX Number
7001 REM Pass C = # of Printed Characters, Value Unaffected
7002 REM Pass S = the Number to be Printed, Value Unaffected
7003 REM Pass G = Comma Flag, Value is comma placement Value Unaffected
7004 REM U = Scratch Variable
7005 REM V = Scratch Variable
7010 REM PRINT "$" ; : REM Possibly done in the calling routine
7020 FOR V = (C // 9) TO 1 STEP -1
7030 U = ((S REV (V * 4)) REV 4) + 48
7040 IF U > 57 THEN U = U + 7
7050 DISPLAY U ;
7060 IF G <> 0 THEN IF ((V-1) // G = 0) & (V<>1) THEN PRINT "," ;
7070 NEXT V

02-17-2011, 02:38 PM
still not having any luck getting this to work, and to be honest, i'm a little dissapointed that i havent gotten very far with this forum....

02-18-2011, 04:38 PM
I just saw this topic today...

I've been away and busy redoing my plumbing so I will have an "attic solar water heating system". That is I will run pipes in the attic to collect heat and circulate that heat to my hot water heater tank. There is a LOT of heat in my attic during the summer...

Anyway I am planning on building my own controller for all this, so I am VERY INTERESTED in this topic as I will be doing the same things. And will probably be using a Propeller for this.

Perhaps I could be of some help?

What I was planning on doing was to start out simple at first. That is just have two heat sensors and a circulation pump. Then get the circulation pump to turn on when the water temperature in the attic was warmer than that in the hot water heater tank.

And that was all I was planning to do at first. Just get that one thing working. And I can envision all sorts of problems relating to just that (such as rapid cycling of the pump).

Then add a display and other features later once that was working.

I've had a lot of success with other complex projects in the past by just concentrating on one thing at a time. Getting that to work, then working on the next feature.

So what specifically are you trying to do and what is the trouble? Do you have any one thing working?

02-18-2011, 05:56 PM

I can understand your frustration. In addition to being an interesting project, it seems involved so success might be harder to come by than first hoped. One of the beauties of the prop is the ability to break a project into parts. Solve one part, then set it aside and solve another. When combined back together in the final version those parts need not mess one another up. What I'm suggesting is to break this down into the simplest individual projects you can. Once each component project is working, set it aside and solve another. When all the component have been proven individually, start brining them into a unified project.

I haven't worked much with LCDs, but when I did I still found Prop Serial Terminal invaluable as a place to dump debug messages. I'd start there. Get the LM34 working with a serial terminal. Treat the LCD as a component until you are sure it works the way you want it to. At this point I'd treat it as a component and not use it for debugging. I know you've already amassed parts, but for temp sensors I don't think it gets much simpler than the Maxim/Dallas DS18B20 series. They provide a digital out and therefore don't require and ADC. They use a 1-wire bus so you can connect as many as you want to the same Prop Pin and talk to them individually, and there's an object in the OBEX for reading them. And they only require a single pull-up resistor to work.

I wish you luck on this as it looks fun and useful.


02-19-2011, 03:07 AM
I like your idea and has given me the idea to do something for the the ship that I am restoring the Zuni/Tamaroa, but, in a small scale.

I don't know, if know this or not. But, you my need mixing vavles, that alound the cold water to mix with the hot water. This helps control the temps and pervents you from being burned. You may also want to get proportional vavles to control the water temps and can be controlled with the propeller using analog singals like 0-5vdc, 0-10vdc, or 4-20mA.

As what pgbpsu stated. I wish you luck on this as well

02-21-2011, 02:23 AM
well i have the lcd working, i can put in stuff in the programmer, and make it display stuff on the screen and blink and clear, and display text in time with blinking LED's, simple stuff like that that i was able to just figure out by cutting and pasting from some of the "lessons" i found online...

really my biggest issue right now is trying to figure out how to get my TLC2543 to talk to my prop... i found one thing in the xchange, but it didnt work correctly... could be the wireing... i'm not 100% sure how to wire the 2 together... i have a prop proto usb that i've added headers to so i can use my big proto board, and i've also stuck the lcd in a little holder, just so its not just floppn round on the desk...

as for the DS18B20... well, i wish i had known about thoes before i had gone and bought the adc and lm34's that i have now.. hmmm.. just one question, the information that i read said that it was celcius, now i'm figuring that i could just do a conversion in the prop, but is there a F version, would it matter??? cuz theres a f version of the lm34, and then theres the lm35 thats the C version.. so, just wondering how bigga deal that would be...i just know i'm not gonna be happy if its not in F...

for now, this system is going to just be a preheat system, so i wont have to worry about being burned...

the solar part of the project is online here: http://www.solarpowerforum.net/forumVB/do-yourself-discuss-your-projects/5279-im-back-im-serious.html

02-21-2011, 04:00 PM
As to the TLC2543, that looks terribly complex...

I briefly looked through all the above. It looks like you are wanting to interface the LM34 to the Propeller. You can "cheat"! That is search google.com images for the terms lm34 schematic. Then this will find all sorts of circuit diagrams using the LM34!

And perhaps you might find something easier. Here is that search...
(If you find something interesting, click on the image, then "Website for this image". You might get lucky and find circuit diagrams along with explanations of how everything works.)

02-21-2011, 05:18 PM
@Project5k- I understand your frustration about TLC2543. I realize there may be an element of pride and really wanting to get what you've got working. But before you dedicate yourself to that course of action (which is a worthy one that has a great deal of satisfaction once solved), might I suggest the Dallas/Maxim DS18B20 again. If you search the maxim/dallas site you can find the TO92 package as a free sample. It wants a pull up resistor (4.7K I think) at the minimum.


Then go to the OBEX and get one of the objects already written to talk to it. I think the one from Micah Dowty works. I don't know if it includes a temp in degrees F, but that's a simple conversion. There is a Float Object in the OBEX that will allow you to do floating point math in the conversion. (Multiply degrees C by 1.8 and add 32).

If you do choose the DS18B20, I can help. I've used them before. The TLC2543 I've never used.

Best of luck.

02-22-2011, 01:55 PM
thanks so much for the input, the more i read, and the more i think about it, i think the smart course is to abandon the 2543 for now... its a good chip(working) but just not within my scope of understanding at this time... i'll save it for later.. once i have a better grasp of SPIN and the prop itself, i may come back to it and figure it out... and yes, i will share my findings if i have anything worth sharing :)

reading the ds18b20 data sheets now...

ok, samples ordered...

looking in the obex, i'm not finding anything i thnk is right... search returns nothing for the 18b20... found Micah's name, ... the closest i could find was "1-wire routines in spin" dl'd that one... never know...

did i just overlook it?

as for interfacing the lm34's to the prop, i think i'll save thoes for some simpler fan control circuits and other things, oh, a temp controller for the fish tank.. or maybe just some simple thermometers for the living room... I've seen the circuits for doing direct through a couple resistors, and stuff, and i just really dont have the tight tollerance parts"resistors" that it would require to be consistant across several sensors...

with the digital output of the 18b20 i can allways just factor in a correction factor in the prop math for each sensor should i figure out that its needed... you know, allways +2 for sensor 1 and -1 for sensor 2 or whatever....

02-22-2011, 03:19 PM
I think those are the right routines but I've attached a couple that I've used in the past. I normally set them up with power, ground, and signal pin. You can do parasitic power, but I've not tried that. The OneWireTest.spin file has a bunch of stuff you don't need, but it should be useful for testing that you got it connected correctly and it's responding. I think it also has the C->F conversion in it. You'll need the SpinOneWire.spin file as well.

I hope these help. Don't forget the PullUP resistor.

I'm gone for a couple of weeks so hopefully you'll have this worked out before I return, but if not I can help you when I get back.

02-22-2011, 06:22 PM
i'm gonna go ahead and do mine with an external v supply too, gonna need it else where in the circuit, so might as well...

this is awesome... well as soon as the samples come in i'll be back at it... sick today, so my brain just isnt up to speed to learn anything today...

thanks for the files, i did have the spinone, but not the onewire....

and thanks for letting me know to not expect a reply for a bit... i'll update the thread as i go, and when you get back you can see where i'm at...

yes please, any help would be much appreceiated... i really think that once i kinda get a start, and get a little bit of a feel for the programming, i'll be able to handle the large parts, i mean looks like i'm gonna be able to copy and paste the big parts anyway, so a few lines, and a few tweaks... who knows... but i'm sure there'll be more q's...

i would love to have this done and working before you get back, and have some data to show for it... hehehe i cant wait till i get it all working and logging data...

02-22-2011, 06:29 PM
I found getting the one-wire temp sensors working the first time a bit tricky, but once I figured it out (I kept okay notes about setup) they have been pretty easy to use in other projects. They may not be the least expensive temp sensors on the market (although free samples are hard to beat), but they are stable and allow you to have multiple sensors and only use on prop pin. They all use the same code so you just need an array large enough to hold all the address (=2*number of devices because addresses are 64-bit).

Best of luck. Use the files as sent as much or as little as you want. Those work for me but no guarantees there aren't any bugs. I look forward to seeing where you've got to when I return.


02-28-2011, 11:17 PM
alrighty, time to get to it... samples came in today... so, i'll be looking at this spin stuff some more, and seeing if i can get the temp sensors reading and displaying on the lcd.... wish me luck!

03-29-2011, 04:56 AM
i havent made much progress with this so far, i've been spending most of my time getting all the hardware set up.. I'm now collecting heat from the sun and storing it in the tanks...

now i gotta start controlling this system a little more intelligently than just on at 9am and off at 5pm... so...


i have my prop, and proto board, and lcd set up from before.... time to get code'n

05-31-2012, 02:24 PM
If anyone is interested in solar water heating or photovoltaic system monitoring check out what we have done at

www.577foundation.org/ (http://www.577foundation.org/)


Post Edited (Mike2545) : 1/25/2009 11:15:17 PM GMT

Cool, very cool!
Excellent job!

08-31-2014, 07:28 PM
I have a stamp1. All I want to do is turn on a pump when there is a temperature differential of say 20 degrees between, two temperature sensors. Simple is good, I have very limited experience.