Skip to content

Commit 14fcc6c

Browse files
Lluke18Lluke18
andauthored
Project/lucian stefan.lesu (#1408)
* Created index.md Created my index page. * Update index.md * added the kicad scheme * reduced the size of image * updated the project info! --------- Co-authored-by: Lluke18 <user@thelegion.localdomain>
1 parent 133c2c5 commit 14fcc6c

1 file changed

Lines changed: 124 additions & 78 deletions

File tree

  • website/versioned_docs/version-fils_en/project/2026/lucian_stefan.lesu
Lines changed: 124 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -1,78 +1,124 @@
1-
# Rusty Coffee
2-
An automated coffee machine in which you can schedule your coffee and customize it to your heart's desire.
3-
4-
:::info
5-
6-
**Author**: Lucian-Stefan Lesu \
7-
**GitHub Project Link**: https://github.com/UPB-PMRust-Students/fils-project-2026-Lluke18
8-
9-
:::
10-
11-
<!-- do not delete the \ after your name -->
12-
13-
## Description
14-
15-
This smart coffee machine has lots of additional features and options when it comes to brewing your favorite refreshing hot drink - coffee. It also has a pulse sensor that, if your pulse is too high, won’t let you drink any coffee!
16-
17-
## Motivation
18-
19-
Because I love coffee. Of course, I'm not addicted.
20-
21-
## Architecture
22-
23-
![Schematic](projectscheme.svg)
24-
25-
## Log
26-
27-
<!-- write your progress here every week -->
28-
29-
### Week 12 - 18 April
30-
The main Stm32 arrived from mouser. Tested it, and everything works fine.
31-
32-
### Week 12 - 18 May
33-
34-
### Week 19 - 25 May
35-
36-
## Hardware
37-
38-
-STM32U545
39-
- Water pump
40-
-pulse sensor
41-
- TFT LCD Touchscreen
42-
-heating element
43-
44-
### Schematics
45-
46-
Place your KiCAD or similar schematics here in SVG format.
47-
48-
### Bill of Materials
49-
50-
<!-- Fill out this table with all the hardware components that you might need.
51-
52-
The format is
53-
```
54-
| [Device](link://to/device) | This is used ... | [price](link://to/store) |
55-
56-
```
57-
58-
-->
59-
60-
| Device | Usage | Price |
61-
|--------|--------|-------|
62-
| [STM32U545](https://www.st.com/en/microcontrollers-microprocessors/stm32u535-545.html) | The microcontroller | [106.59 RON] (https://ro.mouser.com/ProductDetail/STMicroelectronics/NUCLEO-U545RE-Q?qs=mELouGlnn3cp3Tn45zRmFA%3D%3D) |
63-
64-
65-
## Software
66-
67-
| Library | Description | Usage |
68-
|---------|-------------|-------|
69-
| [st7789](https://github.com/almindor/st7789) | Display driver for ST7789 | Used for the display for the Pico Explorer Base |
70-
| [embedded-graphics](https://github.com/embedded-graphics/embedded-graphics) | 2D graphics library | Used for drawing to the display |
71-
72-
## Links
73-
74-
<!-- Add a few links that inspired you and that you think you will use for your project -->
75-
76-
1. [link](https://example.com)
77-
2. [link](https://example3.com)
78-
...
1+
# Rusty Coffee
2+
An automated coffee machine in which you can schedule your coffee and customize it to your heart's desire.
3+
4+
:::info
5+
6+
*Author*: Lucian-Stefan Lesu \
7+
*GitHub Project Link*: https://github.com/UPB-PMRust-Students/fils-project-2026-Lluke18
8+
9+
:::
10+
11+
<!-- do not delete the \ after your name -->
12+
13+
## Description
14+
15+
This smart coffee machine has lots of additional features and options when it comes to brewing your favorite refreshing hot drink - coffee. It also has a pulse sensor that, if your pulse is too high, won’t let you drink any coffee!
16+
17+
## Motivation
18+
19+
Because I love coffee. Of course, I'm not addicted.
20+
21+
## Architecture
22+
23+
Rusty Coffee is a smart, real-time espresso machine powered by an STM32 microcontroller running the Embassy async RTOS. By utilizing concurrent background tasks, the system seamlessly manages a custom touchscreen interface, wireless Bluetooth overrides, and a precision thermal controller simultaneously, ensuring the UI never lags or freezes.
24+
25+
The machine features a unique dual-sensor safety interlock. Before dispensing, an ultrasonic sensor physically verifies that a mug is present, while a medical-grade pulse oximeter acts as a biometric gatekeeper—calculating a real-time rolling average of the user's heart rate to ensure it is at a safe level. Once cleared, a software-defined PID algorithm dynamically pulses a high-voltage Solid State Relay, locking the espresso boiler precisely at 98.0°C for the perfect extraction.
26+
27+
Some photos of the project:
28+
29+
30+
31+
## Log
32+
33+
<!-- write your progress here every week -->
34+
35+
### 13 - 19 April
36+
The main Stm32 arrived from mouser. Tested it, and everything works fine.
37+
I disassembled the coffee machine that I bought for the heating element. At the lab, I'll desolder the wires connected to the relay module so that I can connect it to a way cooler one.
38+
39+
### 20 - 26 April
40+
The rest of the components arrived. Aside from the pulse sensor, which doesn't work, apparently, everything seems to be good. Also, I started connecting the display. The LCD looks good, I started with basic shapes from the embedded graphics library. In the future, I'll also have to implement the touch component.
41+
42+
### 27 - 3 May
43+
44+
I finally managed to connect the touch as well. I had to be careful, because apparently the max freq of the touch chip is only 5Mhz, while the screen can go up to much higher. I also implemented the ultrasonic sensor, which was easy work.
45+
46+
### 4 - 10 May
47+
Ok so I connected the thermocouple as near as I could get it to the heating element. I was lucky, as the coffee machine I bought ( the cheapest one I found, obviously...) had a little knob in which I fitted the screw. On the other end, I connected it to the max31855 module (it's basically a special ADC and amplifier for the signal)
48+
49+
### 11 - 17 May
50+
Focused more on code, and also connected the newly arrived max30102 SPO2 sensor (thx Roy for the recommendation).
51+
52+
### 18 - 24 May
53+
I managed to connect the bluetooth module as well (thx Mircea for the trade!). I also connected the lower voltage part of the SSR. Other than that, I wrote more code...
54+
55+
### 25 - 31 May
56+
Time to bring it all together. I did the final connections of the heating element, using Lexman(basically Wago knockoffs) connectors. I also connected the 230V part to the heating element. I made extra sure everything is safe by isolating it with special tape. Finally, I Screwed the coffee machine back together. Well, let's hope it works at the Pm fair.
57+
58+
59+
## Hardware
60+
61+
- STM32U545 microcontroller
62+
- max30102 sensor
63+
- TFT LCD Touchscreen
64+
- heating element + case from a pre-existing coffee machine
65+
- HC-SR04 ultrasonic sensor
66+
- HC-05 bluetooth module
67+
- type K thermocouple
68+
- max31855 thermocouple module
69+
- DA solid state relay
70+
71+
72+
### Schematics
73+
74+
![Schematic](projectscheme.svg)
75+
76+
77+
### Bill of Materials
78+
79+
<!-- Fill out this table with all the hardware components that you might need.
80+
81+
The format is
82+
83+
| [Device](link://to/device) | This is used ... | [price](link://to/store) |
84+
85+
86+
87+
-->
88+
89+
| Device | Usage | Price |
90+
|--------|--------|-------|
91+
| [STM32U545](https://www.st.com/en/microcontrollers-microprocessors/stm32u535-545.html) | The microcontroller | [106.59 RON] (https://ro.mouser.com/ProductDetail/STMicroelectronics/NUCLEO-U545RE-Q?qs=mELouGlnn3cp3Tn45zRmFA%3D%3D) |
92+
| [max30102] | pulse sensor | [32 RON] (https://www.emag.ro/modul-puls-si-spo2-max30102-multicolor-max30102-mod-black/pd/D3R798MBM/) |
93+
| [ST7789 TFT LCD Screen] | tft lcd display | [50 RON] (https://www.emag.ro/display-tft-spi-2-8-inch-240x320-lcd-cu-touchscreen-driver-st7789v-arduino-emg359/pd/DP347SYBM/)|
94+
| [HC-SR04] | ultrasonic sensor | [15 RON] (https://www.optimusdigital.ro/en/ultrasonic-sensors/2328-senzor-ultrasonic-de-distana-hc-sr04-compatibil-33-v-i-5-v.html?search_query=hc-sr04&results=15)|
95+
| [max31855] | temperature sensor | [50 RON] (https://www.emag.ro/sezor-de-temperatura-max31855-breakout-pentru-termocuplu-tip-k-interfata-spi-dc-3-5v-bmx640/pd/DX7WTR3BM/)|
96+
| [k-type thermocouple] | thermocouple | [15 RON] (https://www.optimusdigital.ro/en/temperature-sensors/5006-k-type-thermocouple-m6-1-m.html?search_query=thermocouple&results=40)|
97+
| [SSR DA] | solid state relay | [40 RON] (https://www.emag.ro/releu-solid-state-ssr-25da-ssr-25-da-ac-control-3-32v-dc-pana-la-24-380v-ac-aur331/pd/DDK72P3BM/)|
98+
| [Wires] | the Dupont wires | [5 RON] (https://www.optimusdigital.ro/en/wires-with-connectors/889-set-fire-tata-tata-10p-20-cm.html?search_query=wires&results=429)|
99+
| [HC-05] | bluetooth module | [29 RON] (https://www.optimusdigital.ro/en/wireless-bluetooth/153-hc-05-master-slave-bluetooth-module-with-adapter-33v-and-5v-compatible.html?search_query=hc+05+bluetooth+module&results=65)|
100+
101+
102+
103+
104+
## Software
105+
106+
| Library | Description | Usage |
107+
|---------|-------------|-------|
108+
| [mipidsi](https://github.com/almindor/mipidsi) | Display driver for ST7789 | Used for the custom display of the coffee machine |
109+
| [embedded-graphics](https://github.com/embedded-graphics/embedded-graphics) | 2D graphics library | Used for drawing to the display |
110+
| [max3010x](https://github.com/eldruin/max3010x-rs) | pulse sensor library | The strictly typed I2C driver configured for 18-bit Pw411 resolution and FIFO rollover to read the optical pulse data.
111+
| [pid](https://github.com/braincore/pid-rs) | PID library| The mathematical controller calculating the exact PWM duty cycle needed to hold the boiler at 90.0°C |
112+
| [heapless](https://github.com/rust-embedded/heapless) | heapless library| Providing statically allocated String and Vec buffers so the system never panics from dynamic memory allocation failures.
113+
| [pid](https://github.com/braincore/pid-rs) | PID library| The mathematical controller calculating the exact PWM duty cycle needed to hold the boiler at 90.0°C |
114+
| [defmt](https://www.google.com/search?q=%5Bhttps://github.com/knurling-rs/defmt%5D(https://github.com/knurling-rs/defmt)) | Deferred formatting logging framework | Providing ultra-fast, low-overhead logging for the pulse sensor diagnostics, touch interactions, and Bluetooth commands over your hardware debug probe. |
115+
| [embassy](https://www.google.com/search?q=%5Bhttps://github.com/embassy-rs/embassy%5D(https://github.com/embassy-rs/embassy)) | Async embedded framework for Rust | Providing the real-time task scheduler (embassy-executor), timers (embassy-time), and hardware drivers (embassy-stm32) for the I2C, SPI, and UART peripherals. |
116+
| [embassy-sync](https://www.google.com/search?q=%5Bhttps://github.com/embassy-rs/embassy/tree/main/embassy-sync%5D(https://github.com/embassy-rs/embassy/tree/main/embassy-sync)) | Async synchronization primitives | Managing the Watch variables (ALARM_TIME, LATEST_BPM, BREW_ACTIVE) to safely share state between the Bluetooth, Pulse, and Main UI tasks without locking up the CPU. |
117+
118+
## Links
119+
120+
<!-- Add a few links that inspired you and that you think you will use for your project -->
121+
122+
1. [Popular Coffee addict explains why cheap coffee machines suck](https://www.youtube.com/watch?v=P-Ga8SRhRrE&list=PLs-AM-gsRo5KqLKIKE5brhv4XxkQ8MSIq)
123+
2. [Weirdo Coffee addict reviews an open-source coffee machine](https://www.youtube.com/watch?v=UaC4IQO2WCk&t=1176s)
124+
3. [Hipster coffee addict builds his own hipster espresso machine](https://www.youtube.com/watch?v=JlgXGrb4lVE&list=PLs-AM-gsRo5KqLKIKE5brhv4XxkQ8MSIq&index=3)

0 commit comments

Comments
 (0)