Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 0 additions & 22 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,28 +10,6 @@ Versioning follows [SemVer](https://semver.org/): **MAJOR.MINOR.PATCH**

---

## [1.37.0] — 2026-06-10

### Added
- **Gravação do firmware da balança pela web** (Admin → **Estação de pesagem**,
`/admin/scale`, só admin). O usuário conecta o ESP32‑C3 por USB e grava o firmware
direto do navegador via **Web Serial + esptool‑js** — irmão do gravador Niimbot (Web
Bluetooth): Chrome/Edge no computador, HTTPS (ou `localhost`), sem instalar nada.
- O firmware é compilado e gravado em **4 pedaços separados nos seus offsets**
(`bootloader 0x0 · partitions 0x8000 · boot_app0 0xe000 · app 0x10000`) — exatamente
como o `pio upload` — via `deploy/build-firmware-bin.sh`, em `static/firmware/` +
manifesto (`balanca-c3.json`), **versionados no git** e servidos como estáticos (o
deploy por clone público/`git archive` leva tudo, sem build no servidor). Pedaços
separados (não uma imagem merged única em 0x0) + `data` como **`Uint8Array`** são o
que funciona com o esptool-js — validado em hardware (ESP32‑C3 SuperMini).
- O `esptool-js` é **vendorado** (`static/esptool.js`, via `deploy/vendor-esptool.sh`,
sem CDN/runtime); o adaptador `static/esp-flash.js` baixa o `.bin` e grava em `0x0`.
**Nenhuma mudança de CSP** (Web Serial é API JS, scripts são `'self'`). Mensagens
traduzidas no servidor (EN/ES). Ver `docs/balanca-web-flash.md`.
- Escopo desta versão: **só gravação** (binário genérico, sem segredos). Provisionamento
de Wi‑Fi/URL/chave de API (firmware com Wi‑Fi + `POST /api/weigh` + handshake
serial‑JSON + fallback SoftAP) virá numa próxima versão.

## [1.36.0] — 2026-06-10

Endurecimento de segurança a partir de um teste externo (caixa-preta). Vários
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.37.0
1.36.0
107 changes: 0 additions & 107 deletions deploy/build-firmware-bin.sh

This file was deleted.

45 changes: 0 additions & 45 deletions deploy/vendor-esptool.sh

This file was deleted.

88 changes: 0 additions & 88 deletions docs/balanca-web-flash.md

This file was deleted.

20 changes: 0 additions & 20 deletions routes/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -212,26 +212,6 @@ def admin_settings():
)


# ── Estação de pesagem (gravar firmware da balança pela web) ─────────────────

def _firmware_manifest():
"""Lê static/firmware/balanca-c3.json (gerado por deploy/build-firmware-bin.sh).
Fail-safe: ausente/corrompido → {} (a página mostra o estado sem versão)."""
path = Path(app.static_folder) / "firmware" / "balanca-c3.json"
try:
return json.loads(path.read_text())
except Exception:
return {}


@app.route("/admin/scale")
@admin_required
def admin_scale():
manifest = _firmware_manifest()
manifest_url = url_for("static", filename="firmware/balanca-c3.json")
return render_template("admin/scale.html", manifest=manifest, manifest_url=manifest_url)


# ── Atualização do sistema ───────────────────────────────────────────────────

@app.route("/admin/update")
Expand Down
Loading