Skip to content

Siemens Dishwasher research #10

@Nurster

Description

@Nurster

Hello

I am following this repository for quite some time now with great interest. I own a Siemens-Dishwasher SN66P080EU/D4 and managed to dump the USART-Registers of the running machine. It is controlled by an STM32F301VCT6 Arm Cortex M4. An STLink-V2-Dongle is connected to the machine with a custom made RAST-cable. OpenOCD, Ghidra (gdb) and Saelae Logic are the tools being used. Right after power up the programme selection is flashing with the time being displayed in the LED-Display. The D-Bus is monitored with a logic analyzer so I can be sure the bus is quiet. This is the state of the registers after the module finished booting:

MSB first

Control register 1 (USART_CR1):

00000000000000000000000000101101
Bit 0 UE: USART enable
Bit 2 RE: Receiver enable
Bit 3 TE: Transmitter enable
Bit 5 RXNEIE: RXNE interrupt enable

Baud rate register (USART_BRR):

00000000000000000001110101001100
0x1D4C
Oversampling by 16 (OVER8 = 0)
9.6 KBps

Interrupt and status register (USART_ISR):

00000000011000100001000011010000
Bit 4 IDLE: Idle line detected
Bit 6 TC: Transmission complete
Bit 7 TXE: Transmit data register empty
Bit 12 EOBF: End of block flag
Bit 17 CMF: Character match flag (character stored in USART_CR2 ADD[7:0])
Bit 21 TEACK: Transmit enable acknowledge flag
Bit 22 REACK: Receive enable acknowledge flag

All other USART-Registers are empty (zero) apart from TDR and RDR that contain the Data received and about to be transmitted. The CR2 Bits 13:12 being 00 would mean that serial line configuration is 8N1 rather than 8N2. During and after selecting a programme and pressing start the CR2 and CR3 are zero as well.

excerpt from reference manual:

Bits 13:12 STOP[1:0]: STOP bits
These bits are used for programming the stop bits.
00: 1 stop bit
01: 0.5 stop bit
10: 2 stop bits
11: 1.5 stop bits
This bit field can only be written when the USART is disabled (UE=0).

I hope this information is useful for further developments. I much appreciate the deciphering of the D-Bus protocol frames for the WM14S750. Since I don't have any clue regarding dishwasher frames maybe someone with knowledge could help out decrypting those as well.

Image

LL   DS CC CC   MM MM MM MM MM MM MM MM MM MM MM MM MM MM MM MM MM MM MM MM   RR RR            ACK
16 | 25.20-11 | a5 0a 0d 0e 0f 15 11 a1 a0 80 83 81 84 a2 ff ff ff ff ff ff | db 7e (crc=ok) | 2a (ack ok)

a5 - identification byte
0a - 70°C intensive 2:15
0d - 45°C-65°C auto 2:40
0e - eco 50°C 3:30
0f - one hour 60°C
11 - pre wash
a1 - minus key
a0 - plus key
80 - vario speed
83 - half load 
81 - intensive zone
84 - hygiene plus
a2 - start button

Destination:

0x0 network management / broadcast
0x1 power module
0x2 user control panel
0x3 timelight projector module ?

Subsystem:

0x5 set parameters / map buttons

regards,

Till

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions