Good news
The code has been decrypted, now you can control the coffee machine. I have published the full ESP Philips 5400 Coffee Machine project here
Quick access to posts
-
Code for the operation of water drainage from the spout of the coffee machine
-
Video of how the coffee machine turns on and makes me coffee
- The coffee machine turns on, goes through the stages of warming up and washing
- The water drain is not removed until you are prompted to choose a drink
- The coffee machine has turned on completely and offers to choose a drink
- The water drain is hidden under the spout
- After 10 seconds, the preparation of 150 ml coffee will start
I have never been engaged in reverse engineering and I am not a programmer and radio engineer. I invite you to take part in the reverse engineering of the Philips Series 5400 coffee machine. At the moment, I have done what I could, so far it is not possible to decrypt the data for controlling the coffee machine.
For reference. There are ready-made projects for Philips Series 2000 coffee machines
The service diagram in russian for the motherboard 1.9.30.330.00._v10 can be downloaded here. This is what I managed to find. You can translate into your language through an online translator
My created theme on the ESPHome-Philips-Smart-Coffee project
So, what do I know and what have I done?
On this board, to simplify the control circuits of the triacs and the circuit of the mains voltage transition detector through zero, the output of the power supply +5 volts of the low-voltage part is connected to one of the mains wires (contact JP4, terminal “N”), that is, the low-voltage part does not have a galvanic isolation from the mains. Be careful, do not connect the coffee machine directly to the computer via a USB cable, do not connect an oscilloscope powered by 220 volts, this will disable the coffee machine and even the computer. You can connect an oscilloscope powered by a battery. I used the FNIRSI 1013D oscilloscope
Philips Series 1000/2000/3000/5000 coffee machines are identical. They all have almost the same motherboard, but different controls.
Using an oscilloscope , I determined the data rate
According to the calculation, the speed is 116279 bits / s, which is very close to 115200
I used the calculation formula F = 1/T
- 8,6/1.000.000 = 0,0000086
- 1/0,0000086=116 279,0697674419 = 116279 bits / s
For debugging in ESPHome enabled UART
uart:
rx_pin: GPIO3
baud_rate: 115200
stop_bits: 1
data_bits: 8
parity: none
debug:
dummy_receiver: true
I see the following data in the log and don’t understand how to decrypt it
Log entries
19:14:47 [D] [uart_debug:114]
<<< 12:FA:EE:41:0A:55:AA:AA:AA:FF:13:01:13:5B:B4:84:7C:55:AA:AA:AA:FF:14:01:14:7D:37:AF:E7:55:AA:AA:AA:FF:15:01:15:DC:6D:6A:91:55:AA:AA:AA:FF:16:01:16:3F:82:25:0A:55:AA:AA:AA:FF:16:01:16:3F:82:25:0A:55:AA:AA:AA:FF:17:01:17:9E:D8:E0:7C:55:AA:AA:AA:FF:18:01:18:32:82:03:E7:55:AA:AA:AA:FF:18:01:18:32:82:03:E7:55:AA:AA:AA:FF:19:01:19:93:D8:C6:91:55:AA:AA:AA:FF:19:01:19:93:D8:C6:91:55:AA:AA:AA:FF:1A:01:1A:70:37:89:0A:55:AA:AA:AA:FF:1B:01:1B:D1:6D:4C:7C:55
19:14:47 [D] [uart_debug:114]
<<< AA:AA:AA:FF:1C:01:1C:F7:EE:67:E7:55:AA:AA:AA:FF:1D:01:1D:56:B4:A2:91:55:AA:AA:AA:FF:1E:01:1E:B5:5B:ED:0A:55:AA:AA:AA:FF:1F:01:1F:14:01:28:7C:55:AA:AA:AA:FF:20:01:20:84:8E:79:E5:55:AA:AA:AA:FF:21:01:21:25:D4:BC:93:55:AA:AA:AA:FF:22:01:22:C6:3B:F3:08:55:AA:AA:AA:FF:23:01:23:67:61:36:7E:55:AA:AA:AA:FF:24:01:24:41:E2:1D:E5:55:AA:AA:AA:FF:25:01:25:E0:B8:D8:93:55:AA:AA:AA:FF:26:01:26:03:57:97:08:55:AA:AA:AA:FF:27:01:27:A2:0D:52:7E:55:AA:AA:AA:FF:28:01
19:14:47 [D] [uart_debug:114]
<<< 28:0E:57:B1:E5:55:AA:AA:AA:FF:29:01:29:AF:0D:74:93:55:AA:AA:AA:FF:2A:01:2A:4C:E2:3B:08:55:AA:AA:AA:FF:2B:01:2B:ED:B8:FE:7E:55:AA:AA:AA:FF:2C:01:2C:CB:3B:D5:E5:55:AA:AA:AA:FF:2D:01:2D:6A:61:10:93:55:AA:AA:AA:FF:2E:01:2E:89:8E:5F:08:55:AA:AA:AA:FF:2F:01:2F:28:D4:9A:7E:55:AA:AA:AA:FF:30:01:30:90:3D:E8:E4:55:AA:AA:AA:FF:31:01:31:31:67:2D:92:55:AA:AA:AA:FF:32:01:32:D2:88:62:09:55:AA:AA:AA:FF:33:01:33:73:D2:A7:7F:55:AA:AA:AA:FF:34:01:34:55:51:8C:E4:55
19:14:48 [D] [uart_debug:114]
<<< AA:AA:AA:FF:35:01:35:F4:0B:49:92:55:AA:AA:AA:FF:36:01:36:17:E4:06:09:55:AA:AA:AA:FF:37:01:37:B6:BE:C3:7F:55:AA:AA:AA:FF:38:01:38:1A:E4:20:E4:55:AA:AA:AA:FF:39:01:39:BB:BE:E5:92:55:AA:AA:AA:FF:3A:01:3A:58:51:AA:09:55:AA:AA:AA:FF:3B:01:3B:F9:0B:6F:7F:55:AA:AA:AA:FF:3C:01:3C:DF:88:44:E4:55:AA:AA:AA:FF:3D:01:3D:7E:D2:81:92:55:AA:AA:AA:FF:3E:01:3E:9D:3D:CE:09:55:AA:AA:AA:FF:3F:01:3F:3C:67:0B:7F:55:AA:AA:AA:FF:40:01:40:FC:24:1C:E0:55:AA:AA:AA:FF:41:01
19:14:48 [D] [uart_debug:114]
<<< 41:5D:7E:D9:96:55:AA:AA:AA:FF:42:01:42:BE:91:96:0D:55:AA:AA:AA:FF:43:01:43:1F:CB:53:7B:55:AA:AA:AA:FF:44:01:44:39:48:78:E0:55:AA:AA:AA:FF:45:01:45:98:12:BD:96:55:AA:AA:AA:FF:46:01:46:7B:FD:F2:0D:55:AA:AA:AA:FF:47:01:47:DA:A7:37:7B:55:AA:AA:AA:FF:48:01:48:76:FD:D4:E0:55:AA:AA:AA:FF:49:01:49:D7:A7:11:96:55:AA:AA:AA:FF:4A:01:4A:34:48:5E:0D:55:AA:AA:AA:FF:4B:01:4B:95:12:9B:7B:55:AA:AA:AA:FF:4C:01:4C:B3:91:B0:E0:55:AA:AA:AA:FF:4D:01:4D:12:CB:75:96:55
19:14:48 [D] [uart_debug:114]
<<< AA:AA:AA:FF:4E:01:4E:F1:24:3A:0D:55:AA:AA:AA:FF:4F:01:4F:50:7E:FF:7B:55:AA:AA:AA:FF:50:01:50:E8:97:8D:E1:55:AA:AA:AA:FF:51:01:51:49:CD:48:97:55:AA:AA:AA:FF:52:01:52:AA:22:07:0C:55:AA:AA:AA:FF:53:01:53:0B:78:C2:7A:55:AA:AA:AA:FF:54:01:54:2D:FB:E9:E1:55:AA:AA:AA:FF:55:01:55:8C:A1:2C:97:55:AA:AA:AA:FF:56:01:56:6F:4E:63:0C:55:AA:AA:AA:FF:57:01:57:CE:14:A6:7A:55:AA:AA:AA:FF:58:01:58:62:4E:45:E1:55:AA:AA:AA:FF:59:01:59:C3:14:80:97:55:AA:AA:AA:FF:5A:01
19:14:48 [D] [uart_debug:114]
<<< 5A:20:FB:CF:0C:55:AA:AA:AA:FF:5B:01:5B:81:A1:0A:7A:55:AA:AA:AA:FF:5C:01:5C:A7:22:21:E1:55:AA:AA:AA:FF:5D:01:5D:06:78:E4:97:55:AA:AA:AA:FF:5E:01:5E:E5:97:AB:0C:55:AA:AA:AA:FF:5F:01:5F:44:CD:6E:7A:55:AA:AA:AA:FF:60:01:60:D4:42:3F:E3:55:AA:AA:AA:FF:61:01:61:75:18:FA:95:55:AA:AA:AA:FF:62:01:62:96:F7:B5:0E:55:AA:AA:AA:FF:63:01:63:37:AD:70:78:55:AA:AA:AA:FF:64:01:64:11:2E:5B:E3:55:AA:AA:AA:FF:65:01:65:B0:74:9E:95:55:AA:AA:AA:FF:66:01:66:53:9B:D1:0E:55
19:14:49 [D] [uart_debug:114]
<<< AA:AA:AA:FF:67:01:67:F2:C1:14:78:55:AA:AA:AA:FF:68:01:68:5E:9B:F7:E3:55:AA:AA:AA:FF:69:01:69:FF:C1:32:95:55:AA:AA:AA:FF:6A:01:6A:1C:2E:7D:0E:55:AA:AA:AA:FF:6B:01:6B:BD:74:B8:78:55:AA:AA:AA:FF:6C:01:6C:9B:F7:93:E3:55:AA:AA:AA:FF:6D:01:6D:3A:AD:56:95:55:AA:AA:AA:FF:6E:01:6E:D9:42:19:0E:55:AA:AA:AA:FF:6F:01:6F:78:18:DC:78:55:AA:AA:AA:FF:70:01:70:C0:F1:AE:E2:55:AA:AA:AA:FF:71:01:71:61:AB:6B:94:55:AA:AA:AA:FF:72:01:72:82:44:24:0F:55:AA:AA:AA:FF:73:01
19:14:49 [D] [uart_debug:114]
<<< 73:23:1E:E1:79:55:AA:AA:AA:FF:74:01:74:05:9D:CA:E2:55:AA:AA:AA:FF:75:01:75:A4:C7:0F:94:55:AA:AA:AA:FF:76:01:76:47:28:40:0F:55:AA:AA:AA:FF:77:01:77:E6:72:85:79:55:AA:AA:AA:FF:78:01:78:4A:28:66:E2:55:AA:AA:AA:FF:79:01:79:EB:72:A3:94:55:AA:AA:AA:FF:7A:01:7A:08:9D:EC:0F:55:AA:AA:AA:FF:7B:01:7B:A9:C7:29:79:55:AA:AA:AA:FF:7C:01:7C:8F:44:02:E2:55:AA:AA:AA:FF:7D:01:7D:2E:1E:C7:94:55:AA:AA:AA:FF:7E:01:7E:CD:F1:88:0F:55:AA:AA:AA:FF:7F:01:7F:6C:AB:4D:79:55
19:14:49 [D] [uart_debug:114]
<<< AA:AA:AA:FF:80:01:80:0C:70:D7:EA:55:AA:AA:AA:FF:81:01:81:AD:2A:12:9C:55:AA:AA:AA:FF:82:01:82:4E:C5:5D:07:55:AA:AA:AA:FF:83:01:83:EF:9F:98:71:55:AA:AA:AA:FF:84:01:84:C9:1C:B3:EA:55:AA:AA:AA:FF:85:01:85:68:46:76:9C:55:AA:AA:AA:FF:86:01:86:8B:A9:39:07:55:AA:AA:AA:FF:87:01:87:2A:F3:FC:71:55:AA:AA:AA:FF:88:01:88:86:A9:1F:EA:55:AA:AA:AA:FF:89:01:89:27:F3:DA:9C:55:AA:AA:AA:FF:8A:01:8A:C4:1C:95:07:55:AA:AA:AA:FF:8B:01:8B:65:46:50:71:55:AA:AA:AA:FF:8C:01
19:14:49 [D] [uart_debug:114]
There is an example of how this is done, but it is not suitable for this