Rancilio Silvia PID LCD function:
MySilvia is a Rancilio Silvia portafilter espressomachine reconstruction mod. The Rancilio Silvia PID mod adds a lot of new componets and features to the Rancilio Silvia machine, like touch-display and several sensors. The reason was to improve the temperature accuracy and simplify the operation of the Rancilio Silvia machine. Fact is, that under normal condition the Rancilio Silvia regulates the temperature relative inaccurate and exactly this temperature inaccurance of the Rancilio Silvia has an important influence on the flavor of the coffee. Additional to the temperature regulation I have added a pressure, a fluid sensor, a flow sensor and a membrane regulator. Of course shall all set-actual data from the sensors are shown and set on the display. All this together is my MySilvia Rancilio Silvia PID mod.
Features of the Rancilio Silvia PID mod:
- PID-temperature regulation
- PID-pressure regulation
- Atmel AT32UC3A3256 on “UC3-A3 Xplained evaluationboard”
- 3 TSIC 301 temperature sensors (10°C-110°C -> ±0,3°C) calibrated
- 3 ADS1100 16Bit analog-to-digital converter
- Honeywell 40PC250G1A pressuresensor 0-250 Psi (0-17Bar)
- Digmesa FHKSC flowmeter 0.08 – 0.57 l/min
- real time operating system FreeRTOS V8.2.0
- boiler heat isolation
- water fluid level sensor Vegetronix VH400
- FTDI VM800 displaycontroller
- Solid-State-Relais (SSR)
Project Rancilio Silvia PID:
The Rancilio Silvia PID project based on an evaluationboard from Atmel. The heart from the UC3-A3 Xplained evaluationboard is an AT32UC3A3256 microcontroller from Atmel. In addition the board has a 64MBit SDRAM chip. This nice 8MB can mapped into the microcontroller main memory. Thats great…..especially with the use of a RTOS. The reason why I have chosen this board is for the Rancilio Silvia PID mod is, that this was in one of my drawer and I have a little experience with Atmel.
But the disadvantage from the board is, that it has indeed 8 AD chanels, but only with a resolution of 10bit. That is sadly not enough. Because the TSIC 301 temperature sensor only has an output from 0-1V and that in a measurement range from -50°C bis +150°C. That means, if we have a difference in the temperature from one degree, the output voltage change only about 0.005V. With the 10bit resolution, the AD chanels from the board have only an accuracy around 0.003V (3.3V / 1024). This is the reason why I have solder a simple adapterboard that fits on the evaluationboard. I dicided to put a 16bit AD converter on this board. Such a 16bit AD converter has a theoretical resolution from 0,00005V. With this resolution it is possible to measure 0.01°C from the TSIC. However the TSIC has only an accurency from ±0.3°C.
This is called my “Rheinisches-Provisorium” (This is forever ;-)) )
The adapterboard for the Rancilio Silvia PID mod sit directly on the UC3-A3 Xplained evaluationboard. This board looks not very pretty but it has the following nice features:
- LM4132 precision voltage referenz 3,3V for ADS1100 AD-converter (0.05% output accurency)
- several lowpass filter for power supply filtering and stabilization
- 5V to 3.3V voltage transformation for Digmesa FHKSC flow meter
- 3 ADS1100 16bit analog-to-digital converter
- 3 outputs for solid-state-relays (SSR)
- connector for all In/Outputs (snsors, SSR´s, led, rs232, display)
2 temperature sensors (TSIC 301) which are mounted on the boiler are read in over 2 ADS1100 (16-bit) converters. The third temperature sensor which is connected on the Silvia case is read in over the Xplained-board (10-bit). This temperature sensor measures the ambient air temperature. The pressure sensor are also read in over one ADS1100 (16-bit). The fluid level meter are read in over the Xplained-board (10-bit). The flowmeter are read in over an external interrupt on the Xplained-board.
Reconstruction and sensor integration
Here are some pictures from the reconstruction and sensor integration on the Rancilio Silvia. This are pictures from a 2014 Rancilio Silvia maschine. You will see all pictures except the LCD-Display installation. For the Rancilio Silvia PID mod I have used thermal adhesive to fix the 3 TSIC sensors. This thermal adhesive is temperature-resistant up to 160°C. One TSIC is used for the ambient temperature of the Rancilio Silvia machine and the 2 others are on the boiler. The upper one to measure the steam temperature and the lower one to measure the water temp.
The pressure sensor on the Rancilio Silvia PID mod is a Honeywell 40PC250G1A which can measeure pressure up to 17 bar (0-250 Psi) and is connected on the boiler over a Parker Legris Male Stud Run Tee 3693 04 10.
There are 3 solid state relays (SSR`s) that are connected on the Rancilio Silvia body over a thermal isolation material. One Sharp S202S12 for the heater and one Sharp S202S12 for the solenoid valve. The Sharp S202S12 has an intergrated zero-crossing detection and a snubber-circuit. The Sharp S202S01 is for the pump. This SSR has no zero-crossing detection and no snubber-circuit.
The boiler isolation on the Rancilio Silvia PID mod is from solar-panel environment. It´s called HT/Armaflex and is temperatur resistant up to 150°C.
The membranregulator on the Rancilio Silvia PID mod is from Jura. It´s installed after the pump and it´s used that the pump operate against a pressure. If the pump worked against a pressure the are working soften.
The Digmesa FHKSC flowmeter on the Rancilio Silvia PID mod can measeure flow rated from 0.08 – 0.57 l/min.
The LCD display that i´m using on the Rancilio Silvia PID mod is a FTDI 5″-LCD-Touch-Display VM800B50A
Temperature sensors on boiler ( with thermal adhesive up to 160°C)
Rancilio Silvia PID pressure sensor
Rancilio Silvia PID SSR relais
Rancilio Silvia PID LCD boiler isolation
Water fluid level sensor Vegetronix VH400
Measurements on the Rancilio Silvia PID mod
Boiler isolation ( espresso shot )
The boiler isolation on the Rancilio Silvia PID mod brings on a espresso shot a little bit higher brewing temperature from 5-6°C. Of course the hysteresis from circa 22°C stays. Each measurement are made on a cold and Rancilio Silvia PID machine and a starting temperature between 20°C-24°C. During the measements the case from the Rancilio Silvia was open. As you can see here fine the air influence on the temperature sensor without isolation (red graph).
This is one of the big disadvantage on the Rancilio Silvia machine, because on a more or less fix temperature after the machine heats up. Without the isolation the temperature is 105°C after the lamp goes off, that indicates that the temperature are reached. This is a little bit too high for the most coffees, because on this high temperature the coffee tastes burned.
Boiler isolation ( steam )
Such like at the espresso shot the boiler isolation on the Rancilio Silvia PID deliver a little higher steamtemperature. The hysteresis by circa 22°C remain again. The measurements starts on a starttemperature from circa 90°C-94°C. During the measements the case from the Rancilio Silvia was open. Again you can see here fine the air influence on the temperature sensor without isolation (red graph).
Here you can see a bigger difference how the Rancilio Silvia PID can hold the temperature longer than without the isolation. Additional you have a higer steam temperature from 8-10°C.
Here you see the temperature PID-regulated on the Rancilio Silvia PID. No more hysteresis left. The controller are relatively fast. I have seen significant slower Silvia PID mods in the past. Indeed in this example I have set the test temperature to 80°C. So I don´t must wait too long for the next measurement. Because in the cold state the Silvia should be at room temperature. But by the way….from 24°C to 80°C in 140 sec. Momentary for my purposes I have set the brew temperatur to 94°C. The PID controller needs circa 180-190 sec for this. In the diagram you can see nicely that the PID controller controls the temperature only with a lightly over- and a lightly undershoot from 0,5°C only. Thats enough for my purposes. And more is not so easy to implement with choosen sensors. Because the temperature sensor has only an accurency from only ±0,3°C only.
The other thing is, that the controller is no native PID controller. It is a modified PID controller by me to work faster on the Rancilio Silvia PID mod. The following steps have I changed:
- The native PID controller works only if the temperaturedifference between the desired setpoint temperature and the measured process temperature is < 15°C.
- The integral term could not integrated in negative (we could not cooling….only heating)
- The cycle time from the controller raised to 1 sec, because the brazen boiler are relative lazy.
- The differentil term are calculated only all 5 sec. So I can detect better the grade of the curve.
Display & Software & Projectinformation
The main component of the Rancilio Silvia PID mod ist the touch display. It is a 5″ touch display VM800B50A from FTDI with a resulution of 480×272 pixel. It is build on the top of the machine. All switches of the maschine are out of order except the power switch. All other functions are controled over the touch display.
If you turn the power switch on you will see this:
The microcontroller initialized the system (Ram, storage, display, ad converter) after that the FreeRTOS real time operation system with the several tasks are started.
The next screen is the main screen:
On the main screen you can see the espresso or steam setpoint temperature and the actually measured temperature. If you press on the espresso label you can switch between espresso or steam mode. If steam mode is enabled all other functions are disabled. You can only stay on this screnn until you press again on espresso/steam. Additional you can the the water fluid level. If the water fluid level is too low all other functions are disabled. Additional you will get a message if you press a button on the Rancilio Silvia PID LCD display.
If espresso mode is activated you can switch to the espresso menu or hotwater (heisswasser) menu. Or you can go to settings if you press on the M symbol.
The menu navigation of the Rancilio Silvia PID consists of 4 main pages shown above. Mainpage (Hauptmenü), Espresso, Hotwater (Heisswasser) and Settings (Einstellungen). In which the menu settings (Einstellungen) has once more 10 underpages. Here one example of one from the ten:
Here again all pages explained:
- selection espresso steam mode
- selection espressomenu
- selection watermenu
- water fluid level notification
- temperature notification
- selection settings over the “M” symbol
- selection single espresso
- selection double espresso
- At the selection one of the both espressomenu, notification of temperature, pressure, flowmeter, time
- selection Hotwater (Hotwater without solenoid valve)
- selection clean (Hotwater with solenoid valve)
- extractiontime / preinfusiontime
- flow rate
- touch display calibration
- brightness display
- PID P value
- PID I value
- PID D value
project time: about 5 months
lines of code: circa 5000 rows own code
start of project: 2015
Rancilio Silvia PID LCD have fun!!!!!