Flow/pressure profiling for the La Marzocco GS/3 - Page 3

Equipment doesn't work? Troubleshooting? If you're handy, members can help.
User avatar
Peppersass (original poster)
Supporter ❤
Posts: 3692
Joined: 15 years ago

#21: Post by Peppersass (original poster) »

You're way ahead of me. I'm not concerned about automatic brewing yet. I'm just trying to keep the pump from killing itself!
AssafL wrote:Did you try to run the auto-tuner for the PID?
Not yet. I realized that the PID wasn't working because there was too much lag in the pot and pressure inputs. That was caused by the running average I added to clean up the input signals. I was able to get rid of averaging for the pot by putting a 47uf capacitor on the input. Very stable readings now, so maybe the pot has gotten noisy in its old age. Another 47uf cap didn't stabilize the pressure transducer, but I found a library with an exponential smoothing algorithm that got rid of most of the lag and still produces a reasonably stable signal. But it's not as stable as I'd like, so I'm still working on it.

Anyway once I took care of the lag, the PID parameters started having the expected effects. I added dynamic modification of the PID parameters to the user interface and was able to find parameters that work pretty well. But there's still a little overshoot (0.5-1 BAR) and when I backflush the PID can't deal with the sudden pressure jump. Not only does it exceed the 10.5 BAR limit, it jumps past 12 BAR. The expansion valve starts whistling and I have to quickly turn off the brew switch to prevent it going any higher. Tried lowering the sample time, but that caused oscillation. Might be able to compensate with the PID parameters. All these things interact. If I can't figure it out, will have to investigate the autotuner.

Hopefully I can get the PID to work, but there may be other inputs I can use more effectively to cap the pump speed. I have this idea that I can use a combination of the pressure and flow rate to detect what the machine is doing. For example, if pressure is a few BAR above line pressure and the flow rate is greater than a couple hundred ml/min, the machine is in free flow and I can set a relatively fast motor speed for that. If pressure is high (or rising rapidly) and flow rate is below 100 ml/min, then I'm backflushing and the speed needs to be cut back to a safe level. If it's not in free flow or backflushing, I can run at brew speed. I think the pump will see zero pressure when autofilling, but I have to test that. I could really crank the speed for that, and don't have to worry about brew coming on at the same time because the GS/3 won't allow that.

I was running some tests and pondering whether to 1) connect directly to the flow meter or 2) complete my brain box interface board, when the GS/3 suddenly turned itself off (I was cycling brew a lot, playing with PID parameters, etc,) The rocker switch in the back wouldn't "snap" on -- it just sprang back to the off position. Made me think it has some sort of circuit breaker or thermal cutoff inside. I should have waited longer, but I kind of panicked and opened the brain box. The AC fuse was fine, so I tried the switch and this time it turned on -- as if something reset. Do you know if the main power switch is more than a switch?

Anyway, once I got into the brain box I decided to go forward with the interface board. I only built two of the optoisolator sensors: motor on and flow meter. In retrospect, I wish I'd been a little more patient and added a couple more items (see below.) Here's the board:



Sorry, a little out of focus. Note the right-angle RJ-45 connector. This makes it possible to use a standard Ethernet straight cable and route it out of the brain box. The first sensor is a MID400 AC monitor optoisolator. Signal is high when AC is off, low when AC Is on. This IC was key to my goals of not wanting to bring AC voltage out of the GS/3 and to completely isolate the circuits. The next sensor is a plain-old TIL111 low voltage optoisolator. Initially, I pillaged a small daughter board with a TIL111 that I made for my Auber counter to measure pump RPM and was going to mount it on the interface board as-is. But it was easy enough to just duplicate the circuit and put the daughter board back in the Auber. I'm using a transistor buffer on the output, which probably isn't necessary for the Arduino but it's good design.

Strictly speaking, the motor monitor isn't necessary. I had previously run a line from the AC motor voltage on the large terminal block on the Gicar board to my gear pump interface box. Originally it threw a large AC relay that switched the pot signal to the gear pump. Later, anticipating that someday I would use a low voltage signal from the GS/3 to turn on the pump, I replaced the big relay with a MID400 and installed a jumper that selects either that MID400 or the one on my GS/3 interface board. The reason I wanted to use a low voltage signal was to get rid of the heavy AC cable running out of the brain box and down/up through the cabinets to the gear pump interface. The only downside is that if I ever want to connect the rotary pump I'll have to add a 5VDC relay to switch AC to the motor.

Note that there's room on the board for a couple more sensors or relays. If I need more than that, I can add a daughter board.

Here's the board installed in the brain box:



I had previously removed the large motor cap to make room for the board. I haven't used it since outboarding my pump years ago. The board is mounted on four plastic standoffs.

Note the broken plastic on the right rear of the box. One of the screw posts on the other side of the box broke off a while back. I have a replacement box, but didn't want to take the time to drill it, swap out all the innards, etc. Thinking of doing that when I go back in to add some stuff to the interface board.

The motor signal worked fine -- once I realized that I needed a diode to prevent the motor relay from being thrown when the Arduino is powered down. I guess its inputs go low or can sink current when powered down.

The flow meter works, too. Like the motor tach, the flow meter signal is interrupt driven. I refresh the flow rate every 200 ms. Seems to be pretty responsive at that rate. I haven't calibrated it yet, but it turns out that multiplying the frequency in Hz by 60 is pretty close to the actual ml/min. For my purposes, I don't believe accuracy is all that important because I'm mostly concerned with ranges and direction.

Speaking of speed, i converted the RPM display to % of max speed (RPM / 5000). This is much more intuitive than RPM. Slayer does it that way. You set a desired motor speed percentage for brewing. My friend uses 28%. My normal setting is around 37%. I plan to add the ability to set the motor speed percentage for brewing to the user interface.

I have to track down a glitch I noticed with the flow meter. It'll be running along at a steady 450 ml/min in free flow, and suddenly the reading will flash lower -- say 387 ml/min -- for about one second and go back to 450 ml/min. Both readings are stable. It's so regular and predictable that I'm almost certain it's caused by the boiler heaters cycling on and off -- i.e., SSR noise. After all, the TIL111 and its input wire are right next to one of those SSRs. I need to watch the flow meter and GS/3 display to see if there's a correlation. Also will hook up my scope to the flow meter signal to see what's really happening,. I probably have to put some bypass caps on the optoisolator supply pins, which I should have done in the first place (can't believe I forgot that), and maybe use shielded wire or route it away from the SSR.

Too late, I realized that I should have taken a little more time and added a MID400 to detect autofill. That's another speed indicator -- when autofill is on, I can increase the motor speed accordingly. I'll only add this sensor if I can't detect autofill reliably by looking at the pressure and flow rate.

I also should have put a relay on the board to initiate/terminate the brew cycle. But I don't want to do that by switching the 3-way. I want the GS/3 to do everything it does when brewing. All I want the Arduino to do is "hit" the brew switch.

Assaf, do you know how those buttons work? Do they just close a circuit that runs back to the logic board, or is there an IC involved on the display board? Could I parallel a relay and have the Arduino pulse it momentarily to simulate hitting the switch?

User avatar
AssafL
Posts: 2588
Joined: 14 years ago

#22: Post by AssafL »

Great progress. I - FWIW - am drowning in fittings, and learning how to bend copper. Lucking, 0.25" copper is not hard to bend. Until you realize that the ferrule cannot go around a bend (tight tolerances) so you have to build more adapters.

And more time figuring out NPT BSPP compression, flare, etc. Trying to cut the inches off the line of adapters everywhere... Eck.

Also, I got the MG204 with Bypass. It wont go over 8 bar. Which should be okay with 3-4 bar of line pressure (~12 bar out). Local distributor doesn't know why it doesn't go to 9-10 bar so I sent an email to Italy.
Maybe Italians put "best case" in their graphs (or worse - "typical values" - whatever "typical" they chose to be). BTW - Strada EP requires 3 bar input or an additional pump to get to 3 bar. So maybe that is why?
Note: The big Strada EPs do not require an external pump (unless pressure is <3 bar OR flow rate is too low < 100l/h); so maybe it is better to set a regulator at 3 bar, hook it to a hydraulic T adapter - one leg through check valves to the MG204 to the flow meter, and the other leg to the tea mixer. (of course the line between the mixer to the flow meter should be sealed at the flow meter end).

To the questions:
1. Indeed the main contractor is a very elegantly built resettable thermal fuse - it has a bi-metal that releases the rocker if current is exceeded over time.
2. The buttons just shot contacts on the flat cable. You can build a flat cable extender (socket to plug and extract the necessary lines and use a relay to pulse them). Just remember that a status state machine will need verification as a safety (verification meaning that e.g. IF 3-way is on - it means the system is "active") - to avoid losing sync due to a bad reset.
Scraping away (slowly) at the tyranny of biases and dogma.

Advertisement
User avatar
AssafL
Posts: 2588
Joined: 14 years ago

#23: Post by AssafL »

1/2 of the hydraulics project is over. I now use two pumps - the rotary vane (original) pump for the pneumatics and an MG204 for hydraulics. I have yet to receive the Parker/Hannifin medium Cv metering valve and source some 1/8 BSP fittings to do really fine flow manipulation. Also, have to design and built the electronics package to integrate the GS/3 controls and the PP/FP controls (signaling via mains voltage to the group solenoid).

Here are some interim pictures:

F-O-T MG204 pump and Dynisco PT130 pressure sensor.


Pump head as seen from above. Bypass adjustment screw (adjacent to the input nipple) can be accessed using a long neck flat screwdriver from the back of the machine (with cover removed). The copper tube (in focus, unfortunately) is the exhaust tube from the 3 way. To the right is the OPV can.


Pump connects to the input of the flow meter. The original line between the mixer valve and the flow meter is sealed with a hydraulic plug at the exit point. All connections are flare (in Israel flare is preferred for some reason or other - I used both).


Tee is used to connect the manometer in parallel to pressure sensor.


Pressure transducer is connected using 1/8" NPT compression fitting.


Temporary PWM control. The 24VDC brick will power the system using 2 DC to DC converters (24V for motor, 10V for pressure sensor and 3.3V-6V for Arduino). The control is affixed temporarily using 2-sided sticky tape.


Notes:
1. Using copper piping from the motor results in Zero lag time between actuating pump - and pressure response.
2. The problem I had with the MG204 (pressure maxing at 8 bar) is due to bypass. I think F-O-T used the spring they use for a 9 or 13mm gear motor (lower top pressure). To avoid losing warrantee I won't disclose what I did (that is 100% reversible) to resolve it, but I could have gone to the distributor and either replace it or have them redo the spring... I can easily get to 14 bar now.
3. It takes less than a minute to fill the boiler even using the 4mm gears. I fill it at slower than full speed so it won't spurt like a fountain from the air bleed hole.
4. A nearly quiet machine can no longer be considered nearly quiet.
5. Expansion valve (for me) prevents the pump from exceeding 12-13 bar. It becomes a heavy flow from the expansion valve. For me it is important to protect the pump and mainly the bypass valve.
6. Teflon tape is annoying. Hydraulics shop suggested Filetfix III which seems to work quite well. Will see how it holds up (no drip-drip-drip like tape...). http://pdf.directindustry.com/pdf/virax ... 99429.html
7. After a day - pump is not too hot to touch; but added a heat insulator to further protect the pump (leftover high temp stuff from the Quest M3 insulation project).

Pulled my first PP coffee today - very easy to control and predictable. A well damped system even with incompressible copper tubing.

Hope this helps somebody...

- al
Scraping away (slowly) at the tyranny of biases and dogma.

User avatar
Peppersass (original poster)
Supporter ❤
Posts: 3692
Joined: 15 years ago

#24: Post by Peppersass (original poster) »

How did you adjust the expansion valve? With pump at max speed, with the pump running fast enough to exceed 12 BAR at free flow, or pump off and boiler reheating after running (i.e., according to the manual?)

If I set the expansion valve for 12 BAR max when pump is running fast enough to exceed 12 BAR at free flow, the reheat pressure never gets anywhere near 12 BAR and the machine idles much lower than normal. If that's not happening for you, then maybe the bypass valve must be partly limiting the pressure.

User avatar
Peppersass (original poster)
Supporter ❤
Posts: 3692
Joined: 15 years ago

#25: Post by Peppersass (original poster) »

I'm still not convinced that the braided hose I'm using on the pump output is responsible for the pressure jump. It's a sudden jump -- binary between lower pressure and higher pressure. Also, there's a very distinct change in sound that doesn't happen if I just push the pump speed higher when it's in the lower pressure mode. In other words, it's not greater flow that's causing the change in sound.

One thing I've been thinking about lately is that a number of the "fire sale" machines had strange flow problems. The flow rate in my first GS/3 used to gradually deteriorate over time. Then if I drained the boiler and refilled, the flow rate went back to normal -- for a while. Note that these symptoms occurred long before I outboarded the pump with a longer hose. Several other owners reported similar issues. Replacing the gicleur or widening it didn't solve the problem. There was a theory that it was caused by "swarf" (manufacturing debris) in the boiler. In my case, the GS/3 was replaced with one that didn't have the problem. The dealer tried to repair the first GS/3, and thought he'd been successful, but eventually the symptoms returned.

With my current file sale machine, the strange pressure phenomenon gets worse with time (i.e., lower initial pressure, longer delay before jump.) But if I drain and refill the boiler, the problem goes away, sometimes for an entire day. The the initial low pressure thing will happen, but with a very short delay. Gradually the delay lengthens. Sometimes it takes many cycles of the brew button to get the jump to happen.

I don't see how hose contraction/expansion could be causing these symptoms

I've wondered if maybe this has something to do with the mixing valve or something else in the input path. Maybe some sort of intermittent flow constriction. Now that I have two pressure indicators, I might be able to detect that by observing the pump pressure transducer and boiler pressure transducer to see if they have opposite pressure jumps.

User avatar
AssafL
Posts: 2588
Joined: 14 years ago

#26: Post by AssafL »

Peppersass wrote:How did you adjust the expansion valve? With pump at max speed, with the pump running fast enough to exceed 12 BAR at free flow, or pump off and boiler reheating after running (i.e., according to the manual?)

If I set the expansion valve for 12 BAR max when pump is running fast enough to exceed 12 BAR at free flow, the reheat pressure never gets anywhere near 12 BAR and the machine idles much lower than normal. If that's not happening for you, then maybe the bypass valve must be partly limiting the pressure.
With the pump running. The original method per the user manual was for a pump - that when operated would not exceed 9 bar. Hence the only way to set the expansion valve was to wait for the water to heat up. BTW - when I'd adjust it - it rarely ever went up to 12 bar. It would ideal around 10-11 bar.

Looking at it now - when the heater is on it idles around 10. I can probably get it to idle 12 if I turn it off and pressurize the boiler and then turn it on.

As far as I understand it the expansion valve should be off whenever the machine is pulling a shot which is usually << 10 bar. So as long as the area under the expansion valve is dry during a pull - I don't sweat the idle pressures. As long as they stay south of the red digits.
Scraping away (slowly) at the tyranny of biases and dogma.

User avatar
AssafL
Posts: 2588
Joined: 14 years ago

#27: Post by AssafL »

The mixing valves are freeflow from input to output only the bypass nozzle (from cold input to hot output) can be blocked. Still the flow would remain around the bypass so I don't think that would be it.

This rebuild I actually disassembled (almost) the entire right side but did not remove the mixer. Probably should have dunked it in CLR as well.... maybe if and when I do the flow restriction.

It may be one of three things:
1. Pipe expanding. It may be intermittent if the check valves keep the line pressurized. Try as follows. Pull a few shots and get intermittancy. Then pull one and loosen the top air trap hole until a drop appears. Close it. Try to recreate the no jump scenario. My assumption is that if you release the pressure the jump will always occur.

2. Air bubble happening. I really don't understand where this will come from. Maybe oxygenated water? I have seen cases where our water supply in NorCal was soda like once in a while.

3. Something stuck in manometer capillary. Maybe swarf. But why would it move once in a while?

- al
Scraping away (slowly) at the tyranny of biases and dogma.

Advertisement
User avatar
Peppersass (original poster)
Supporter ❤
Posts: 3692
Joined: 15 years ago

#28: Post by Peppersass (original poster) »

What speed did you run the pump at when you set the expansion valve? Max RPM?

I think that's what I did before going back to the procedure in the manual, but it's not realistic because I never let the motor run that fast. The manual pot circuit limits the speed to a max of 66% and so does my current Arduino code. I suppose it would be nice to run the pump at max speed for autofill, but I don't think that's necessary -- it fills plenty fast enough at my 9 BAR free flow speed, which is about 55%. If I want to to fill a little faster I can bump the speed to 66%.

Maybe I should try setting the expansion valve with a blind basket in place and the motor speed at 66%, and see how that affects reheat pressure and idle pressure.

User avatar
AssafL
Posts: 2588
Joined: 14 years ago

#29: Post by AssafL »

Well - since the pump is "volumetric" even at low speeds the pressure rises - albeit slower than at full speed.

What pressure it stabilizes on depends (as far as I understand it) 1. Slip (% of water the "slips" back to the input between the teeth). Had a chat about this with the CEO of Ham-Let yesterday and he was adamant that slip meant the pump is of lower quality. "Amateur pump". :) the semiconductor industries have better pumps than FOT.
2. Bypass valve. Wheezing sound. Pressure rises slowly and pump sounds like a small D.C. Motor being overvoltaged.
3. Expansion valve. Water pours through expansion valve. Pressure does rise a bit if speed increases but at super high speed and 3-way closed it barely hits 13. I guess I can adjust it a notch lower.

As long as 10-11 bar remains with no drip everything is okay.
Scraping away (slowly) at the tyranny of biases and dogma.

User avatar
Peppersass (original poster)
Supporter ❤
Posts: 3692
Joined: 15 years ago

#30: Post by Peppersass (original poster) »

AssafL wrote:Still the flow would remain around the bypass so I don't think that would be it.
Yeah, I've not been able to think of a way the mixing valve could be responsible.
AssafL wrote:1. Pipe expanding. It may be intermittent if the check valves keep the line pressurized. Try as follows. Pull a few shots and get intermittancy. Then pull one and loosen the top air trap hole until a drop appears. Close it. Try to recreate the no jump scenario. My assumption is that if you release the pressure the jump will always occur.
I have to believe the check valves keep the entire input line past the pump pressurized at whatever pressure they were at when the pump was turned off. But I don't think that matters. As soon as the 3-way opens, the pressure in the boiler and the input lines past the pump drops to zero. pump pressure or line pressure will force all the check valves to open. At that point the boiler pressure should be a function of pump speed and the gicleur. In my case, something is not allowing the pressure to get to the max. Then it suddenly gives way.

I'm not following your theory on releasing pressure with the bleed screw. As described above, opening the 3-way does almost the same thing, though with less water running through the system.
AssafL wrote:2. Air bubble happening. I really don't understand where this will come from. Maybe oxygenated water? I have seen cases where our water supply in NorCal was soda like once in a while.
I've considered that, but bleeding the boiler doesn't correct the situation. I do see some tiny bubbles come out, but I think those are caused by the agitation of the water as it moves past the screw, or maybe the hot water hitting cooler air. I don't see or hear any significant amount of air, which I think would be required to cause the phenomenon.

Interestingly, my friend with the Slayer says there's a special program mode that runs the pump at enough speed to hit 12 BAR (normal limit is 10.5 BAR), in order to push air out of the expansion valve. I don't think he was talking about refill, but a regular maintenance thing. Maybe for people with gassy water? At any rate, if I run the pump that high it doesn't correct the jump situation.
AssafL wrote:3. Something stuck in manometer capillary. Maybe swarf. But why would it move once in a while?
I thought about that, too. But it wouldn't produce the change in sound I hear coming from the group. I have to recheck with the Arduino, but I'm pretty sure the flow rate increases after the jump. Also, I replaced the manometer a couple of years ago and that didn't affect the problem.

Oh, and I've also replaced the TL30 tube and gicleur, though not to correct the jump problem. I've also replaced the 3-way. Hard to imagine a mode where those parts could cause the problem because they would have to go from less flow restriction to more flow restriction.

Seems like it's something that's restricting flow of water into the boiler, but then suddenly gives way.

Here's a description of what I see: With no PF, I run the pump to produce 9 BAR free flow at the boiler gauge. If I've just drained and refilled the boiler, it'll ramp right up to 9 BAR and I'll hear a distinctive "whooshing" sound of water rushing through pipes. It might work like that for a day or two. Then it'll stick at 7.5 BAR. If I let the pump run a little longer, it jumps to 9 BAR and I hear the whooshing sound. The time it takes for that to happen gradually lengthens over a period of days, until running at 9 BAR won't force the jump. So, I goose the speed up to 12 BAR free flow. Then it ramps to 10 BAR or so, hangs there for a second or two, and jumps to 12 BAR and I hear the whooshing sound. I can then reduce the speed to 9 BAR (with or without turning off the pump) and it runs normally, whooshing sound and all. But after sitting idle for a time (a few seconds to a few minutes), the problem will return. Then over a period of days it will take longer and longer running at 12 BAR to force a jump, and eventually I have to cycle the pump on and off every few seconds to force a jump.

That said, sometimes it jumps almost immediately, and sometimes even at 9 BAR free flow. I can't swear to it, but I think is more likely to happen if the machine hasn't sat idle for long after being turned on. Seems to me that the phenomenon is more likely to occur, and the time it takes to force a jump gets longer, the longer machine has been idle.