Skip to content

Commit

Permalink
Add custom PCB information (#46)
Browse files Browse the repository at this point in the history
* Add EP2220 config template

* Add custom PCB information to documentation
  • Loading branch information
TillFleisch authored Mar 31, 2024
1 parent d9bb61a commit bc7bba9
Show file tree
Hide file tree
Showing 7 changed files with 139 additions and 3 deletions.
21 changes: 18 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,14 @@ Currently supported Coffee Machine models include:
|Series 2200| `EP2220`, `EP2235` |
|Series 3200| `EP3243`, `EP3246` |

My modified `EP2220`:
![Modified Coffee Machine](images/machine_inside.jpg)
More information about the PCB used in this image is available [here](#custom-pcb).

This component provides a `Power Switch`, a `Status sensor` and various `Buttons` which simulate user input as well as a `Number` component to customize beverage settings such as size and strength.
The `Power Switch` can be used to turn on the coffee machine with and without a cleaning cycle during startup.

![Provided entities in HomeAssistant](ha_entities.png)
![Provided entities in HomeAssistant](images/ha_entities.png)

You might break/brick your coffee machine by modifying it in any way, shape or form. If you want to use this component, do so at your own risk.

Expand Down Expand Up @@ -104,8 +108,8 @@ The RX/TX lines are piped through the ESP such that messages can be read, interc
When injecting a 'turn coffee machine on' command, the coffee machine does turn on, but the display unit does not. To circumvent this behavior we can re-boot the display unit by temporarily removing it's power. Thus the display will power on and operate normally. To perform this operation a transistor or MOSFET can be used.
The following wiring guideline can be used to add a Wemos D1 Mini to the coffee machine. **The unlabeled wires should be connected without changes.**
![Wiring guide](wiring.png)
The following wiring guideline can be used to add a Wemos D1 Mini to the coffee machine. **The unlabeled wires should be connected without changes.** More schematics are available [here](#custom-pcb).
![Wiring guide](images/wiring.png)
The ribbon cable wires have the following functionalities.
Expand All @@ -124,6 +128,17 @@ The ribbon cable wires have the following functionalities.
The Wemos D1 Mini has a built in Voltage regulator, thus connecting it to the 5V provided by the mainboard is no problem. If you use a different ESP Module/Board please make sure it is 5V tolerant or use a Voltage regulator. Otherwise you might release magic smoke.
# Custom PCB
This project has convinced me to design my first PCB (printed circuit board). This rather simple ESP8266-12F-based design was inspired by the Wemos D1 Mini, which I was using previously.
When using this PCB the ribbon cable connecting the mainboard to the display must not be cut in half and no soldering is required.
![PCB Front side](images/pcb.jpg)
The Schematics, PCB Layout and BOM are available [here on oshwlab.com](https://oshwlab.com/tillf/philips-smart-coffee-pcb) and an accompanying 3D-printable case for the small PCB is available [here on printables.com](https://www.printables.com/model/826691-smart-coffee-pcb-case). The SMD components were chosen such that they can still be hand-soldered without a hot-air station or reflow oven, given a little experience. Since this is my first design there may be mistakes and things that could be optimized. Everything is provided as is, without warranty or liability of any kind.
There are also other PCB designs like [this one](https://oshwlab.com/tradstaat/coffeepcb) which relies on using a Wemos D1 Mini and does not require soldering SMD components.
# Communication protocol
More information on the communication protocol used by this component can be found [here](protocol.md).
Expand Down
Binary file removed ha_entities.png
Binary file not shown.
Binary file added images/ha_entities.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/machine_inside.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/pcb.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes
121 changes: 121 additions & 0 deletions templates/Philips_EP2220.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
substitutions:
name: "philips-coffee-machine"
friendly_name: "Coffee Machine"

esphome:
name: "${name}"
friendly_name: "${friendly_name}"
name_add_mac_suffix: true

project:
name: TillFleisch.ESPHome-Philips-Smart-Coffee
version: "1.0"

esp8266:
board: esp12e

dashboard_import:
package_import_url: github://TillFleisch/ESPHome-Philips-Smart-Coffee/templates/Philips_EP2220.yaml@main

logger:
baud_rate: 0

api:

ota:

wifi:
ap:

captive_portal:

external_components:
- source: github://TillFleisch/ESPHome-Philips-Smart-Coffee@main

uart:
# UART connected to the mainboard
- tx_pin: GPIO1
rx_pin: GPIO3
baud_rate: 115200
id: uart_mainboard

# UART connected to the display
- tx_pin: GPIO15
rx_pin: GPIO13
baud_rate: 115200
id: uart_display

philips_coffee_machine:
display_uart: uart_display
mainboard_uart: uart_mainboard
power_pin: GPIO12
id: coffee_machine
language: en-US

text_sensor:
- platform: philips_coffee_machine
controller_id: coffee_machine
id: status
name: "Status"

switch:
- platform: philips_coffee_machine
controller_id: coffee_machine
name: "Power"
icon: mdi:coffee-maker

button:
- platform: philips_coffee_machine
controller_id: coffee_machine
action: SELECT_COFFEE
name: "Select Coffee"
icon: mdi:coffee

- platform: philips_coffee_machine
controller_id: coffee_machine
action: SELECT_ESPRESSO
name: "Select Espresso"
icon: mdi:coffee

- platform: philips_coffee_machine
controller_id: coffee_machine
action: SELECT_HOT_WATER
name: "Select Hot Water"
icon: mdi:tea

- platform: philips_coffee_machine
controller_id: coffee_machine
action: SELECT_STEAM
name: "Select Steam"
icon: mdi:heat-wave

- platform: philips_coffee_machine
controller_id: coffee_machine
action: MAKE_COFFEE
name: "Make Coffee"
icon: mdi:coffee

- platform: philips_coffee_machine
controller_id: coffee_machine
action: MAKE_ESPRESSO
name: "Make Espresso"
icon: mdi:coffee

- platform: philips_coffee_machine
controller_id: coffee_machine
action: PLAY_PAUSE
name: "Select play/pause"
icon: mdi:play-pause

number:
- platform: philips_coffee_machine
type: bean
controller_id: coffee_machine
status_sensor_id: status
name: "Beverage Strength"

- platform: philips_coffee_machine
type: size
controller_id: coffee_machine
status_sensor_id: status
name: "Beverage Size"

0 comments on commit bc7bba9

Please sign in to comment.