Interest check for BrewPi, a Raspberry Pi fermentation controller/data logger

Homebrew Talk - Beer, Wine, Mead, & Cider Brewing Discussion Forum

Help Support Homebrew Talk - Beer, Wine, Mead, & Cider Brewing Discussion Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.

Elkoe

Well-Known Member
Joined
Nov 21, 2011
Messages
86
Reaction score
29
Location
Eindhoven
Hi Brewers,

My name is Elco Jacobs and you might know me from my previous project UberFridge.

I am planning to start a community for a new open source fermentation controller that runs on the brand new Raspberry Pi. I will bootstrap the project by porting UberFridge to the Raspberry Pi, but I don't want to stop there.

In a nutshell, the BrewPi will be open source (GitHub) and my goal is to make it the ultimate temperature controller, with a web interface, data logging, graphs, brewing logs and even digital specific gravity sensing and logging.

Converting UberFridge to the Rapsberry Pi and getting other brewers involved in the development will make it possible to make it a plug and play build with a one click install script.

I would like to invest all the time I have in this project, instead of working in an office, and therefore I am writing a business plan.

I have a lot more information about my plans for BrewPi on the following link:

http://brewpi.com/survey/index.php?sid=72293&lang=en

It's a mix between info and questions and you would help me a lot if you could answer these for me.

All questions are optional, so just answer as many as you feel comfortable.

I will be available for questions here for about 1.5 hours, but I'll be back tomorrow to answer more questions.
 
Rough estimate:

Raspberry Pi: 35 + 10 accesoires
Arduino: 25
OLED display: 25
Other electronics: 20?

Just a rough guess.. This excludes a digital sg sensor, just data logging and temperature control.
 
just saw that... python would be great.

linux is great too... ;)
 
Hi

My guess is that the Linux machine is just doing web stuff, so Python would make a lot of sense. The heavy lifting code wise is probably in the little guy. I suspect it's running some flavor of C with some inline assembler here and there.

Bob
 
Awesome!!!!!!!!!!!!!!!!!!!!!!!!!!!!! I am in. I got in on the first order. I am waiting for mine to shipped to me.
 
Merge it with http://www.ospid.com/blog/ and you would have a nice setup.

Arduino for the IO and control, Raspberry Pi for the logging and web interface/video display and user input control (setting temps, turning switches on and off, etc.). Allow for multiple arduinos as input (Kegerator, Fermentation, Brewery). The OSPID give you basic local control/interface and the Pi gives you a master server for them to report to.

This has been my plan for a while. I'd love to help where I can.
 
Hi

Some sort of cheap/rugged multi drop bus between the Linux box and the little guys would be a nice touch. There shouldn't be a lot of traffic, so it could be something pretty simple. Single pair RS-485 comes to mind, but there are *lots* of other options. If you keep it something like RS-485, you can at least get adapters to do debug without the Linux box involved. Things like that make development a lot easier.

Bob
 
Current setup for UberFridge is:
Arduino runs low level temperature control (predictive on-off with PID for the fridge setting), Arduino reads temperatures and drives the LCD display.

The router (linux) runs a python script, which periodically asks the Arduino for data and logs this into JSON and CSV files. This script also verifies the Arduino temperature settings and updates these according to the temperature profile in a Google spreadsheet.

The web server on the router (lighttpd) just provides the web interface. It reads the JSON files from disk and can also communicate directly with the Arduino through a socket. Settings are updated by sending commands though this socket.

Example: To display the LCD text, the web server asks python for the LCD data. Python asks the Arduino, Arduino asks the LCD display. All responses go through the same chain. It's quite a complex communication chain, because of the many layers involved.

The arduino connects to the Pi through USB. With a USB hub in between, it should be possible to run multiple python scripts, all monitoring a different serial port. Multiple Arduinos, one web interface.
 
Current setup for UberFridge is:
Arduino runs low level temperature control (predictive on-off with PID for the fridge setting), Arduino reads temperatures and drives the LCD display.

The router (linux) runs a python script, which periodically asks the Arduino for data and logs this into JSON and CSV files. This script also verifies the Arduino temperature settings and updates these according to the temperature profile in a Google spreadsheet.

The web server on the router (lighttpd) just provides the web interface. It reads the JSON files from disk and can also communicate directly with the Arduino through a socket. Settings are updated by sending commands though this socket.

Example: To display the LCD text, the web server asks python for the LCD data. Python asks the Arduino, Arduino asks the LCD display. All responses go through the same chain. It's quite a complex communication chain, because of the many layers involved.

The arduino connects to the Pi through USB. With a USB hub in between, it should be possible to run multiple python scripts, all monitoring a different serial port. Multiple Arduinos, one web interface.


I a have something similar setup. I have a netduino that listens on a socket for Ajax requests from a simple HTML page. Then it reads 4 1-wire sensors and returns json. Works pretty well thus far.

To the OP. Sorry to be negative but I see a couple of major hurdles in your plan. 1market, lets face it your product will be marketed to a tiny population of people. I think the avg Brewer isn't going to want to mess will a incorporating a micro controller on their here's rig.2 aclick once install is going to be difficult to accomplish. People are going to have several premeatations of wireless networks, brands of routers, security protocols, etc.

Good luck
 
Hi

USB is indeed an easy thing to tie stuff together with. It has a few odd little quirks that might get in the way on some applications.

Signaling is all done against a common ground. That can be an issue if systems get large. Power switching and the like can create ground bumps..

USB self protects in case of an over current (or what it *thinks* is one). With some devices the only way to clear the fault is to unplug it. That's not really what you want in the middle of a control system.

Stacks for USB aren't enormous, but on a bang for the bytes basis, you are not getting a lot here. As you point out, it's pretty layer intensive for a simple single controller serial i/o application.

Finally, USB has some line length limitations. In a compact setup that's not an issue. If I want to have part of the system in the garage and the rest in the basement, it would be an issue.

By no means take any of this to mean it won't work. It will indeed work, but there are some tradeoffs. I don't know of any way to do this that does not have some tradeoffs.
 
I a have something similar setup. I have a netduino that listens on a socket for Ajax requests from a simple HTML page. Then it reads 4 1-wire sensors and returns json. Works pretty well thus far.

To the OP. Sorry to be negative but I see a couple of major hurdles in your plan. 1market, lets face it your product will be marketed to a tiny population of people. I think the avg Brewer isn't going to want to mess will a incorporating a micro controller on their here's rig.2 aclick once install is going to be difficult to accomplish. People are going to have several premeatations of wireless networks, brands of routers, security protocols, etc.

Good luck

I know the market is not that big. It don't expect to get rich from this and I don't even expect to pay my bills from this project. It should just bring in a bit of money that justifies the time I put in. The first group of brewers will be geeks, but when it gets a bit more mature it should not be difficult to set up.

A one click install script should be possible by sticking to the Raspberry Pi. You just connect the Pi to the Internet and do an aptget and run an install script. Connecting it to your home network of course needs a bit of manual settings, but not that much.
 
I love the idea, this sounds like a phenomenal project.

Any thought to using Ruby?

I have zero experience with Ruby, so I used Python, PHP and jQuery.

It is indeed a phenomenal project, but I had many positive reactions to my survey (allmost 100 people fully filled it in) and many people want to contribute to the code.
 
I defiantly like the idea of having a .deb package that will load all the binaries/scripts to run the programs/demons. If you need any help with the linux/perl (as that's my language of choice)/python side of thing let me know... I can get thru most of it.

I have been looking at the raspberry pi since I heard about it and I'll get one as soon as I can.
 
Browsed through this and filled out the survey.
The one thing that comes to mind as far as connecting things together would be to use CAN bus, its made for that exact purpose.
 
Hi

CAN (and it's little brother LIN) are indeed bus alternatives. They are lower overhead than USB. They aren't quite as good for long distances as some other alternatives.

Bob
 
Had mine a few weeks now but havent had too much time to play with it due to exams. So far I've managed to get an arduino sketch going and a python script to upload temps to cosm.com Next step for me is to work out how to get the arduino to control my beer cooler with a relay and PID function.... And then maybe modify my script so it picks up the Setpoint from another feed on Cosm.com - this would allow me to avoid setting up a web server/page myself, which is a bit beyond me. - Hence why I'm so interested in BrewPi!!
 
Hi

CAN (and it's little brother LIN) are indeed bus alternatives. They are lower overhead than USB. They aren't quite as good for long distances as some other alternatives.

Bob

For the relative simplicity of this project, I think LIN would be perfect. Volvo uses it to communicate with every electronic system (down to the rear view mirror) in its newer vehicles. I think it would be sufficient for brewing. Plus it is lower cost than CAN and USB.
 
Hi

I'm not a big fan of CAN. It seems overly complex for what it does. LIN makes a lot more sense to me.

Bob
 
I am very interested (took your survey too). My Pi's arrived last week just for this purpose. I am planning rasp brewing automation and fermentation temp/fridge control. I have some programming experience, but this is going to be a real task, so I am very thankful for this thread/forum.
 
Just got my Pi last week and wanted to use it to automate my brewing process and stumbled across this. Unfortunately I don't know python though...I have been going back and forth about what language to learn next. Looks like I found it! Subscribed to the thread!
 
I had another project to finish, that's why I have kept you waiting for too long. But my web shop for LED drivers is online now so BrewPi has my full attention again.

I have just completely rewritten the Arduino code:
- Now all files are neatly organized in an AVR Studio 6 project.
- Restructured everything in classes
- Replaced LM35 sensors with DS18B20's
- Moved from floating point to fixed point temperatures. Changed to fixed point filtering as well.

I will start testing tomorrow hopefully when I get my Arduino Leonardo, so I can debug with JTAG.

I can probably release the first super alpha version somewhere next week. I'll open the forums then as well and I still have to setup a bug and feature tracker.
 
Can we burn arduino chip and make an embedded solution instead of having to use a whole arduino board.
 
As far as I am concerned, these things are all up for discussion. As this project is in a very early state and I want to get as many people on board as possible, I feel like I should definitely not rule out options. It is not in the nature of open source and I don't think I know it all. The Arduino is the choice for the first version because it is widely available and supported up to the point that any manufacturer wants to make it's boards 'arduino compatible'.

I have the tools to do small production runs, so making a dedicated board which is as versatile as possible is something I can get behind. The reason I am starting with an Arduino is compatibility with existing hardware. I think a shield with connectors for DS18B20's, JTAG, LCD, relays, SSR's, PT-100 sensors (optional amplifiers on board), etc. can really make BrewPi plug and play. I do want to design this board with the community, so I'll open the forums after the first release.

I'll release the first version for Arduino, with a project for Atmel Studio 6. So if you have your own AVR dragon or similar, you can program bare chips as well.

I don't really know about the DigiSpark. It is very limited in the number of inputs/outputs, program memory and data memory. I'd rather have a full size AVR with JTAG debug possibilities for just a couple of bucks more.

My mailman is slow with my Arduino Leonardo, so I haven't been able to test the new version yet. Should have arrived yesterday :( But the Pi is up and running on WiFi already and I feel the two will get along just fine.
 
For $8, the Digispark is perfect. I just signed up for 4. Thanks for the link. At that price, I'm tempted to run an arduino on every component I want to control. Then use the Pi as the hub for it all.
 
BadHorsie said:
Can we burn arduino chip and make an embedded solution instead of having to use a whole arduino board.

Yes. The demo boards are just that, demo boards. Embedded solutions only require the ATMega chip, the clock, and a few other components. There is a page on arduino.cc about this very topic.

Also, why are we even concerned about the Pi? Why not just use an Ethernet shield?
 
Back
Top