Most preheating coils are wraps around the boiler and get radiant and ambient heat, not active. I do not think that preheat is very useful if you use the PID temperature controller with alarms and cycle on the heater with brew. The heater on the Gaggia is cabaple of actually raising intrashot temperature without preheat. Preheat needs proper plumbing as mentioned by Tracerbullet.

Prepping the internal wiring of the Classic before anything will be done:

I took the plunge and brought the machine into the shop, gutted it and replaced the essentials with my own cables. The only things that are missing are the lights for the front panel and thermostats. The lights (one power: oh well, and the other brew temp, which is driven by the thermostats which have been ripped out) will be replaced with LEDs on the panel anyway, and the thermostats. The internal water thermocouple is getting really good numbers so the external thermostat has been removed. The steam thermostat has also been removed and will be replaced with an internal thermocouple as well.

Anyway, this picture is just to show how messy Gaggia did their wiring and was intimidating, even for me! I added a terminal block where everything connects to, instead of daisy-chained wires and connectors.

Note: there is a blue terminal near the power receptacle which is loose. This is for a ground wire, which doesn't exist in the US version. I'll be adding a 3-prong receptacle for safety later. It currently only connects to the terminal block... and that's it.

I now have MORE wires than stock, but that's only because I split out most of the wires. There are so many junctions and connections are so close together (like at the switches) that it made sense to join these few.

Everything is tie-wrapped together and labelled (all of the obvious ones) and tucked along the side. This cleans up all the space above the boiler so I can get in and out of there for easier modifications.

I'd love to hear what you have in mind for the architecture of your arduino code. I've spent a bit of time in the last month building a control unit for my gaggia coffee. So far everything is still a test unit, as I haven't cracked into the case. So as to not derail your topic I'll start one of my own, but I'll be watching yours eagerly!

Hi tiny,I like what you have planned for your Arduino project. Many, if not most of your features will be featured in my implementation, however, I have scaled down on a few things. It seems you've pretty much thought out your functions and procedures.

I am using one Arduino Nano for my implementation. I started development on an Uno, basically because it's easy to plug and unplug wires but mostly to ensure I have enough I/O. Once I've determined what I needed, I scaled it down to the Nano. I wanted to go with a Pro Mini because I wanted to keep it as compact as possible, but the Pro Mini doesn't have enough I/O.

This is what I've decided on since although it is a hardware implementation, it really is a software project and you can go NUTS with software. When I first looked at this project, I thought these Arduinos are super powerful... for this application. A super scaled down Arduino runs 8MHz and most of them being 16MHz. It's plenty of power, especially for reading thermocouples or thermistor values. It's super fast, but once you start adding this and that, you'll find out you'll run out of clock cycles and everything start slowing down.

About the software, there is only two real pieces of advice I can offer, which are:

If you want a "quick implementation", there is already a PID Library out there. Just Google it, but perhaps you've already found it. I've implemented it into my program and it works OK. The programmer's way of handling maintenance, is a ramped trickle which is sort of my home-brewed algorithm works, but it seems rather "slow" to respond and I end up with A LOT of steam. Otherwise, your hand-crafted code may be able to better maintain heat, since you are the one who knows your particular system better than anyone. When it comes to PID, I find the greatest challenge is the delay between reading a temperature/turning heaters on/off and when the water is actually affected. This can also be handled in software, like submarine sonar, so to speak, but you'd have to already have a working datalogger and a sensor in the water.

Events, events, events. You probably already know this also, but when it comes to Arduinos, they are so easy to program what we tend to automatically use delay(). It's a one-line no-brainer, but delay() will kill your program before you start, especially your implementation, where you will be controlling yours via remote control. Cool idea by the way, but MAYBE you'll find that you'll need a robotic arm to pull your shot if you're not standing by the machine. LOL

My software isn't done yet either, but it is there for the most part. So now I'm putting the chassis together. I have a piece of 6061-T6 aluminum that is ~ 4.5" x 5.5" x 1" thick that will house all the hardware, not including the power supply and SSR. The original idea was to put the LCD, button panel, SD and RTC on the front and everything else in a box mounted in the rear, but after laying it out in CAD, it would cover the Gaggia Classic emblem, so the emblem has to go anyway, so why not just make it a little bit bigger and make one box instead of 2? I'm trying to hollow out as little as possible so I can to keep it "heavy", and less "tin-like".

All you will see here is the 20x4 and buttons, which will be all covered with a thin smoke film to give it a clean look. The SD thumb slot can be seen in the picture as well. I just started cutting it and iPhone camera quality - don't expect much.

Oops, no buttons yet. I can't cut the opening for the buttons with a 1/2" endmill. That'll be the next operation with a 1/4" or 3/8"

Here's a link to my Version 3 custom thermocouple. It is now a 2-piece design: a mount and the rod. It is now a double thermocouple to measure the upper and lower lever water temperatures.

The upper water temp is what's most important, but I still want to measure lower water temp to give my PIDruino more information to control the heating elements more efficiently; to make sure to pump in enough heat energy but not to overheat the upper level water.

You can read more about the development of the custom thermocouple here , but here are some pictures.

Version 3 now has a 1/8 NPT steam port which I haven't implemented yet.

Sadly said, the version 3.0 rod cracked before I could sink it into the boiler. But the good news is, since I made the version 3.0 probe modular, I only needed to build a new rod, which is is more beefy anyway. That's all in the boiler and taking temps now, so that's good.

News on the PIDruino, since this is the PID thread, I've finished the aluminum face panel and mounted all the electronics. Everything is hooked up except the button board and the SD reader, but that's really all I need to plug into the espresso machine. Here are the latest pictures.

Nevermind the negative temp, that's a bug in the software, where I disconnected the sensor from TC2 and plugged it into TC1. It has hardware and software provisions for up to three thermocouple amplifiers, but only 2 amplifiers installed at the moment.

There's nothing really too special about it. It just has five control buttons for power (sleep/wake), menu/aux, steam, manual pull, and what I call lazyautomatic pull. I'll probably get it all done sometime this week hopefully.

Here's the back side of the face panel. I decided to install all the modules instead of combining them into a single PCB. I think it would be another 6 months if I went the other way.

Everything is hardwired right now, since I'm only replicating my PortArduino board and not really changing (much) of the current design, everything should work the same. The only difference is the PortArduino board uses a standard 16x2 LCD where this one is a 20x4 I2C LCD, freeing up a lot more IO pins for the button board.

Symbols: = New Posts since your last visit = No New Posts since last visit = Newest post

Forum Rules:No profanity, illegal acts or personal attacks will be tolerated in these discussion boards.No commercial posting of any nature will be tolerated; only private sales by private individuals, in the "Buy and Sell" forum.No SEO style postings will be tolerated. SEO related posts will result in immediate ban from CoffeeGeek.No cross posting allowed - do not post your topic to more than one forum, nor repost a topic to the same forum.Who Can Read The Forum? Anyone can read posts in these discussion boards.Who Can Post New Topics? Any registered CoffeeGeek member can post new topics.Who Can Post Replies? Any registered CoffeeGeek member can post replies.Can Photos be posted? Anyone can post photos in their new topics or replies.Who can change or delete posts? Any CoffeeGeek member can edit their own posts. Only moderators can delete posts.Probationary Period: If you are a new signup for CoffeeGeek, you cannot promote, endorse, criticise or otherwise post an unsolicited endorsement for any company, product or service in your first five postings.