• v0.2.2 898f659d7a

    Sitbit v0.2.2 Pre-release

    stefan released this 2026-11-01 09:35:04 +01:00 | 26 commits to main since this release

    Hotfix for 0.2.1, whose sync broke at the first long answer (the predicted hotfix).

    • Sync fixed: long answers from the stick (meta, history) lost their first piece. Android drops BLE values over 512 bytes, and the stick sent 514. Both sides now send pieces of at most 500 bytes, and the stick waits for free Bluetooth buffers instead of dropping pieces silently
    • App: Copy and Share buttons for the Bluetooth log (with app/firmware version and phone model, as Markdown for an issue); the log is selectable; WiFi passwords are masked in it

    Everything from 0.2.1 below.


    First public build: the phone app arrives. Your data finally has a second place to be ignored in.

    Firmware 0.2.2-couch (M5StickC Plus / Plus2)

    • Since 0.2.0: Salad is on the menu. Senpai takes it personally (8 s of rage, also for app-logged meals named salad/Salat)

    • Bluetooth sync with the app (NimBLE, JSON-lines protocol, see docs/ble-protocol.md)

    • Pairing via QR code: Settings → Phone app (hold A); hold A there again = new key, all phones forgotten

    • The radio is only on in sync windows: QR screen open, 60 s after boot, 20 s at :00 and :30

    • 60 days of history and the last 100 meals are kept for the app

    • Clock and time zone (incl. daylight saving) set from the phone

    • Lab: BLE scanner moved to NimBLE (flash usage 61 % → 46 %)

    • New achievement: E.T. Phone Home

    Android app 0.2.2 (Android 8+)

    • Pair by scanning the stick's QR code, no Android pairing dialogs
    • Today / History (charts, meal log) / Food / Device (all settings, alarms, WiFi, messages)
    • Background sync: the phone's Bluetooth chip watches for the stick even with the app closed and syncs when it shows up
    • Changes made in the app wait for the next sync window

    Install

    App: download sitbit-0.2.2.apk on the phone, open it, allow "Install unknown apps" once.

    Firmware, either:

    • From the repo: cd firmware && pio run -t upload
    • Or with esptool, without PlatformIO (complete image incl. bootloader):
      pip install esptool
      esptool.py --chip esp32 --baud 1500000 write_flash 0x0 sitbit-firmware-0.2.2-full.bin
      
      sitbit-firmware-0.2.2-app.bin is the bare app (offset 0x10000), for updates over an existing install.

    Check downloads against SHA256SUMS (sha256sum -c SHA256SUMS).

    Downloads