The focus of Xenia, which was developed between 2012 and 2016, was first and foremost ease of use and stable function. To achieve this, it got by with just over 4000 lines of programme code and was primarily made for espresso/cappuccino lovers who wanted to achieve a consistently good result without a lot of gimmicks.
With the dual boiler of the Xenia (with and without power regulator) and the 303 machine, a different focus was set. Basically, these machines are delivered with a setting that the owner can use them right out of the box. However, the hardware and software basis is completely different and brings with it a lot of optionally usable possibilities.
Hardware
The machines are controlled by a 160 x 100 mm pcb-board. There are 2 processors (or controllers) on the board:
Processor 1: ATSAMV70 N19B-AAB, 32 bit, 300 MHz system clock, 512 kb memory
Processor 2: ESP32 with WiFi, 32 bit, 240 MHz system clock, 2 cores
The ATSAMV70 is responsible for all core functions of the machines, while the ESP32 is used for communication with the user. A web server runs on it so that access to the machine's functions is possible via Wi-Fi.
Both processors are in direct data exchange via a serial connection.
Software
The firmware of the ATSAMV70 is written in C++. As of January 2023, there are more than 22,000 lines of program code. To allows us to adapt the software also to other machines easily, there are just over 170 parameters present. These include, for example, the definition of which ports are used to connect the heatings. User inputs via the web interface are also stored in these parameters - such as the time in which the machine switches to ECO mode or switches off (when idle).
On the ESP32 we are using 3 different languages. The basic functions (like the data exchange with the ATSAMV70 or the installation of a new firmware by WiFi) are realized in C++ in around 13 300 lines of code. In addition there are 2600 lines of HTML code and 2900 lines of JavaScript for the user interface.
Web Interface
The web interface gives the user access to the machine's functions in a well structured and comprehensible way. Since only a browser is required, access does not depend on an app or an operating system (or its version).
In addition to the actual functions (such as setting a target temperature) the user can program extractions very easy via a graphical interface. And he can also perform updates via WiFi or set timers to start the machine.
In addition, diagrams and information on operating times and number extractions are available - and much more.