# meCoffee firmware PlatformIO project (ATmega328P, 8 MHz, Arduino core) that re-implements the behaviour of the original V10 image. ## Development Besides the original hardware this firmware can also be compiled for ATmega328P based 16 MHz Arduino Uno R3, Nano and Pro Mini. ## Toolchain The registry toolchain `toolchain-atmelavr@1.70300.191015` is an x86_64 build and does not run on Apple Silicon without Rosetta. `platformio.ini` therefore points `toolchain-atmelavr` at `tools/toolchain-native`, which symlinks `/opt/homebrew/bin/avr-*` (avr-gcc 9.5, avr-libc 2.1.0). On an Intel or Rosetta host replace that line with `toolchain-atmelavr@1.70300.191015`. The framework is pinned to `framework-arduino-avr@5.4.0` (Arduino core 1.8.8). ## Naming Project code uses the `meCoffee` C++ namespace, `meCoffee_` library names, and `MECOFFEE_` macros and environment variables. These names stay independent of firmware versions. The original-image simulator remains `tools/sim/v10sim.py`; its image override is `MECOFFEE_FLASH`. Identifiers are complete descriptive words. Persisted and on-the-wire names (`tmpsp`, `pd1p`, the `COMPAT_V10` build flag, oracle IDs in test names) are compatibility contracts and are kept; the internal members that hold them have descriptive names (for example `brewSetpoint`). ## Contributing This project is inspired by the open-source spirit of the original meCoffee community. Feel free to submit pull requests, report issues, or suggest new features to help make the perfect shot. --- *Disclaimer: this meCoffee firmware is an independent project and is not officially affiliated with the hardware manufacturer.*