Friday, 18 August 2017

Controller part 7 - proto case

Ok, I've been lax with the my posts and a few weeks have gone by. However, even though we are experiencing our brief period of non-inclement weather we refer to as 'summer', I have not been entirely idle.




I ordered a bunch of electronic parts for the controller box.



Including these LEDs from Bivar, which came in a fancy box and are somehow suggestive of marriage proposals.



(With this LED, I thee wed?)




I've not done enough PCB design work to be confident enough to order a board without building a prototype first. Normally I would just test the circuit on bread board, but this one has to handle AC distribution, so I decided to put one together on proto-board. After a lot of faffing around in Eagle CAD (candidate for the world's most un-intuitive CAD package) and time spent dragging the net for 3D models of the components, I settled on an enclosure size and cut the blank board to size. 



A first go at the layout of the lower and upper levels. AC-DC supply, 5V relay and opto-isolator board.



The Arduino fits over the top. 



And the LCD and keypad shield sit on top.




The models of the keypad shield PCB that I found on the internet don't quite match the one that I have. This meant that I spent a looooong time measuring the layout with calipers to figure out where the holes have to be cut in the enclosure box. This will be easier next time as I will design my own shield.

Four hours of setup for two minutes of cutting? Too late now if I got this wrong!





Thankfully, it fits.



The button hole cut-outs are a little on the large size. I think that the CAD model I used must be incorrect. Still, more than good enough for the prototype.

Thursday, 3 August 2017

Frame part 4 - rust paint

The pressure gauge is mounted to the top of the level gauge in the original which means that it has to be 'outside' the case. This is an expedient method but personally I find it a little too "steam engine" in an otherwise minimalist design. The advantage of exterior mounting it is that it is much easier to take off as the part that it mates with is fixed. With my mounting method, attaching the copper line directly to the gauge is more of a hassle. OTOH it isn't like you have to take the case off once a day...

I installed the SSR and slapped a coat of rust paint on the frame. This was also a case of expediency as the frame will be powdercoated. I just lost my patience with the rust. Amazing stuff that paint, you could almost put it on with a spoon and it will still level itself out...





Wednesday, 2 August 2017

Sheeeeeeet metal part 3 - test fit

A quick update on the progress of the sheet metal.

Months ago, when I ordered the cold-rolled steel for the frame, I neglected to actually measure it when it was delivered. I therefore missed the fact that the supposed 1/8" x 2" was in fact 1/8" by 2 1/4". As a result, the base of the frame was a 1/4" too high meaning that the hole in the backsplash for the group didn't line up with the flange on the boiler. I cutout and remade the cross bars, cleaned up the (now rather beaten-up) frame uprights and put everything back in its place.

While doing so, I welded on a couple of tabs to keep the backsplash in place. The tabs, together with the last interior flanges of the cover create a track for the backsplash to slide into. 

The tab clamped in place before welding.



The cross bars must be set back by at least same distance as the tabs. A scrap of 3/8" bar plus a brass shim create the necessary thickness.


Back to where we started!


Now for the fun part! I made a change to the design because I was unhappy with the placement of the pressure gauge. There is just enough room to fit the gauge and a u-bracket between the upright and the exterior of the cover. 


This gauge is both easier to read in this position and is now flush to the exterior surface. Far more satisfying all around. 


I knew there was a reason to put a coil in the line to the manometer! It was an easy job to reshape the existing part and to re-orient the coil so that the condensate runs back into the boiler.


AND... just because I like to feel like I've achieved something today, a test fit of the case parts with (yet another) valve. 


Hmm. This thing is starting to look vaguely like a coffee machine.

Saturday, 29 July 2017

Sheeeeeeet metal part 2 - unboxing

All of the sheet metal parts showed up in a nicely packed box yesterday.

The drip tray insert is just laser cut for the moment. I wanted to check it for the fit before paying for the custom tooling required to stamp the holes.



The drip tray itself is pretty much good to go like this. There is a slight difference in the finish at the corners where the discoloration from the welding was buffed out, but this is actually more visible in the photo than it is in reality. 


The warming shelf - ready to go except for the system for retaining it in place.


The cup warmer rails.


The backsplash, ready to be installed.


... and the cover. This is the most difficult part of the lot because of the radiused corners at the back. Those have given me much pain both to model in cad and in finding a supplier able to make them. 



A test fit of the cover and the drip tray...


... and, following a complete disassembly of the machine, a test fit of the the backsplash and cover.


Monday, 17 July 2017

Shakerato

Over the last six weeks I have been making some progress plugging away at the firmware for the controller. As anticipated, the code for the human interface is both more complicated and voluminous than the code required to control the actual machine itself. I've got proof of concepts done for both halves of the code (i.e. the menu system and the state machine) and now I'm working on putting them together. 

I'm also waiting to get the first batch of sheet metal in. I went through about ten suppliers before I found one that had the required tooling, was willing to do the prototyping and make a small run. I should have some pictures in a few days. I finished up the package of cad drawings during a trip to Italy where I had some great (and some not so great) coffee. The best was, of all places, in terminal 3 at Rome Airport at a generic chain café. That is one of the things I love about Italy - the last time I was there the best coffee I had was in a gas station by the side of the highway - great coffee is normal. While I was in Rome, I made the trip to Caffè Sant Eustachio. 




This place is great. They have a two-page(!) menu of bizarre coffee drinks any one of which would be enough to draw the crowds. Their signature is Il Gran Caffè (speciale). They make it behind a privacy screen to stop you seeing how they do it (nor will they tell you if you ask ;)). I believe the technique comes from Naples where they take the crema from the start of the pull and whip it up with sugar before putting it back on the rest of the espresso. The result is an inch of sweet, creamy crema mouse on top of a great espresso. That, along with a pastry from the counter opposite the bar and you are totally set for sugar for the day.

The star at the bar, however, is the "Shakerato" which is made in what has to be the most hilarious machine I've seen in a while:



Iced coffee and milk go in a cocktail shaker that sits in the stainless steel receiver. Then the machine shakes the crap out of it for two or three minutes. And it's orange. What can I say? I want one!







Shakerato II - revenge of the tumbler

Thursday, 25 May 2017

Controller part 6 - autofill

All the functionality shown in the state diagram will be built into the programming of the microcontroller (an Arduino at least for now as it is so convenient). The extreme democratization of microcontrollers just makes having discrete industrial controllers a non-starter. I could purchase Arduinos and just hand solder a rat's nest of components for less than the cost of a single Gicar, never mind the $300+ PID and $100 pressurestat. Once the electronic design is finished, a custom PCB will reduce the cost even further (if one neglects the not insignificant work that will go into it :).

What is required for the autofill is essentially a comparator - a circuit that checks to see if a voltage level is above or below a certain threshold. The essence of the circuit is a switch that is grounded by the water when it touches the probe.



The switch in the diagram is analogous to the probe touching the water or not (and assumes that the boiler is physically connected to the same ground as the microcontroller). When the switch is open, the analog pin on the Arduino "sees" the full 5 volts. When the switch is closed, the value "seen" by the pin drops to (close to) zero. In reality,  as a result of the resistance of the water, the boiler, the probe etc., this value is not zero; thus the need for a comparator. But this is easy to implement on the microcontroller:

autoFillProbeValue = analogRead(autoFillProbePin);
if (autoFillProbeValue < 500)  {
      digitalWrite(autofillSolenoidPin, HIGH);
    }
  else {
    digitalWrite(autofillSolenoidPin, LOW);             
   }

The Arduino is an 8-bit device and the logic level is 5v, so values between 0 and 5v are mapped by the analog to digital convertor to values between 0 and 1023 (2 to the 8th power values). So anything lower than 500 will open the solenoid. By putting in a timer which counts while the pin is high, it is possible to trigger an alarm when the tap has been on for too long. When that alarm is triggered, the state machine switches off the solenoid and the heater and waits for a reset signal before it will do anything else.

As the probe is sitting in water in close proximity to a heating element that is powered by a 15amp 120v circuit, I also added a diode rated for the voltage in the line to the probe. I will have to consult a higher power to see if there are any other safety precautions that should be taken.