diff --git a/.gitignore b/.gitignore index 2cf8684..e669370 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +# Generated from version.txt +src/version.h + # PlatformIO .pio/ .pioenvs/ diff --git a/platformio.ini b/platformio.ini index 11bd9a7..b22a594 100644 --- a/platformio.ini +++ b/platformio.ini @@ -1,18 +1,38 @@ -[env:m5stack-atoms3r] +[env:s3lite-server] platform = espressif32@6.7.0 board = esp32-s3-devkitc-1 framework = arduino -board_build.arduino.memory_type = qio_opi +board_build.arduino.memory_type = qio_qspi build_flags = -DESP32S3 - -DBOARD_HAS_PSRAM - -mfix-esp32-psram-cache-issue -DCORE_DEBUG_LEVEL=5 -DARDUINO_USB_CDC_ON_BOOT=1 -DARDUINO_USB_MODE=1 - -DCONFIG_BT_NIMBLE_ENABLED lib_deps = + fastled/FastLED@^3 h2zero/NimBLE-Arduino@^2 upload_port = /dev/ttyACM1 upload_speed = 115200 -upload_flags = --no-stub \ No newline at end of file +upload_flags = --no-stub +build_src_filter = + - +extra_scripts = pre:tools/pio_version_pre.py + +[env:s3lite-client] +platform = espressif32@6.7.0 +board = esp32-s3-devkitc-1 +framework = arduino +board_build.arduino.memory_type = qio_qspi +build_flags = + -DESP32S3 + -DCORE_DEBUG_LEVEL=5 + -DARDUINO_USB_CDC_ON_BOOT=1 + -DARDUINO_USB_MODE=1 + -DDEVICE_ID=1 +lib_deps = + fastled/FastLED@^3 + h2zero/NimBLE-Arduino@^2 +upload_port = /dev/ttyACM2 +upload_speed = 115200 +upload_flags = --no-stub +build_src_filter = + - +extra_scripts = pre:tools/pio_version_pre.py diff --git a/tools/pio_version_pre.py b/tools/pio_version_pre.py new file mode 100755 index 0000000..130216f --- /dev/null +++ b/tools/pio_version_pre.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python3 +"""Pre-build: generate src/version.h from version.txt so the firmware + uses the single source of truth for version numbers.""" +Import("env") +import os + +project_dir = env.subst("$PROJECT_DIR") +ver_file = os.path.join(project_dir, "version.txt") +out_file = os.path.join(project_dir, "src", "version.h") + +versions = {} +with open(ver_file) as f: + for line in f: + line = line.strip() + if "=" in line: + k, v = line.split("=", 1) + versions[k.strip()] = v.strip() + +header = f"""// Auto-generated from version.txt — DO NOT EDIT +#define FIRMWARE_VERSION_SERVER "{versions['server']}" +#define FIRMWARE_VERSION_CLIENT "{versions['client']}" +""" + +with open(out_file, "w") as f: + f.write(header) + +print(f" versions: server={versions['server']} client={versions['client']} -> src/version.h") diff --git a/version.txt b/version.txt new file mode 100644 index 0000000..71ce7a5 --- /dev/null +++ b/version.txt @@ -0,0 +1,2 @@ +server=6 +client=1