GithubHelp home page GithubHelp logo

siagung / espresso-controller Goto Github PK

View Code? Open in Web Editor NEW

This project forked from stellarshenson/espresso-controller

0.0 1.0 0.0 29.69 MB

Rancilio Espresso Controller

Makefile 0.26% C 3.11% nesC 96.63%

espresso-controller's Introduction

Homekit Enabled Rancillio Espresso Controller

Homekit enabled Rancilio Espresso Controller for Rancilio Silvia v5 Espresso Machine

rancilio silvia

this project was possible thanks to the freeRTOS and esp-open-sdk Also thanks to folowing other projects:

This module is specifically designed to control turning on-and-off Rancilio Silvia v5 Espresso Machine. Rancilio Silvia has only a momentary switch that while toggled, powers the machine on (when previously off) and off (when previously on). Additionally Rancilio Silvia uses an internal timer that turns the machine off after 30min

Espresso Controller monitors the internal power state of the espresso machine and controls powering the machine up and down when activated

Firmware Build

  1. Clone the project. Next, initialize and sync all submodules (recursively):
git clone --recursive https://github.com/stellarshenson/espresso-controller.git
cd espresso-controller
git submodule update --init --recursive
  1. Install esp-open-sdk, build it with make toolchain esptool libhal STANDALONE=n, then edit your PATH and add the generated toolchain bin directory. The path will be something like /path/to/esp-open-sdk/xtensa-lx106-elf/bin
  2. Install esptool.py and make it available on your PATH. If you used esp-open-sdk then this is done already. Alternatively you can use the NodeMCU flasher
  3. Checkout esp-open-rtos and set SDK_PATH environment variable pointing to it.
  4. Build espresso_switch firmware:
make -C projects/espresso_switch suite

Files generated by the make script should be:

ls firmware
0x00000_rboot.bin  0x10000_blank_0x00_1M.bin  0x10000_blank_config.bin  0x20000_espresso_switch.bin

The prefix indicates where in the flash the firmware should be burned, use it when flashing with esptool.py or the NodeMCU flasher. Additional settings for flashing of the firmware are: SPI Mode = DOUT, Baudrate = 230400, Flash size =

Principle of operation

The device is supposed to control the powering up and down the espresso machine and notify any power changes to the Homekit clients nearby. In the future the device will be able to control the auto-shutdown of the espresso machine (powersaving) and flushing (running water through the group after warm-up). Additionally the firmware will monitor the boiler temperature in the future.

Currently the device extends the following number of output interfaces:

  • Toggle interface - controls the toggle switch and works exactly like the momentary switch on the espresso machine front panel
  • Power sense interface - senses whether the machine is on or off (and provides notifications to the homekit clients)
  • Status LED - indicates the status of the device, fast blink = booting up, slow-blink = AP mode, no blink = connected to the network, SOS blink (3 short, 3 long, 3 short) = problem
  • Button - press once to manually trigger power switch (used to test device wiring). hold for 10s to reset device to factory settings

Additionally, when connected through the microUSB port to the computer, the device outputs serial diagnostics messages and extends serial commandline. Type help to get the list of available commands.

The serial inteface was configured with the 74880 baud rate

Functionality

Device boots up in 2 different modes:

  1. as new device, you need to find its wifi ssid (Espresso-Switch-xxxx) and configure its access to your network via web captive portal
  2. as connected device. you need to connect to its IP and capture its Homekit code
  3. as homekit device. it is ready for operation once added to your homekit network

Typical Circuit Layout

You would need the following parts to complete the build

  • Wemos D1 Mini - any wemos with 4Mb+ flash works (Mini or Mini Pro)
  • Optocoupler + 1k Resistor (D6) - used for powersense. The Rancilio Silvia 12V power indicator circuit it very noisy, we would use the optocoupler to provide galvanic isolation between the controller and the espresso machine
  • Relay (3.3V level or Relay 5v + NPN transistor and a couple of passive jellybeans) - this needs to switch the 12v AC momentary switch
  • 1 Status LED + 330 Resistor - this is just a status LED. Fast blink = starting up, Slow blink - AP mode, No blink - connected to network
  • HI-Link 5V power module (to power the thing up from mains) - it would be preferred to connect the controller to the mains terminals at the Rancilio power brick. I am figuiring out other options, stay tuned. Voltage for the Wemos D1 must be relatively clean.Wemos has onboard a small 3v3 linear power supply controller. Please keep in mind that Wemos D1 uses 3v3 logic levels :-)

I will publish the full BOM as soon as I finish the PCB build and installation

circuit layout power brick

Circuit and PCB

All schematics and PCB files are available in the misc/board directory. The bill of materials is up-to-date in the schematics pdf

PCB design is for one-sided PCB with a copper pour connected to the GND. PCB printout printout available as 600dpi to print and etch according to instructions. Schematics and PCB files were produced with DipTrace

circuit pcb top pcb bottom

Installation

TBD

espresso-controller's People

Contributors

stellarshenson avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.