; meCoffee firmware (PlatformIO, Arduino core + plain C++ logic library) ; See README.md and docs/AGENT_HANDOFF.md. [platformio] default_envs = 328p8m [common] build_flags = -DCOMPAT_V10=1 -Wall -Wextra extra_scripts = pre:tools/apply_cplusplus_flags.py [env:328p8m] platform = atmelavr@5.3.0 board = 328p8m framework = arduino ; The registry toolchain (x86_64 avr-gcc 7.3) does not run on Apple Silicon without ; Rosetta. tools/toolchain-native wraps the Homebrew avr-gcc 9.5 (arm64). ; On Intel/Rosetta hosts use: toolchain-atmelavr@1.70300.191015 platform_packages = framework-arduino-avr@5.4.0 toolchain-atmelavr@symlink://tools/toolchain-native build_flags = ${common.build_flags} extra_scripts = ${common.extra_scripts} lib_deps = meCoffee_controller_logic meCoffee_hardware_access lib_ignore = meCoffee_simulated_hardware lib_ldf_mode = chain upload_protocol = arduino upload_speed = 57600 [env:uno] extends = env:328p8m board = uno board_build.f_cpu = 16000000L build_flags = ${common.build_flags} -DMECOFFEE_ARDUINO_16MHZ=1 upload_speed = 115200 [env:pro_mini] extends = env:uno board = pro16MHzatmega328 upload_speed = 57600 [env:nano] extends = env:uno board = nanoatmega328new upload_speed = 115200 ; Bench-only BLE upload experiment, pinned to the verified stock Uno Optiboot 4.4. ; See docs/UNO_BLE_FLASH_TEST.md. USB installer checks the bootloader before writing. [env:uno_ble_test] extends = env:uno build_flags = ${env:uno.build_flags} -DMECOFFEE_UNO_BLE_TEST=1 upload_protocol = custom upload_command = "$PYTHONEXE" "$PROJECT_DIR/tools/ble_test/upload_usb.py" --port "$UPLOAD_PORT" "$SOURCE" ; Same firmware with start-up padded to the original's start-up time (differential runs only). [env:328p8m_aligned] extends = env:328p8m build_flags = ${common.build_flags} -DMECOFFEE_CONSTRUCTION_ALIGNMENT_MICROSECONDS=5900 -DMECOFFEE_SETUP_ALIGNMENT_MICROSECONDS=1100 [env:float_check] extends = env:328p8m build_src_filter = -<*> +<../tools/avr_checks/float_check.cpp> [env:native] platform = native build_flags = ${common.build_flags} -DNATIVE_TEST=1 extra_scripts = ${common.extra_scripts} lib_ignore = meCoffee_hardware_access lib_deps = meCoffee_controller_logic meCoffee_simulated_hardware test_framework = unity [env:native_arduino16m] extends = env:native build_flags = ${env:native.build_flags} -DMECOFFEE_ARDUINO_16MHZ=1