Wednesday, December 24, 2008

Silvia - Arduino Pin Connections

I have just completed a table that is a summary of how all of the different hardware modules connect to the analog, digital, (+v), and ground pins on Arduino. These connections really follow directly from the software code that is used for this project. I thought that I'd just publish them in one place to help anyone contemplating the joining of Silvia and Arduino!

This table shows the module (hardware) to Arduino pin connections for two possible Silvia and Arduino configurations. The two configurations are designated by the interface method of input to Arduino, which in turn controls Silvia's actions.

If you want to use the Wii nunchuck as the interface for input to Arduino, then use the information provided in the column labeled: "ARDUINO PIN Wii Interface"

If you want to use a 6-button interface (of what ever design you like) for input to Arduino, then use the information in the column labeled: "ARDUINO PIN Button Interface"

Keep in mind that this table corresponds only to the specific hardware design that I used for the components in Silvia. My design differs from that of Tim Hirzel, this has to do with my use of the Opto 22 optoisolators to sense the status of the face panel switches, whereas Tim chose a low voltage re-wire of these switches. This then necessitated the use of two additional SSR's for control of the Silvia's pump and solenoid. If you want to go in Tim's direction, then the changes are self evident from looking at his SNV code.

One last note...

It was difficult to get this table to format for HTML, so if it is hard to read, just use ^Control + to make the text larger... good luck!!
Arduino Pin C
Button Interface
Wii nunchuck



} I2C


Button Interface

DIGITAL 36-button interface is used in place of the
Wii nunchuck.
Many hardware options are available






Real Time Clock



SQWDon't useDon't use



Temp Amplifier

If LM34AH-ND is not used




Temp Sensor

is not used

Vs+3.3v / 5v*3.3 / 5v** Adjust Calibration



Water Level Sensor

Lead from pin 15v5v

Lead from pin 2ANALOG 3ANALOG 3

Lead from pin 7Sensing ElectrodeSensing Electrode

Lead from pin 8GNDGND

PB4 Optoisolators1. (5v)5v5v


3. Top Center DIGITAL 11 DIGITAL 11

5. Lower DIGITAL 10 DIGITAL 10



Sparkfun LCD



RXDIGITAL 3DIGITAL 2#define but don't use


Heater Relay SSR



Thursday, December 18, 2008

Progress Photos

Below are a few progress photos to give an idea of where the project is to date. All of the components that I will be installing internal to Silvia, have been installed. Those that will remain external, in an attached project box, have not yet been installed. In the next week of so, I plan to make my own project box, since I haven't been able to locate a box to purchase that is the size that I want to use.

The photos show some of the individual components prior to installation, the last photo illustrates the installation.

This image demonstrates the installation of the Solid State Relay (power supply to the boiler heating element) in the "usual" location, i.e., behind the lower front panel. The RED 5v supply wire is the PWM control from Arduino. The GREEN wire is connected to a common Arduino ground. The PURPLE wires out are the power supply to the heating element.

This photo shows the water tank, and the water level sensing probe. The sensing probe is made from a piece of copper de-soldering braid. The braid is soldered to a 22 AWG wire with a bullet connector at it's terminal end. The bullet connector allows for a "quick disconnect" in order to easily remove the water tank from Silvia when necessary. The braid is glued to the water tank using 3M's 5200 Marine Adhesive (really sticky stuff!).

Here the small printed circuit board that I made to organize the QT113 capacitance sensor that is used for water level detection, the Css reference capacitors, the 5v and ground supply, the input from the sensor electrode, and the output to Arduino. The board is attached to the stainless steel wall that separates the boiler compartment from the water tank / pump area inside Silvia. The PCB is screwed into nylon bushings that are glued to the stainless steel wall with the same 5200 Marine Adhesive.

This is how it all goes together as it will be installed

Now lets take a look at the IAC5 Optoisolators....

The four IAC5 optoisolators are installed on the PB4 data board which allows for really nice connectivity and organization. On the Control Side, each individual optoisolator is connected to one of Silvia's face panel switches (power, brew, steam, hot water). The Data Side outputs 5 vdc when each of the corresponding face panel switches are "off" and 0 vdc when the corresponding switch is "on". This way Arduino can "sense" the status of Silvia's face panel buttons.

This is how I installed the PB4 with the optoisolators. The PB4 is standing on an edge, you can see a white strip to the left of the numbers on the PB4; this strip is a piece of synthetic "asbestos" to act as a bit of a thermal insulator. There is another piece of this thermal insulator that I placed over the shaft of the steam valve too.

Here is a close up of the LM34AH temperature sensor. I made a small bracket out of a section of a wall of 1" copper tubing. It is shaped so that it's ID is just slightly bigger than the OD of the LM34AH. It holds the LM34 tightly against the boiler. You can see a bit of thermal conducting grease between the boiler and the temperature sensor.

Another view of the same thing. The LM34 is held down by one of the pressurestat screws (steam)

Ok... so this is the last photo for now... It shows how I managed to pack all of the components in the photos above into Silvia:

The legend to the numbers is as follows:

1. LM34AH IC Temperature Sensor
2. IA5c Optoisolators installed on the PB4 Data Board
3. Water Level Sensor - QT113 on the homemade pcb attached to the stainless steel dividing wall
4. Water Tank - water level prob is on the front outside surface of the tank but not visible in this view
5. Hard shell, split tube thermal insulator covering the tube connecting to the steam valve
6. Woven PPS Nomex thermal insulator for a few of the wires close to the boiler.

That's where I am to date... I just got the chrome goose neck that will attach the project box to Silvia. The project box will hold Arduino, the LCD, the Real Time Clock (RTC) module, and the input device (either the Wii nunchuck, or the button interface I am currently working on). Also, I didn't take a picture of it, but the 12vdc transformer that supplies Arduino has been "spliced" into Silvia's main power supply, and is located behind the stainless steel dividing wall, underneath the water tank, next to the ULKA pump.

More to follow, once the project is completed.........

Sunday, October 19, 2008

Parts List for the Intrepid

Before I begin, I want to acknowledge and thank Tim Hirzl who initiated the project:

Arduino and Silvia: Two Italians, One Tangled Affair

Tim's efforts, and inspiration were the spark I needed to take my Silvia along this road. He has been of invaluable help to me in this project, and well deserving of the public "thank you". Along the way, Karl Gruenewald, aka The WABE, was another who followed in Tim's footsteps and was tremendous help to me as well.

This is my first post about my progress on this project. Although I have almost completed the project at this point, I have resisted posting up until now, because I really wanted to wait until Silvia and Arduino were making beautiful espresso together before talking about my experiences. However, due to interest at CoffeeGeek's forum on espresso machine modifications and restorations (New Silvia Mods) I have decided that, at least at this time, I can post the list of parts that I used for this project and suppliers.

So.... for those interested what follows is a complete list of the parts used to date in my modification of Rancillio's Silvia. One last note... I did not include any mention of a project box, or enclosure for the electronic components. Tim choose an very nice installation internal to Silvia as shown on his blog. I will use an external installation for Arduino, patterned after the great work shown at A Tail About Silvia.

Also... a great site to check out for more references is the Arduino wiki CoffeeTronics

So here it is..... enjoy!

Silvia and Arduino

Parts list for the Intrepid

SPARKFUN (All parts except 8, 9, & 10 are optional - link)

1. 2 x Polarized Connectors - Header (2-Pin) (SKU#: PRT-08233)

2. 2 x Polarized Connectors - Housing (2-Pin) (SKU#: PRT-08095)

3. 2 x Polarized Connectors - Housing (4-Pin) (SKU#: PRT-08097)

4. 2 x Polarized Connectors - Header (4-Pin) (SKU#: PRT-08231)

5. 1 x Polarized Connectors - Housing (3-Pin) (SKU#: PRT-08096)

6. 1 x Polarized Connectors - Header (3-Pin) (SKU#: PRT-08232)

7. 1 x Polarized Connectors - Crimp Pins (SKU#: PRT-08100) $1.95

8. 1 x Serial Enabled 16x2 LCD - White on Black (SKU#: LCD-00813)

9. 1 x Real Time Clock Module (SKU#: BOB-00099) $19.95

10. 1 x Wall Adapter Power Supply - 9VDC 650mA (SKU#: TOL-00298)

11. 1 x Mini Button Pad Set - Black (SKU#: COM-08997) $4.95
Note: the center button is a 4-way directional button (up-down-right-left)

12. 1 x Mini Button Pad PCB (SKU#: COM-08963) $1.95


K Type Washer Thermocouple
Model: TC-K3W
$9.50 (M3 or #6 screw, 3’ long leads)

(Note: One could use the T0-46 packaged, LM34AH-ND from National Semiconductor, an IC temperature sensor (link) instead of Auberin’s thermocouple and Analog Device’s thermocouple IC amplifier: AD595CQ)


Precision IC Temperature Sensor - Fahrenheit
(see note above)


1. Arctic Silver® Ceramique™ Thermal Compound
Model: A2350 | Catalog #: 28-1098

2. Desoldering Braid (also used for water sensing electrode probe)
Model: 64-2090 | Catalog #: 64-2090

3. Dual General-Purpose IC PC Board (used with QT114 / 113)
Model: 276-159 | Catalog #: 276-159

4. 2-Position PC Board Terminals (used with QT114 / 113)
Model: 276-1388 | Catalog #: 276-1388

5. 0.1µF 50V Hi-Q Ceramic Disc Capacitor Pk/2 (used with QT114 / 113)
Model: 272-135 | Catalog #: 272-0135
$1.49 *

6. 0.047µF 500V 20% Hi-Q Ceramic Disc Capacitor (used with QT114 / 113)
Model: 272-126 | Catalog #: 272-0134
$1.49 *

*one of each used - see photo on future blog!

NEWARK (Parts other than 1, 2,3, & 4 are optional, as needed - link)

1. 05F7093 Each/ $18.68
Manufacturer Part No: AD595CQ Analog Devices
Description: Temperature Sensor IC; IC Function:Temperature Sensor IC;

2. 92K8429 Each/ $5.06
Manufacturer Part Number : QT114-DG
Description: QPROX SENSOR, DIP8, 114

note: 92K8427 Each/ $4.16
Manufacturer Part Number : QT113-DG
Description: QPROX SENSOR, DIP8, 113
This IC is easier to work with.

3. 52K3276 Each/ $0.14
Manufacturer Part No: 1-390261-2
Description: DIP Socket; No. of Contacts:8; Row Spacing:0.3"

4. 52K3277 Each/1 1 $0.158 $0.16
Manufacturer Part No: 1-390261-3
Description: DIP Socket; No. of Contacts:14; Pitch Spacing:0.1"

5. 58K5034 Tape and Reel C/1 1 $0.122 $0.12
Manufacturer Part No: MCCFR0W4J0270A50
Description: Carbon Film Resistor; Series:MCCFR; Resistance:27ohm

6. 62J1902 Each/ $0.80
Manufacturer Part No: 3362P-1-502LF
Description: Trimmer; Series:3362; Track Resistance:5kohm

7. 15M2094 Tape and Reel C/ $0.66
Manufacturer Part No: 23BR5KLFTR13
Description: Trimmer; Series:23A Series; Track Resistance:5kohm

8. 01H9629 Each/ $0.23
Manufacturer Part No: AND114-R
Description: LED Lamp; Bulb Size:T-1 3/4; LED Color:Red; Luminous

9. 71C4123 Each/ $0.89
Manufacturer Part Number : 1729128
Description: TERMINAL BLOCK, PCB, 5.08MM, 2WAY; Connector type:Terminal Block,

10. 58K5042 Tape and Reel C/ $0.12
Manufacturer Part Number : MCCFR0W4J0331A50
Description: Carbon Film Resistor; Series:MCCFR; Resistance:330ohm
Tolerance:+/- 5%;


1 x Arduino Breakout Shield v1.2 Kit $20.00 (excellent)
1 x Thermocouple Sensor v1.0 Raw PCB $1.00 (excellent)
This is used with the AD495CQ


Arduino Diecimila arduino-diecimila 1x 33.00

16x2 LCD Module While 16x2-lcd-module-while-characters-blue-backli162 1x 9.99
Characters Blue Backlight
(I ended up using the LCD from SparkFun)


Micron Tech
DC to AC SSR Solid State Relay 25A
Sale price: $8.00
Quantity: 3
Subtotal: US $24.00
S&H: US $13.00


New Nunchuck Controller (Numchuck) For Nintendo Wii
Sale price: $5.50
S&H: $6.50


OPTO 22 - IAC5 – AC INPUT MODULES (5) (Optoisolators)
Sale price: $1.45
S&H: $4.80


(PC Board for optoisolators)
Sale price: $10.00
S&H: $13.88


GB – Gardner Bender
Various sizes of Polyolefin Heat Shrink Tubing
3/32" 24 AWG HST-093

1/8" 22-18 AWG HST-125
3/16” 20-12 AWG HST-187

3/8” 12-4 AWG HST-375

Various Male and Female Quick Disconnects. These were used to make the installation 100% reversible. None of Silvia’s original wires were cut. Some from HD, and some from Auto parts stores

FunGizmos.Com (Store)

1 x Wiichuck Adapter (I2C) = $4.00
Free shipping!

Reference: TodBot Blog


Various gauges (AWG) of wire are needed for this project. For internal wiring (inside Silvia) I used temperature resistant 16 AWG Primary wire from an auto parts store. All of the ic wiring to Arduino was 22 AWG project wire from RadioShack. Lastly, I used 12 AWG wire from the Solid State Relay to Silvia’s heating element.

Also... the prices shown are what I paid, and it goes without saying that at this point they are only an indication as they are likely to change. Clearly too, the prices paid for those items I was able to find on eBay were just those paid for that particular auction. Any of the items purchased on eBay (and I was lucky to find what I needed when I needed it) can all be purchased retail if need be.

Good luck! ...........More to follow as the project is completed!