Mugsy

View Original

Update!

Hey folks, hope all is well out there!

I made a ton of progress this week. Primarily on software with some fixes/updates to the enclosure set up. I’m on a slight time crunch this eve so most the following info will be quick with detailed breakdowns coming in a future update.

Code:

  • I have completed all of MugsyOS “services”. These services run 24/7 and are managed through the standard systemd service manager. The services:

    • MugsyOS Service: manages all of the other services and the API.

    • Status Service: This is the “source of truth” that all of Mugsy’s systems communicate with before and after performing any task or function. It holds the current status of every piece of hardware, is the source of frontend notifications and status updates, and decides if an action requested by the front end or API can actually be allowed to continue. There is a ton of power in this seemingly simple service, and it allows for an extremely tight control process while providing visibility of the entire system, to both end users and the rest of Mugsy’s software.

    • Serial Communication Service: This service is used by other services to communicate with any hardware that is connected to Mugsy’s microcontroller.

    • Brew Service: This service is the bridge between Mugsy’s recipes and the Serial Communication service. Once a recipe is selected for brewing, all of its individual steps are sent in a single payload to this service. This service then parses each step, confirms the next action can take place, and sends the commands to the Serial Communication service to send off to the brewing hardware. While that it is occurring, it is also listening to info coming into the Serial service from the microcontroller’s direction and updating the Status service where required.

    • RFID Service: The RFID service just listens for RFID scans from mugs or badges/keys/etc. Once a mug is scanned, it updates the Status service which pings the backend API. The frontend will see that the system status has updated with the scan info, and if the status is all clear, it will fire off a modal to ask if you want to brew immediately. You can also have this set to brew without modal confirmation. This is a simple use case, but it does illustrate the value of the Status service. If some part of Mugsy is not working as expected, or needs to be filled/cleaned/reset or whatever, the info is immediately displayed to the front end. No confusing “PC LOAD LETTER” error messages here. This two way communication is also used for fun stuff like notifying the front end of a running integration or new software updates.

    • Safety Service: This is a 1 to 1 duplication of the Status Service for redundancy.

  • Tons of other tweaks/features have been added to the frontend and the API, too many to list out right now. I’ll have more room to discuss these features once demos content starts coming out.

Hardware:

  • I’ve added an additional set of weight sensors under the mug platform. Originally, water output was calculated using known and calibrated flow rates vs pump time, but there were too many variables. Now the actual data just exists. Much better. For version 0.8 (current) of the PCB, the new sensors will utilize one of the broken out microcontroller pins. For the next version, there will be an additional JST jack . This update did require some reworking of the mug platform but it was a simple update. This will be integrated into the enclosure this week.

  • Power and wire routing has been completely redesigned. Most electronics and power supplies now live in their own mounted and water resistant enclosures. I expect to move onto actually wiring up the assembled units this weekend and will share some photos then.

  • I need to do a bunch of laser cutting!

Ok, that is it for tonight. I am not quite ready to give a firm shipping date but expect to have one to share by the weekend. Next update will be no later than next Sunday. if anything worth sharing pops up before then, I’ll be share to update everyone immediately.

Thanks!