Decided that it was high time to build a BrewPi. I've been using an STC-1000 based temp controller in my ferm chamber for many years, but not being able to build profiles, or have logging, has recently just been the push I was looking for to build something new. That, and I have a ton of spare Arduinos just sitting around.
The biggest challenge though, is the creator of BrewPi decided at some point to base it on the Spark Core, instead of Arduino. The last release of the HEX files which are needed for programming an Arduino was done in April 2015 (https://github.com/BrewPi/firmware/releases/tag/0.2.10). A 'legacy' branch of the back-end software and web UI has been maintained with Arduino compatibility.
I started out my build with a big thread over on HomeBrew Talk (http://www.homebrewtalk.com/showthread.php?t=466106). However, I didn't discover the need for using the legacy branch till much later, and had a hell of a time figuring out where the .hex files actually were. So, here's a bit of my build. I am making assumptions here, that you have raspbian installed on the pi, and you can access the terminal (SSH or via kbd/monitor, don't care).
Here's a Fritzing diagram of my circuit. I found a teeny-tiny breadboard in my parts stash, and mounted it in the middle of the Leonardo with some double-sided tape. Where possible, I prefer to build my circuits on a breadboard, as it's much easier to recover the parts for a future project.
The relay board shown is similar to what I'm using. There's a wide selection of relay boards you can pick up on Ebay, just make sure it can use 3.3v logic and has 5v Vcc for switching the relays.
sudo ~/brewpi-tools/updater.py --ask
I'm not certain if it was due to my Leonardo being an 'off' brand, the different type of bootloader it has (vs. an Uno), the USB ports on the Pi, or what. I couldn't ever get the Arduino to flash via the web UI of BrewPi. To make matters further frustrating, there's lots of info on doing this manually when running Windows, but, the most common tool (XLoader) wouldn't communicate with my Leonardo while running in a VMWare VM. A bit of digging led me to AVR Tools : http://www.w7ay.net/site/Applications/AVR%20Tools/ . Install this, and follow their instructions for installing the dependencies, and the first 'lesson' (http://www.w7ay.net/site/Applications/AVR%20Tools/Contents/page13/Conten... ) on the site will walk you through flashing the .hex file ( https://github.com/BrewPi/firmware/releases/tag/0.2.10 ) onto the Leonardo. After this is complete, connect the Arduino to the Pi, and as root run
echo 'E\n' > /dev/ttyACM0 This will clear the EEPROM of the Arduino, without this I was unable to 'Install' devices via the BrewPi interface (check the HomeBrewTalk thread for this part, it is the same)