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.net.
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.net
- 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:
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.
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 iSPRESSO.net DIY Software