Repository navigation
Releases: apiwishboon-spec/Nexo
Release list
Nexo v2.2.4
Nexo v2.2.4
Animation fix.
What's fixed
- The Home character (cat/owl) no longer makes the whole screen flash. The panel
only repaints when the animation pose actually changes (~2x/second max) instead
of redrawing everything every 400 ms.
Tested on real hardware
- Built and flashed to a M5Stack Cardputer-Adv; verified the character
animates smoothly without screen flash. - Native unit tests: 24/24 PASSED.
Downloads
Nexo-m5stack-cardputer.binNexo-android-release.apkNexo-macos-release.zipSHA256SUMS
Nexo v2.2.3
Nexo v2.2.3
Fixes the macOS self-update flow.
What's fixed
- macOS updates no longer fail silently. If Nexo is running from a Gatekeeper
translocated path or a read-only location (e.g. launched straight from the
download), the app now shows a clear message telling you to move Nexo to
/Applications and relaunch before updating. - The update button properly surfaces download/install errors instead of
failing silently. - When an automatic update can't run, the download is revealed in Finder with
instructions to finish manually.
Tested on real hardware
- Native unit tests: 24/24 PASSED.
Downloads
Nexo-m5stack-cardputer.binNexo-android-release.apkNexo-macos-release.zipSHA256SUMS
Nexo v2.2.2
Nexo v2.2.2
Fixes for v2.2.1.
What's fixed
- Memo list rows are shorter (18px) so all 4 visible rows fit above the footer
without being cut off at the bottom of the screen. - Audio task keeps feeding the decoder even when nothing is actively playing,
preventing I2S DMA underruns after a memo recording handback. - Memo footer shows current index (
n/total) so you can see when more memos
are above/below the visible window.
Tested on real hardware
- Built and flashed to a M5Stack Cardputer-Adv; voice memos and MP3 playback
verified. - Native unit tests: 24/24 PASSED.
Downloads
Nexo-m5stack-cardputer.binNexo-android-release.apkNexo-macos-release.zipSHA256SUMS
Nexo v2.2.1
Nexo v2.2.1
Small follow-up to v2.2.0.
What's new
- Home character option #2 is now an 8-bit owl (it replaced the glasses
kid; classier on a 240x135 panel) alongside the orange cat. - Orange tabby palette applied to the cat.
- Memo list now shows its current index (
n / total) so you can see when more
memos are above/below the visible window. - BLE multi-central fix: a second companion app can now connect to the same
device (advertising restarts on connect).
Tested on real hardware
- Built and flashed to a M5Stack Cardputer-Adv; voice memos and character
selection verified. - Native unit tests: 24/24 PASSED.
Downloads
Nexo-m5stack-cardputer.binNexo-android-release.apkNexo-macos-release.zipSHA256SUMS
Nexo v2.2.0
Nexo v2.2.0
A firmware release: voice memos and a selectable 8-bit character for the
Home pane.
What's new
Voice memos
- New Memos screen on the device. Press R to record (the header shows a
blinking indicator and amm:sstimer), ENTER to stop & save, ENTER to
play/pause, DEL to erase. - Recordings are written as 16 kHz mono WAV files to
/memoson the microSD card,
so you can pull them off on a computer too. - Recording parks the music decoder and hands the I2S bus to the microphone, then
restores the speaker path and clears memo state when playback ends — a memo
never auto-advances your music queue.
Home character
- The Home left pane can now show a little 8-bit character: an orange cat
or a glasses kid, both animated (bobbing every few seconds with a blink). - Pick it in Settings → Home character; the choice is saved to preferences.
Under the hood
- Firmware bumped to
2.2.0. - New audio API in
hw/audio(memoBegin/Scan/RecordStart/RecordStop/Play/Delete/…). - Preview/emulator stubs implement the memo API so the whole flow is testable
without hardware.
Tested on real hardware
- Built and flashed to a real M5Stack Cardputer-Adv (
pio run -e m5stack-cardputer, SUCCESS). - Verified on-device: boot, Home, character selection, voice-memo record → save →
play → erase, and music playback after memos. - Native unit tests: 24/24 PASSED.
- WASM emulator + preview renders: OK.
Downloads
Nexo-m5stack-cardputer.bin— firmware image (Cardputer-Adv).Nexo-android-release.apk— Android app (arm64).Nexo-macos-release.zip— macOS app.SHA256SUMS— checksums for the above.
License
Copyright (C) 2026 Apiwish Anutravanichkul. Licensed under AGPL-3.0-or-later.
Nexo v2.1.0
Nexo v2.1.0
An app-focused release: Nexo now updates itself.
The firmware is unchanged from v2.0.0 (no reflash needed). Only the companion
app was updated.
What's new
In-app updates
- The app checks GitHub Releases on launch (and on demand via About → App
updates) and tells you when a newer version is available. - Android: one-tap download of
Nexo-android-release.apkand hand-off to the
system package installer. The first time, allow Install unknown apps for Nexo. - macOS: the App Sandbox is now disabled so Nexo can download
Nexo-macos-release.zip, swap/Applications/Nexo.appand relaunch itself in
one click. If the app is running from a read-only or translocated location, the
download is revealed in Finder instead. - Release notes are shown inline, with a link to the release page. Auto-check can
be turned off.
Under the hood
- New dependencies:
package_info_plus,path_provider,url_launcher,
pub_semver. - Added unit tests for release parsing and version comparison.
Downloads
Nexo-android-release.apk— Android app (arm64).Nexo-macos-release.zip— macOS app.Nexo-m5stack-cardputer.bin— firmware image (same as v2.0.0).SHA256SUMS— checksums for the above.
License
Copyright (C) 2026 Apiwish Anutravanichkul. Licensed under AGPL-3.0-or-later.
Nexo v2.0.0
Nexo v2.0.0
First tagged release. Nexo is an offline-first study toolkit for the M5Stack
Cardputer (Stamp-S3A) with a Flutter companion app for Android and
macOS.
Note: developed without a physical Cardputer attached, so the binaries are
built and passed their automated test suites, but have not been flashed or
hardware-verified. Please report anything that misbehaves.
Highlights
Firmware (ESP32-S3)
- Portable, host-tested BLE protocol core (
nexo_core) plus the device layer. - Notes & homework with LittleFS persistence (atomic writes).
- Calculator, timer, and an MP3/WAV player (ESP32-audioI2S + ES8311), with
timer-alarm and UI sound effects. - NimBLE GATT server with PIN auth and multi-central support.
- Optional Wi-Fi access point with a built-in web UI (no CDN/cloud):
music upload/download, playback control, and over-the-air firmware updates.
Companion app (Flutter)
- BLE scan / connect / authenticate.
- Offline-first sync engine with revisions, tombstones and conflict resolution.
- Notes & homework browsing, search, create, edit, delete.
- Device dashboard (battery, storage, Wi-Fi, uptime).
- Extended settings with live time sync from the phone.
- Find / reboot / factory-reset actions.
- Music library management: browse, play/pause/seek, volume, import tracks over
the device Wi-Fi AP, and one-tap firmware updates. - Material 3 theming, phone and desktop layouts.
Protocol
- BLE protocol v2 — clean break; the app and firmware must match. See
docs/PROTOCOL.mdfor the wire format. New: device info, time sync,
find/reboot/factory-reset, music list/control/now-playing/delete, and extended
settings (volume, brightness, screen timeout, auto-advance, timezone, AP
password).
Downloads
Nexo-m5stack-cardputer.bin— firmware image (flash to the Cardputer, or
chain-load with bmorcelli/Launcher).Nexo-android-release.apk— Android app (arm64).Nexo-macos-release.zip— macOS app.SHA256SUMS— checksums for the above.
License
Copyright (C) 2026 Apiwish Anutravanichkul. Licensed under AGPL-3.0-or-later.
Nexo (continuous build)
Nexo continuous build
Commit 1c264b4 on main.
Rebuilt this run
- App (Android APK + macOS app)
- Firmware (Cardputer image)
Commits
- fix(ui): throttle character animation redraws to stop screen flashing; bump v2.2.4 (`1c264b4`)
Rolling development build. Stable releases: see the versioned tags.