Matho's controller

Australia & New Zealand Homebrewing Forum

Help Support Australia & New Zealand Homebrewing Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
here is the fix for the hop additions

CODE

I haven't changed the boil temp but I can if there is a demand for it

cheers steve


Tried it again with short mash and boil cycles and it worked fine thanks to your code change.


Could I please ask you to show how to change the following parameters or maybe change the code and PM or email to me.
These are specific to my system and may not suit every one.

Change default boil temp to 102degrees C (when set at 98 my heat cuts out before boiling starts)

Change the pump to cut out at 90 degrees C (currently the pump cuts out just before boiling starts)

I think these will suit a 30 litre boil with 2400 watt element nicely.

Cheers
Paul
 
Tried it again with short mash and boil cycles and it worked fine thanks to your code change.


Could I please ask you to show how to change the following parameters or maybe change the code and PM or email to me.
These are specific to my system and may not suit every one.

Change default boil temp to 102degrees C (when set at 98 my heat cuts out before boiling starts)

Change the pump to cut out at 90 degrees C (currently the pump cuts out just before boiling starts)

I think these will suit a 30 litre boil with 2400 watt element nicely.

Cheers
Paul

to change the pump and the timing start, it is in the pump rest function


void pump_rest (int stage)
{
if (stage==9){
pumpRest = false;
if (Temp_c<94.0) digitalWrite(Pump,HIGH);
else digitalWrite(Pump,LOW);
if (Temp_c >= 95)tempReached = true;
}
else{
pumptempError = stageTemp-Temp_c;
if (pumptempError <= 0)tempReached = true;
if ((pumpTime < 10)){ // starts pumps and heat
digitalWrite(Pump,HIGH);
pumpRest =false;
}
if ((pumpTime >= 10)){ // pump rest
digitalWrite(Pump,LOW);
digitalWrite(Heat,LOW);
pumpRest = true;
if(pumpTime>=12 || (pumptempError > 1.0))pumpTime = 0;
}
}
}

and to change the set temperature for the boil would be in the auto mode function


void auto_mode (void)
{
load_stage_settings();
load_pid_settings();
check_for_resume();
if(!(resume)){ // if starting a new process prompt for water
prompt_for_water();
wait_for_confirm(autoEnter);
if(!(autoEnter))return;
pump_prime();
EEPROM.write(49,0);
x = 0;
}
if (autoEnter){ // mash steps
EEPROM.write(35,1);// auto mode started
for (int i = x;i < nmbrStgs;i++){
EEPROM.write(36,lowByte(x)); // stores the stage number for the resume
x++; // used to count the stages for the resume
tempReached = false;
get_stage_settings();
start_time();
stage_loop(i);
if (!(autoEnter)) break;
if( i==0 && autoEnter){ // at the end of the mashIn step pauses to add grain
add_malt();
if (!(autoEnter))break;
}
if(i==(nmbrStgs-1)&& autoEnter){ // at the end of the last step pauses to remove the malt pipe before the boil
remove_malt();
if (!(autoEnter))break;
}
Buzzer(1);
tempHAddr +=3; // increase stage addresses
tempLAddr +=3;
timeAddr +=3;
lcd.clear();
}
}
// start of the boil
if(autoEnter){
start_time();
stageTemp= 98.0; // set the intital boil temp to 98 deg c
tempReached = false;
get_boil_settings();
stage_loop(9,120,94);

if(autoEnter){ // finishes the brewing process
display_lcd(0,0," Brewing ");
display_lcd(0,1," Finished ");
Buzzer(3);
delay(2000);
EEPROM.write(35,0); // sets auto start byte to 0 for resume
EEPROM.write(49,0); // sets hop count to 0
mainMenu=0;
autoEnter =false;
resume =false;
}


}
}

cheers steve
 
to change the pump and the timing start, it is in the pump rest function


void pump_rest (int stage)
{
if (stage==9){
pumpRest = false;
if (Temp_c<94.0) digitalWrite(Pump,HIGH);
else digitalWrite(Pump,LOW);
if (Temp_c >= 95)tempReached = true;
}
else{
pumptempError = stageTemp-Temp_c;
if (pumptempError <= 0)tempReached = true;
if ((pumpTime < 10)){ // starts pumps and heat
digitalWrite(Pump,HIGH);
pumpRest =false;
}
if ((pumpTime >= 10)){ // pump rest
digitalWrite(Pump,LOW);
digitalWrite(Heat,LOW);
pumpRest = true;
if(pumpTime>=12 || (pumptempError > 1.0))pumpTime = 0;
}
}
}

and to change the set temperature for the boil would be in the auto mode function


void auto_mode (void)
{
load_stage_settings();
load_pid_settings();
check_for_resume();
if(!(resume)){ // if starting a new process prompt for water
prompt_for_water();
wait_for_confirm(autoEnter);
if(!(autoEnter))return;
pump_prime();
EEPROM.write(49,0);
x = 0;
}
if (autoEnter){ // mash steps
EEPROM.write(35,1);// auto mode started
for (int i = x;i < nmbrStgs;i++){
EEPROM.write(36,lowByte(x)); // stores the stage number for the resume
x++; // used to count the stages for the resume
tempReached = false;
get_stage_settings();
start_time();
stage_loop(i);
if (!(autoEnter)) break;
if( i==0 && autoEnter){ // at the end of the mashIn step pauses to add grain
add_malt();
if (!(autoEnter))break;
}
if(i==(nmbrStgs-1)&& autoEnter){ // at the end of the last step pauses to remove the malt pipe before the boil
remove_malt();
if (!(autoEnter))break;
}
Buzzer(1);
tempHAddr +=3; // increase stage addresses
tempLAddr +=3;
timeAddr +=3;
lcd.clear();
}
}
// start of the boil
if(autoEnter){
start_time();
stageTemp= 98.0; // set the intital boil temp to 98 deg c
tempReached = false;
get_boil_settings();
stage_loop(9,120,94);

if(autoEnter){ // finishes the brewing process
display_lcd(0,0," Brewing ");
display_lcd(0,1," Finished ");
Buzzer(3);
delay(2000);
EEPROM.write(35,0); // sets auto start byte to 0 for resume
EEPROM.write(49,0); // sets hop count to 0
mainMenu=0;
autoEnter =false;
resume =false;
}


}
}

cheers steve

Thanks for all your help Steve
 
here is the fix for the hop additions

CODE

I haven't changed the boil temp but I can if there is a demand for it

cheers steve

hi steve

what did you change in the code?

just trying to understand how it all work rather then just cut and paste

thanks dave
 
hi steve

what did you change in the code?

just trying to understand how it all work rather then just cut and paste

thanks dave

Hey dave, in github if you click on the history button at the top right of the code it will show the history of the changes that have been committed, for each change there is a button on the right that is filled with numbers and letters, click on that and it will show you the changes, the last change looks like THIS

so what I did was to put the line

EEPROM.write(49,0);

in the auto_mode() function at the start of a new brewing cycle to reset the hop addition counter to 0, the hop counter is stored in the eeprom so that if the boil was interupted then on resume it would know where it was up too but I only cleared the counter at the end of the boil and if it was stopped for some reason and not let go to completion, the next time a brewing cycle was started it would screw with the hop addition alarms, now it sets it to 0 at the begining of a non resumed brewing cycle.

cheers steve
 
thanks steve

i am slowly getting my head around the arduino code. i do a little plc stuff at work but it is all in ladder
so i got a sparkfun kit and the learning begins :D
cheers dave
 
As promised here are a few pics of what I call the Brewmaster. I still have to make up the malt pipe yet and still throwing around a few ideas on how I want it.

The brew controller is not fixed so I can move it around and also disconnect it and put it away safe while washing and cleaning the pot.


P1010368.jpg



P1010370.jpg



I have used a 2400 watt element and the pot size is 50 litters so I can do 23 litter batches. A 3000 watt element would have been better as it struggles to keep a rolling boil with the lid off.
To get around this I cut a 150mm dis hole in the lid and it keeps a rolling boil perfectly. Mind you I have only boiled water at this stage.


P1010373.jpg



P1010372.jpg


I think the only weak link maybe the little brown pump, but time will tell and I have an alternative in mind if it does.


P1010374.jpg


I plan on using modified false bottoms for the filter screens as they are dished a little and quite strong with only a 1.95mm hole in them.

P1010363.jpg



I also plan to use this little bilge pump to pump water from my ice bucket through the wort chiller. I will also power it from the controller and have an external switch to tun it on or off.
That way everything comes from the one power source and keeps it neat and tidy.


P1010375.jpg
 
bigbanko, that is awesome. I am a little concerned about the live wires hanging down the bottom but I am sure you have taken the right precautions. I look forward to seeing what you do with your malt pipe, the easiest thing to do will be to use the bigW 19L pot as a couple of us have done.

I hope to see more soon.
 
bigbanko, that is awesome. I am a little concerned about the live wires hanging down the bottom but I am sure you have taken the right precautions. I look forward to seeing what you do with your malt pipe, the easiest thing to do will be to use the bigW 19L pot as a couple of us have done.

I hope to see more soon.

HI The wires are a long way up inside the black insulating sleeves with about 4 layers of heat shrink. The black insulators are then sealed on the end with silicone so there is no way you would be able to touch the terminals/
I also plan to use some spiral wrap around the wire as well to protect it.
 
Top job there Paul, looks awesome

cheers steve
 
How goes it everyone.....due to my busy schedule at work and an unfortunate accident yesterday crushing my hand i've got some off time.....ugh. But any ways. i'd thought i'd keep everyone posted about the all-in-one design.I re-designed it using the original pin-outs that Matho's used so there is no need for change in the coding...after the end of the holidays i'll be shooting to get 100 PCB's fabricated. 25 of those will be just plain PCB's or sale, 25 in kit form and the other 50 will be fully built ($60-&75 plus shipping).
 
Nice work bigbanko! Looks awesome!

As you said the only weak link is the little brown pump. I went through 2 of them before moving onto a magnetic pump and mine is only a 15l setup...
Good luck with the rest of the build

Cheers
Pete
 
Anyone looking for silicone seals to put on the bottom of the malt pipe should try Jehbco in Melbourne as they make hundreds of different extrusions in silicone rubber.

Jehbco


Silicone extrusions
 
I think I will try these hop balls for my hop additions and keep things nice and clean. Just extended the chain with some stainless steel tig welding wire.

P1010377.jpg


P1010381.jpg
 
I wouldn't bother. They don't fit enough hops in when you factor in how much the hops grow inside the balls (I laughed).
 
Hi All,

Im just about to make a start with the assembly of my board, im just finishing off buying all of the components now. I am having a bit of trouble finding the micromatch 6 paddle connector and ribbon, can someone let me know where you can get them from and a part number?

I am still yet to buy the arduino board. What is the best one to buy? Something like this?

http://www.ebay.com.au/itm/Arduino-UNO-R3-...=item3ccd564f3e

Cheers
 
Also the instuctions say to use a 10K pot, but printed on the board is 5K. Which one is correct?
 
Back
Top