|
|
vor 3 Tagen | |
|---|---|---|
| .vscode | vor 1 Woche | |
| lib | vor 3 Tagen | |
| src | vor 1 Woche | |
| tools | vor 1 Woche | |
| .gitignore | vor 1 Woche | |
| README.md | vor 3 Tagen | |
| platformio.ini | vor 3 Tagen |
PlatformIO project (ATmega328P, 8 MHz, Arduino core) that re-implements the behaviour of the original V10 image.
Besides the original hardware this firmware can also be compiled for ATmega328P based 16 MHz Arduino Uno R3, Nano and Pro Mini.
Application flash limits are board-specific: 31,744 bytes for the original
meCoffee controller (the verified bootloader starts at 0x7c00), 32,256 bytes
for Uno, and the board definitions' 30,720 bytes for Pro Mini and Nano.
The original-controller limit also applies to 328p8m_aligned and float_check.
An original-controller uploader must preserve and verify all of 0x7c00–0x7fff.
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).
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).
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.