diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
deleted file mode 100644
index 140de61..0000000
--- a/.github/workflows/deploy.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-name: Deploy GitHub Pages
-
-on:
- push:
- branches:
- - main # Change this to your default branch
-
-jobs:
- deploy:
- runs-on: ubuntu-latest
- permissions:
- pages: write # to deploy to Pages
- id-token: write # to verify the deployment originates from an appropriate source
- steps:
- - name: Checkout repository
- uses: actions/checkout@v4
- with:
- lfs: true # Fetch LFS files
- - uses: actions/upload-pages-artifact@v3
- with:
- path: .
- - name: Deploy to GitHub Pages
- id: deployment
- uses: actions/deploy-pages@v4
diff --git a/firmware_v3/build-btclock_rev_b-213epd/btclock_rev_b_213epd.bin b/firmware_v3/build-btclock_rev_b-213epd/btclock_rev_b_213epd.bin
index 4acb769..6bfa1e1 100644
Binary files a/firmware_v3/build-btclock_rev_b-213epd/btclock_rev_b_213epd.bin and b/firmware_v3/build-btclock_rev_b-213epd/btclock_rev_b_213epd.bin differ
diff --git a/firmware_v3/build-btclock_rev_b-213epd/btclock_rev_b_213epd.bin.sha256 b/firmware_v3/build-btclock_rev_b-213epd/btclock_rev_b_213epd.bin.sha256
index 2b101a6..63e5a1d 100644
--- a/firmware_v3/build-btclock_rev_b-213epd/btclock_rev_b_213epd.bin.sha256
+++ b/firmware_v3/build-btclock_rev_b-213epd/btclock_rev_b_213epd.bin.sha256
@@ -1 +1 @@
-b5fd18f57493fad76699a6f0a7f2f82babfbd7816e0822d50fb34f1b0a4da16d
+b1e6aa8a5bf4931863d20bb173d264cfcfb195a06f2defb28d7e2b43bf8750a9
diff --git a/firmware_v3/build-btclock_rev_b-213epd/btclock_rev_b_213epd_firmware.bin b/firmware_v3/build-btclock_rev_b-213epd/btclock_rev_b_213epd_firmware.bin
index 8d333f3..833415f 100644
Binary files a/firmware_v3/build-btclock_rev_b-213epd/btclock_rev_b_213epd_firmware.bin and b/firmware_v3/build-btclock_rev_b-213epd/btclock_rev_b_213epd_firmware.bin differ
diff --git a/firmware_v3/build-btclock_rev_b-213epd/btclock_rev_b_213epd_firmware.bin.sha256 b/firmware_v3/build-btclock_rev_b-213epd/btclock_rev_b_213epd_firmware.bin.sha256
index 11fafed..f513cea 100644
--- a/firmware_v3/build-btclock_rev_b-213epd/btclock_rev_b_213epd_firmware.bin.sha256
+++ b/firmware_v3/build-btclock_rev_b-213epd/btclock_rev_b_213epd_firmware.bin.sha256
@@ -1 +1 @@
-46340fb52da96a22298b58c9c112da3a3e387490dbc0938e196d2df56f0013be
+53ddc6bedd3539d7f4c9b572ad0f61fe66555e6014f598c579460a4f75162f6e
diff --git a/firmware_v3/build-btclock_rev_b-213epd/littlefs.bin b/firmware_v3/build-btclock_rev_b-213epd/littlefs.bin
index 107a261..651bb1c 100644
Binary files a/firmware_v3/build-btclock_rev_b-213epd/littlefs.bin and b/firmware_v3/build-btclock_rev_b-213epd/littlefs.bin differ
diff --git a/firmware_v3/build-btclock_rev_b-213epd/littlefs.bin.sha256 b/firmware_v3/build-btclock_rev_b-213epd/littlefs.bin.sha256
index 136614f..52270d3 100644
--- a/firmware_v3/build-btclock_rev_b-213epd/littlefs.bin.sha256
+++ b/firmware_v3/build-btclock_rev_b-213epd/littlefs.bin.sha256
@@ -1 +1 @@
-371c78772431f4e8ef49a0c8c532e125bc7f3d39e0180d9b7131750e2ebc3d11
+50d287c2ecb1bd67aa5c1f3059ec3f4fba246ba73f302c6a29eb1e299b1040c5
diff --git a/firmware_v3/build-lolin_s3_mini-213epd/littlefs.bin b/firmware_v3/build-lolin_s3_mini-213epd/littlefs.bin
index 86d8027..651bb1c 100644
Binary files a/firmware_v3/build-lolin_s3_mini-213epd/littlefs.bin and b/firmware_v3/build-lolin_s3_mini-213epd/littlefs.bin differ
diff --git a/firmware_v3/build-lolin_s3_mini-213epd/littlefs.bin.sha256 b/firmware_v3/build-lolin_s3_mini-213epd/littlefs.bin.sha256
index 81615b5..52270d3 100644
--- a/firmware_v3/build-lolin_s3_mini-213epd/littlefs.bin.sha256
+++ b/firmware_v3/build-lolin_s3_mini-213epd/littlefs.bin.sha256
@@ -1 +1 @@
-2a322c86089651ca6e14d0a35ff617698c3815d4bc4e72b35d93348822fe0f8b
+50d287c2ecb1bd67aa5c1f3059ec3f4fba246ba73f302c6a29eb1e299b1040c5
diff --git a/firmware_v3/build-lolin_s3_mini-29epd/littlefs.bin b/firmware_v3/build-lolin_s3_mini-29epd/littlefs.bin
index 8ca3fcb..651bb1c 100644
Binary files a/firmware_v3/build-lolin_s3_mini-29epd/littlefs.bin and b/firmware_v3/build-lolin_s3_mini-29epd/littlefs.bin differ
diff --git a/firmware_v3/build-lolin_s3_mini-29epd/littlefs.bin.sha256 b/firmware_v3/build-lolin_s3_mini-29epd/littlefs.bin.sha256
index acf8fe8..52270d3 100644
--- a/firmware_v3/build-lolin_s3_mini-29epd/littlefs.bin.sha256
+++ b/firmware_v3/build-lolin_s3_mini-29epd/littlefs.bin.sha256
@@ -1 +1 @@
-750d53aa3fa15ac401c3c223040f1a7c3e70475aaef913707e5f344b92cb3830
+50d287c2ecb1bd67aa5c1f3059ec3f4fba246ba73f302c6a29eb1e299b1040c5
diff --git a/firmware_v3/commit.txt b/firmware_v3/commit.txt
index d34bd11..fb54c0f 100644
--- a/firmware_v3/commit.txt
+++ b/firmware_v3/commit.txt
@@ -1 +1 @@
-1ccd5f18fbd5f427c6edd6ca641ed132211e223b
\ No newline at end of file
+3b47c81cfe06028fdc12e583e4d36b23b710a2b9
diff --git a/firmware_v3/date.txt b/firmware_v3/date.txt
index c672405..e0942b4 100644
--- a/firmware_v3/date.txt
+++ b/firmware_v3/date.txt
@@ -1 +1 @@
-2024-11-25T23:03:00Z
\ No newline at end of file
+2024-11-26T20:08:54Z
diff --git a/firmware_v3/tag.txt b/firmware_v3/tag.txt
new file mode 100644
index 0000000..17ce918
--- /dev/null
+++ b/firmware_v3/tag.txt
@@ -0,0 +1 @@
+3.2.11
diff --git a/get_latest.sh b/get_latest.sh
new file mode 100755
index 0000000..5029910
--- /dev/null
+++ b/get_latest.sh
@@ -0,0 +1,57 @@
+# Fetch the latest release data
+release_data=$(curl -s "https://git.btclock.dev/api/v1/repos/btclock/btclock_v3/releases" | jq '.[0]')
+
+# Extract and write published_at date
+echo $release_data | jq -r '.published_at' > firmware_v3/date.txt
+
+# Get the tag name
+tag_name=$(echo $release_data | jq -r '.tag_name')
+
+# Fetch the commit hash from the tag's API endpoint
+commit_hash=$(curl -s "https://git.btclock.dev/api/v1/repos/btclock/btclock_v3/tags/$tag_name" | jq -r '.commit.sha')
+
+# Write the commit hash to commit.sh
+echo $commit_hash > firmware_v3/commit.txt
+echo $tag_name > firmware_v3/tag.txt
+
+# Download and distribute littlefs files
+littlefs_url=$(echo $release_data | jq -r '.assets[] | select(.name=="littlefs.bin") | .browser_download_url')
+littlefs_sha_url=$(echo $release_data | jq -r '.assets[] | select(.name=="littlefs.bin.sha256") | .browser_download_url')
+
+for dir in firmware_v3/build-btclock_rev_b_213epd firmware_v3/build-lolin_s3_mini_29epd firmware_v3/build-lolin_s3_mini_213epd; do
+ curl -sL $littlefs_url -o "$dir/littlefs.bin"
+ curl -sL $littlefs_sha_url -o "$dir/littlefs.bin.sha256"
+done
+
+# Function to download and distribute board-specific files
+download_board_files() {
+ local board=$1
+ local dir=$2
+ local files=("${@:3}")
+
+ for file in "${files[@]}"; do
+ url=$(echo $release_data | jq -r ".assets[] | select(.name==\"$file\") | .browser_download_url")
+ curl -sL -o "$dir/$file" $url
+ done
+}
+
+# Download btclock_rev_b_213epd files
+download_board_files "btclock_rev_b_213epd" "firmware_v3/build-btclock_rev_b_213epd" \
+ "btclock_rev_b_213epd.bin" \
+ "btclock_rev_b_213epd.bin.sha256" \
+ "btclock_rev_b_213epd_firmware.bin" \
+ "btclock_rev_b_213epd_firmware.bin.sha256"
+
+# Download lolin_s3_mini_29epd files
+download_board_files "lolin_s3_mini_29epd" "firmware_v3/build-lolin_s3_mini_29epd" \
+ "lolin_s3_mini_29epd.bin" \
+ "lolin_s3_mini_29epd.bin.sha256" \
+ "lolin_s3_mini_29epd_firmware.bin" \
+ "lolin_s3_mini_29epd_firmware.bin.sha256"
+
+# Download lolin_s3_mini_213epd files
+download_board_files "lolin_s3_mini_213epd" "firmware_v3/build-lolin_s3_mini_213epd" \
+ "lolin_s3_mini_213epd.bin" \
+ "lolin_s3_mini_213epd.bin.sha256" \
+ "lolin_s3_mini_213epd_firmware.bin" \
+ "lolin_s3_mini_213epd_firmware.bin.sha256"
\ No newline at end of file
diff --git a/index.html b/index.html
index 9301efb..018e654 100644
--- a/index.html
+++ b/index.html
@@ -8,8 +8,6 @@