Open banoz opened 1 week ago
Hey, currently, it is possible to control all peripherals of the machine. Besides, nothing else has been implemented so far. The main problem I had was that I did not figure out how to control the heater via PWM, and I did not like manually toggling the connected pin because it did not give me enough fine-grained control over the temperature. However, I plan to continue the projects since I still have the machine that serves no purpose right now, since I had to erase the original firmware because of read-out protection.
I know little about Rust but it seems like there's a HAL that implements PWM. Do you plan to control the brew pressure/flow?
The general availability of PWM is not the problem. The pump is already controllable by using PWM. The problem is that, as far as I understand the wiring, the heater is not connected to a dedicated PWM pin.
The general goal of the project is to first get the same features running as the original firmware. The primary reason I started this project was that I did not like the temperature control.
PB6 can be used as a PWM output with TIM16, no?
The timer is also used by the pump: https://github.com/nbars/bambino-fw/blob/3f649347b52836b479159ee576bcb56008332f98/src/hardware/pump.rs#L43
PWM is not the best way to control a vibe pump.
A few suggestions for design change:
Thanks for the suggestions, but for them to be helpful, I really need some more details on what you mean exactly. I have no experience hacking coffee makers or doing other nerdy stuff related to that topic. Are there some code examples?
Here's the demo code for PSM. I have a C library for the but not sure if it'll work for Rust. This control method will allow precise flow measurement, so you can calculate exact amount of heat you need to apply, i.e. model the thermal profile. You'd also need a pressure sensor in order to calculate the flow using the pump inefficiency curve (the higher the pressure the less water is being pumped per click). All this was already implemented in Gaggiuino project, but it uses more powerful MCU so you'd need to offload the profiling work elsewhere from F070.
There's an ongoing discussion on Gaggiuino discord about the Breville machines, you might pick some useful info there.
Thanks for the resources! I will look into those. I would love a three-way valve that allows me to release pressure after the coffee is done. Do you have any hints about that? I'm quite busy with other stuff right now, but I will check out the Discord when I have time.
You can probably implement it the same way as Bambino Plus has it, but you'd need to replace the elbow on the top of the grouphead with a three-way connector and add the dump valve. The connector from BB+ probably has p/n SP0024807, but I'm not 100% sure, and also not sure if it'll fit non-plus Bambino's grouphead. Also you'd need to populate the circuit to TAB6 to control that valve.
What is the state of the project?