/diyPresso-One

diyPresso One - first espresso machine build kit

Primary LanguageC++GNU General Public License v3.0GPL-3.0

diyPresso Logo

www.diyPresso.com world's first DIY espresso machine open source software

diyPresso Logo

Hardware

This repository contains the code for the diyPresso One (arduino) control board with an 4x20 LCD display and rotary encoder.

diyPresso Logo diyPresso LCD diyPresso Encoder button

Software

(Tested) releases of the firmware can be found here

main branch build status: Build

Safety

You can break your hardware (and other things) with the software! Be careful. With open-source DiY hardware and software breaking things is part of life (and of the fun!), but we are working with high voltage, water, high temperature and pressurized containers, so: be careful! There are some sanity checks, watchdogs and other things in the software that provide some protection, but this is not failsafe. The authors of this software cannot provide any garantee on the correct and safe functioning of this software. You are responsible for the safe usage of this software and hardware.

Functions

  • Commissioning (initial filling of boiler)
  • Settings (with EEPROM retention)
  • Basic brewing
  • Wifi setup
  • MQTT communication

Factory Reset

  • Holding the rotary encoder button WHEN POWERING ON the machine will reset all settings to default values (including the "WiFo Modi" setting). Wifi credential (AP name and password are not stored on the main CPU, but on the WiFi chip, these settings are retained when the firmware is updated or a factory reset is executed.
  • When the software is flashed, this will also erase all EEPROM settings (preferences) and you need to re-execute the commissioning steps.
  • Enabling the "CONFIG-AP" mode will erase previously configured WiFi credentials

Wifi Configuration

  • Wifi settings can be chaged by setting the "WIFI MODE" setting to "CONFIG-AP" (Configuration Access Point), then SAVE setting and REBOOT the machine . This will create ad "diyPresso-One" Wifi access point that you can connect to with your phone or laptop.
  • Your browser should open a "hotspot" login page where you can enter your Wifi credentials. if not: point your browser to http://192.168.11.1/
  • Enter the number of your network and the [SUBMIT] button.

diyPresso Wifi config

Development

The software is written for an Arduino mkr1010 board with WiFi. The Arduino development environment is to be used to compile and upload the software to the board. Some additional libraries need to be installed. See the diyp-controler source for more information.

In addition the code should compile with PlatformIO. On linux you can perform a compilation and upload with the following command:

pio run -t upload --upload-port=/dev/ttyACM0

You may also use ArduinoCLI, but the recipe is not included yet...

Branches and tags

The main branch is used for development and release is used for tested releases. They are tagged with a semver and the releases are published here. Use topic branches for your work on new features and bugs. Use the name issue_[xx]_[description] for this.

(Code) Contributions

You can clone this repo, create topic branches for your work and make pull-requests. Make sure your branch merges cleanly with the main branch.

Issues

If you find any bugs, or have ideas for new features, please use github issues to submit these.

Also, feel free to test topic branches, reproduce bufgs and comment on issues to assist development.

ToDo

  • Create platformio.ini
  • Build with docker container
  • Setup CI in gitub
  • OTA updates
  • Refactor Wifi code (use other library?)
  • MQTT credentials setup
  • Remote wakeup (via MQTT)
  • Support for graphical color display
  • Advanced brewing recipes (more steps)
  • Brewing recipe storage and retrieval
  • Extracted volume weight sensor (and volume based steps)
  • Pressure sensor integration