# Multi-Chamber Arduino Brewpi



## Tex N Oz (29/1/16)

I've been doing a lot of work with Jonathan Groner of Heroic Ales in Virginia with his instructable on making a multi-chamber brewpi based on the Arduino uno instead of the more expensive (and MUCH less DIY) Proton controller board.
As the original Arduino design has been phased out in favour of the new design, people who wanted to make the much cheaper to build and IMHO just as reliable Arduino design were faced with the difficult task of very disseminated and missing information as a lot of things have changed in setting up a successful system.

If anyone wants to build a 3 (or more) chamber system, please visit Jono's instructable at 

http://www.instructables.com/id/Multiple-Fermentation-Chamber-Control-with-BrewPi/

You can't build a successful system based on the current instructions as it hasn't been updated with the new revisions as of yet, but that will come to the site in the future.
I've attached a document file that gives the particulars of how to install with the latest instructions.

It's a bit of a complicated process if you're very new to the Raspberry Pi and/or Arduino so I'll help where I can.

Cheers


View attachment Multi-brew-finalversion.docx


----------



## SBOB (29/1/16)

confused about the portion in the document indicating that




> *[SIZE=16pt]You CANNOT use the Arduino below as the CH240G USB chipset does not work with the Raspberry Pi as of this document. The drivers for this Raspberry Pi could not be found. Note the[/SIZE]*
> *[SIZE=16pt]chipset circled in red and Atmel328 chip that’s surface mounted circled in yellow.[/SIZE]*


I have that exact looking Arduino Uno (clone) that looks like that, and while I am still waiting for the temp probes to wire it up, I have it talking to the Raspberry Pi, script running and successfully showing commands being sent between both in the logging screen.. 
(Mine came from http://www.ebay.com.au/itm/221601043614)

though im talking a single brewpi setup, but I dont think that would negate the above statement


----------



## Tex N Oz (29/1/16)

SBOB said:


> confused about the portion in the document indicating that
> 
> 
> 
> ...


That's interesting!! If that's the case, it's awesome news as up until now, the CH340G (CH240G was a typo) has not been supported by the manufacturer on Raspbian Wheezy.

I'd love more information so we can incorporate it in the future.

1. Are you running Jessie or Wheezy?
2. Are you running the legacy (0.2.4) or are you on the master (0.4.0) of the Brewpi code?

I'm thinking perhaps they've updated the 0.4.0 with arduino compatiblity as they've upgraded the code recently but I've not looked at it.

Seriously mad-keen to know more mate.


----------



## SBOB (29/1/16)

Tex N Oz said:


> That's interesting!! If that's the case, it's awesome news as up until now, the CH340G (CH240G was a typo) has not been supported by the manufacturer on Raspbian Wheezy.
> 
> I'd love more information so we can incorporate it in the future.
> 
> ...


Wheezy and legacy

Installed Raspian Wheezy 
- 2015-05-05-raspbian-wheezy.img

Installed BrewPi following the automated guide (http://docs.brewpi.com/index.html), and in step 2.1 performed 
- git clone https://github.com/BrewPi/brewpi-tools.git ~/brewpi-tools 
- sudo ~/brewpi-tools/install.sh
- sudo ~/brewpi-tools/updater.py --ask (and chose 'Legacy' option for all)

Flashed the Arduino directly from my mac with the hex file 
- brewpi-arduino-uno-revC-0_2_10.hex
(stealing the guide from http://www.twardnw.com/blog/brewpi-arduino-leonardo-os-x for macs)


----------



## SBOB (29/1/16)

Like I said, no temp probes yet but with Raspberry Pi connected to that Arduino Uno (so its currently just mucking around work) I have
- BrewPi Script running successfully
- Ability to set 'Mode' correctly
- Log file screen in settings of the BrewPi web interface showing correct signals to and from between Pi and Uno


----------



## Mattrox (29/1/16)

SBOB said:


> confused about the portion in the document indicating that
> 
> 
> 
> ...


Is it due to the ttyUSB0 that needs to be used instead and this document does not cover this change required due to the specific implementation for this way to set up brewpi.

I don't use a Pi, I have an old computer running Wheezy. But from following the HBT thread, setting up multiple instances is a different way to set up the brewpi to run separate controllers. Maybe the space required to run multiple instances in this manner is difficult with Pi and this offers a solution? I'll have to read in detail.


----------



## MastersBrewery (29/1/16)

Mattrox said:


> Is it due to the ttyUSB0 that needs to be used instead and this document does not cover this change required due to the specific implementation for this way to set up brewpi.
> 
> I don't use a Pi, I have an old computer running Wheezy. But from following the HBT thread, setting up multiple instances is a different way to set up the brewpi to run separate controllers. Maybe the space required to run multiple instances in this manner is difficult with Pi and this offers a solution? I'll have to read in detail.


Not difficult just more complicated, well documented on HBT, over usb, over bluetooth and over wifi. All the brew pi server is looking for is a serial connection. The load of the server is quite low, however with a Raspeberry PI the big limitation is the SD card both in size and stability.


----------



## SBOB (29/1/16)

Apologies.. Indeed, an extra step was required to update the BrewPi config to define that the ttyUSB0 is the connection path, but this is also covered in the BrewPi documentation in one of the later steps.


----------



## Tex N Oz (29/1/16)

SBOB said:


> Installed BrewPi following the automated guide (http://docs.brewpi.com/index.html), and in step 2.1 performed
> - git clone https://github.com/BrewPi/brewpi-tools.git ~/brewpi-tools
> - sudo ~/brewpi-tools/install.sh
> - sudo ~/brewpi-tools/updater.py --ask (and chose 'Legacy' option for all)


This effectively installs 0.4.0 and then re-installs 0.2.4
It's possible a call for a driver that I didn't know exists occurs with the master install.
It's also possible the arduino-core has been upgraded to include CH340G drivers. That would be awesome as a LOT of people have the new $5 uno boards and would be great for those people to be able to use them.




Mattrox said:


> Is it due to the ttyUSB0 that needs to be used instead and this document does not cover this change required due to the specific implementation for this way to set up brewpi.
> 
> I don't use a Pi, I have an old computer running Wheezy. But from following the HBT thread, setting up multiple instances is a different way to set up the brewpi to run separate controllers. Maybe the space required to run multiple instances in this manner is difficult with Pi and this offers a solution? I'll have to read in detail.


The setup covered here runs multiple-instances of brewpi.py via the cron file. I'm a little confused as to what you mean by instances vs separate controllers.
Admittedly the Pi struggles with 3 because they are all called at the exact same time and watching through "sudo top" it shows them sharing the processor exactly 1/3 each. I'm wanting to expand my system to 6 and trying to time the cron files to start/check them one at a time staggered, not all at once like they are currently called.


----------



## Mattrox (29/1/16)

Tex N Oz said:


> This effectively installs 0.4.0 and then re-installs 0.2.4
> It's possible a call for a driver that I didn't know exists occurs with the master install.
> It's also possible the arduino-core has been upgraded to include CH340G drivers. That would be awesome as a LOT of people have the new $5 uno boards and would be great for those people to be able to use them.
> 
> ...


I was really just meaning this is a different way to achieve each controller talking to the LAMP server. 

The functionality is the same but achieved by slightly different means.


----------



## Tex N Oz (29/1/16)

SBOB said:


> Apologies.. Indeed, an extra step was required to update the BrewPi config to define that the ttyUSB0 is the connection path, but this is also covered in the BrewPi documentation in one of the later steps.


That really shouldn't matter as the multi setup uses device paths set in rules. You tell it where your device is through udev rules so you don't re-arrange your device paths on a reboot.
I know for certain the CH340G and U16Atmel USB to serial bridges have different drivers and somehow you've got them. 
I'm going to run through the master tree and see if they've updated a call for drivers or something..... dunno.. If they have, I just need to find out what they've done and perhaps implement it into the setup somehow. What's difficult for me is I don't have any of those boards... I've got shitloads of the original DIP28 ones though and that's not helping solve the problem. :unsure:



Mattrox said:


> I was really just meaning this is a different way to achieve each controller talking to the LAMP server.
> 
> The functionality is the same but achieved by slightly different means.


I think I'm on to what you're saying. instead of using several instances of Brew.py they are using one instance and having it poll several controllers.
That would be ideal but way outside my current knowledge base. Three weeks ago I didn't know anything about any of this stuff. It's been one helluva learning curve, mostly after a few beers. :blink:


----------



## MastersBrewery (30/1/16)

You might look at using one of the wireless connection options; firstly it will reduce your run of cables and secondly avoid issues with the USB chip sets. This thread here includes setup for serial over bluetooth effective range of around 10m, the OP has had 3 running without issue for near 2 years. And I believe only one instance of brew.py as he also has Raspberry Pints running on the same Rapberry Pi, and has said many times it's quick like no lag.


----------



## Mattrox (30/1/16)

I set up mine to be wifi using a D1 esp8266 clone from China.

I followed the esplink instructions and connected to ex/tx directly on the arduino and it was really easy to get going. Didn't have to worry about the 5v/ 3.3V problem.

My set up has the computer running Wheezy separate from the arduino. I guess that translates to your Pi connected to the network and each arduino talking to it separately over wifi.

It would mean 3 wifi boards at $15 ea. though.


----------



## Tex N Oz (30/1/16)

MastersBrewery said:


> You might look at using one of the wireless connection options; firstly it will reduce your run of cables and secondly avoid issues with the USB chip sets. This thread here includes setup for serial over bluetooth effective range of around 10m, the OP has had 3 running without issue for near 2 years. And I believe only one instance of brew.py as he also has Raspberry Pints running on the same Rapberry Pi, and has said many times it's quick like no lag.


I was flirting with going totally wireless but I've just now got it up and running reliably with multi-chamber wired. It shouldn't matter what protocol you use for comms as long as your deviced can support it.
Everything is addressed through the rules so it's just a config change and youd be up and running...... hhmmmm... Shame on you for planting more ideas in my head!! 
I wonder if I wouldn't have better performance using an old tablet opposed to a RPi. I'm definitely going to research running a single instance. Sounds much more efficient.




Mattrox said:


> I set up mine to be wifi using a D1 esp8266 clone from China.
> 
> I followed the esplink instructions and connected to ex/tx directly on the arduino and it was really easy to get going. Didn't have to worry about the 5v/ 3.3V problem.
> 
> ...


So do you connect to your LAN or is the wifi peer to peer with the RPi? $45 for shields is a walk in the park considering the options.
The next best (and cheapest) off the shelf device I can think of that will offer multi-chamber configuration, remote access, scheduling, PID control and GUI interface is a commercial BMS controller.
I've got a few Innotech controllers laying around here but they are $1900+ each. I'm saving those for my 4V brewery automation. Someday I might put together a rs-485 linked system to run everything but for now I'm liking the Brewpi. I'm really keen to look into wireless. Wifi would be absolutely awesome as you could set up your server anywhere on your LAN or WAN.
Tell me more!!


----------



## Mattrox (30/1/16)

Tex N Oz said:


> I was flirting with going totally wireless but I've just now got it up and running reliably with multi-chamber wired. It shouldn't matter what protocol you use for comms as long as your deviced can support it.
> Everything is addressed through the rules so it's just a config change and youd be up and running...... hhmmmm... Shame on you for planting more ideas in my head!!
> I wonder if I wouldn't have better performance using an old tablet opposed to a RPi. I'm definitely going to research running a single instance. Sounds much more efficient.
> 
> ...


It's connected to my LAN.

I installed Wheezy on an old computer. This is plugged into the ADSL modem. I set it up as a lamp server as per the docs.brewpi page.

I installed the brewpi script from the legacy branch.

I flashed the arduino hex file using Xloader on a Windows machine as the recent update seems to have messed with the config page on the web interface and it doesn't seem to work that way.

I got it all working, then decided wifi is the go. So I got a D1 esp8226 board of eBay and used the esp link instructions....

Hell, I'm going to just copy what I posted on HBT to a new thread....


----------



## Mattrox (30/1/16)

Double post.


----------



## zwitter (1/2/16)

Howdy gentlemen

I have brewpi running on Arduino via BT using the HC05 board and talking to a Raspberry Pi running Wheezy.

I did briefly run a second brewpi based on an Arduino nano over BT to same Raspberrypi 

Was stable as a rock in old drinks fridge. Temp control is unbelievable.

Getting first one working was a pain as I had wrong schematic but when I got correct schematic it all worked about 3 days later. Always on vero board. One has rotary switch and LCD but the display scrambles sometimes but never bothered to sort out why.

Cheers james

Sent from my iPad using Tapatalk HD


----------



## Tex N Oz (1/2/16)

zwitter said:


> Howdy gentlemen
> 
> I have brewpi running on Arduino via BT using the HC05 board and talking to a Raspberry Pi running Wheezy.
> 
> ...


I'm going to give it a try and see myself. Would love to make it happen wireless.
None of my builds have the LCD or rotary switch/encoder. All my gear is hidden behind the fridges anyway.


----------



## Mattrox (1/2/16)

Tex N Oz said:


> I'm going to give it a try and see myself. Would love to make it happen wireless.
> None of my builds have the LCD or rotary switch/encoder. All my gear is hidden behind the fridges anyway.


I won't be doing an LDC as there is no point. Go to all the trouble of getting a web interface to control and monitor, then push knobs and turn dials to change settings? 

I was thinking that if you were setting up a multi chamber set up from scratch, it would be easier to flash the wifi shield with the esp-link software. Use that to flash the Uno with the hex. Run the multi-instance install of the brewpi. But you don't have to worry about the ttyACMO you just put in the wifi IP of each wifi shield. No kernals, no tty just the wifi sending the signal back to the Pi or Linux machine. And no need to worry about usb cables being knocked out.

If I can get my wifi to reach the shed, I'm going to make it an interchangeable black box to swap with the STC 1000+ that is now integrated into the fridge. But I'll be using it in the short term to just monitor the temp in the foam chamber to record it's performance during a ferment. This wifi is some serious dark voodoo that we all take for granted.


----------



## MastersBrewery (1/2/16)

Get an old wifi router hook it to your current network and slap a yagi attenna on it pointed straight at your shed should be good for 500m


----------



## gezzanet (2/2/16)

I've been following the hbt site since it started and have wheezy running on an old laptop. Started with one uno then went to the$5 nanos with the ch340 chip. Now I have a mix of uno and nano all hooked up with Bluetooth so the Bluetooth board MAC address gives them unique id's. The ch340 chip is a cheaper option but you miss out on the unique serial address. I bought some esp boards for wireless but haven't hooked them up yet. Bluetooth doesn't have the range I need with fermentors and fridges in the shed. So the laptop sits in the shed with them and it talks to the network so I can access on the web Gui on other devices. I use them for fermentors, fridge control and mash temp monitoring. From scratch I go wifi and nanos because it's the cheapest and I could have he laptop inside. UNOs prob easier because they have a lot more shields available off the shelf. I'm between brews so I might have a crack at the wifi option. [emoji481][emoji481]


----------



## dibbz (7/2/16)

I've posted a fair bit on the HBT tread so I wont repeat all that here, but after building 2 esp shields from parts I would recomend the sparkfun shield, about $10 more expensive than parts but all the work is done. https://www.sparkfun.com/products/13287 ,it also has an external antenna connector if you need more range as well as the on board antenna tracks, where as I think you can only have external or on board with esp modules, eg. esp-07. Antennas from fleabay are a couple of bucks. 

Also some thoughts about the instructible, you could also use docker and run multiple instances of a brewpi container as you can pass through USB devices into the containers, I've not tried it but it's documented. Docker is a bit if a leaning curve if you aren't familiar with it.

Happy to provide assistance with docker or esp's, just PM.

Also I wouldnt be a proud father to billions of yeasties without a photo


----------

