From 60c6a19f1306b179033c2744b616aec934ee0fbe Mon Sep 17 00:00:00 2001 From: Erick Ahmed Date: Tue, 14 Oct 2025 21:58:48 +0200 Subject: [PATCH] FIx build script with correct implementation for flashing firmware --- firmware/esp32/Dockerfile | 12 ++++++++++-- firmware/esp32/build-esp32.sh | 21 +++++++++++++++------ 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/firmware/esp32/Dockerfile b/firmware/esp32/Dockerfile index 364ba7f..afaa728 100644 --- a/firmware/esp32/Dockerfile +++ b/firmware/esp32/Dockerfile @@ -34,7 +34,15 @@ RUN cd $IDF_PATH && ./install.sh esp32c3 COPY . /usr/src/esp/firmware/ WORKDIR /usr/src/esp/firmware/ + +# Create sdkconfig.defaults with correct flash settings +RUN echo "CONFIG_ESPTOOLPY_FLASHMODE=dio" > sdkconfig.defaults && \ + echo "CONFIG_ESPTOOLPY_FLASHFREQ=40m" >> sdkconfig.defaults && \ + echo "CONFIG_ESPTOOLPY_FLASHSIZE=4MB" >> sdkconfig.defaults + RUN rm -rf build && /bin/bash -c "source $IDF_PATH/export.sh && idf.py set-target esp32c3 && idf.py build" - -RUN mkdir -p /usr/src/build && cp build/plant-manager.bin /usr/src/build/esp32.bin +RUN mkdir -p /usr/src/build && \ + cp build/bootloader/bootloader.bin /usr/src/build/ && \ + cp build/partition_table/partition-table.bin /usr/src/build/ && \ + cp build/plant-manager.bin /usr/src/build/ diff --git a/firmware/esp32/build-esp32.sh b/firmware/esp32/build-esp32.sh index 5d047ad..86f46a0 100755 --- a/firmware/esp32/build-esp32.sh +++ b/firmware/esp32/build-esp32.sh @@ -5,14 +5,23 @@ IMAGE_NAME="esp32-builder" SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) DOCKERFILE="$SCRIPT_DIR/Dockerfile" BUILD_CTX="$SCRIPT_DIR" -DEST_BIN="$SCRIPT_DIR/build/esp32.bin" +DEST_DIR="$SCRIPT_DIR/build" docker build -t "$IMAGE_NAME" -f "$DOCKERFILE" "$BUILD_CTX" -mkdir -p "$(dirname "$DEST_BIN")" +mkdir -p "$DEST_DIR" -docker run --rm "$IMAGE_NAME" \ - cat /usr/src/esp/firmware/build/plant-manager.bin > "$DEST_BIN" +docker run --rm -v "$DEST_DIR":/output "$IMAGE_NAME" cp -r /usr/src/build/. /output/ -esptool --chip esp32c3 --port /dev/ttyUSB0 --baud 115200 write-flash 0x1000 "$DEST_BIN" \ -|| { echo "To find the correct port run: ls /dev/cu.*. Then modify build-esp32.sh"; exit 1; } +#echo "Erasing flash..." +#esptool --chip esp32c3 --port /dev/tty.usbmodem101 erase-flash + +esptool --chip esp32c3 --port /dev/tty.usbmodem101 --baud 115200 write-flash \ + --flash-mode dio \ + --flash-freq 40m \ + --flash-size 4MB \ + 0x0000 "$DEST_DIR/bootloader.bin" \ + 0x8000 "$DEST_DIR/partition-table.bin" \ + 0x10000 "$DEST_DIR/plant-manager.bin" + +screen -fn /dev/tty.usbmodem101 115200