elemes/velxio-deployer-firmware/main
a2nr c20b2d5a8e fix: END ACK regression — readPoll pintar + INIT_ACK_INDEX 0xFFFE + binary_parser.c git track
Akar masalah:
- 4a6ef8c menambah binary_parser_reset() di handler re-deploy SERIAL_BRIDGE
  yang menghapus expected_total_crc setelah INIT — menyebabkan CRC mismatch
  di END. Source 1d3a489 sudah menghapus reset-nya, tapi device butuh rebuild.
- cad90eb merutekan DATA melalui sendCommand() dengan readPoll state===1
  yang selalu true saat DATA — write gagal dilaporkan sukses.

Perbaikan:
1. readPoll pintar untuk DATA: state===1 tidak lagi dianggap sukses.
   readPoll hanya fast-fail di state>=5; deadline fallback hanya ok
   jika writeValueWithResponse sukses (GATT write response = bukti delivery).
2. INIT_ACK_INDEX=0xFFFE (Fase 3): inisialisasi INIT dengan index unik
   menghilangkan tabrakan dengan DATA[0] (index 0). binary_parser.c echo
   index recv di ACK INIT. Guard handleFlashingNotification diperluas.
3. pendingAcks.clear() di awal deployHex mencegah poisoning antar deploy.
4. Track firmware inti ke git: binary_parser.c, checksum.c, stk500v1.c,
   usb_host.c + headers + CMakeLists + sdkconfig + partitions.

Build: ESP-IDF v6, ESP32-S3, flash via /dev/ttyACM0
2026-07-01 05:10:38 +07:00
..
CMakeLists.txt fix: END ACK regression — readPoll pintar + INIT_ACK_INDEX 0xFFFE + binary_parser.c git track 2026-07-01 05:10:38 +07:00
binary_parser.c fix: END ACK regression — readPoll pintar + INIT_ACK_INDEX 0xFFFE + binary_parser.c git track 2026-07-01 05:10:38 +07:00
binary_parser.h fix: END ACK regression — readPoll pintar + INIT_ACK_INDEX 0xFFFE + binary_parser.c git track 2026-07-01 05:10:38 +07:00
ble_service.c fix: Phase B — readValue() state poll fallback for END ACK 2026-06-30 17:35:23 +07:00
ble_service.h fix: END ACK regression — readPoll pintar + INIT_ACK_INDEX 0xFFFE + binary_parser.c git track 2026-07-01 05:10:38 +07:00
checksum.c fix: END ACK regression — readPoll pintar + INIT_ACK_INDEX 0xFFFE + binary_parser.c git track 2026-07-01 05:10:38 +07:00
checksum.h fix: END ACK regression — readPoll pintar + INIT_ACK_INDEX 0xFFFE + binary_parser.c git track 2026-07-01 05:10:38 +07:00
idf_component.yml fix: END ACK regression — readPoll pintar + INIT_ACK_INDEX 0xFFFE + binary_parser.c git track 2026-07-01 05:10:38 +07:00
led_button.c feat(firmware): serial bridge throttle, LED blink fix, re-deploy safety 2026-06-30 18:13:42 +07:00
led_button.h feat(firmware): serial bridge throttle, LED blink fix, re-deploy safety 2026-06-30 18:13:42 +07:00
main.c feat(firmware): serial bridge throttle, LED blink fix, re-deploy safety 2026-06-30 18:13:42 +07:00
serial_bridge.c feat(firmware): serial bridge throttle, LED blink fix, re-deploy safety 2026-06-30 18:13:42 +07:00
serial_bridge.h feat(firmware): serial bridge throttle, LED blink fix, re-deploy safety 2026-06-30 18:13:42 +07:00
state_machine.c fix(firmware+frontend): remove binary_parser_reset() re-deploy wipes CRC + tighten INIT poll 2026-06-30 19:21:35 +07:00
state_machine.h fix: END ACK regression — readPoll pintar + INIT_ACK_INDEX 0xFFFE + binary_parser.c git track 2026-07-01 05:10:38 +07:00
stk500v1.c fix: END ACK regression — readPoll pintar + INIT_ACK_INDEX 0xFFFE + binary_parser.c git track 2026-07-01 05:10:38 +07:00
stk500v1.h fix: END ACK regression — readPoll pintar + INIT_ACK_INDEX 0xFFFE + binary_parser.c git track 2026-07-01 05:10:38 +07:00
usb_host.c fix: END ACK regression — readPoll pintar + INIT_ACK_INDEX 0xFFFE + binary_parser.c git track 2026-07-01 05:10:38 +07:00
usb_host.h fix: END ACK regression — readPoll pintar + INIT_ACK_INDEX 0xFFFE + binary_parser.c git track 2026-07-01 05:10:38 +07:00