iSpindle Plotter
Collect and plot fermentation data from an iSpindel hydrometer.
新版本 0.5.23
Detects the yeast-settling stage at the end of a ferment.
Once fermentation finishes, the yeast flocculates and drops out of suspension. Because the iSpindle floats in the clearing upper layer, the gravity reads a small step down — a couple of points — at steady temperature, before any cold crash. The graph now labels this as a Clarifying stage, shades it on the chart, and treats the clarified gravity as the final gravity: suspended yeast inflates a reading, so the settled value is closer to th
Once fermentation finishes, the yeast flocculates and drops out of suspension. Because the iSpindle floats in the clearing upper layer, the gravity reads a small step down — a couple of points — at steady temperature, before any cold crash. The graph now labels this as a Clarifying stage, shades it on the chart, and treats the clarified gravity as the final gravity: suspended yeast inflates a reading, so the settled value is closer to th
iSpindle Plotter is a self-hosted companion app for the iSpindel — an open-hardware floating hydrometer used by home brewers to track specific gravity through a fermentation. The app runs a small HTTP server on your phone that the iSpindel posts its readings to over your local Wi-Fi network, then stores, charts, and analyses those readings without ever sending your data to a third-party cloud service.
Pairing and configuration:
* Auto-pair flow that joins the iSpindel's configuration access point, sets the phone as the HTTP target (Generic HTTP / selAPI=3), reads the device's existing cubic calibration polynomial off the firmware, and reconnects to your home network — without losing pre-existing fields like the calibration on subsequent saves.
* mDNS-style hostname discovery so the iSpindel can find your phone again after either device's IP changes.
* Pushes the app's own calibration polynomial back to the iSpindel when you re-calibrate.
Calibration:
* Fit cubic / quadratic / linear polynomials from your own sucrose-dilution measurements.
* Imports the iSpindel's pre-installed factory calibration on first pairing.
* Setup guide with a sucrose-step-dilution recipe for 1.000–1.080 SG.
Plotting and analysis:
* Tilt angle, temperature, specific gravity, and battery voltage charts with a 24h / 7d / 30d / All time-window switcher.
* Potential-alcohol secondary axis on the SG chart.
* Robust phase classifier (Lag / Active / Slowing / Conditioning / Stuck / Cold crash) using a modified-Gompertz Levenberg-Marquardt fit (Zwietering et al. 1990), with fallback to an attenuation-prior when the data is too early to constrain the asymptote.
* Predicted final gravity overlaid on the chart with a tapering uncertainty band derived from short-time noise estimation and the calibration polynomial's residual.
* Battery runway estimate: linear discharge fit projecting time-to-cutoff at the current sample rate.
* Trim-before-date-and-time to drop pre-fermentation noise; CSV export via the system file picker.
Privacy:
* No analytics, no telemetry, no third-party network connections.
* Data is held only on your phone and only sent to your iSpindel's local IP for configuration writes.
* The app's HTTP server listens on the phone's local network address only.
Hardware: built and tested with an MTB iSpindel PCB 4.0; should work with any iSpindel firmware that supports the Generic HTTP target.
Pairing and configuration:
* Auto-pair flow that joins the iSpindel's configuration access point, sets the phone as the HTTP target (Generic HTTP / selAPI=3), reads the device's existing cubic calibration polynomial off the firmware, and reconnects to your home network — without losing pre-existing fields like the calibration on subsequent saves.
* mDNS-style hostname discovery so the iSpindel can find your phone again after either device's IP changes.
* Pushes the app's own calibration polynomial back to the iSpindel when you re-calibrate.
Calibration:
* Fit cubic / quadratic / linear polynomials from your own sucrose-dilution measurements.
* Imports the iSpindel's pre-installed factory calibration on first pairing.
* Setup guide with a sucrose-step-dilution recipe for 1.000–1.080 SG.
Plotting and analysis:
* Tilt angle, temperature, specific gravity, and battery voltage charts with a 24h / 7d / 30d / All time-window switcher.
* Potential-alcohol secondary axis on the SG chart.
* Robust phase classifier (Lag / Active / Slowing / Conditioning / Stuck / Cold crash) using a modified-Gompertz Levenberg-Marquardt fit (Zwietering et al. 1990), with fallback to an attenuation-prior when the data is too early to constrain the asymptote.
* Predicted final gravity overlaid on the chart with a tapering uncertainty band derived from short-time noise estimation and the calibration polynomial's residual.
* Battery runway estimate: linear discharge fit projecting time-to-cutoff at the current sample rate.
* Trim-before-date-and-time to drop pre-fermentation noise; CSV export via the system file picker.
Privacy:
* No analytics, no telemetry, no third-party network connections.
* Data is held only on your phone and only sent to your iSpindel's local IP for configuration writes.
* The app's HTTP server listens on the phone's local network address only.
Hardware: built and tested with an MTB iSpindel PCB 4.0; should work with any iSpindel firmware that supports the Generic HTTP target.
版本
雖然在下方可選擇下載 APK 檔案,但要留意這樣的安裝方式將不會收到更新通知,是一種較不安全的下載方法。建議您先安裝 F-Droid 用戶端使用。
下載 F-Droid-
arm64-v8aarmeabi-v7ax86x86_64此版本需要 Android 7.0 或更高的版本。
此套件包由 F-Droid 建置和簽署,並保證與此原始碼 Tarball 保持一致。
-
arm64-v8aarmeabi-v7ax86x86_64此版本需要 Android 7.0 或更高的版本。
此套件包由 F-Droid 建置和簽署,並保證與此原始碼 Tarball 保持一致。
-
arm64-v8aarmeabi-v7ax86x86_64此版本需要 Android 7.0 或更高的版本。
此套件包由 F-Droid 建置和簽署,並保證與此原始碼 Tarball 保持一致。
新版本 0.5.22
A more robust original-gravity estimate.
Original gravity is read from the settled plateau at the very start of the ferment. That level now uses the median of those readings rather than the mean, so it shrugs off an early krausen / CO2 spike inside the window no matter how large — OG stays anchored to the true settled value rather than being nudged up by the rise. On a clean start the two agree; the median just holds up better when the start is messy.
Original gravity is read from the settled plateau at the very start of the ferment. That level now uses the median of those readings rather than the mean, so it shrugs off an early krausen / CO2 spike inside the window no matter how large — OG stays anchored to the true settled value rather than being nudged up by the rise. On a clean start the two agree; the median just holds up better when the start is messy.
新版本 0.5.19
Remove a false-positive ferment in one tap.
Sometimes the chart flags a ferment that wasn't one — the iSpindle was knocked, bumped, or lifted out for cleaning, and the brief tilt change reads like the start of a brew. Select that ferment and tap the new trash button to delete just its readings; a confirmation shows how many points and the date range first. The rest of the device's history stays untouched.
Sometimes the chart flags a ferment that wasn't one — the iSpindle was knocked, bumped, or lifted out for cleaning, and the brief tilt change reads like the start of a brew. Select that ferment and tap the new trash button to delete just its readings; a confirmation shows how many points and the date range first. The rest of the device's history stays untouched.



