Multiple chambers progress?


#61

Hi Elco,

I bought a Spark 3 and accessories last summer and am just getting around to setting it up now (after a move). All is going well with getting my hardware to work with a basic one chamber setup but I have two fermentation chambers that I’ll need to use sooner rather than later and I’m wondering how I should proceed.

Is a two-chamber hack for the spark 3 coming in the near future (next couple months)? If not, what are the trouble points? Hacking the firmware itself? Hacking the (legacy) UI? Are you waiting for the new UI before implementing multi-chamber support? Or is it simply that mash-control (or something else) is the current focus and 2 chamber control won’t be implemented until after mash control?

I have some arduinos lying around, but getting them to work with the RJ12 one wire sensors and the actuator connectors (which are difficult to find in the US) would require a bit of retooling, I’d need to figure out how to connect it to the pi (wifi vs network cable vs usb), and I’d need to wire a new 5v circuit into the cabinet (which currently only has AC and 12DC). Given all of this and the fact that the code and documentation for the arduino brewpi is so out of date, I’d obviously prefer to find a way to get both chambers running under the spark 3 if at all possible.

Best,
Austin


#62

Hi Elco,
I hope you are well.

I recently purchased a few more bits from you in order to prepare my second fermentation fridge. May I ask; is there a multi-chamber update coming soon and if not, are you able to supply a work-around of some sort? I’m held back by this.


#63

Related to the Docker solution, have a few questions prior to diving in and not familiar with the container implementation.

  • From a hardware design, it is one RPi and one Photon, correct?

  • Will the temperature probes and relays be available to both containers allowing me to have container 1 associated with temp probe 1 and relay 1 to control chamber 1; and container 2 associated with temp probe 2 and relay 2 to control chamber 2?

Thanks!


#64

Elco,
I have ordered two Sparc 3’s and have my RaspberryPi 3+ updated to latest, with SSH on my WIFI system so when the units arrive I will be working on the setup for the two chambers (heat and cool). I thought I saw a link to some scripts that sounded more up to date with the above and the Spark 3’s otherwise when the new toyz arrive I will start the above process.
Thanks
Mike


#65

Got my Sparc 3 units 2 days early from shipping estimate, cool!
Having trouble with the following command, Portainer is running:

"docker run -d --name brewpi -p 80:80 -p 81:81 -v ~/brewpi-data:/data -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime --restart always brewpi/brewpi-raspbian "

Since I have 2 BrewPi’s what is the correct line? I tried brewpi1 after name and got the following messages:
Unable to find image ‘name:latest’ locally
docker: Error response from daemon: pull access denied for name, repository does not exist or may require ‘docker login’
See ‘docker run --help’
do I do both in one command line or sequentially?. I have not powered up the units or connected them yet.
Thanks in advance
Mike


#66

@mmmooretx use these two commands to create the containers, you can obviously change the port numbers, this will give you two containers, one brewpi1 and the other brewpi2, each with there own data folder on the host ~/brewpi-data1 and ~/brewpi-data2

docker run -d --name brewpi1 -p 80:80 -p 81:81 --privileged -v ~/brewpi-data1:/data -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime --restart always brewpi/brewpi-raspbian

docker run -d --name brewpi2 -p 8080:80 -p 8081:81 --privileged -v ~/brewpi-data2:/data -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime --restart always brewpi/brewpi-raspbian


#67

That worked nicely thank you, however the next step I also had problems, trying to set up the usb Spark connection:

docker run -d --name brewpi1 -p 80:80 -p 81:81 --privileged -v ~/brewpi-data:/data1 -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime --restart always brewpi/brewpi-raspbian

gave me “docker: Error response from daemon: Conflict. The container name “brewpi1” is already in use by container “bc48b~580”. You have to remove (or rename) that container to be able to use that name.”

Sorry I am not familiar with these aps cmd lines. Thanks again for your time and support.
Mike


#68

If you want to use both over USB, you’ll have to specify the USB port directly instead of passing --privileged.

But the order in which you plug them in will determine their location. It will be easier to run on WiFi instead.

You are getting that message because you already have a container named brewpi1.
You’ll have to remove that one first.


#69

Ok the BrewPi’s will be close to the Raspberry pi 3+, but my main WIFI link is about 50 feet away. Will there be any conflict issues with 3 WIFI connections?
Thank you
Mike


#70

I can use the USB port method as I will keep the Spark 3’s plugged into the same locations in the RaspberryPi 3+ always and label them too. I just need to understand how to get the port id’s and the command string to set that configuration. I am currently reading the documentation 0.3.0 if that is good for the BrewPi Spark 3 (2 each)/RaspberryPi 3+(1each) for a USB connection of the 3 units, while the Pi connects with my WIFI router. I have edited with nano in the past so using it again will be a short learning cycle. However I want to be sure I understand the updating process for the Pi parts, plus the Spark parts. Are all of the config files on the RaspberryPi for the Spark BrewPi’s? Sorry but it has been over 4 years since I have dug into setting up a BrewPi fermentation system.
Thanks again for the time and support.
Mike


#71

To get persistent USB port to tty mapping, you would have to write udev rules on the host.

https://www.raspberrypi.org/forums/viewtopic.php?t=90265

Then you will forward each port to the container, with:
--device /dev/ttyBrewPi1:--device/ttyBrewPi
Assuming you name a USB device ttyBrewPi1 on the host.

You will have to run the containers without --privileged, but forward this single device instead.
In the container, you can just point it to /dev/ttyBrewPi then, because with the --device flag for each container you have specified which USB device goes to which container.


#72

I just investigated a bit and I think we can actually improve our script so that you can give it the serial number of the photon and it will search for the right device itself!

I will look into this soon, so you don’t have to write the udev rules if you can wait for that.
I see that python can list the unique serial number, so we should be able to choose a port based on it too!

python -m serial.tools.list_ports -v

#73

Sounds good, and thank you. I will focus on rewiring my Brewtroller box to PID control while this is happening.
Mike