puddly / casserole

Control GE appliances
Apache License 2.0
72 stars 1 forks source link

ge dishwasher traffic samples and transmit question #7

Open jeremyplichta opened 2 years ago

jeremyplichta commented 2 years ago

I have been referring to your repo and ge-appliances-re to try to understand how to read traffic directly from the UART COM pin exposed in the RJ45 in my GE dishwasher. The ultimate goal is to be able to read and set the "personality" on the UI board as they seem to ship without being configured correctly.

I am using a logic/protocol analyzer that is directly hooked up to the comm pin. It is able to read some traffic that appears to be in the right format.

E2 40 0D BF F5 01 60 03 01 00 55 3A E3 E1
E2 BF 08 40 F5 94 B9 E3 E1
E2 BF 0B 40 F0 01 60 03 7E B0 E3 E1
E2 BF 0C 40 F2 01 60 03 00 72 9E E3 E1
E2 BF 08 40 01 3B 22 E3 E1
E2 40 0D BF F0 01 60 03 01 00 16 3B E3 E1
E2 40 0B BF F2 01 60 03 6C 06 E3 E1
E2 40 0C BF 01 00 00 05 24 40 75 E3 E1
E2 40 0D BF F5 01 60 03 C0 00 55 3A E3 E1

My protocol analyzer can also easily transmit UART as well. I am trying to find some sort of message I can transmit that will be acknowledged by the board and be sent back to me with the address I specify (1A) as the destination.

The following message is an attempt to send a subscribe request to 0x46 (the UI board as described here ) for ERD 0x300C (the personality ERD according to this. I don't seem to receive any sort of specific response after sending this:

E2 46 0B 1A F2 01 30 0C 3B 40 E3 E1

Am I thinking about this in the right way? Sending a subscribe request to a specific destination in hope of receiving a READ reply with the contents of that ERD? Any other tips on what I should do to troubleshoot? I wish I had one of those greenbean devices but in the meantime would be happy just getting the board to acknowledge one of my messages.

mulcmu commented 2 years ago

It looks to me like you are on the right track. In your sample traffic capture, there are messages between addresses 40 and BF. Your UI board might be on address 40 and not 46.

You can send a broadcast message to FF to request firmware revision levels as a start to confirm analyzer is connected. E2, FF, 08, BB, 01, 9A, 85, E3 Expected response would be a packet from 40 to BB and BF to BB, maybe more if there are other boards on the bus. See here for more info.

It would be better to use the F0 read ERD instead of F2 to subscribe to ERD. Some ERDs do not allow subscriptions to be setup. (Also, the E1 is an acknowledgment from the destination address. If the packets with the subscribed ERD data are not acknowledged then the source will cancel the subscription.)

My experience showed that the boards don't respond unless the checksum is correct. Your sample packet checksum looked correct to me, so a response would be expected if ui board address was 46, ERD 300C exists, and allows subscription.

Here is what I got for F0 read packets for 40 and 46: E2, 46, 0B, 1A, F0, 01, 30, 0C, D6, 28, E3 E2, 40, 0B, 1A, F0, 01, 30, 0C, 77, 0D, E3

jeremyplichta commented 2 years ago

Thanks for the response! I was under the incorrect impression that a F0 indicated a "READ" response of a certain ERD and that the sender included the additional E1s on the end of each message. This clears it up and hopefully unblocks me!