I got this coffee machine from work because it was a maintenance nightmare. I'll tear it down, do the analysis on how it works and detail on some design problems as well.
It's going to be a rather long post with quite a lot of pictures. I've marked all the detected problems with an asterisk "*", I'm sure some have been forgotten as this teardown was performed 6 months ago.
(for troubleshooting see https://hackcorrelation.blogspot.de/2017/02/automated-coffee-machine.html)
Initial view with some components off: the left side holds the water tank, the right side has the dregs (spent coffee) drawer and waste water reservoir.
Control panel: top left is the dregs full warning light, general warning light, descale light, coffee button, coffee quantity button, water quantity dial (ring), steam/hot water selector button (left).
The 'aroma' rotary button and coffee dispenser is disassembled and shown at lower right. Overfill drawer (drip tray / coffee cup holder) is off from the height adjustment assembly.
The pipe thing at the left is the steam outlet for milk frothing. If the droplet button (water selector) is pressed then it dispenses hot water for tea.
The top side held the beans reservoir.
From the top we can see the grinding inlet (yellowish), ground coffee outlet (round keyed hole, center right), steam selector valve (lower left), power supply heatsink (center), power button connections (lower right), infrared transceiver (bottom) and the gears from the water quantity adjustment.
The power board is responsible for supplying the control board with power and switching the heavy loads: grinder motor, boiler, water pump, flow-rate meter.
Some optocouplers at the bottom of the board and the small size of the transformer hint to a switch-mode power supply design.
*I've modified the steam selector valve (top picture, right; bottom left picture) a while back to block its output since it was leaking. I did fit new gaskets since the old ones were too worn out. New gaskets did not fix the problem so the faucet assembly (under the silver rotary button) was blocked with some screws and threadlock.
*The green gaskets are special high-temperature silicone ones. You can see the left one has shrunk and been eaten away by hot steam during its life. If this wear is significant enough, any higher water pressure caused by finely ground coffee or scale deposits will force hot water past the faucet and down the frothing tube.
If the pressure and wear are high enough no actual water will make it into the coffee, it will all be sent down the tube.
The power board has two connections to the signal/control board on the left.
Whenever taking apart stuff it is useful to document it, for both reverse-engineering purposes and putting it back together. So I made an excel sheet having all the connections from all the boards, pin numbers and connector code:
|5p||JP2||->JP4 signal board|
|8p||JP5||->JP8 signal board|
|2p||JP8||intake pump motor|
|2+1+1p||JP6||boiler power + flow meter|
From now on I will refer to the rotary assembly that takes the coffee from the grinder, to the water valve and to the waste drawer as ASSY. The manual refers to as 'brew group'. It is not pictured here but a quick search on Google for "Saeco Talea Giro Brew Group" will display it:
The assy is operated by a motor and has the following positions and operations:
- N - low limit - lets the user take out the unit, no parts are engaged, coffee holder is in place
- rotate R
- H - high limit - coffee is compressed into the water port, lower outlet valve is connected to the dispenser
- rotate L
- I - intermediary position - the coffee holder bottom raises up causing the spent coffee to fall into the dregs drawer
- rotate L
- N - some of the waste water falls into the bottom of the assy and down the inclined plane into the waste water reservoir.
*The next pic shows how much dirt accumulates during one month of very light usage. *Not all the ground coffee pouring from the top reaches the assy.
*Also, during rotation, some coffee is dropped because of poor tolerances.
*Steam coming from the waste tank under the assembly condenses and causes the spillage to bind (stick) and trigger the waste water sensor. *The inclined plane gets fouled with waste coffee and the assy gets stuck as well not being able to shed all remains.
*The waste water reservoir is also not properly aligned with the inclined plane and some water makes it onto the bottom of the unit and then under it.
Inside the assy drive mechanism we can see:
- assy detection switch, upper right
- high (H) and low (N) limit switches, center
- drive motor, simple brushed type, with a worm gear
- reduction gears (gray)
- waste water sensor (second picture)
I will detail the water sensor principle of operation later on.
The vibration water pump, situated at the back of the unit, draws water from the reservoir and pushes it through various hoses. There's a small flow-meter at the bottom that is used to measure water rate as well as detect lack of water.
The horizontal white cylinder is the relay for the boiler. Since the boiler draws a lot of amps it cannot be driven by the power board directly.
The boiler is at the left side of the unit, just above the water tank. *Some wires are being run unnecessarily close to this heated part, though it might have been an oversight of the technicians that last serviced it.
*Above we run into another problem: the small black pipe at the center pushes the water tank valve before the tank is properly secured to the unit. This means that if the tank is not pushed all the way in water starts to slowly leak out of the tank and below the unit, making it a safety hazard and ruining everything under it.
At my workplace, this "feature" completely destroyed the table underneath it within one year. The only way to safeguard against this is to give the water tank a punch inwards once-in-a-while and preferably immediately after refilling the water.
*Also, jolts from the other side (emptying the dregs drawer) might cause the tank to slowly come out of place with the same watery result.
I initially assumed that there is a high-pressure pump that pushes water at high psi once the water is hot enough but it seems that steam is build up from the boiler room itself and a blowdown valve keeps it pressurized.
*Since the blowdown valve is downstream of the steam faucet a slight seal failure will cause the pressure to escape via the faucet and the (unobstructed) frothing tube or the milk island output, whichever has more wear.
This is the most complicated part of the unit requiring quite an extensive write-up.
Top left, under the two resistor arrays, we have VN770K, a short-circuit protected H-bridge drive for the grinder motor. The high power resistor underneath it is connected to the "SOURCE 4" terminal which probably goes to ground.
The U12 chip is an NDS9948 P-channel MOSFET, capable of driving 60V/2.3A.
The black potentiometer is actually connected to the water quantity ring/dial assembly, so it's probably sampled through the microchip's ADC. Below that there's a jellybean 78M05 and then a part marked "32C65". It has 4 pins and it's marked Y1 so I assume it's a ceramic/crystal oscillator, though I've never seen that marking before.
The chip under the revision sticker is MCP908AP32 - part of the 68HC08 family from Freescale, a Motorola 6800 compatible successor. Fun fact: the 6800 was one of the first processors to require only one voltage supply, back in 1974.
It does have 2kB of RAM and 32kB of flash, two 16bit CCP/PWM timers, two serial modules (one with IrDa), SPI, SMBus, 8ch/10bit ADC, 32 GPIO with 8 sink and 6 source (25mA) outputs.
Next to the CPU there's an ST95040 4K SPI EEPROM, probably used to store machine statistical runtime data like running hours, number of coffees, error count and other stuff. I suppose so because the service mentioned at one point that the machine lost its warranty because it was used in an office environment instead of a home.
The interesting bit about the CPU is the IrDa connection, there's what I guessed to be transceiver on the board with an IR transparent window on top of the unit.
It's marked BU7032 and has 8 pins:
- TX? (goes to CPU)
- RX? (goes to a pulldown transistor and then CPU)
I was not able to find any info on it.
The rest of the components from the control board are just passives or jellybean actives, with a notable 3-switch selector on the right.
The front of the board has the user interface stuff: buttons and leds, along with the slot for the water quantity potentiometer.
*A design aspect of this is that the board is really prone to flexing when buttons are being pushed. The middle part moves about 1mm when the coffee button (most used one) is pressed and this gap will get worse as the plastic retainers wear off.
*The capton tape was probably put on as an afterthought as it's really not a suitable way to guard the board against scratches caused by the springs.
Back view of the user panel assembly, showing the tension/return springs for the water/steam selector button.
Just for reference, the steam selector valve/faucet is driven by a magnet coupled to the rotary button that closes some reed/magnetic switches.
The control board has quite a mess of wires and connectors so it's always a good idea to mark and document them. It proved especially useful (aside from the pictures) when I put the unit back together 4 months after I've taken it apart.
Initially the plan was to design a new board for the unit that worked around some firmware flaws: not being to rinse and descale the machine properly, dumping ground coffee AFTER figuring out that not enough water is available, dumping coffee randomly, poor indication of available water level, no auto power-off, etc.
You can see that after the initial rough documentation of the needed inputs and outputs this proved to be a non-feasible goal as too much R&D was required on my side, far outweighing the cost of dumped coffee or a better unit.
|Pins||Label||Ground pins||+5V pins||Signal/other pins||Description||Digital in (hall/mech switches)||Cap sensors||Analog in||Digital Out||Analog Out||Unknown|
|2||JP10||1||0||1||boiler temp sensor (NTC/PTC)||1|
|4||JP1||1||1||2||steam valve selector||3|
|5||JP7||2||1||2||bean cover (2p) + grinder motor sensor (3p)||1||1|
|10||JP5||3||1||6||motor limit switches (3x2p), assy misplaced switch (2p), assy motor output (2p)||4||2|
|6||JP16||2||2||2||intake pump sensor (3p) + intake water level sensor (3p)||1||1|
|5||JP4||1||1||3||power/main board connector|
|8||JP8||0||0||8||main board connector|
|2||JP21||0||0||2||side cover (assy/dregs) open switch||1|
|6||JP23||-||-||-||N/C (1 gnd + 1 5v)|
|3||JP22||1||1||1||waste water level sensor||1|
|PB1||1||coffee qty button||1|
|PB4||1||coffee start button||1|
|DL9||1||empty dregs LED||1|
|DL1||1||heater on/heating LED||1|
|DL2||1||coffee on LED||1|
|DL6-8||3||coffee qty LED||3|
|DL3||1||water on/steam off LED||1|
|P1||1||water qty potentiometer||1|
A good idea when sketching up these things is to count which pins are connected to ground, which are connected to digital power. The remaining ones will show you how many GPIO pins you require. Then you have to analyze the signal pins and figure out which are analog, which are digital and which are something else, so you can choose the uC with the required number of ADC channels.
Almost all the safety switches are hall sensors, thus magnetic-based. This includes the side covers open detection, bean cover and dregs drawer detection. It's useful to have a handful of magnets around when testing the unit with covers removed.
What I though initially to be capacitive sensors (for water sensing) are in fact a turnkey solution that outputs a digital level.
They are TS100 TouchCell units, probably custom tuned for Philips/Saeco.
I think the two resistors along with the PCB capacitor on the other side forms some kind of configuration that oscillates only above a specific capacitance.
The 6-pin IC takes 5V, ground, a common pin between the resistors and the two [differential] RC inputs and outputs HIGH whenever the capacitance threshold is reached, within 150us.
This can be achieved with a 555 timer and a Schimtt trigger.
Consider the following article: http://www.digikey.com/us/en/techzone/sensors/resources/articles/liquid-level-sensing.html and the last schematic. If the output of that 555 is integrated through a capacitor and fed through an op-amp in a Schmitt trigger configuration then the required output will be seen.
Maybe a single opamp can do both integration and triggering. Maybe the entire design can be done with a single or dual opamp package in a relaxation oscillator setup. Who knows, it needs some experimentation.
*The only problem with this setup is that it is not able to tell how much water is present, making it impossible for the machine to estimate whether enough water is available in the tank for a coffee of the selected size.
*The same sensor is used also for waste water sensing where it is too sensible, especially when coffee residues are present.
Hopefully Philips did not pay a lot of money for these sensors because even though they simplify firmware development they are not really able to quantify levels of detection. My guess is that they just order a few tens of millions of these and use them everywhere they get the chance to, even in cheaper units which do not have a microprocessor controlling the stuff.
The grinder has an interesting design starting with a clean isolation from the outside. You can see there is no coffee residue near the motor. Top is the rotating center shaft with the non-rotating adjustable gear. Upper right is the grinding outlet.
The small wheel in the center rotates the big adjustment wheel, changing the coarseness of the ground.
The adjustment actually varies the distance between the two ceramic grinders.
The lower wheel is driven by the brushed motor through a worm reduction. Notice the black rectangle with a connector on the lower side of the bottom cover. Also notice the two black magnets on the white gear.
The black box houses a 4-pin device marked 506K 6373. It's most likely a hall effect sensor and its output is sent to the CPU to determine the grinder rotational speed. From there, the CPU can determine if the grinder is stuck or out of coffee (spinning too fast).
There are a tons of things which I've forgotten since the time I opened up the unit. It was a good idea to take pictures at each step since without them the machine would probably still be in pieces.
What I assumed initially to a be a straightforward analysis of a simple machine yielded surprising findings. It is indeed not trivial to design a good automatic coffee machine, even less so to do one that gives good-tasting coffee like this does. I did assume however that many years of iterative design have gone into this and expected to find mostly only firmware mistakes. To my surprise, most of the problems with this machine and its slow death have been mechanical and hydraulic.
This article could have easily been five times longer and with ten times more pictures but everyone has a limited attention span. I might detail some inner workings and findings in separate posts.