-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Control Coffee Machine only with Bluetooth in Raspberry Pi #6
Comments
The code in this repo only uses the BT connection. The JURA BT dongle then translates the BT commands to serial commands for interacting with the coffee maker. There is no way around this. By now I also did not find a way to disable input send to the coffee maker. There is the "Debug mode on" when you send Barista mode would be an option, but sadly I also currently struggling to understand how it works in a model independent way. Feel free to let me know when you find something out. Also we can include a link to your repo in the readme in case someone else has the same use case :) |
Thank you for the information, I have not really tried the TX characteristic, so I will take a better look and try a few things. |
Once in debug mode, there are no button presses allowed any more. Once a button gets pressed, the coffee maker sends the button ID as serial output. |
Hello again, I have been trying to send a command to the RX characteristic and then read the response in the TX characteristic but I do not think I am doing it well since not even TY: is returning the expected result. Does the RX command also have to be encoded as it would have in UART? Or should I just do the normal encoding used in bluetooth? I tried to send f460bdcda610353c which is "TY:" (54 59 3a 5c 72 5c 6e) encoded with my key 6e. Could you show me how you sent the FN:89 as an example over bluetooth? Thank you in advance |
You mean, you are writing to I will quickly try to send |
That makes sense, thank you. I will add the obfuscation process and see if I can get it to work. |
Jup, it's just following the obfuscated process. |
I was able to convert your obfuscation and de obfuscation to python and it works all well but I do not seem to be able to send it with bluetooth to TX.
Which I should send encoded with the bluetooth key seperatly with a 8ms delay? |
I will send you an example next week once I'm back working on the coffee maker again. You get disconnected since you probably are not sending a heat beat on a regular basis: https://github.com/Jutta-Proto/protocol-bt-cpp#heartbeat |
Alright thank you! I will create the repo today so I can also show you better where things go wrong, I have the heartbeat running well, and I have since been able to fix the disconnection it happened because right after I sent the TX command I tried to read from machine status. However, when I read from RX so far I have not gotten any reply but I think it might be due to the time I take to read. |
Also my repo https://github.com/franfrancisco9/Jura-Python-BT. |
Thanks for sharing your repo. I can send data to the coffee maker via the This is the handshake done between coffee maker and dongle once connected. I'm currently looking into snooping the traffic between coffee maker and dongle but for this I had to order a new Raspberry Pi power supply. Reading on the other hand works (if I do not read to fast via the |
Thank you for all the feedback. |
Also, just to let you know in the |
Have you tried to enter |
Found a far better way! |
Wow! That's amazing! That way the user just authenticates you unlock the machine the user makes the coffee, you can detect what coffee was made and then charge the user and relock the machine! I will certainly use that 👍 |
Yes exactly! The product then can be detected via a statistics change: #5 |
Works like a charm! I am yet to connect with the rfid reader, but I can lock the machine, order a coffee, see the statistics change and unlock easily. You can even detect with the alerts if the screen is locked or not. |
Yes, I also noticed the part with the alerts. This is really useful. |
After some tests I found that the characteristic of product progress is much more efficient than the statistics. if data[1] not in [b"e1", b"ac"]:
product_made = in_machine_products[int(as_hex[2])]
print("Product made was: ", product_made)
started =1
elif started == 1 and data[1] in [b"e1", b"ac"]:
print("Product ended") The |
I am trying to implement a similar system to the one you have in another repository where we have a Raspbeery Pi and a RFID payment system. My question is if there is a way to not use UART and only use Bluetooth. Could the Barista mode help? I am yet to fully understand that mode and how to interact with it. I am able to brew coffee and detect when someone orders a new one, but I would need a way to make the coffee machine wait for the confirmation of payment from the Raspbeery Pi.
I thought about just cancelling the coffe if possible and then order the coffee from the Pi but that does not show anything on the screen. Thank you in advance!
The text was updated successfully, but these errors were encountered: