First some background info
My old temperature controller was an old router that I hacked to expose a i2c bus that had some custom relay modules and temperature sensors daisy chained from it, it was running a very simple bash script - it’s finally died so I need a replacement and rather than re-invent the wheel I thought I would give this project a try.
First off, I acknowledge that the Arduino is a legacy platform but I need a cost effective way to control up to 6 fermenters on a glycol loop and at the moment that means the spark platform is out for me, I may reconsider when multi chamber is ready.
I’ve successfully got 4 Arduino uno’s running of one Raspberry pi and they work ok’ish in Fridge constant mode - I don’t think i’ve got the PID tuning quite right as i’m suffering from massive overshoot when the cooling kicks in, I also suspect that some of the solenoid valve aren’t sealing 100% of the time as some times the overshoot can be considerably target than other times.
I’m in the process of building some RC servo activated ball valves to replace the solenoids, ideally I would like to modify the Arduino firmware to drive them directly, I would also like to back port the changes in the spark firmware that allow beer profile mode to work with a single temperature sensor.
Now the problem,
I can’t get the Arduino firmware to compile, my preferred platform is my Mac, but I’ve also tried on a Debian VM and a Windows VM using Atmel Studio.
I’ve checked out the legacy branch of the firmware repository as this appears to be where the last Arduino release came from.
On both the Mac and the Debian VM the build fails with missing dependencies for Actuator.o, as there is no Actuator.c* files present in the legacy branch I’ve removed the Actuator.* rules from the make file, the build then fails with the following which is the same error I get in Atmel studio on the Windows VM.
In file included from …/DisplayLcdImpl.h:11:0,
…/OLEDFourBit.h: In member function ‘void OLEDFourBit::init()’:
…/OLEDFourBit.h:76:8: error: ‘DISP_RS’ was not declared in this scope
…/OLEDFourBit.h:76:17: error: ‘DISP_RW’ was not declared in this scope
…/OLEDFourBit.h:76:26: error: ‘DISP_EN’ was not declared in this scope
…/OLEDFourBit.h:76:35: error: ‘DISP_D4’ was not declared in this scope
…/OLEDFourBit.h:76:44: error: ‘DISP_D5’ was not declared in this scope
…/OLEDFourBit.h:76:53: error: ‘DISP_D6’ was not declared in this scope
…/OLEDFourBit.h:76:62: error: ‘DISP_D7’ was not declared in this scope
I don’t actually have any displays hooked up, but I can’t see how to disable the display code.
I’ve been looking at this on and off for the last week or so and could really do with pointer in the right direction.