Skip to content
jpkellyPublic

About

Simple app for controlling the Bookoo Themis scale

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

booBud ☕ Simple is good.

The apps I found for the Bookoo scale were overcomplicated and awkward to use. I wanted something simple. So this is it — a straightforward iOS companion for your Bookoo Mini Scale: real-time weight, a brew timer, and tare controls over Bluetooth. Nothing more, nothing less. (Okay, it grew a little — but it's still simple to use.)

Features

  • BLE connection to Bookoo Mini Scale (official protocol) with auto-reconnect
  • Live weight display — grams, large readable digits
  • Brew timer — start/stop/reset with 0.1s precision, separate tare button, auto-start on pour detection
  • Auto-detect pour — optionally auto-starts the timer when weight crosses a configurable threshold
  • Real-time graph — dual-axis chart of weight (g) and flow rate (g/s) over time
  • Flow-stop detection — vertical dashed line + label marking when flow drops below threshold
  • Peak weight annotation — horizontal dashed line at the maximum weight reached
  • Brew saving — save each brew with auto-generated stats (duration, final weight, peak weight, peak flow)
  • Bean weight & grind setting — stepper controls with configurable step size, last-used values retained
  • Brew history — scrollable list with thumbnail charts, swipe to edit or delete, inline underlay badge
  • Underlay comparison — overlay a past brew's graph behind the live data for reference
  • Screen stays awake — display sleep prevented while a scale is connected (auto-disables on disconnect)
  • Battery level from the scale with low-battery color warnings (yellow ≤20%, red ≤10%)
  • Settings — pour trigger threshold, flow axis auto-range or fixed max, flow-stop detection threshold, grind step size
  • ScaleSimulator — companion macOS app that simulates a Bookoo scale for testing

Screenshots

Weight Display Brews Splash Screen
booBud weight display booBud brews sheet booBud splash screen

Requirements

  • iOS 18.0+
  • Xcode 16.0+
  • A Bookoo Mini Scale (or compatible BLE scale)

Install on Your iPhone (no App Store, no developer account)

You need a Mac with Xcode and a free Apple ID — no paid developer program required.

Option A: AltStore sideload (recommended — lasts 365 days)

  1. Install AltStore on your iPhone
  2. Open booBud.xcodeproj in Xcode
  3. Plug in your iPhone, select it from the device dropdown
  4. Sign in with your Apple ID (Xcode → Settings → Accounts)
  5. Press ⌘R to build and run — this signs the app with your Apple ID
  6. Run ./build-ipa.sh — this packages the signed build as booBud.ipa on your Desktop
  7. AirDrop booBud.ipa to your iPhone
  8. In AltStore: My Apps → + → select the .ipa to install
  9. To update later: rebuild, run build-ipa.sh again, and re-install via AltStore

The app stays installed for 365 days — AltStore re-signs the provisioning profile, so no weekly refresh is needed.

Option B: Direct Xcode install (simplest — lasts 7 days)

  1. Open booBud.xcodeproj in Xcode
  2. Plug in your iPhone, select it from the device dropdown
  3. Sign in with your Apple ID (Xcode → Settings → Accounts)
  4. Press ⌘R to build and install
  5. On iPhone: Settings → General → VPN & Device Management → Trust your Apple ID

The app expires after 7 days — just rebuild to refresh.

How It Works

booBud communicates with the Bookoo Mini Scale over Bluetooth Low Energy using the official open-source protocol:

  • Service UUID: 0x0FFE (primary)
  • Weight notifications: characteristic 0xFF11 (20-byte packets with grams, flow rate, battery, timer)
  • Commands: characteristic 0xFF12 (tare, timer start/stop/reset, mode switch)
  • Device Name: characteristic 0xFF1E (readable, used for authoritative display name)

Project Structure

booBud/
├── App/              # @main app entry
├── BLE/              # BookooProtocol + ScaleBLEController
├── Models/           # WeightReading, WeightUnit, BrewTimerState, GraphPoint, SavedBrew, BrewStore
├── ViewModels/       # ScaleViewModel (@Observable state)
├── Views/            # ContentView, WeightDisplay, BrewTimer, Controls, DeviceDiscovery, Settings, BrewHistory, BrewThumbnail, BrewEditSheet
├── Resources/        # Info.plist (BLE permissions)
├── Assets.xcassets/  # App icon, accent color
└── scripts/          # bump-build-number.sh (auto-increment build number)

ScaleSimulator/
└── ScaleSimulator/   # macOS BLE peripheral companion — simulates a Bookoo scale for testing

License

MIT

About

Simple app for controlling the Bookoo Themis scale

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages