Update!

Hey folks, here are the bits:

The Weeds:

First things first - I’m currently 1.5 to 2 weeks behind where I expected to be as of today. There were several issues finalizing code for brew testing and code release, mostly around sensor services. The biggest show stopper was with the platform scale service.

When prototyping some functionality, I’ll often work it out on the Arduino before moving it over to the Pi and converting the code to a Python service. This is typically a straightforward process. Libraries for the common types of sensors and controls in Mugsy are plentiful and often expose functionality in very similar ways, at least at the API layer. The Python libraries for dealing with the HX711 strain gauge amplifier are not as plentiful or fully featured as one would initially expect. In practice, this is not a huge deal as at the end of the day you’re just tracking differences in voltages. So as long as that value is consumable, it’s not much work to get the service to do what is required. The first sign of a problem was that there was no change in voltage when reading the sensor.

I went through the usual troubleshooting steps, checking pin assignments, confirming library functionality, chasing error messages, swapping libs, yelling at ghosts, and on and on. No luck. This went on for a couple of days. At some point I hooked up the platform scale PCB to continue troubleshooting without hooking up the left side sensor. Data! And it acted as expected too. So with the problem localized to either the left side PCB or the bridge between the two halves, I moved on to figuring out what the issue was.

It ended up being an internal short, the result of a small manufacturing defect in the PCB. I wont get in to all the details of figuring it out but it was just a broken PCB at the end of the day. I 100% should have confirmed that the issue was not on the PCB first, but the symptoms were so similar to common issues with strain gauges that I just assumed it was more of the same. Lesson learned.

The good news is that the design of that board is fine and the others that were manufactured in that batch are working without issue. As of a few hours ago, the basic code is working but I still need to make it consumable by the rest of Mugsy.

For some additional context, weight sensors are a significant portion of what makes Mugsy’s recipe and brew control precise. They track and control the grinder output, water flow rates and how much coffee has been poured. If they’re not working correctly, nothing else is either.

The Next Few Days:

I will be playing catch up for the next 3-4 days. Specifically the following items:

  • Complete the mug platform scale service, release it and the other python sensor services to the Github.

  • Circle back to fix a small issue with the Cloud Control SSO production config. This popped up last week but I got sidelined by the sensor issues before resolving. Fix is known and will be quick.

  • Add any remaining models and PCB files to the design repo.

These will all be wrapped by the weekend. On Sunday I’ll go back over the list from a few updates ago and confirm scheduling details.

Thanks and I will see everyone on Sunday. Cheers!

MComment