Silvia Mod Plan

Silvia Mod Plan

So in October I finally bought the Rancilio Silvia I'd been coveting (after coveting a La Pavoni manual espresso machine first!) with the intention of modding it to add digital temperature control to it, as many have done. This basically involves replacing the stock thermostat with a thermocouple and solid-state relay, plugged into a digital control unit which does PID control. Now being a software guy who likes to tinker with his Arduino, I pretty quickly decided that I wouldn't use a standard industrial controller but I would build a custom one (kind of like this one, but read on for differences). In addition, I decided I didn't want to hang anything from the Silvia or make any externally-visible modifications, partly for esthetic reasons, but mostly because I'm not too good at making good-looking hardware myself. So I decided I would build something I could control wirelessly, from my iPhone for example. "Control" in this case basically means occasionally changing the set point of the controller, and maybe turning it on remotely. One other feature which would be nice would be a timed on/off feature, like "on 30min before I wake up" and "off after 1h of disuse" or something like that.

With this rough set of goals in mind, I did some research and found out that modding something like a Silvia is pretty dangerous if you do it wrong, what with mains power and all. I didn't want to take any chances, so I contacted the fine gentleman behind PidKits.com, got some excellent advice, and subsequently ordered from him the set of parts pictured above (basically everything I would need except the controller itself). I'm pretty pleased with this, because frankly, picking out the right gauge of wire to not die while tinkering is really not the part of this hobby that I like most. Jim even offered to sell me a TC4 shield to interface the thermocouple and SSR to the Arduino, which I took him up on. Basically the TC4 does two things the Arduino can do, but better: analog-to-digital conversion (but with higher resolution and amplification for thermocouples) and pulse-width modulation (but stepped up to control an SSR). In the picture above, the green board on the left is the TC4 (v1) and the black box on the right is the SSR.

So, armed with most of the hardware I need (still looking into buying a Wifi Shield), what's the plan?

  1. Attach the TC4 to the Arduino and figure out how to use it to read the temperature of the thermocouple and send it back to my Mac via serial USB.
  2. Replace the serial USB with my trusty pair of XBee transceivers so report the temperature telemetry back wirelessly.
  3. Build a web server that would run on my Mac to receive the wireless temperature data and graph it as slickly as possible.
  4. Install the thermocouple in the Silvia.
  5. Test the above by graphing temperature curves on the iPad in real time.
  6. Test the Arduino-driving-SSR-through-TC4 with LED's or something like that.
  7. Code up a simple P controller.
  8. Install the SSR in the Silvia
  9. Test the P controller on the actual Silvia, watching the temperature curve on the iPad, then move Silvia back to stock thermostat.
  10. Code up a fancier PID controller and test it.
  11. Install the Arduino-powering wires in the Silvia.
  12. Install the Arduino semi-permanently in or behind the Silvia, in a case of some kind.
  13. Move from Xbee to Wifi so I can stop running a web server on my iMac with an Xbee module hanging off the back. (this is the really exciting part, I think: putting a whole webserver in my espresso machine!)
  14. Install a real-time clock or set up NTP over Wifi to gain the ability for the system to start heating on a schedule.


© Nicolas Kruchten 2010-2023