Flow/pressure profiling for the La Marzocco GS/3

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

#1: Post by Peppersass »

This thread was originally part of Possible to convert the La Marzocco GS3 AV to MP?, which is an entirely different subject (short answer: yes, but it's prohibitively expensive.)

This thread discusses adding Slayer-like flow profiling and Strada MP/EP-like pressure profiling to a GS/3 AV. It's possible to do these mods to a GS/3 MP, but with the new conical valve it's probably not worth the effort.

Note that in my case a couple of necessary projects preceded the work described here -- outboarding the GS/3 pump/motor and replacing the rotary pump/motor with a variable-speed gear pump for manual pressure profiling. I plan to post descriptions and photos of those projects and will insert the links here when completed.
AssafL wrote:Given Dick's analysis I would think it is a rather low reward exercise to convert a AV to an MP. It is probably cheaper to buy a used one.

A better exercise is to mimick a strada. Apart from the look is a paddle a strada is a GS/3 with EP control. One can use a massively better quality potentiometer (e.g. A NOS military pot), and get a much better ROI.

Dick is 90% of the way there, and has the added advantage of AV control.

A low profile, small footprint 1 group strada EP. I dig it.

Edit: the more I cogitate over this the more I like it. The GS3 MP has a very substantial compromise to allow the use of the 9 bar pump. A very elaborate valve (with bypass), giving up the AV ability, expensive O rings, etc. Meanwhile a gear pump, a sensor and a controller can make a far better solution. An added needle valve (or an expensive proportional valve Yay!) would extent the capabilities of the system even more.
It doesn't require a military-style pot. There's plenty of precision in the off-the-shelf pot I use. Personally, I don't think an EP approach is necessary. Manual profiling is more than adequate and I find it quite repeatable.

I'm only 90% of the way there because I can't reduce the flow rate below line pressure, and the minimum line pressure to keep the pump from cavitating only allows pre-infusion for a max of 10-15 seconds.

I can add a needle valve in front of the pump to mimic the MP action, but that puts the pump in danger. I'm currently running some tests with a cheap needle valve at the group to determine what kind of pump speed(s) are necessary to prevent damage when a needle valve is in front of the pump, and what max pressure that speed produces when the needle valve is removed from the circuit.

Even if the pump speed doesn't have to be reduced when the needle valve is inline, as you know my setup isn't quite safe because the expansion valve doesn't actually protect the gear pump and the machine from excess pressure. For that reason alone, I need to add a proper external bypass or electronic feedback loop. Not rocket science and not very expensive, but either one is a bit of a project.

With the bypass I have to find the right device. Not sure where to start with that. Then I have to find a location (in or out of the machine) and way to plumb it so the excess flow is dumped into the drain box. Probably have to drill the rail over the drain box or create a tee with the exhaust. Fittings between the pump and bypass have to withstand high pressure.

I already have a pressure transducer for a feedback loop. Easiest place to install it is at the pump output, ahead of any needle valve I might install later. Might need a fitting or two to make that happen. My guess is that a feedback loop could be constructed with discrete components -- i.e., something that regulates the 5VDC signal to the motor speed pot in inverse proportion to the voltage from the transducer. Probably an op amp circuit adjusted with pots. Have to think about that. I have an Arduino available to do it in software, but that takes just as much circuit construction and wiring, and seems like overkill unless I'm going to move towards an EP-style solution, which I'm currently not motivated to do.

Location of the needle valve is certainly a matter for debate. Slayer puts it ahead of the pump and leaves the pump running during pre-brew, which requires tubes and fittings that can withstand high pressure. This results in a gentle ramp to max pressure that's determined by the needle valve. Think of it as a second gicleur. Once max pressure is reached, the needle valve is removed from the circuit and there's no interruption or bumpy transition because the pump has been running at the same speed the whole time.

Putting the needle valve behind the pump, as you have it, requires turning off the pump during pre-brew. Otherwise, the pump will cavitate due to the flow restriction. After pre-brew, the needle valve comes out and the pump is turned on. If it happens to be at the speed that results in 9 BAR at the puck, the ramp will be determined by the gicleur. The alternative is to do a slow manual ramp with the speed control, which is what I do now after slow pre-infusion without the needle valve. It's not at all clear to me that there's anything substantially different with this method. The argument I've gotten is that with the needle valve in front of the pump it's automatic and repeatable. You don't have to think about it.

Yes, if I go the microprocessor route the ramp could be automatic, but it would have to be selected to match the needle valve setting. Again, it feels like overkill.

Like I said, though, with or without the needle valve in front of the gear pump, it's high time I added a safety mechanism to avoid excess pressure. Right now, it's my responsibility to not forget to reduce the pump speed when backflushing, etc.

Finally, the one flaw in converting an AV the way I have is the superheating that takes place in the heat exchanger due to the low flow (or pressure as you say.) There's no good way to fix that without a way to regulate the flow after the heat exchanger and dump the excess (i.e., in the group, like the MP.) Well, there's a way, but it's not satisfactory: run hot water until the boiler autofills, which reduces the temperature in the boiler enough to avoid the superheating effect. Sometimes I forget to do that!

...split from Possible to convert the La Marzocco GS3 AV to MP? by moderator...

User avatar
AssafL
Posts: 2588
Joined: 14 years ago

#2: Post by AssafL »

What I meant by the EP route is given the $2770 price tag you quoted for doing a full MP rebuild - it is much better value to do a Strada EP conversion. It will be cheaper and provide much better control than a manual GS MP control, as well as allow you to keep the AV functionality.

Measuring the pressure at the puck is both difficult technically and extremely difficult mathematically. So in any case - because of the gicleur, and the needle valve you'd want to compensate for the pressure drop from the boiler to the puck. You'd start at zero (since you are first in flow control). Since boiler pressure is also related to main pressure (it is a differential pump) - you'd need to measure the mains pressure and compensate for it as well. SInce pressure at the boiler and puck integrate over time (integrate flow(dt) - out flow(dt) * dt) you will need to feed both into differential equations that try to predict pressure ramp at the boiler. Then you'll need to compensate somehow for irregularities. E.g. a from from the expansion valve will send you from 10 bar to 8 at the boiler - so you'll need to either model the expansion valve (if that is even possible) - or take the easy road.

Measuring and controlling the same pressure at the boiler makes much more sense and substantially easier to build. No compensations needed. I would use an Arduino anyway as even for the simple case - building a stable control loop that does not oscillate while responding reasonably fast to pressure changes is neither easy and nowhere as easy as it seems. With an Arduino you can test all kinds of feedback - like bang-bang or some sort of PID loops. As to whether you decide to add an EEPROM and store profiles - that becomes a decision later on. The pressure sensor should connect to the boiler - probably using a water lock (like the existing manometers). Since it measures boiler pressure it will also double as your safety for the boiler.

The needle valve in the hydraulic circuit. The needle valve can always be in circuit. It should probably be in circuit to the 3-way (group solenoid). You can then add a NO or NC to open and close water to bypass the needle valve. Keeping it in the loop is reasonable - It is a incremental increase to the gicleur orifice - you can compensate for it (if even needed) using the pump pressure. You will need a decent quality one that is reasonably precise (fine thread) - to convert 3 bar to low flow. That will get rid of the superheated gurgling in the heat exchanger cavitation noise.

It may be possible to put the needle valve to make it accessible from outside the making. Maybe exposed under one of the top cover holes...

You lose the following:
1. Puck manometer. That is the biggest loss since a puck manometer should make an excellent diagnostic. As an example: Did the puck break? if it did - pressure will never go as high as it should. For YOU and I that is less of a worry since we can tell by the pour and timing that our puck disintegrated (not that it happens much... at least for me). But still - it is NICE and looks really cool!
2. Group top potentiometer / paddle. It is nice! Must compensate for less cool - Hence my military NOS comment - Rationalizing that you are using the same Babcock or Spectrol or Johnson control that landed man on the moon is as cool (if not cooler) than having a paddle.

You gain:
1. Full pressure/flow control. Any pressure any flow.
2. Linear potentiometer control - even better - since you'll have an Arduino - make it logarithmic (Increase the resolution at the low end of the pressure).
3. Full AV dose control. This can be even better if you share the AV sensor pulses to ascertain flow at the lower end.
4. Cleaning cycles - they are useful.
5. Keeps the safety timers (of the 3d5) running. Prevents disasters....
6. Optional automation: tired of playing with pots and paddles? Press record and you have the GS/3 equivalent of a lever with your choice of profile.

There is a lot to like in this. Not just saving $1700 bucks...

Does anyone know which pump is used by LM in the strada? Is it the MGCF11S? The FG100 series looks a lot smaller...
Scraping away (slowly) at the tyranny of biases and dogma.

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

#3: Post by Peppersass (original poster) »

Assaf, the part of your post that really stands out is the idea of putting the needle valve at the 3-way. That would be nice, and would allow inserting a pressure transducer in the loop to directly measure group pressure, but I don't believe it can be done with a GS/3. Even if it could, it wouldn't solve the superheating problem because there wouldn't be a way to vent the excess flow due to the needle valve restriction. The 3-way won't do that.

Putting the loop at the group is what TomC did with his Linea, but in his case the group was already built for an external 3-way loop. All he had to do was add the bypass solenoid with some standard fittings. And AFAIK, the Linea doesn't have a heat exchanger, so no superheating problem.

Unfortunately, the GS/3 has the darned 3-way screwed right into the boiler. Worse, the fitting at the end of the TL30 tube that connects to the 3-way has two small holes -- one for input and one for output. The plunger in the 3-way plugs them when closed and creates a chamber for the flow between them when open. I don't see how a loop could be attached to these tiny holes without machining a completely new set of fittings or drastically modifying/replacing the TL30 tube. And like I said, it won't solve the superheating problem.

So, the needle valve has to be on the cold water side of the boiler and the pressure transducer has to work off boiler pressure. I see no problem with that. There's a somewhat linear relationship between the boiler and puck pressure. Easy to create a pressure correspondence table with a Scace II, though my guess is that there will be slight variations depending on puck density. That would require some adjustment of the max pressure target when dialing in, but I don't think the exact shape of the ramp up or ramp down curves is all that critical or important. I suppose if it is important, there might be some complex formula based on data from the pressure transducer and the flow meter. But it's all moot for me (read on...)

All that is nice, but I don't want to get into simulating an EP with an Arduino. That's going to require running the pump with PWM and figuring how to do PID with the pressure transducer. I know code for these things is available online, but currently I don't have the time to chase it down. And i have to build a bunch of circuitry as well. I don't believe any of that is necessary. I'm already happy with manual operation and see no reason for anything more elaborate, especially since a needle valve will eliminate any need to manually ramp pressure.

All I really need is to cap the pump speed so it never produces a pressure over 12 BAR. I think this is all Slayer is doing, albeit with a microprocessor.

The pressure transducer provides a 0-5VDC signal from 0-18 BAR. It's probably 3V or so at 12 BAR. All I need is to detect that voltage threshhold and reduce the gear pump speed so the pressure won't go any higher. I already know the max speed (voltage) that keeps pressure under 12 BAR with a blind basket, which is the max restriction the pump will see. All I need to do is trigger a relay or transistor to throw a resistor or zener doide inline with the speed pot when 3V (or whatever it is) is reported by the pressure transducer. It could illuminate an over-pressure warning LED too. Simple binary circuit. Yes, it will reduce the pressure more than required when the restriction is above the max but below 100%, but that's OK. Maybe I can come up with a fancier circuit that's a little smarter -- something based on an op-amp comparitor.

I could put the pressure transducer anywhere in the cold water input chain, but I don't see a reason why it shouldn't be at the pump. Same for the pressure transducer. After all, the object of the game is to protect the pump. Since my pump is outboarded, that location would be the easiest place to install and access the needle valve and wire the pressure transducer. Another advantage of that location is that there's only one transducer for both pressure profiling and safety. The needle valve assembly will go right after the pressure transducer, making it easily accessible (all the gear pump stuff is in an appliance barn at counter level to the left of the machine.)

FWIW, today I ran the experiment I mentioned in my previous post. I have a basket fitted with a needle valve at the bottom that was used in an early homebrew PF gauge. I was able to use this to assess max motor speed when the flow is restricted ahead of the pump. First I opened the 3-way with the motor off to measure the free flow rate at line pressure. It's about 180-200 ml/min. Then I inserted the needle valve, wide open, and set the pump to the max speed used when pulling a shot (this max is preset by a PCB pot and has provided enough headroom to reach at least 10 BAR boiler pressure for every coffee I've pulled over the last few years). I turned on the pump and gradually reduced the needle valve opening until boiler pressure read 10 BAR. This was the minimum flow rate that does not require reducing the pump below the speed required to reach at least 10 BAR when pulling a shot. The flow rate at that setting was 70 ml/min, way below the line pressure flow rate I'm able to achieve without a needle valve. My guess is this will give me more than enough pre-infusion time without coming anywhere near the pump's max pressure rating.

The pump will be safe with any practical opening I may need at the needle valve, but it has to be protected from my inadvertently closing the needle valve to far, when backflushing and for general safety.

User avatar
AssafL
Posts: 2588
Joined: 14 years ago

#4: Post by AssafL »

Wonderfully detailed answer. I appreciate it.

Can't we can put the needle valve between the HX coil and the brew boiler. So that the water pressure at the HX is a bit higher.

The only reason I can think of not to put it near the pump is a water hammer. But my logic is counter - water hammer will intuitively occur if it is far from the pump. As the pipe oscillates from flaccidness to tumescense

Anyway I bought a used gear pump on eBay. Burnt motor, full of inkjet paint. Pretty crusty. Also, the pump itself was wrong (was an MG213). Sellers don't know the pump label is on the pump end. Needed an MG204 or 304. Got the money back and am hesitant to try eBay again.

I am trying my luck with Fluid O Tech. They were very responsive until now. FG304 seems perfect but may be twice the cost of a MGCF model with a 304 pump head.

I am sliding down the slippery slope of PP. Really wanted to avoid it...
Scraping away (slowly) at the tyranny of biases and dogma.

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

#5: Post by Peppersass (original poster) »

AssafL wrote:Can't we can put the needle valve between the HX coil and the brew boiler. So that the water pressure at the HX is a bit higher.
Maybe. I tested a variation on this with my needle valve at the group, which puts all the flow restriction past the HX. No banging. But with the needle valve between the HX and the boiler there will be a pressure differential between the two. Might get banging as the higher pressure water in the HX hits the lower pressure water in the boiler. But the gicleur might keep the boiler pressure high enough to avoid it. Can only find out by trying it. And of course there's the issue of accessing the needle valve.
AssafL wrote:Does anyone know which pump is used by LM in the strada? Is it the MGCF11S? The FG100 series looks a lot smaller...
Why not use the same pump as I do? It's the MG204. FG204XDOPT10000 to be exact (not sure why it starts with FG instead of MG.) I chose it based on a recommendation by another H-B member who had used one successfully in a GS/3. I think the MG300 series would be overkill.

To answer your question, I'm pretty sure the Strada EP uses the MGCF04S-MGCF11S. The drawings of it in the manual and parts catalog look like that series, possibly the MG209XDOPT0000 shown on the MGCF04S-MGCF11S product page. I say that because I recall checking the specs and one of the differences was the Strada EP gear pump has 9mm gears versus 4mm gears in my gear pump. The 9 and the 4 are the last digits in the three-digit model number. Different flow rate characteristics. I vaguely remember coming to the conclusion that the 4mm gear model was better for my application, but I don't remember why. The flow rate is a little higher and the max pressure differential is quite a bit higher. Also, I saw a video on removing and replacing the Strada EP gear pumps and the unit definitely has only two wires. That means they PWM the 24VDC supply to control it. My unit has a separate 5VDC control signal, and I seem to recall someone telling me the operation is smoother when you PWM that signal. Of course, I vary it analog style.

I installed and tested my pressure transducer on the gear pump output today. Appears to work as expected, but I haven't created a correspondence table between the voltage and pressure shown on the GS/3 brew boiler gauge. In further thinking about the simple pump protection circuit I had in mind, I've concluded that if all it knows is the current pressure and the max, then all it can do is switch in a resistance that cuts the 5VDC control signal to the speed that produces 10 BAR with a blind basket in place. And it has to be latching. Otherwise, it would oscillate between the max pressure limit and the safe level. Best to have it ring an alarm or blink a light, too. I'd have to manually reset, probably by turning off the brew cycle (which would cut power to the latching circuit) and correcting whatever caused the over-pressure condition.

It would be better to cap the pressure at a set value, like 10 BAR (or maybe 12 BAR when I'm trying to force the "pressure jump" on my machine that we've discussed.) Anyway, on detecting pressure above the limit, the pump speed would be reduced until pressure decreases just below the limit That gets into the whole PWM and PID thing, etc. I thought about monitoring RPM, pressure and the flow meter, and switching in different resistors based on what those measurements indicate the machine is doing (e.g., if flow is zero, I'm backflushing; if the rate is very low, I'm preinfusing; if the rate is a bit higher I'm pulling a shot; if it's higher still the machine is in free flow), but it gets complicated and still requires a microprocessor. Maybe I'd be better off biting the bullet and doing the PWM and PID code.

User avatar
AssafL
Posts: 2588
Joined: 14 years ago

#6: Post by AssafL »

Dick - are LM using the 209 with the rare earth magnets? A 209 according to the spec cannot drive waters cSt=~1 to 9 bar.

The only advantage to using a 209 is boiler fill-up (hence they use the rotating vane pump for the steam boiler).

The FG has a brushless D.C. Motor and optionally the controller for it The MGCF11S 04S has a brushed D.C. Motor. The BLDC has a longer life in theory. But the motor is expensive. An espresso machine that works a few minutes a day (and rarely over an hour) does not matter which you use. The FG is easier to control as you don't need a PWM shield.
Scraping away (slowly) at the tyranny of biases and dogma.

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

#7: Post by Peppersass (original poster) »

AssafL wrote:Dick - are LM using the 209 with the rare earth magnets? A 209 according to the spec cannot drive waters cSt=~1 to 9 bar.
I don't know. The parts list doesn't give the manufacturer's part number. I've tried to find photos or videos of the gear pump on the Internet, but none of them shows the label clearly, including a video that shows how to remove and replace one of the gear pumps!
AssafL wrote:The FG has a brushless D.C. Motor and optionally the controller for it
Yes, mine is brushless and has the controller. I know it's brushless not only from the part number but because I had to take it apart:



Out of the box It had a slight leak at the base of the "nose". I can't remember exactly, but I think it was due to one of the internal screws not being snugged, so it was leaking around the Teflon gasket.

The brushless motor has worked flawlessly and without incident for over four years now, albeit in a home setting.

The controller was key because my initial plan was to use a simple pot to manually control the speed. I didn't want to have to get into the whole Arduino PWM thing until I had a better handle on manual profiling. I kept putting off the EP project, though I did go as far as diagramming how it would work, designing, prototyping and partly building an interface board that goes in the brain box to allow the Arduino to control the GS/3 and monitor its status. Here's a very rough diagram of the design:


(For some reason the image display feature of this website insists on cutting off the bottom of the diagram and adding a bunch of blank space, and no amount of resizing the image or moving the drawing will correct it.)

About three years ago I modified the existing outboard interface box to support the Arduino:



This box is where the GS/3 motor signal, gear pump, external pot circuit and 24VDC supply connect. Originally it was quite simple: just a 5VDC regulator, a relay and some wiring between the connectors. Now it has a 9VDC regulator to power the Arduino, an Ethernet style jack for connecting to the Arduino, which in turn connects to the interface board in the GS/3, the pressure transducer, the LCD screen/buttons, and a simple pot for manually setting speed. The interface box is also setup with a relay that shuts off power to the Arduino when the GS/3 is in standby, but I still haven't figured out how to detect that on the logic board (nor have I tried!)

For the project to implement a speed limit, all I have to do is move the jumper near the middle to the other position (moves the gear pump control signal from the external pot to the Arduino) and tack solder the external pot signal to the Arduino connector (originally, I was going to retire the external pot circuit and use a simple pot connected to the Arduino, but it's easier to use the existing external pot circuit for now.) For completeness, here's a couple of photos of the existing external pot circuit, which has a touch-sensitive profiling pot, and a switch with three PCB pots to select different speed ranges:




(This photo got cut off, too, and blank space added. Dan, what's going on?)

The red LED goes on when the profiling knob is touched or the profiling position is selected on the rotary switch.

It'll take some time to assemble the Arduino and its various shield and I/O devices, and learn how to program it, but it looks pretty easy to read the 0-5VDC signals from the pot and pressure transducer, and send a calculated voltage to one of the built-in PWM-compatible I/O pins (have to add a simple RC circuit to smooth the output.) Probably the hardest part will be dealing with the LCD screen/buttons for displaying status and changing parameters.

Yeah, my gear pump was expensive, but not as expensive as the new Strada EP Mini!

User avatar
AssafL
Posts: 2588
Joined: 14 years ago

#8: Post by AssafL »

Thank you. I am opting for an MG204 since it is half price of an FG304 or an FG100. Local taxes make it even higher - (but not enough to make it worth buying outside the country and not having some support). Once I get it I'll start putting together an Arduino project (and a bucket to dunk the pump into) and start playing around.

At that point I guess it is fittings and bending pipes (never done the latter before).
Scraping away (slowly) at the tyranny of biases and dogma.

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

#9: Post by Peppersass (original poster) »

I got my Arduino up and running this morning. The IDE is browser and cloud based now. Much better than the desktop version. Had some trouble getting a program to upload due to a virtual port conflict on my Windows computer (worked on the Mac), but after resolving the conflict it works fine.

There are zillions of sample programs. The tutorial has one that reads a 0-5VDC analog signal and outputs a mapped PWM. Very few lines of code and just what I need.

My sense is that the programming is going to be pretty easy for capping the pressure seen by the pump. Implementing full-blown control and profile storage will take more hardware and code, but the Arduino is well-suited for the task.

I did some minor tube bending for my electronic steam valve. It's not hard if you take your time. There's an inexpensive tool for it. I'm more concerned about the fittings. That's going to require soldering those small plugs into the ends of tubes. I've sweated pipe for home plumbing projects, but never for such small tubes, high pressure and high temperatures.

It's possible to insert the needle valve loop in the tube that connects the heat exchanger and boiler input tee but I don't think compression fittings are appropriate to connect the tubes to each other. Flares are hard to make well with tools available at the hardware store. I think it'll be better to make a custom fixture to replace the existing pipe. This will require soldering those small plugs into the ends of the tubing. That has to be done to connect to the BSPP fittings on the solenoid valve, too, so might as well bite the bullet and duplicate the fittings at the boiler tee and heat exchanger. You have to carefully match the plugs and pipe diameters. I believe the fitting parts are available from Stephanos, but don't know if he can match the connectors for the tee and heat exchanger. Not sure he carries the tubing. Might have to source that elsewhere.

User avatar
AssafL
Posts: 2588
Joined: 14 years ago

#10: Post by AssafL »

Arduino is awesome because you actually get to do very little programming. It is actually about taking stuff others wrote and using it in creative ways. But I did end up writing some timer interrupts from scratch for it which were interesting. The Atmel datasheets are very well written.

Fitting a Needle valve + solenoid controlled bypass is going to take some creative bending - Very cramped part of the machine. I assume it is okay to use thinner tubes as throughput (water debit) is low at the group.

BTW - I can think of an (easy?) way to somewhat simplify the right hand side of the machine: Full Strada conversion.
1. Autofill: Keep the vane pump. Route it to the steam boiler through a check valve or two. Power for the vane pump should come from the autofill solenoid (or a relay replacing the autofill solenoid) - when it needs to autofill the vane pump will work. Throw autofill solenoid out (or use it to bypass the needle valve).
2. Group pump: Control for the gear pump get the excitation from the group solenoid.

I probably wouldn't want to take it apart that much. But who knows...

Regarding fittings: I gave up. Literally. What I do now is I found a local pneumatic/hydraulic supply shop that I cajoled into helping (that isn't easy). I take the two ends of what I need to connect and they find the parts or make it for me. Much better than ordering BSPP or BSPT of compression or whatever....
Scraping away (slowly) at the tyranny of biases and dogma.

Post Reply