Zeebra - Cafelat Robot Scale - Page 2

A haven dedicated to manual espresso machine aficionados.
wnesensohn (original poster)
Posts: 21
Joined: 5 years ago

#11: Post by wnesensohn (original poster) »

jpender wrote:I'd love to see more of the details about the parts and the construction. Would you be willing to share that?
With pleasure!

The whole "case" is made from cast acrylic sheet. PMMA as it's also called is the perfect material IMO for these kind of things. It's very well understood, food-safe, tough, long-lasting (indoors it will be fine for 30Y easily), easy to cut/drill, readily available, cheap and also looks good.
I found a German company where you can configure your cuts with a limited but working online configuration tool (happy to share a link if there's interest). Unfortunately these cuts have a high fixed cost, so in order to keep the total cost down, I tried to design a case with as little different plates as possible.

I ended up with three distinct forms which you can also see in the pictures:

* 2pcs of 10mm thick white frosted sheet which bears all the load from the robot
* 2pcs of 3mm black frosted sheet used for the bottom plate and the top plate (where the cup goes)
* 2pcs of 5mm black frosted sheet, necessary for the display-stand

I'm not so good at machining, and while I have kind-of access to a machine shop, with these cut-outs I was able to reduce the need for further machining down to a minimum.

Sheets are drilled through at the outer edges, and are kept in place by 8 pcs. of "Rundmuttern" with matching bolts. I don't know how these are called in the US, but if you google "Rampa RFL" you'll see what I mean. Ikea also uses this style sometimes, which I found surprising given that they are not cheap.

Reason for not going with glue was to make this thing mod-able later on, but glue would work super-well here.

I also toyed with the idea of 3d printing it, but I don't have enough faith in PLA and printed ABS, and anything else is not available to me. I've drawn a quick model in fusion360 to find out what it'd cost to have this printed in Nylon, but it was more than the acrylic sheets and the surface finish wouldn't have been nearly as good. Also no translucent parts.

The weigh-scale itself is a simple 1kg weigh scale sourced from banggood. These things are _cheap_ (like, 3$ including shipping), and it shows. But it doesn't matter that they are not a precision product, as they are still very linear in the ranges you need for espresso-weighing.

The robot stands on two 18mm stainless steel standoffs in matte chrome on the upper thick plate. This is primarily to get a bit more headroom for big cups, but also because the legs of the robot are not circular and I couldn't configure a cut-out for the upper plate in that shape, so the cut-out would've been too big. Bonus points are for looking cool, distributing the load a bit, and to make this a bit configurable as these standoffs can be bought off the shelf in various lengths.

Regarding the load, which was a concern to me as you push quite hard on the Robot, I did a FEM in fusion360 to find out if the material was up to the task. Result was that with a evenly distributed force of 200N on the legs (so 100N, about 10kg, each), the safety factor is about 4.6 which I assume means that it'd be good for at least 800N of force in total. Still, I was a bit nervous during the first pulls :)

The top is mounted to the weigh-cell by using (don't laugh) magnets! This is because it's super important that the cut-outs for the legs don't rub on the legs themselves, and I wanted to make it neat-looking, so the cut-outs also couldn't be too large. I'm sure I'd have messed this up, as even 1mm is way too much deviation here, so what I used instead is a big magnet on the weigh-scale (it doesn't interfere with the readings as far as I can tell, as the cell itself is aluminum and the magnetic field is static), and iron plates glued to underside of the top-acrylic plate. I've glued a few very thin silicone pads to the magnet, and now it's possible to fine-tune the position of the top-plate without it moving by accident.

The Display and brains comes from the M5Stack, which is a nifty uC platform. I found it a joy to work with, and I think the looks of it also fit the rest of the scale pretty well. Had to do a minor modification in order to have the proper connections facing in the right side, but this is just soldering 0.1" connectors, which is easy compared to the usual SMD stuff. This means I can just disconnect the display/uC by pulling it towards me, useful for cleaning for example. It also means that, should the uC die or something, it can be replaced easily.

The scale contains a LiPo battery, which is charged by the M5Stack. It comes with a USB-C port, so charging is a simple affair. If I were to build this again, I'd probably use 2 18650 in there which would fit as well and can also be charged by the M5Stack.

Software wise, I'm still working on it. I have a github page for it, but at the moment it's quite a mess. Maybe worthwile to share is my method of fighting settling time while still providing somewhat accurate readings, which is basically:

* Do a very long time constant low-pass filter (combined with a moving median filter), which gives pretty accurate readings when there's no change in weight. This is the displayed weight.
* When a sudden change in weight is detected, discard a few samples until the weight has settled, and then calculate the median over another few samples. This is not displayed anywhere.
* With this quickly settled weight, reset the moving median filter for the displayed weight, and let it filter along.

I think I can get away with this method as I found that you basically need two different readings, depending on your situation:

* An accurate, static reading, for weighing beans
* A not-so accurate but fast responding reading for weighing the shot as it pours

This quick-settling method basically combines these two. It won't be active in the accurate case, but as soon as the scale detects a change above the usual noise level, it can switch to the fast responding reading. I've never had an Acaia scale in hands, but it'd be interesting to find out if they also solve this problem in software, or if they just use super-expensive electronics (which, given the price of their scales, would be totally possible).


Let me know if you have further questions.
★ Helpful

wnesensohn (original poster)
Posts: 21
Joined: 5 years ago

#12: Post by wnesensohn (original poster) »

I've had a bit of time to work on the software, so I made a short video of a (quite watery, I have to admit) "shot" with this scale.
It currently displays the dry weight, the current weight, the brew ratio (here I use out/in, but I might change that to the more common in/out - not that it would matter as the numbers are the same) as well as the shot-time and the flowrate. Initially I wanted to add a flow-diagram as well, but now that I think about it I don't think it would be very useful.

So far I'm pleased with the result, as it simplifies my workflow not having to handle a separate scale. My only concern is that it isn't waterproof at all, will see how that plays out :)

jpender
Posts: 3929
Joined: 12 years ago

#13: Post by jpender »

Looks pretty cool. And, assuming it's reasonably accurate and reliable, it does everything I would want it to do... well, it might be nice if you could add a pressure sensor, temperature sensor, and an SD card. :-)

Thanks for the added detail. Looks like it was a fun project although your video of putting together some IKEA furniture was a hard one to beat.

wnesensohn (original poster)
Posts: 21
Joined: 5 years ago

#14: Post by wnesensohn (original poster) »

Ah yes, that IKEA video is a good one, wonder why it hasn't gone viral yet :lol:

A pressure sensor would be doable without much difficulties, but it would be a challenge to hide it inside the piston I think. Maybe there is enough room though, I haven't measured it, but these sensors are quite big. Outside the Robot it would look weird unless you went to hide it like they did with the Scuba thingy.

Temperature would also be possible, but for that I think you would have to drill into the piston, and I am a bit scared to do that. You could try to route the thermocouple through the existing tube via a T connector, but you would still have to deal with it hanging from the piston, and it would be super cramped in there.

Another approach which I haven't seen anywhere in coffee yet is to use a thermal camera module like the MLX90640 pointed towards the bottom of the basket. You could get accurate readings as soon as the first drops start to form. Unfortunatly these modules are not cheap, but you could use the MLX90614 (which is basically a camera with a 1 pixel resolution) in a version with small FOV and probably still beat most thermocouples as these things don't lag much and are quite accurate. Could probably mount it neatly on a leg.

If there only was enough time for these projects... :)

jpender
Posts: 3929
Joined: 12 years ago

#15: Post by jpender »

wnesensohn wrote:Temperature would also be possible, but for that I think you would have to drill into the piston, and I am a bit scared to do that. You could try to route the thermocouple through the existing tube via a T connector, but you would still have to deal with it hanging from the piston, and it would be super cramped in there.
I'm also not keen to drill the piston. So at the moment I'm more or less trying to do what you just said -- route wires through the existing tube. I think I want the probe dangling from the piston so that it's guaranteed to be in the water.

I had routed really thin wires up through the portafilter basket and shower screen holes. Obviously that's not a long-term solution.

wnesensohn wrote:Another approach which I haven't seen anywhere in coffee yet is to use a thermal camera module like the MLX90640 pointed towards the bottom of the basket. You could get accurate readings as soon as the first drops start to form.
How would you correlate the temperature of the exiting coffee with the internal water temperature?

wnesensohn (original poster)
Posts: 21
Joined: 5 years ago

#16: Post by wnesensohn (original poster) »

I would hope that you could derive a model for water temperature based on exit temperature, time and dry weight to come up with an estimation for water temp, but that's probably too tedious and unreliable.

It's not obvious to me that water temp is a better indicator than exit temp though, there is probably some literature about this? Could even take measurements of a saturated and well understood group that way to get a good comparison, as the sensor would be mobile.

You could also do IR sensing of the water from above to prevent a dangling sensor, but that would necessitate an additional hole in the piston. Other than that, it seems to be an elegant and practical solution.

jpender
Posts: 3929
Joined: 12 years ago

#17: Post by jpender »

wnesensohn wrote:I would hope that you could derive a model for water temperature based on exit temperature, time and dry weight to come up with an estimation for water temp, but that's probably too tedious and unreliable.
I don't know for a fact but I suspect it would be problematic.

wnesensohn wrote:It's not obvious to me that water temp is a better indicator than exit temp though, there is probably some literature about this?
It's a good question. The temperature of the coffee would seem to be the most important thing. But it's more complicated as it isn't one number. The standard is the brew water temperature with the Scace device being a prime example. When the brewing temperature is mentioned it's the water that they mean. So even if exit temperature were the best metric -- which I think is unlikely -- it isn't the one that's in common usage. So it's less valuable for comparison purposes.

User avatar
naked-portafilter
Posts: 698
Joined: 10 years ago

#18: Post by naked-portafilter »

This scale is just awesome, dear neighbor :-)! The Cinco needs some extension for a two cup setting.

wnesensohn (original poster)
Posts: 21
Joined: 5 years ago

#19: Post by wnesensohn (original poster) »

jpender wrote: The standard is the brew water temperature with the Scace device being a prime example. When the brewing temperature is mentioned it's the water that they mean. So even if exit temperature were the best metric -- which I think is unlikely -- it isn't the one that's in common usage. So it's less valuable for comparison purposes.
That makes sense. I hardly ever come across temperature recommendations for roasts or measurements from other machines, so for me it would be more of a feedback loop to consistently yield the same temperature.
naked-portafilter wrote:This scale is just awesome, dear neighbor :-)! The Cinco needs some extension for a two cup setting.
Thank you, neighbor!
With the "old" Robot leg design, you can always add spacers to the feet to add a bit of headroom to compensate for the added height, just be sure to use M6 screws of appropriate length as the inner thread of the legs is not very deep and in aluminium, you want to use almost the whole thread if possible. Then you just need to extend the weighing platform a bit (3mm quality acrylic sheets, like Perspex or Plexiglas, should be strong enough).

Charlemagne
Posts: 110
Joined: 5 years ago

#20: Post by Charlemagne »

I absolutely love your work here, wnesensohn! It's really cool that you integrated it into the Robot, but this is the type of scale I'd like to use with all my brewing devices -- the functions you've programmed are perfect. I think if you could make this standalone (but still small enough to fit under the robot), water resistant, and cheaper than Acaia's offerings, you'd be filling a huuuuuuuuuge gap in the coffee scale market.