Contributing & License
Thank you for your interest in improving FreeMDU. Open-source hardware and protocol reverse-engineering rely entirely on community collaboration. Whether you are fixing bugs, improving the Home Assistant MQTT integration, or mapping out entirely new device IDs, your contributions are highly valued.
Disclaimer & Safety Responsibility
This is an independent, open-source project and is not affiliated with, endorsed by, or sponsored by Miele & Cie. KG or its affiliates. All product names and trademarks are the property of their respective owners. References to Miele appliances are for descriptive, educational, and interoperability purposes only.
Caution: This project interacts with high-voltage appliance hardware at a deeply experimental level. Sending incorrect commands, fuzzy testing raw memory addresses, or supplying invalid parameters over the diagnostic interface can cause permanent, irreversible damage. Examples of catastrophic failure include bricking the EEPROM, over-spinning the drum, or activating water heating elements without water present.
Contributors must exercise extreme caution. You assume all risk and liability when testing experimental code on your own hardware.
Contribution Guidelines
We actively welcome Pull Requests (PRs) targeting:
- Device Support: Mapping out and reverse-engineering new software IDs, adding them as modules to the
freemduprotocol crate. - Protocol Reliability: Enhancing the robustness of serial communication, timeout handling, and retry logic.
- Feature Expansion: Adding new features to the Terminal UI or the ESP32 Home Firmware.
Setting Up Your Development Environment
FreeMDU enforces strict code quality standards to ensure cross-platform compatibility, especially given the no_std constraints of the embedded firmware.
- Install the latest stable Rust toolchain via
rustup. -
Before committing, ensure your code is properly formatted by running:
cargo fmt --all -
Run the Rust linter to catch common mistakes and enforce idiomatic code:
cargo clippy --all-features -- -D warnings -
Ensure all unit and protocol tests pass:
cargo test --all-features
Submitting a Pull Request
- Keep PRs focused. Do not mix sweeping formatting changes with protocol logic updates.
- When adding support for a new Software ID, please include a brief description of the physical hardware you tested it against (Model Number, Board Revision, Microcontroller).
- Unless you explicitly state otherwise in your PR description, any contribution intentionally submitted for inclusion in the work by you shall be dual-licensed under the terms below, without any additional terms or conditions.
Licensing
FreeMDU is free, open-source software, designed to respect your freedom. It is dual-licensed under either of the following licenses, at your option:
- Apache License, Version 2.0 (
LICENSE-APACHEor http://www.apache.org/licenses/LICENSE-2.0) - MIT License (
LICENSE-MITor http://opensource.org/licenses/MIT)