www.diyPresso.com world's first DIY espresso machine open source software
This repository contains the code for the diyPresso One (arduino) control board with an 4x20 LCD display and rotary encoder.
(Tested) releases of the firmware can be found here
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.
- Commissioning (initial filling of boiler)
- Settings (with EEPROM retention)
- Basic brewing
- Wifi setup
- MQTT communication
- 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 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.
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...
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.
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.
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.
Createplatformio.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