OpenLog partially tested
Posted: August 24, 2012 Filed under: Arduino, Data logging, OPenLog, Testing | Tags: Arduino, data logger, RTC, Thermister Leave a commentWell I have to say, I am not particularly impressed with OpenLog’s documentation but I finally got a sketch to work with OpenLog based heavily on the OpenLog command sketch. I soldered up a Yourduino.com Real time clock kit and am waiting on some male to male jumper wires to breadboard up a thermistor and clock to fully test the OpenLog data logging in a closer to real world trial. Of course until it is finally mounted in the boiler control box and mounted on the boiler this will only be the next step in testing.
Hard experience has taught me many things work on the desk that do not work in the field due often to poor electronic practice, missing diodes, filtering capacitors, missing resistors….
Here is the code which I intend to run when I get the project bread boarded, it compiles but is untested.
/*
RTC, Thermisoter, OpenLog test
One thermistor attached to analog pins 0
The Real time clock SDA pin is attached to analog 4, the RTC SCL pin is attached to analog pin 5
The circuit:
Inputs
* Thermister Analog in 0
* RTC SDA, Analog pin 4
* RTC SCL, Analog pin 5
Outputs
* Arduino digital 0 (rx), OpenLog TX
* Arduino digital 1 (tx), OpenLog Rx
* Arduino digital 2, OpenLog Grn
Created 8/24/12
http://www.frugaltinker.com
*/
#include <math.h> // include the library code for thermsiter functions
#include <Wire.h>
#include “RTClib.h”
//section for time keeping
int hour; //hour
int minute; //minute
int Roomtemp; //room temperature
int statLED = 13; //flashes LED connected to pin 13 for troubleshooting
int resetOpenLog = 2; //reset on OpenLog
long DataDwell = 60000; //seperates the data readings by 1 minute
long prevmillis =0; // previous millis
RTC_DS1307 RTC;
//define function to calculate the temperature in fahrenheit for Analog pin 0
double ThermisterRoom(int RawADC) {//beginning of function
double Temp;
Temp = log(((10240000/RawADC) – 10000));
Temp = 1 / (0.001129148 + (0.000234125 * Temp) + (0.0000000876741 * Temp * Temp * Temp));
Temp = Temp – 273.15; // Convert Kelvin to Celcius
Temp = (Temp * 9.0)/ 5.0 + 32.0; // Convert Celcius to Fahrenheit
return Temp;
}//end of function
void TimeSection() {//start time function
DateTime now = RTC.now();
hour=now.hour(),DEC; //get the hour from the RTC chip
minute=now.minute(),DEC; //get the minute from the RTC chip
}// end time function
void OpenLogData(){//start OpenLogData function
int RoomTemp = ThermisterRoom(analogRead(0)); //read from the sensor
Serial.print (hour);
Serial.print (“:”);
Serial.print (minute);
Serial.print (“, “);
Serial.println (RoomTemp);
}// end OpenLog Data section
void setup()
{//Begin Setup section
pinMode(statLED, OUTPUT); //set pin to output
pinMode(resetOpenLog, OUTPUT); //set pin to output
Serial.begin(9600); // initiate serial communication
//Reset OpenLog
digitalWrite(resetOpenLog, LOW);
delay(100);
digitalWrite(resetOpenLog, HIGH);
//Wait for OpenLog to respond with ‘<‘ to indicate it is alive and recording to a file
while(1) {
if(Serial.available())
if(Serial.read() == ‘<‘) break;
}
//Send three control z to enter OpenLog command mode
//Works with Arduino v1.0
Serial.write(26);
Serial.write(26);
Serial.write(26);
//Wait for OpenLog to respond with ‘>’ to indicate we are in command mode
while(1) {
if(Serial.available())
if(Serial.read() == ‘>’) break;
}
//send the open file
Serial.print(“Templog.txt\r”); //\r in string + regular print works with older v2.5 Openlogs
//Wait for OpenLog to return to waiting for a command
while(1) {
if(Serial.available())
if(Serial.read() == ‘>’) break;
}
// send the command to append the file
Serial.print(“append Templog.txt\r”);
//Wait for OpenLog to indicate file is open and ready for writing
while(1) {
if(Serial.available())
if(Serial.read() == ‘<‘) break;
}
//start process of setting clock time
Wire.begin();
RTC.begin();
RTC.adjust(DateTime(__DATE__, __TIME__));
} //End setup section
void loop()
{//Begin Loop section
if (millis()-prevmillis> DataDwell)
{//start if sections
TimeSection(); //displays the time
OpenLogData(); //saves the time and solar temp to the SD card
prevmillis=millis();
}// end if section
}//End loop section
CNC Plasma cutter progress
Posted: August 12, 2012 Filed under: CNC Plasma Cutter, OPenLog | Tags: Acme Screws, Arduino, CNC Plasma, OpenLog, Plasma, SparkFun, welding project Leave a commentI finished the assembly of the two carriages on the x axes of the CNC machine. The y axis is mounted and this next week the goal is to assemble the carriage to Acme nut connections and build the linear carriage for the y axis. So if all goes as planned next weekend or sooner could be the first prototype test of the machine, the z axis will not be workable but I am sure I can find a way to attach a pencil the axis to see movement. That is a great goal for the week.
My SparkFun package of an FTDI Adapter board and and second board will allow me to reload the firmware on the OpenLog board I ordered in January. I am dreading this a bit, electronics and computer area things are my weakness so I am a bit nervous but will tackle this job and test in a example sketch this week. I’ll bet that will take any free time I may have up but will get me that much closer to my goals. 
Magnehelic Data
Posted: February 10, 2012 Filed under: Testing | Tags: Arduino, burn chamber, combustion air, draft, Magnehelic, vacuum, venturi Leave a commentI ordered a Magnehelic gauge from Dwyer Instruments that measures plus or minus 2″ of water column. This allows you to take pressure or vacuum readings within a limited range around atmospheric pressure. Observe the nipple in the picture below. To test the burn chamber I took my plasma
torch and cut a hole in the upper section of the burn chamber where I didn’t think a ash or flame would be an issue and welded a nipple airtight into the chamber. As you can see I added a coupler, 3/4″-3/8″ reducer and a 1/4″ barbed nipple. With the upper exhaust fan running alone, the burn chamber tested at barely .1″ H2O vacuum. With the draft fan running the burn chamber vacuum fell to .05″ H2O vacuum. No wonder there is occasionally a puff of smoke back through the system.
After that initial test in an uncleaned condition the system was taken apart and the second pipe was blocked. After reassembly the testing was done again and the burn chamber vacuum rose. This indicates that the venturi effect we thought we were inducing was not working. By changing fans and cleaning the soot out, we were able to induce a vacuum of .85 in the burn chamber. At this vacuum the smoke observed was non existent, but the exhaust pipe was significantly hotter than in the previous configuration indicating more waste heat. So tuning the vacuum and monitoring the vacuum makes sense and may be an integral way to test the cleanliness of the pipes as well as the required O2 of the burn process. To that end I am going to order a pressure gauge on a chip and see if I can get a reading to be monitored by the Arduino control system. After burning in the .85″ vacuum configuration it became apparent that smoldering in the auger pipe was taking place and the system was shut down safely to allow more work to be done. At this point it appears that .05″ H2o is insufficient and .7-.85″ is too much so a damper or variable fan drive is required to allow burn chamber vacuum adjustment.
Good test for the boiler with -5°F overnight temperature
Posted: January 15, 2012 Filed under: Arduino, Homemade Boiler, Testing | Tags: Arduino, Arduino boiler control, auger feed, cheap heating, cost calculations, homemade chip boiler, pellets Leave a commentI restarted the boiler with a friend on Friday afternoon on the 13th of January. At present it is Sunday morning at 6:45. Thirty nine hours since starting, in that time the temperature has dropped to a low of -5°F which is the current temperature and the fuel usage has been a total of 5 bags. The house is still comfortable and has not shown any dip or problems in maintaining temperature. The only noticeable differences are two things. The lack of the oil fired boiler running which I can hear upstairs and always makes me a little twitchy. The second difference is the temperature of my office. My office is off the utility room which holds the furnace and so is normally quite warm after a cold night. Today it is the temperature the thermostat is set to maintain.
A few numbers, I paid $215/ton for the pellets, so the cost per 40 lb bag is $4.30. The hours per bag is approx. 7.8. This will need a longer time average to confirm but is probably a reasonably good number so in rough terms this is 3 bags per day for a cost of $12.90/day. I looked back to see if I had a furnace run time data which I did have a limited amount. On October 17, 2007 the furnace ran a total of 4.1 hours on a day that had a high of 51 and a low of 33 for a total Heating Degree Day of 22.7. (Heating Degree Days are calculated as (in °F) 65-(day’s max temp-day’s min temp)/2 or to restate 65-average temp) . Taking the furnace run time as 4.1 hours x nozzle rate of 1 gal per hour this translates to 4.1 gals usage for a total cost at $3.85 per gallon of $15.78 for one day relatively mild day. Yesterday’s HDD calculation using a high of 29 and a low of 11 yeilds and average of 20. So 65-20=41. Using a simple ratio of HDD/Furnace Run time would calculate to a furnace run time of 7.4 hours per day for a cost of $28.50 per day. Contrasting this with the pellet costs yields a savings of $15.60 for that one day.
So is that accurate? That was a lot of math using some not very exact calculations. The math was done correctly but Heating Degree Day calculations are notoriously rough. Many oil companies have moved onto more sophisticated methods and of course this is just a snap shot of one day. But as an reality check at this point I am confident 5 tons of pellets would easily get this building through the winter for a total cost of $1075. If I used 800 gals of oil throughout the heating season this would cost me $3080 at a cost of $3.85 per gallon. So yeah I think the numbers are reasonably accurate if not conservative. Wait until I try chips at a cost of $40/ton……too fun.
Back to the drawing board
Posted: January 8, 2012 Filed under: Arduino, Homemade Boiler, Testing | Tags: Arduino, homemade chip boiler, lcd display, LCD problems Leave a commentThe increased air from the second fan did improve the smoke and make the inlet fuel pipe even cooler. It also enabled me to have a viewing port to see if there is flame or if the fuel was adding as expected. But two things happened, the fuel did not flow out of the way so at the bottom of the pipe there was a scree field of pellets which did not move until the previously feed fuel had burned. This situation makes the feeding control very critical. The pace of the feed must be the same as the pace of burning. This alone makes the design unworkable, the process must be more robust than to require advanced combustion calculation, measurement or observation.
The second problem observed was the area of combustion across the pellet field is limited the area of the roughly trapezoidal shape that was formed. This area is significantly smaller than the area of the burner trough. Consequently two things are learned. One the area naturally formed by the falling pellets is insufficient to maintain the water temperature required for my needs, as evidenced by the boilers inability to get past a temperature of approximately 130°F. This alone also requires the redesign since the whole idea is to heat the house. The second conclusion is the area is directly related the heat making capability and thus sizing a burner to a house and feed system is probably quite doable. This seems obvious in statement however, I was thinking that factors such as air volume and burner efficiency would play a larger role. At this point I think I can tailor the BTU’s by burner size and design. I think I will start with the more modest goal of getting the damn thing to work for more than a day.
I’ll admit to being a bit discouraged, however, as January’s calendar said, ” Character consists of what you do on the third and fourth tries”.
To the side see a shot of the burner on the bench in my messy shop. You can see in this shot the approx size of the pellet field that would be burning vs. the potential size of the pellet field if the entire trough was filled.
More combustion air
Posted: January 5, 2012 Filed under: Homemade Boiler, Testing | Tags: Arduino, Arduino boiler control, homeade chip boiler, homemade chip boiler, welding Leave a commentTo increase the combustion efficiency a second fan was added. The smoke coming from the boiler was very thick at times and really needed more oxygen. So a second fan was added, to help add more air and help keep the chip feed area cool. The parts slip together and allow a quick look down into the burner area. This allows you to be able to visually check on the feeding, and the fire by simply lifting the fan. So far I am happy with the change and the biggest difference is the ability to see the feed rate appropriateness. Already I want to change the program to allow smaller bites less often because the fuel is backing up the feed pipe. Because of computer issues, the laptop I was using wouldn’t recognize the USB port the Arduino is plugged into more than one or two uploads, I am attempting to switch computers. The 2nd computer at my disposal is running Windows 7. Not nearly as easy to use as XP Pro that I am used to using in opinion.
So, I am having difficulty communicating with the Arduino. I may have to go back to the first computer. Ain’t computers grand? I am a lot happier with a welder and plasma cutter. My weight this morning was 193.8, down 1.9 lbs. Probably water weight although I have stopped drinking beer for a little while. Ham sandwich in every bottle so a friend once told me.
Changed feed sprocket
Posted: January 4, 2012 Filed under: Arduino, Homemade Boiler, Hopper and Feed, LCD display | Tags: Arduino, Arduino boiler control, auger feed, Auger motor, boiler, lcd display, LCD problems, pellets, relays, run time, shaded pole motor Leave a commentThe New Year practically demands resolutions and change for the better. So with that constant improvement theme in mind I am publicly stating my goal to lose 15#’s and so I am starting from 195.7. My second resolution is the constant improvement of the boiler. So here we go……
Auger feeding failure due to the motor stalling demanded the sprocket change on the auger motor feed assembly. The sprocket I chose doubles the torque available for feeding pellets. Since the shaded pole motor is constant speed the program had to change to double the auger run time. So taking the data I had gathered I changed the program in two ways.
I changed the times to accommodate the speed change demanded by the sprocket change and I changed the paradigm to have constant run time and vary the dwell or off time. The increased torque is a vast improvement and since the change it has had no problem feeding even adding an entire bag of pellets at one time.
A second advantage of the change is the improvement of the LCD display. I think that this problem is now fixed since the LCD has been running without garbling the characters for several hours, long past the time when the LCD would normally have failed. By increasing the torque the auger feed motor is running at less amp draw and so it feeds back less to the relays. I also grounded the relay in a more positive way.
Burner Improvments
Posted: December 19, 2011 Filed under: Arduino, Homemade Boiler, LCD display, Testing | Tags: Arduino, Arduino boiler control, homeade chip boiler, homemade chip boiler, lcd display, LCD problems, welding Leave a commentA friend and excellent engineer visited over the weekend and between us we decided to improve the burner a little. The first change we decided to make was to add some insulation. I measured the temperature around the outside of the boiler with a non contact thermometer at approx. 350°F in the area of the firebox. The mounting plate that holds the burner was approaching that temperature as well. The air box was lower but still this is an excessive temperature. The Auger pipe was solid from the hopper to the burner unit and since I have both 4″ pipe and 4″ tube we decided to make a thermal break in the auger feed for additional safety. The 4″ pipe even though it is surrounded by the air box eventually gets warm and since the feed auger has a fair amount of room between the auger and the pipe there is a certain amount of fuel that remains in the pipe and at shut down this can smolder. So to remove this problem and make the unit more safe a redesign was initiated. Adding insulation between the air chamber and the burner with the addition of a thermal break prompted us to take the unit apart, check it over and see how everything was faring as well as make improvements. But of course after the burner and hopper were cut apart and on the bench more improvements were noted. Most of the improvements now fall into minor design for manufacturing type areas, maybe a little less welding and a little more tabbed nut and bolt assembly so minor changes can be made more quickly. Of course being able to pull the auger feed away from the burner assembly without unbolting anything will be a big change and improvement. I am going to make the air box bolt on as well. Should be reassembled for another test on Wednesday.
Of course it wouldn’t be a weekend if we didn’t play with the software. We added a For loop to the thermistor function to improve the accuracy. I added an array to smooth the results using a moving average. But most importantly we found the lingering problem with the LCD characters being garbled. It was a wiring issue. Now fixed it has run 24hours without a problem and I am confident it will stay fixed now. The next step will be to add a capacitor if the problem resumes. I am quite confident it will not be a problem however since it looks more solid even. There is less flickering and more solid character display. So all in all a fun and productive weekend.
Overnight run successful
Posted: December 17, 2011 Filed under: Arduino, Homemade Boiler, Testing | Tags: Arduino, Arduino boiler control, homemade chip boiler, lcd display, LCD problems Leave a commentSuccessful overnight run, software required major tweaking but the boiler ran without involvement overnight. I did supervise the process but nothing got hot or got out of the control parameters. My only complaint at this point is chip economy. The setpoint I chose was 160°F which is probably too high for the weather we are having now. The overnight temperature was approx. 32°F and so the circulator just didn’t use that much heat. So I think I will add some software changes to the program. The first to be the addition of a variable called setpoint so I can easily change the set point temperature. Ultimately I need to add a outside temperature thermistor to the internal PC board so the Arduino can determine it’s own set point based on outside temperature. Some other ideas are to relay the draft fan so the flames aren’t quite so robust all the time as well as physically remaking the burner unit to be smaller. All in good time. So far software changes are making a difference so I will try that first.
The flames look consistently great. The burner is working really well. Still having LCD problems and my main goal after getting the unit to run is building a second unit so I can make the unit run the Hot water thermostat as well as try to duplicate the LCD character problems. Of course I could probably call the manufacturer of the LCD to see if they have any technical support. That will be a Monday project.
Above is a picture of the somewhat improved but not final configuration. At least the wires are neat and the smoking problems have been overcome. The new door is pictured, and the burner flame. A photographer I am not.
3rd Burn Test
Posted: December 13, 2011 Filed under: Arduino, Homemade Boiler, LCD display | Tags: Arduino, Burn test, homemade chip boiler, hysteresis, relay chatter Leave a commentSuccess! At least compared to the last burn. Virtually no smoke, although some paint burned off. There is still some lingering smell from duct tape and caulking but overall much better, with no smoke. The burn start/ ash clean out door needs to be rebuilt with hinges, so that is still a problem area, but overall great. The program ran reasonably well, however, I added some hysteresis to the circulator loop to keep the relay chattering to a minimum. At this point I have the oil fired burner locked out, but I think I will reduce the temperature set point of the boiler and it just won’t come on unless needed. There are a list of small items that are required to run a 24 hour test, but I can probably do most of these things tomorrow and be able to be successful with this tomorrow afternoon. One thing that still needs to be done is shop cleanup. But for now, YEAH! Thanks
to friends!








