So I’ve soldered up the first CREMA Revision A board and spliced it into Silvia’s internals. It works exceedingly well except for a few minor hiccoughs that I tracked down and worked out. To start, the CREMA board was spontaneously aborting during brew cycles, and it took the better part of 24 hours to hypothesize, test, and revise. It turns out it was caused by two problems: one was hardware related (in Silvia’s native wiring), and the other was software (duhhhhhhhh ….).
As it stands, Silvia is wired to power the solenoid valve when the brew switch is thrown – both line and neutral wires are switched. The only place to splice in the brew switch line voltage is at the point where the solenoid LINE voltage (orange wire if you’ve cracked your Silvia open) meets the switch. Unfortunately these solenoid valves act like MASSIVE inductors so every time the brew switch was thrown and then powered off, a residual current would discharge through the line voltage sensor – in short it didn’t turn off promptly. However I fixed this by bypassing the switch and tying the neutral lines directly together (keeping the LINE voltage switched) to allow for a more favourable current discharge path. Hardware issue resolved.
The software issue was a silly one – I forgot that I had included some ‘press ok to go to next step’ sort of steps in the code for testing purposes. The display keypad kept jiggling with the vibrations from the pump and tripping the OK state >_<. Sigh. Commenting out the offensive lines of code resolved the issue. I need to finish writing the code now for the alarm and RTC although that's trivial. I also need to tune the PID parameters to get it to stabilize (rather than over or undershooting the target). The menu system and navigation is also fairly well complete. I'm pretty content with how I've coded the menu. To store a multidimensional menu system (that is, one with sub menus and sub menus etc.) with an excess of 80 menu elements (each with screen contents and associated button functions) in SRAM is not possible when you have a total of 2500 bytes available. So everything got pushed into program memory instead. Effectively the number of elements in the menu has no footprint in SRAM - ^_^. On how it tastes ... I've pulled a few shots using the CREMA board, and so far, I've noticed two things: the flavours are far more robust than I would have ever imagined, and the temperature is far more consistent than I would have ever imagined. It's amazing the difference a PID makes. Right now I'm drinking Femenino Columbia Cosurca, a single origin from Dark City Coffee here in Toronto – and while it was super tasty before, it’s beyond this world now.
More to come as I work out the software!!