In case anyone is interested, I have been working on a native Python version of the BrewPi controller. Basically I am converting the Arduino v0.2.11 code to Python so that it can run on the Pi itself and use the Pi GPIO pins to read temperatures and drive relays. This means that an Arduino is not required. Or it should mean that if the code is ever finished.
I want to thank Elco for making BrewPi a reality. When I was looking for some sort of temperature control it kept popping up everywhere with glowing reviews. I understand why a separate microcontroller was considered necessary, but I feel that most, if not all, of the early problems with the Pi have been fixed. As a purely personal project I decided to see if it was possible to run the code on the Pi itself. Thanks to Elco releasing the code as open-source I was able to look at it to see how it worked, and copy it so that I could convert it to Python. Unfortunately, as I wasn't immersed in BrewPi development from the beginning I don't understand everything about it, so some parts I guessed, and some parts I ignored. Still other parts are not implemented, but they are not all necessary.
If anyone wants a brewing controller that is affordable, reliable, and well-supported then I recommend you to buy a BrewPi Spark from Elco (www.brewpi.com). It is well-designed and has a clear roadmap for becoming much more than a simple temperature controller. If instead you want something flaky, unpredictable, and a bit rough around the edges then read on.
Firstly, I disclaim all liability for the code. It's not finished, and I am not committing to finish it. It has bugs. There are bits missing. It might ruin your beer. However, if there is enough interest then I hope others will be willing to inspect the code and submit bug fixes, and some intrepid DIYers to have a go at building one and giving feedback. If there is no interest than I'll just let it languish on github with a million other failed projects.
Secondly, it is not a plug-and-play solution. As you probably know there is a long-running thread on this forum for building a DIY BrewPi for cheap using an Arduino. It contains a wealth of information about the necessary hardware, how to hook it up, how to get the software installed and running and so on. Everything you need is there, and you will end up with a working system. For this project there is very little, so it has to be started from scratch. Curious builders will have to make a lot of effort themselves with no guarantee of success. It may turn out to have been a bad idea after all, in which case everyone's time and effort (and beer) will have been wasted. Sorry about that.
Having said that, I have it sort-of working on my Pi and I started running it yesterday in Beer Constant mode with actual beer (I had tested it only with water previously). I don't have a fridge so I am using a Son of Fermentation Chiller chamber with a heater added. It has just enough functionality to do what I want, which was my original goal.
I would like to thank FuzzeWuzze for taking the initiative to promote the first DIY BrewPi project on this forum, and for his willingness to test my code and offer feedback. The code worked for him (that is to say, it runs), which gives me confidence that it is possible for anyone else to download it and make it run. FuzzeWuzze has also helpfully pointed out some glaring errors. In a nice way, of course. Thanks.
At the moment it is a direct port, with no optimisations or too many Pythonic idioms. My first goal was to get something working. Optimisations and feature-creep come later.
Please feel free to ask questions or make comments here. I will answer as best I can.
Attached is the graph from the last 24 hours:
I want to thank Elco for making BrewPi a reality. When I was looking for some sort of temperature control it kept popping up everywhere with glowing reviews. I understand why a separate microcontroller was considered necessary, but I feel that most, if not all, of the early problems with the Pi have been fixed. As a purely personal project I decided to see if it was possible to run the code on the Pi itself. Thanks to Elco releasing the code as open-source I was able to look at it to see how it worked, and copy it so that I could convert it to Python. Unfortunately, as I wasn't immersed in BrewPi development from the beginning I don't understand everything about it, so some parts I guessed, and some parts I ignored. Still other parts are not implemented, but they are not all necessary.
If anyone wants a brewing controller that is affordable, reliable, and well-supported then I recommend you to buy a BrewPi Spark from Elco (www.brewpi.com). It is well-designed and has a clear roadmap for becoming much more than a simple temperature controller. If instead you want something flaky, unpredictable, and a bit rough around the edges then read on.
Firstly, I disclaim all liability for the code. It's not finished, and I am not committing to finish it. It has bugs. There are bits missing. It might ruin your beer. However, if there is enough interest then I hope others will be willing to inspect the code and submit bug fixes, and some intrepid DIYers to have a go at building one and giving feedback. If there is no interest than I'll just let it languish on github with a million other failed projects.
Secondly, it is not a plug-and-play solution. As you probably know there is a long-running thread on this forum for building a DIY BrewPi for cheap using an Arduino. It contains a wealth of information about the necessary hardware, how to hook it up, how to get the software installed and running and so on. Everything you need is there, and you will end up with a working system. For this project there is very little, so it has to be started from scratch. Curious builders will have to make a lot of effort themselves with no guarantee of success. It may turn out to have been a bad idea after all, in which case everyone's time and effort (and beer) will have been wasted. Sorry about that.
Having said that, I have it sort-of working on my Pi and I started running it yesterday in Beer Constant mode with actual beer (I had tested it only with water previously). I don't have a fridge so I am using a Son of Fermentation Chiller chamber with a heater added. It has just enough functionality to do what I want, which was my original goal.
I would like to thank FuzzeWuzze for taking the initiative to promote the first DIY BrewPi project on this forum, and for his willingness to test my code and offer feedback. The code worked for him (that is to say, it runs), which gives me confidence that it is possible for anyone else to download it and make it run. FuzzeWuzze has also helpfully pointed out some glaring errors. In a nice way, of course. Thanks.
At the moment it is a direct port, with no optimisations or too many Pythonic idioms. My first goal was to get something working. Optimisations and feature-creep come later.
Please feel free to ask questions or make comments here. I will answer as best I can.
Attached is the graph from the last 24 hours: