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.
I had this flickering when I first loaded ArdBir. I had not made the change as Max advises. Looked much better after made this little change.
James
Zwitter

PS all this is on the first page of the instruction book.....

MaxN68 said:
The setting of the display should be done on two specific rows one at the beginning of the sketch, and one toward the end.

# include "LCD20x4_ ***. h"
lcd.begin (20.4);

For ease you can search using this text "LCD***"
 
If all else fails right? ;) I only just uploaded once and hadn't investigated any further. That was my next step :) promise :)
 
Step 1: Read the manual (What I wrote to do?)
Setp 2: Configure your language and LCD view (look in the manual how to do)
Step 3: Configure PID (Please refer to Step 1)
Step 4: Configure Unit (You must always refer to the manual)

Only after you have done all this

if you want to run auto mode:
Step 5: Configure your brewing automation

Start Manual Mode or Auto Mode

:super:
 
Here are the results of my testing tonight. I did four separate (shortened) water runs and during all four tests the pump failed at the mash out stage.

My system uses the original brauduino board with 16x2 display with a genuine arduino uno. The schedule for each test was as follows - mash in 58 degrees, aAmalayse2 63 degrees for 5 minutes, mash out 75 degrees for 5 minutes with boil and hop settings untouched from my first brew.

I checked your above post and had definitely followed all those steps when setting up the unit before it's first run last week so went straight into the testing tonight.

Run No. 1 - I recalled that I had experienced a screen scramble and system reset during the aAmalayse step during my original brewing session so I replicated that by disconnecting power during that step and resuming the operation. After reaching the mash out step and confirming that the Iodine test is OK the pump would stop and heating to mash out begins.

Run No. 2 - To test if it was the system reset and resume operation I repeated the run above without resetting power during the aAmalayse step. Again after confirming Iodine test OK the pump would stop.

Run No. 3 - I decided to re-upload the 2.6.62e sketch to the arduino and confirm I was following the setup steps correctly. I re-uploaded and then proceeded to first set all the PID parameters, then the Unit parameters, then initialised the eeprom via the Recipes menu. Again the test result was the same as the previous two runs however I had noticed that the parameters I had set earlier were still loaded to the arduino so decided to do a fourth test.

Run No. 4 - This time I ran a quick eeprom erase sketch to the arduino to get rid of any saved data then re-uploaded the ArdBir sketch. I immediately went to the PID parameters and confirmed that all values had been reset to zero. I set the PID and Unit parameters as they had previously been set and again initialised the eeprom via the Recipes menu. I then ran the same schedule as the tests above and confirmed that again the pump stopped after selecting OK to the Iodine test.

My settings are as follows

PID
P - 50
I - 1
D - 10
Window - 1000
Boil - 100%
Cal - 0.00

Unit
Degrees - C
Sensor - Inside
Set Boil - 100
Pump Cycle - 10
Pump Rest - 2
Pump Boil - OFF
Pump Stop - 95

I hope this information is helpful, I really wanted to find that it worked correctly on Run No. 4 to indicate that I had just missed something during the setup as I was hoping to brew again soon using this system.

Cheers,
Steve.
 
I added on Dropbox , the latest release 2.2.63b2:
- Correction of errors display
- Fix failure of the pump break during the mash out
- Change the value of the limit of Delta Temperature on the restoration of pump break
- fixed error on resume.

It took me a bit because I wanted to do the comprehensive simulations with only water to be sure not to find other obvious errors.



With the corrections made ​​in this version, I'm reorganizing two releases that I had in development :

Beta Version (2.6.63d):
- Changed parameter of intervention of the PID constant kI at +400 and -200 compared to 0.25 the previous value . It was served a big gap of performance of the PID to change even a single unit of this value , it should now be all the more manageable.
- Changed the parameter of minimum intervention of the output of the PID making it proportional to the temperature


Alpha Version (2.6.64):
- As the version 2.6.63d but added the use of the library DallasTemperature which allows a more accurate reading of the temperature at the expense of occupancy of space on the sketch significantly higher .


The version 2.2.63b is already present in the space Dropbox indicated in my signature.
The other versions I will add later.

Let me know if everything works fine .

thanks
 
I hope that the latest changes are decisive, implementations are many and sometimes just made ​​a mistake insignificant to trigger something wrong.


stevemc32 said:
...
My settings are as follows

PID
P - 50
I - 1
D - 10
Window - 1000
Boil - 100%
Cal - 0.00

Unit
Degrees - C
Sensor - Inside

Set Boil - 100
Pump Cycle - 10
Pump Rest - 2
Pump Boil - OFF
Pump Stop - 95


...

I'd change the PID Setting "Use In Boil = 100%" to 0%
For the PID I would advise you to use a window of not less than 2500 and for use in the boil to start with a value of around 80% and then be more accurate with experience.



Keep me informed about any errors that I will try to resolve them as quickly as possible.


If anyone wants to try the Beta Version (2.6.63d) to give me feedback on the improvement of PID would be a very useful thing

Thanks
 
real_beer said:
I run the same hardware as you and Max's latest update fixes the problem. I think he's very close to posting it here.

I'd change the PID Setting "Use In Boil = 100%" to 0%

Cheers

MaxN68 said:
I hope that the latest changes are decisive, implementations are many and sometimes just made ​​a mistake insignificant to trigger something wrong.



For the PID I would advise you to use a window of not less than 2500 and for use in the boil to start with a value of around 80% and then be more accurate with experience.



Keep me informed about any errors that I will try to resolve them as quickly as possible.


If anyone wants to try the Beta Version (2.6.63d) to give me feedback on the improvement of PID would be a very useful thing

Thanks
Have I misunderstood this parameter in the instruction manual. The manual describes it as a pulse width modulation parameter so I assume anything less than 100% would limit the power available to the element during the boil phase, whether controlled by PID or just running at maximum power. My system does not boil that well so I figured just get the maximum amount of power available into the element and achieve the best boil off rate possible.

Is the PID control operational during the boil phase or does it switch to simple PWM with the above set duty cycle?

I do appreciate the advice on setting the parameters as I'll admit I don't have much knowledge on PID control. For this reason I'll refrain from using the Beta Version as I don't think I could give any useful feedback.

Thanks guys.
 
Hi Max,

I just tried to compile the 20x4 Eng and got this error:

In file included from ArdBir_2_6_63b2.ino:112:
/LCD20x4_ENG.h: In function 'void PausaPompa(float, int)':
LCD20x4_ENG.h:670: error: 'Ciclo' was not declared in this scope

It looks like it was commented out where you declared it and in the PausaPompa method, so I've just commented it out.
 
The temperature control is managed by PID throughout the process until boiling.
Arriving at the threshold of boiling control passes to the PWM, likewise if it drops below starts the PID.
Why this?
Because in boiling phase must be able to maintain the temperature and have a check sull'overboil and in this way is easier.

Council initially put 80% because I do not know your pots and 80% may be a good place to start and then correct it.
Found then the value suitable to your pot will be enough heat in the correct configuration.
 
lael said:
Hi Max,

I just tried to compile the 20x4 Eng and got this error:

In file included from ArdBir_2_6_63b2.ino:112:
/LCD20x4_ENG.h: In function 'void PausaPompa(float, int)':
LCD20x4_ENG.h:670: error: 'Ciclo' was not declared in this scope

It looks like it was commented out where you declared it and in the PausaPompa method, so I've just commented it out.
yes, just comment out the line 670 in LCD20x4_ENG.h
Code:
//Ciclo++
 
Thanks Max.

I'm having the same trouble I did when I first tried the ArdBir - which is that my temp reads are all out. I've tried a couple of shields (an old v1 16x2 and a new v2 w 20x4LCD) and the temps are off with any of them. If I flash matho's code, it is fine again. It should be roughly 20C according to the thermometer I have. Is showing 20.5 on matho's code and 94.5F (which is 34C...) or on another arduino set to use Celsius (I guess the eeprom is set from when I was testing it in my completed controller a few weeks ago) is coming up as 46.5C. Problem is... I haven't finished building the controller for the 20x4 so I can't change it to C from F. Not very helpful, I know. Sorry!

Any ideas what the problem might be?
 
The problem of the temperature is related to a value that is added to the temperature read by the sensor.
This value is the calibration.
If you went from Brauduino to ArdBir you have this error because the EEPROM cell contains a value that is appropriate to what you expect.

To solve this problem you have to proceed with the configuration.
Unfortunately in order to optimize the code I had to remap the EEPROM memory in order to have the values ​​stored in contiguous blocks.

On Brauduino the cells where it is stored calibration value corresponding to the cells that contain the temperature of the second stage

View attachment EEPROM ArdBir.pdf
 
Hi Max,

So far I've been testing mine using:
PID
P - 50
I - 1
D - 10
Window - 2500
Use In Boil - 0% (I have a heavy 50lt Kettle and want the 2400watt element on full power all the time during the boil)
Cal - 0.00

Unit
Degrees - C
Sensor - Inside

Set Boil - 100
Pump Cycle - 10
Pump Rest - 2
Pump Boil - ON
Pump Stop - 95
 
I have a 56Lt Thermal Pot with 33Lt Pot Pipe and a 2500watt element with the sensor after the circulating pump.
My configuration is
P = 93
I = 1 (6 whit the I = 1/4)
D = 0
Windows = 3750
Use in Boil = 86%
Calibration = 0.00

Degrees = °C
Sensor = Outside
Set Boil = 97
Pump Cycle = 5
Pump Rest = 2
Pump Boil ***
Pump Stop ***

***With External Sensor the pump on boil is ever ON
 
MaxN68 said:
The problem of the temperature is related to a value that is added to the temperature read by the sensor.
This value is the calibration.
If you went from Brauduino to ArdBir you have this error because the EEPROM cell contains a value that is appropriate to what you expect.

To solve this problem you have to proceed with the configuration.
Unfortunately in order to optimize the code I had to remap the EEPROM memory in order to have the values ​​stored in contiguous blocks.

On Brauduino the cells where it is stored calibration value corresponding to the cells that contain the temperature of the second stage
Thankyou! That makes a lot more sense now! Is it possible to write a set of default values to EEPROM when the sketch is uploaded?
 
Hi Max,

Automatic Process - configuring Hop(x). On each next hop addition we can't increase time - only decrease is possible. So time of next hops can be only less or equal to previous. Is it a bug or a feature?

Thank you.
 
Time is relative to the permanence of hops in the boil, then assuming a boil for 90 minutes with immediate introduction of the first hop, all others will have a shorter duration.
You chose then to readjust the range of choice of time to avoid introducing a wrong time and cause an error in the operation of the warning function for the introduction of hops in the wort.
This type of approach was also chosen to design the mash and the jump of the steps with intervals of not matching the previous one.
 
Back
Top