It’s Alive …

Hey Everyone,

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!!


6 Replies to “It’s Alive …”

  1. Hi,

    very nice work!

    Iā€™m starting right now to think about a total self-build espresso machine. E61 (with electric valve), dual boiler with two separate PID controls, commercial rotary pump etc.
    The machine will be similar to the Rocket R58, but much more individual and ā€“ Arduino controlled.

    Do you plan to share the code and the board layout?
    I’m sure I have to change a lot for my needs, but it would make things much easier…


    1. Hey Robert! Thanks for your interest. So far, the current CREMA board already supports most of those hardware features except for the E61 electric valve control. In the next revision of the board, there will be an additional control socket for independent control of a 3-way solenoid valve that could also be used instead to control an E61 valve. With the current layout however, the 3-way would not output any sort of PWM or variable control – it would be an ‘on’ or ‘off’ level of control.

      In the next revision, I’m looking to move both boiler PWM controls to Timer1 (Leonardo Pins 9/10: OC1A and OC1B) as opposed to using both Timer1 and Timer3 (although this currently allows for different duty cycles). In doing so, I can free up a 16-bit timer for use as another PWM pump controller or grouphead controller. Additionally, I will implement an onboard DAC as there has been some interest for linear SSRs.

      As for the code / board layout, I’m willing to share it but I’ve still not decided on how to do it. I’d like to just put it out there, but I’ve been burned before so to speak, and want to make sure I’m able to protect my intellectual rights at the same time as helping out the home-brew community.

  2. Hi Josh,

    great expectations šŸ™‚

    I see (and understand) your problem with sharing the code/layout.
    To be honest, from my point of view the only way to generate money by your great work will be to sell more or less ready for use hardware included the programm/code.
    In case you share the code/layout under a license which allows private use and modification and doesn’t allow the use in commercial products you could reach what you want – at least from the legal aspect.
    In fact if a huge company takes this public code, use the logic (not even the original code) with an other (may proprietary) microcontroller plattform you are lost. You could blame them inside the espresso community (which is not that large) and try to fight against them in court (but this will be beyond your fninacial means I think).

    On the other hand, if you share your work and offer some hard to get components you will be the hero. You are generous enough to share your code and that helpful that you offer the needed hardware to the people which are not able to build the board, do the tricky soldering work etc.
    They all can play around with your original code and just a few of them will produce own usefull extensions – the rest will always fallback to your software version.
    You would be the founder of the one and only “open source espresso software”, you could make some money with selling the hardware and may doing some customizing for spezial needs. But – just my thoughts…

    However, I’ll start with building the hardware which will bring me a lot of problems before I need a piece of working software.
    May you think about the sharing problem and/or lets talk about a price for a customized (with source) version for my needs.

    1. Hey Robert – I’m not so much concerned about commercializing the CREMA board so much as I am interested in the acknowledgement of my contributions, and those of others. I’m thinking of releasing the hardware with an OSHL attached, and the software under a Creative Commons Share Alike license. It’s just a matter of me getting the appropriate licences in place before I make it all publicly available. Keep your eyes peeled – things are moving really fast with the project, and I should have something for everyone in the next few weeks!

  3. Hi Josh,

    Just wanted to say that I’m very impressed with your project so far. I’ve been slowly trying to develop my own arduino controlled silvia by modifying some of the older projects available online. Unfortunately my results haven’t proven as stable as I would have hoped and I’m currently just running a naked silvia.

    I’m very much looking forward to more updates and will definitely be considering using your designs if you do make them available in the future.

    Keep up the good work.


Leave a Reply