/rusty-pid

A PID in Rust for the Rancilio Silvia

Primary LanguageRust

Daschl's Rancilio Silvia PID Mod

Machine Front

This repository contains my personal, non commercial, PID modification for the Rancilio Silvia espresso machine.

Feel free to use any code in this repository for your project as well, but I do not provide any guarantees or support whatsoever. If you make modifications to your coffee machine, you will void your warranty! Also, working with 230V can be dangerous and should only be done if you know what you are doing!

Project Overview

The Silvia is a great espresso machine, but the built-in temperature sensor causes an oscillation of over 10 degrees celsius:

Regular Oscillation

Over time, users have come up with the idea of temperature surfing, but that's still error prone and not very consistent. A PID controller allows to keep the temperature stable of +- 1 degrees celsius and also recover quickly after pulling a shot.

You can buy off the shelf kits from companies like Auber, but I wanted to implement it myself as a learning experience. The main inspiration and ideas came from the Rancilio-PID project, for which I thank them a lot. They open-sourced the complete arduino implementation on Github and made it possible to adapt it for the Rust ecosystem.

This repository right now contains two modules:

  • controller: the main embedded controller which lives inside the machine and is the heart and brain.
  • ui: working on a iOS app to monitor and configure the controller via BLE (Bluetooth Low Energy).

Controller

The controller is a Adafruit Feather nRF52840 Express that runs RTIC. It measures the boiler temperature through a TSIC 306 sensor and controls the heater through a Carlo Gavazzi RA4850 SSR.

Both controller and SSR are located in the front section of the machine, behind the front plate (right next to the solenoid valve):

Controller and SSRs

The temperature sensor sits on top of the boiler and is glued down with a 2-component heat adhesive glue (i.e. Hernon 746):

Temp sensor on top of the boiler

The SSR opens/closes the circuit instead of the original brew temperature sensor:

SSR Connection

I want to do the same!

If you are interested, right now the best way to get in touch is probably via Twitter, because I haven't had the chance to write up a full guide. Also, check out my blog where I try to write up my experiences and progress for this project.