Skip to content
๐Ÿ“š

iSpindle Plotter

F-Droid

Open source

Collect and plot fermentation data from an iSpindel hydrometer.

Version
0.5.23
Size
16.3 MB
Updated
Jun 20, 2026
Get from Download APK (v0.5.23)
Signing certificate on record

About this app

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.

Licensed under MIT, by Ian Williams.

OfficialSignature VerifiedOpen Source

What's New in v0.5.23

Imported from the F-Droid repository index.

  • 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

Version history

v0.5.23Latest
Signature continuous

Jun 20, 2026 ยท 16.3 MB ยท Android API 24โ€“35 ยท code 28

Imported from the F-Droid repository index.

  • 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
INTERNETACCESS_NETWORK_STATEACCESS_WIFI_STATECHANGE_NETWORK_STATECHANGE_WIFI_STATEACCESS_FINE_LOCATIONNEARBY_WIFI_DEVICESFOREGROUND_SERVICEFOREGROUND_SERVICE_CONNECTED_DEVICERECEIVE_BOOT_COMPLETEDPOST_NOTIFICATIONSWAKE_LOCKcom.ispindle.plotter.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

SHA-256 97bcf3dea1d62b3ff5c63ecbfa4f12397df068a014d33e874a59cb94f04234b6

v0.5.22
Signature continuous

Jun 18, 2026 ยท 16.3 MB ยท Android API 24โ€“35 ยท code 27

Imported from the F-Droid repository index.

  • 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.
INTERNETACCESS_NETWORK_STATEACCESS_WIFI_STATECHANGE_NETWORK_STATECHANGE_WIFI_STATEACCESS_FINE_LOCATIONNEARBY_WIFI_DEVICESFOREGROUND_SERVICEFOREGROUND_SERVICE_CONNECTED_DEVICERECEIVE_BOOT_COMPLETEDPOST_NOTIFICATIONSWAKE_LOCKcom.ispindle.plotter.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

SHA-256 3ae4a5a67e8da867ac37cfc4a23ba013f8145c28f29c262f9f8cfcbe7960b402

v0.5.19
Signature continuous

Jun 16, 2026 ยท 16.3 MB ยท Android API 24โ€“35 ยท code 24

Imported from the F-Droid repository index.

  • 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.
INTERNETACCESS_NETWORK_STATEACCESS_WIFI_STATECHANGE_NETWORK_STATECHANGE_WIFI_STATEACCESS_FINE_LOCATIONNEARBY_WIFI_DEVICESFOREGROUND_SERVICEFOREGROUND_SERVICE_CONNECTED_DEVICERECEIVE_BOOT_COMPLETEDPOST_NOTIFICATIONSWAKE_LOCKcom.ispindle.plotter.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

SHA-256 d3783ccb2656ad67472cf27ebc874d18e9275d4e8b15f2ac718917f7aec7023e

Will it run on your device?

CompatibilityVery likely to run

92%

  • Runs on a broad range of modern Android versions.
  • Multiple CPU architectures are covered.
  • Aligned with the latest Android target SDK expectations.
What changed in this release
Size delta
0 MB
Added permissions
None
Removed permissions
None

Installation Guide

1

Open Settings on your Android device

2

Go to Security โ†’ Unknown sources (or Install unknown apps)

3

Enable "Allow from this source" for your browser or file manager

4

Open the downloaded APK file from your Downloads folder

5

Tap "Install" and wait for installation to complete

6

Launch the app from your home screen

Make sure to re-enable Unknown Sources restrictions after installation for security.

How to install this safely

How to verify the file you downloaded

Before you install anything, confirm the file is the one described here. On a computer, run shasum -a 256 your-download.apk (macOS or Linux) or certutil -hashfile your-download.apk SHA256 (Windows), then compare the output character-for-character with the SHA-256 on this page. If a single character differs, the file is not the build we recorded โ€” delete it.

What the signing certificate proves

Every Android app is signed with a private key that only its developer holds. The fingerprint on this page is a hash of the matching public certificate, and it proves continuity rather than identity: it tells you a build came from whoever signed the earlier ones. Android enforces this at install time โ€” if a package claiming to be com.ispindle.plotter is signed with a different key, the system will refuse to install it over your existing copy. A fingerprint that changes between releases is worth pausing on, because a repackaged app that has been modified by someone else cannot keep the original signature.

How to roll back to an earlier version

If the current release misbehaves, 0.5.22 is the last build before it. Android will not install an older version code over a newer one, so you must uninstall iSpindle Plotter first โ€” which clears its local data unless you have a backup. Reinstall the older APK only if its signing fingerprint matches the build you already trust, and check the API range: an older release may target an Android version your device has moved past.

Why we list sources instead of hosting everything

The official store channel is almost always the right choice: it updates automatically and carries the publisher's own distribution guarantees. A direct APK is useful when a device has no store access, when a rollout has not reached your region, or when you need a specific version โ€” and only when the publisher has authorized that copy. APKBrowse does not list pirated, cracked, or unauthorized rebuilds of iSpindle Plotter, and a listing is removed when the evidence for it stops holding up.

Get iSpindle Plotter

Every source we list for com.ispindle.plotter is legality-reviewed. Pirated or cracked builds are never offered.

Other sources

F-Droid listing

official

F-Droid builds this app from source and signs it. This is its official listing, with older builds and full release notes.

Source code

verified publisher

The upstream repository this build is compiled from.

We check legality and signature continuity, but device behaviour still varies. Install at your own discretion.

App Information

Developer
F-Droid
Category
Education
Android
7.0+
Architectures
arm64-v8a, armeabi-v7a, x86, x86_64
Version
0.5.23 (code 28)
Size
16.3 MB
Updated
Jun 20, 2026
Package name
com.ispindle.plotter

Security Verification

File integrity
SHA-256 recorded
Signing certificate
Fingerprint on record
Official source
Download APK (v0.5.23)

We record provenance; we do not run malware scans. Verify the hash yourself before installing.

SHA-256 Hash

97bcf3dea1d62b3ff5c63ecbfa4f12397df068a014d33e874a59cb94f04234b6

Signing certificate

8c8f3b167278a179911bad875245f21dac46482f901318a2161a887265a2d3b5

Permissions Required

INTERNET
ACCESS_NETWORK_STATE
ACCESS_WIFI_STATE
CHANGE_NETWORK_STATE
CHANGE_WIFI_STATE
ACCESS_FINE_LOCATION
NEARBY_WIFI_DEVICES
FOREGROUND_SERVICE
FOREGROUND_SERVICE_CONNECTED_DEVICE
RECEIVE_BOOT_COMPLETED
POST_NOTIFICATIONS
WAKE_LOCK
com.ispindle.plotter.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

Previous Versions

Signature verified

The signing certificate fingerprint for this release is on record, so a build that does not match it did not come from this publisher.

Report a problem with this listing

A listing is only as good as its corrections. If a source is broken, a signature looks wrong, or this app should not be here, tell the moderation team.

Report a problem