Nessuna descrizione

Thomas Hondema b61ae89ecb Add bootloader flash limit 3 giorni fa
.vscode 80eaaac551 first commit 1 settimana fa
lib fa6a290579 Cleanup hybrid code 1 settimana fa
src 80eaaac551 first commit 1 settimana fa
tools 80eaaac551 first commit 1 settimana fa
.gitignore 0b57503051 Create .gitignore 1 settimana fa
README.md b61ae89ecb Add bootloader flash limit 3 giorni fa
platformio.ini b61ae89ecb Add bootloader flash limit 3 giorni fa

README.md

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.

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.

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.