Introduction: ISPRESSO: Remote Controlled, Raspberry Pi Powered Espresso Machine

Please note: These instructions were accurate for the old Raspberry Pi boards and the older version of Raspbian, but there have been big changes recently which require new steps, at least on the software side. The up-to-date instructions (kernel > 3.18, Raspbian as of Feb 2015) are on

iSPRESSO is an appliance modification comprised of Raspberry Pi computer, solid state relays, temp sensor, buttons and a display, a custom Printed Circuit Board, and custom linux shell scripts and a good bit of python code. The instructions to build, including source code, is available on this site and

iSPRESSO features:

  • Programmable software PID Controller for precise boiler temperature control
  • Configurable Pre-soak time, wait time, and brew time
  • Controllable from web browser, iPad, iPhone (Android coming soon) on WiFi network
  • Schedule allows programmable on / off timing for each day of the week
  • LCD readout for system status, toggle buttons for operation
  • Smart Connect for easy setup to your WiFi network

Step 1: Shopping List

WARNING: Before you get started, be aware that messing with electricity near water is very dangerous! Be sure you know what you are doing, take every precaution, consult an electrician, and be 100% sure you are using GFCI outlet.


I've put together a list of most of the items you will need to build this. To the extent possible, these are Amazon Prime items:

iSPRESSO Shopping List

Step 2: Remove Top Panel

Remove the top panel by removing 4 screws holding on the top, and lifting the top. Remove the black reservoir lid and set aside. Pull hoses out of the way and remove water tank and set aside.

Step 3: Removing Front Panel

Remove front panel by removing two screws from the front panel, and slide it out laterally to the right, moving foam nozzle out of the way. Remove bottom grating and bottom tray.

Step 4: Remove Water Tank Heat Shield

Remove inner rear shield that forms the housing for the water tank. This is accomplished by unscrewing two screws holding on rear shield, holding the hoses out of the way, and wrestling that damn thing out of there.

Step 5: Mount Solid State Relays (SSR's)

Mount Solid State Relays (SSR). Please note that although the pictures may show 25A SSR, you will need 40A SSRs for the Silvia V3. 25A did work on Silvia V1, but not on V3. Hold up SSR’s and mark holes with a screwdriver. Drill holes using quality Cobalt bits - the metal is extremely strong. Wear eye protection.

Step 6: Mounting SSR

Mount the SSR’s using screw & nut #8-32 x ½”

Step 7: Mounting Temp Sensor

Secure the 1-wire temp sensor to boiler. Using a 3-4” hose clamp (metal), affix the 1-wire temp sensor to the boiler. Use some thermal compound to help make a good contact for heat transfer.

Step 8: Wiring

Set the other end of the temp sensor wire aside where it will not get in the way, we will wire this up later

Before you mess with the wiring, have a look at the way things are currently wired (see diagram).

Step 9: Wiring Harnesses

Create some wiring harnesses using 14ga high voltage wire:

* Black wire - 10ga female connector with 3 wires

--- short wire 4” ending in a 14ga male connector

--- long wire 16” ending in a 14ga female connector

--- long wire 16” ending in bare wire * Black wire - 12” bare wire one side, 14ga female connector other side * Red wires - 10ga female connector with 2 wires

--- short wire 4” ending in 14ga male connector

--- long wire 16” ending in a 14ga female connector * Blue wires (two alike)

--- 12” bare wire one side, 14ga male connector other side

--- 12” bare wire one side, 14ga male connector other side

Step 10: USB Power

The long wires with female connector will be used to power the USB. I’ve used a little bit of heat shrink to cover the bare metal of the plug. This is a bit of a hack, but the important thing is to suspend this a bit when we install it so that it does not come in contact with water. In any event, only use this appliance on GFCI circuit / outlet. Zip ties or the like should be fine to keep it suspended.

Step 11: Wiring Diagram - Modified

Now that we have the wiring harnesses, wire things up according to this diagram.

Step 12: View From the Top

Drop the USB power adapter down the back near the pump for now. Now the machine should look like this from the top:

Step 13: View From the Front

At this point, things should look like this from the front.

Step 14: Prep to Mount RasPi

Using a Dremel, cut off the screw that’s sticking out to the right of the relays.

Step 15: Mounting RasPi Case

About ½ inch to the left of that screw, drill a hole to mount the Raspberry Pi case. This will be the bottom of two holes, you will have to measure for the top hole. If you do this then you should not have any problem with the clearance for the drip tray, even with your wifi adapter in. Try it now to be sure. Before you mark for the top hole, trim a little off the bottom of the top mounting hole on case so that the mounting screw does not come in contact with the SD card.

Step 16: Mounting RasPi

Mount the Raspberry Pi. You can do this with screws, but my most recent build I used aluminum rivets as they were more flush. In any event, cover the screws / rivets with electrical tape so they don’t short out the Pi. Trust me.

Step 17: Faceplate Cutting - Template

Grab this PDF and print it onto 8 ½ x 11 paper. Don’t use the image, use the PDF, it’s more likely to print to correct size.

Step 18: Cutting Hole for LCD Display

Secure the paper template as a guide for cutting .Get your 19mm hole saw (do NOT use cheap hole saw from lowes, get something suitable for stainless steel). Cut a hole in the middle of the large rectangle. This will be used for the LCD screen.Once you have a hole, cut out the rest of the rectangle using Dremel or Nibbler.

Step 19: Holes for Buttons

Put a small dent in the center of the hole with a hammer and nail. This will help keep the drill bit from moving around. Cut the holes.

Step 20: Wiring the Buttons

Attach wires to the buttons, taking note of which color wires attached to which terminal on the button. You will want to wire up LED+, LED-, COM (common) and NO (Normally Open). It’s easy enough to use a little solder to keep the wires attached.

Step 21: Preparing LCD

Wrap the circuit board of the LCD (around the border of the screen) with electrical tape. This serves three purposes. First, it keeps some excess light from leaking out to the front panel, and second, it protects the contacts from short circuiting on the chassis. Third, it will help keep the LCD snug in its hole in the chassis.

Mount the LCD and the buttons into the holes you've created in the face plate.

Step 22: Mounting the Breadboard

We need a place for the circuit board to rest. I carved up some 9mm ammo boxes to build a platform.

Putting these on either side of the steam wand controller, I was able to create a nice platform. There’s some sticky tape on the back of the breadboard but you might want to wait until everything is working so you know you won’t need to move anything any more, before you expose the tape.

Step 23: View From Above

Place the breadboard on this platform, and connect a GPIO ribbon cable between the Pi and the Pi Cobbler. Mount the cobbler on the breadboard

Step 24: Wiring Diagram

Place the breadboard on this platform, and connect a GPIO ribbon cable between the Pi and the Pi Cobbler. Mount the cobbler on the breadboard.

This diagram was created using the amazing open source PCB design tool, Fritzing.

Step 25: Custom Printed Circuit Board (PCB)

Alternatively, you can also use a custom PCB instead of the breadboard.

Get the iSPRESSO PCB here.

Step 26: Software

There are a few more steps to getting everything up and running, including some steps with the raspbian linux as well as getting the python code from the repository and doing some configuration.

The full instructions can be found at DIY Software

Home Technology Contest

First Prize in the
Home Technology Contest

Remote Control Contest

First Prize in the
Remote Control Contest