Skip to content

Releases: miamimoe/digital-sharpening-guide

v1.0.0 — battery icon, first non-preview release

Choose a tag to compare

@miamimoe miamimoe released this 23 Aug 11:11

1.0. The calibrate → hold-the-colour → count → summary loop has been stable on the bench for months, so this is the release that stops calling itself a preview.

New

  • Battery icon in the top-right corner of every screen — four bars, a + beside it while charging over USB, a single dash if the reading isn't available. Polled once every ten seconds, so it has no measurable cost on the ~120 mAh cell.

Unchanged from v0.3.0

Steady mode (on by default, hold B on TOLERANCE to toggle), the built-in accuracy check (hold A on SET TARGET), time on-angle on the summary, and the last five sessions (hold B on the summary).

Flashing

Easiest: flash in your browser — pick your device, plug in a USB-C data cable, Install.

The attached .bin files are merged images (bootloader + partitions + app) for offset 0x0:

  • sharpening-guide-plus-v1.0.0.bin — M5StickC Plus (ESP32)
  • sharpening-guide-plus2-v1.0.0.bin — M5StickC Plus2 (ESP32)
  • sharpening-guide-s3-v1.0.0.bin — M5StickS3 (ESP32-S3)

Board status

M5StickC Plus is validated on real hardware. Plus2 and S3 are compile-verified and reviewed against the datasheets but not yet confirmed on a physical device — that includes the battery icon (Plus2 reads its cell via an ADC divider, S3 via the M5PM1). If you own one, please flash it and open an issue with results.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Gvn3tJt75WNhiAF6R4LcJm

v0.3.0 — steady mode, accuracy check, time on-angle, session history

Choose a tag to compare

@miamimoe miamimoe released this 23 Aug 09:50

Flash it in your browser — desktop Chrome / Edge / Opera, USB-C data cable, about a minute.

The angle reading sits still now

A sharpening stroke pushes the blade sideways, and the filter's guard against that was nearly blind to it: 0.18 g of sweep — the level the firmware already counts as a stroke — tilted its gravity reference 10.2° while barely changing its magnitude, so it sailed through unrejected. v0.3.0 averages the gravity reference before it steers the angle (stroke acceleration cancels out over a cycle, gravity doesn't) and stops the displayed number and the colour from flip-flopping on sub-degree noise. Simulated, that's 2.3–4× steadier depending on how fast you stroke.

Steady mode is on by default. Hold B on the TOLERANCE screen to switch it off and compare against the old behaviour on the same knife, same stone, same session.

Also new

  • Accuracy check — hold A on SET TARGET. Lay the device flat, press A, then stand it on a known angle and read the number at 0.1°. Printable wedges if you don't own an angle block.
  • Time on-angle on the session summary — what share of the session you held inside tolerance.
  • Past sessions — hold B on the summary screen for your last five.
  • Gyro bias refresh whenever the device is verifiably still, so thermal drift doesn't accumulate across a session.

Fixes

  • A crash, reset, or reflash no longer leaves a zombie session that comes back as RESUME? for the previous knife the next time you sleep and wake.
  • Session time now survives Plus / Plus2 deep-sleep resume (it used to reset to 00:00).
  • Power key on Plus2 / S3 no longer treats the wake / power-on press as "off".
  • Flasher images are proper merged images (bootloader + partition table + boot_app0 + app); a v0.2.1 / beta.1 packaging bug had shipped bare app images that left devices unbootable. scripts/check_flasher_bins.py now guards every manifest.

Includes everything from v0.2.1: 25° and 28° presets, real version on the splash, pinned build dependencies.

Hardware status

Validated on a physical M5StickC Plus. Plus2 and M5StickS3 builds are compile-verified and reviewed against the M5Stack datasheets but still need a community tester — please open an issue with results.

Assets

Each .bin is a merged flash image — flash at offset 0x0:

esptool.py --chip esp32   write_flash 0x0 sharpening-guide-plus-v0.3.0.bin    # M5StickC Plus
esptool.py --chip esp32   write_flash 0x0 sharpening-guide-plus2-v0.3.0.bin   # M5StickC Plus2
esptool.py --chip esp32s3 write_flash 0x0 sharpening-guide-s3-v0.3.0.bin      # M5StickS3

What would help most: does green still arrive fast enough? Smoothing trades response for calm — if green now feels late, say so.

v0.2.0 — M5StickC Plus2 + M5StickS3 support

Choose a tag to compare

@miamimoe miamimoe released this 26 Jun 08:21

What's new in v0.2.0 — now runs on three sticks 🎉

Thanks to the r/sharpening folks who asked: the firmware now supports three M5Stack sticks from one codebase, auto-detected at boot.

Board Status
M5StickC Plus ✅ Validated on real hardware
M5StickC Plus2 ⚠️ Compile-verified + code-reviewed — needs a community tester
M5StickS3 ⚠️ Compile-verified + code-reviewed — needs a community tester

Flash it

Flash in your browser — now with a device picker (Plus / Plus2 / S3). Or grab the matching .bin below and flash at offset 0x0 with esptool.

  • sharpening-guide-plus-v0.2.0.bin → M5StickC Plus (ESP32)
  • sharpening-guide-plus2-v0.2.0.bin → M5StickC Plus2 (ESP32)
  • sharpening-guide-s3-v0.2.0.bin → M5StickS3 (ESP32-S3)

Honest status

Only the Plus has been run on physical hardware. The Plus2 and S3 builds are compile-verified and reviewed line-by-line against the M5Stack datasheets — but not yet confirmed on a real device (I don't own them). If you flash one, please open an issue with how it went. A flashed binary even refuses to run on the wrong board (a red "WRONG FIRMWARE" screen) so you can't brick a mismatch.

Notes

  • One board-guarded codebase — the Plus build is unchanged from v0.1.0; the original is still available as the v0.1.0 release.
  • S3 sleep difference: the StickS3's power button is owned by its M5PM1 PMIC (no GPIO wake), so on the S3 the device fully powers off on sleep and cold-boots on the next press (the in-progress session isn't resumed). Plus/Plus2 keep session-preserving deep sleep.
  • Stroke/Mahony thresholds are still being tuned — real-world data welcome.

v0.1.0 — first public release

Choose a tag to compare

@miamimoe miamimoe released this 20 Jun 08:53

First public release of the Digital Sharpening Guide firmware for the M5StickC Plus.

Easiest way to install

👉 Flash it in your browser — no toolchain, just desktop Chrome/Edge/Opera and a USB-C data cable.

Manual flash

sharpening-guide-v0.1.0.bin is a merged ESP32 image — flash it to offset 0x0:

esptool.py --chip esp32 write_flash 0x0 sharpening-guide-v0.1.0.bin

What it does

Live green/blue/red angle feedback while you sharpen, per-side stroke counting, optional buzzer, and a session summary. See the README for the bill of materials, assembly, and usage.

⚠️ v0.1.0 — stroke-count and filter thresholds are still being tuned. Real-world tuning data very welcome (see Contributing).