Skip to content

id1998: Add initial support#27

Open
medusalix wants to merge 4 commits intomasterfrom
add-id1998
Open

id1998: Add initial support#27
medusalix wants to merge 4 commits intomasterfrom
add-id1998

Conversation

@medusalix
Copy link
Copy Markdown
Owner

@medusalix medusalix commented Jan 20, 2026

This PR adds support for the W 627 F washing machine with software ID 1998.

@Martinius I've implemented the following properties:

  • Serial number
  • Serial number index
  • Model number
  • Material number
  • Manufacturing date
  • Program type
  • Program temperature
  • Program options
  • Program spin speed

I think we could also figure out the operating time (minutes + hours) if you do another memory dump after running a complete washing program.

I haven't added the wait time in minutes (0x25f3) yet. Is that for the delay start feature?

Resolves #4

@medusalix medusalix added the new device Support for a new device. label Jan 20, 2026
@medusalix medusalix force-pushed the add-id1998 branch 2 times, most recently from 89e73e7 to 52f1f24 Compare January 21, 2026 11:30
@Martinius
Copy link
Copy Markdown

I will test it next week. Yes the wait time in minutes is the delay start feature.

@Martinius
Copy link
Copy Markdown

I finally got to use the washer today. I have attached a memory dump before and after a normal cotton wash cycle.
memory_dump2.zip

I also tested your branch and it seems to work. All the programs, temperatures and speeds are recognized correctly. But It does only show the Manufacturing Date and not the serial number, model number or material number. Thx for this great work.

@medusalix
Copy link
Copy Markdown
Owner Author

medusalix commented Feb 1, 2026

I finally got to use the washer today. I have attached a memory dump before and after a normal cotton wash cycle. memory_dump2.zip

Thanks for the memory dumps. I think I've figured out where the operating time is stored now.

I also tested your branch and it seems to work. All the programs, temperatures and speeds are recognized correctly. But It does only show the Manufacturing Date and not the serial number, model number or material number. Thx for this great work.

I think the serial and model numbers might not be set for your machine. You've mentioned in #4 that your W627F has a ELP165-T KD electronics board, which is a special part that is usually only installed by service technicians (KD = Kundendienst) if the original board has to be replaced. In this case, the model number has to be set to the correct value by the technician, as these boards are designed for a number of different machines. But since these numbers serve no technical purpose, they are often kept blank.

Regarding the wait time for the delayed start: Could you try figuring out where the hours are stored? I guess they are probably right next to the minutes, but I'm not completely sure.
I think it would also be great to find out where the remaining time (minutes + hours) and the current program phase are stored.

@Martinius
Copy link
Copy Markdown

that makes sense, since I purchased the machine used from a third party repair shop :)

@Martinius
Copy link
Copy Markdown

@medusalix is there more I can do right now? For me the next step would be to find a way to remotely start and stop the machine. Do you have any instructions or task for me?

@medusalix
Copy link
Copy Markdown
Owner Author

@Martinius The main problem is that we still need a firmware dump to figure out how the rest of the machine works. I've recently figured out how 32-bit memory reads/writes work and implemented support for that.
So I think it would be great if you could maybe try dumping the flash region now, which starts at 0xc0000 for your machine. If the device still doesn't allow reads from addresses > 0x5000 I have a few other ideas that we could also try.

@Martinius
Copy link
Copy Markdown

@medusalix I tried to dump 0xc0000 and 0xfffff with the latest 1998-branch but my machine refused to read :/

@medusalix medusalix changed the title Add support for ID 1998 id1998: Add initial support Feb 20, 2026
@medusalix
Copy link
Copy Markdown
Owner Author

medusalix commented Mar 5, 2026

@Martinius Thanks for the confirmation. It turns out that the ELP165 doesn't have any way to disable the readout protection. However, I've since obtained a firmware dump from a W643F machine using some DMA magic 😀

I've reverse-engineered the firmware and implemented all the remaining properties now. It would be great if you could test that all the functionality is working as expected. There are a few things that I'm especially interested in:

  • Fault memory (I think your machine has a few stored faults)
  • Sensor information (water level, temperature, motor speed, etc.)
  • Setting the selected program, program options and spin speed

According to the memory dump you've shared earlier, your machine supports the following washing programs:

Cottons, Coloreds, MinimumIron, Delicates, Synthetics, QuickWash, Woolens, Silks, Hygiene, Starch, SeparateRinse, Drain, DrainSpin, Curtains, Shirts, DenimJeans, Proof, Sportswear, Automatic, OutdoorJackets, Pillows, Express, DarkGarments, NewTextiles

Not all of these programs can be selected from the front panel, so it would be interesting to know if these can be accessed using the Select Program action in the TUI. It's also possible that changing the program or options using the TUI is not reflected on the front panel. If that's the case, please let me know.

Unfortunately, I haven't figured out how to start/stop washing programs yet. But I'm working on that.

EDIT: I think starting and stopping washing programs can be done by changing the operating state of the machine. There's a PROP_OPERATING_STATE that I've implemented, but I'm not sure if I've got the different values right. There are 4 states that I haven't mapped yet:

Unknown0c, Unknown0d, Unknown0e, Unknown0f

I think these might be set when entering the service/programming modes of the machine.

@Martinius
Copy link
Copy Markdown

Short update. Sorry for the late reply I have ro travel a lot right now. Good news the current states (Spin speed, Water Temperature, etc.) seem to be paresed correctly. What seems not to work is changing the program, settings using the TUI. The TUI acknowledges the changes in its Overview, but my machine Display seems to ignore it.

The error states are parsed correctly and make sense, except the "last at time". My machine had a water leak error last May.
signal-2026-03-20-10-27-20-182

Is there a way to trigger the start from the tui, or did I just not find it?

Thx for the awesome work.

@medusalix
Copy link
Copy Markdown
Owner Author

Thanks for testing the changes.

I've fixed the fault handling, so the operating hours and occurrence time information should be correct now.
The program options/temperature/speed selection was a bit more tricky, as these values have to be sent to the control electronics to be displayed. Starting/stopping the selected program should now hopefully also work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new device Support for a new device.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support for Miele W627F Washing Machine Software ID 1998

2 participants