Decenza
Control your Decent Espresso
$9.99 · Designed for iPad. Not verified for macOS.
Take complete control of your Decent DE1 or Bengle espresso machine.
Decenza is a modern, open-source controller designed for espresso enthusiasts who demand precision and insight into every shot.
Real-Time Shot Visualization
Watch your extraction unfold with live graphs showing pressure, flow, temperature, and weight. See exactly how your shot develops and make informed adjustments.
Powerful Profile Management
Import profiles from Visualizer.coffee or create your own with the built-in profile editor. Fine-tune every parameter from preinfusion to decline.
Universal Scale Support
Connect your favorite Bluetooth scale - Acaia, Felicita, Decent Scale, Skale, and many more. Stop-at-weight ensures consistent results every time.
Complete Shot History
Every shot is saved with full data and metadata. Compare shots side-by-side, track your progress, and upload directly to Visualizer.coffee to share with the community.
AI-Powered Analysis
Get intelligent feedback on your extractions. The optional AI assistant analyzes your shots and suggests improvements to help you dial in faster.
Smart Battery Management
Extend your DE1's battery life with intelligent charging that maintains optimal levels.
Built for Accessibility
Full VoiceOver support with spoken extraction updates, making precision espresso accessible to everyone.
Open Source & Community Driven
Decenza is free, open-source, and built by the community, for the community.
---
Requires a Decent Espresso machine with Bluetooth connectivity.
more My Decent xxl 1.45 has worked perfectly since I bought it a few years ago. I was using a new Samsung tablet but always wanted an easy to use app for my iPad. Since the beginning of the development of this app I have been closely monitoring its development but tbh always worried about the potential for causing problems with my perfectly working machine. I decided to take the plunge and downloaded the app. To my amazement and surprise the app instantly recognized my Decent machine and scale. My old large Decent scale connected but does not work properly. I suspect it is the scale as my much older Lunar scale works perfectly. I am working with the app developer to see if we can get the Decent scale to work. However, that aside the program is easy to use and very intuitive. I’m diving deeper into the more advanced settings. An in-depth video of the many features would be helpful. Try this app. You will not be disappointed.UPDATE: The app was updated and fixed the scale issue. Everything now works perfectly.
My Decent xxl 1.45 has worked perfectly since I bought it a few years ago. I was using a new Samsung tablet but always wanted an easy to use app for my iPad. Since the beginning of the development of this app I have been closely monitoring its development but tbh always worried about the potential for causing problems with my perfectly working machine. I decided to take the plunge and downloaded the app. To my amazement and surprise the app instantly recognized my Decent machine and scale. My old large Decent scale connected but does not work properly. I suspect it is the scale as my much older Lunar scale works perfectly. I am working with the app developer to see if we can get the Decent scale to work. However, that aside the program is easy to use and very intuitive. I’m diving deeper into the more advanced settings. An in-depth video of the many features would be helpful. Try this app. You will not be disappointed.UPDATE: The app was updated and fixed the scale issue. Everything now works perfectly.
My Samsung tablet had gone out, had gone out and I thought I was going to have to buy a new Samsung tablet, but I used Google search to look for any alternatives and came out with this app now I can use my machine with either my phone or an iPad. Well done easy to use works perfectly. I don’t know if I missed the instruction manual but maybe I’ll shoot a video for how to use it. I’d be my only recommendation is if you’re coming from the Samsung, the functionality is a little bit different. Took me a out how to use some of the buttons
My Samsung tablet had gone out, had gone out and I thought I was going to have to buy a new Samsung tablet, but I used Google search to look for any alternatives and came out with this app now I can use my machine with either my phone or an iPad. Well done easy to use works perfectly. I don’t know if I missed the instruction manual but maybe I’ll shoot a video for how to use it. I’d be my only recommendation is if you’re coming from the Samsung, the functionality is a little bit different. Took me a out how to use some of the buttons
- Auto-load profile — pin one profile so it loads automatically when the app starts (DSx2-style).
- Save a copy of any profile — quickly duplicate and edit without overwriting the original.
- User-configurable DE1 fan threshold — choose the temperature at which the fan kicks in (was hardcoded).
- Back-arrow exit during active flush — exit the flush page mid-flush without waiting.
- Faster SAW convergence — stop-at-weight learning settles in fewer shots (N=5→3, graduation 2→1, read window 5→3).
Refractometer & shot review
- R2 auto-populate now only triggers on the active shot review page (avoids cross-contaminating older shots).
- Refractometer readings below 3% TDS are rejected as unrealistic.
- Temperature Unstable badge removed end-to-end — the detector was producing too many false positives.
Bug fixes
- Visualizer upload UI feedback restored on the post-shot review page.
- Beans preset selection is preserved when clicking a favourite (no more accidental deselection).
- On-screen start buttons are blocked when the group head controller (GHC) is active (prevents double-trigger).
- QuickRatingRow font rendering fix.
- Screensaver corrupt media files are now deleted and re-downloaded instead of cycling forever on the bad file.
- Session marker re-emitted after log file trim (post-trim logs no longer look orphaned).
BLE / connectivity
- Scale reconnect timer now arms after a failed startup connection (no more "stuck disconnected" after first launch).
- profileUploaded is correctly emitted when the firmware flash guard drops an upload (recipe page no longer hangs waiting).
- Periodic CCCD re-writes stopped on all scales (was causing disconnects on Eureka Precisa and adding noise on others).
- Redundant scale CCCD auto-enable removed.
- Negotiated connection parameters + state logged at controller error for faster diagnosis.
- ShotServer listen-socket health instrumentation added.
AI advisor
- Retries on 5xx and 429 responses from AI providers (transient errors no longer surface as failures).
- Anthropic cache_control.ttl field type corrected; 400 error body now logged for easier debugging.
- Decent's official dial-in targets and grind diagnostics for Adaptive v2 and Londinium profiles bundled into the advisor.
1.7.4 May 13
AI advisor knows your grinder. The advisor learns a personalized conversion from your shot history and gives concrete numbers ("try 16 on your Niche Zero") for every profile — not abstract guidance. Profiles you haven't pulled are labeled "starting estimate."
The advisor learns from your follow-up shots. It now sees its own past recommendations on the same profile, whether you followed them, and whether predictions landed. It self-corrects mid-session instead of repeating the same hypothesis.
Conversational rating. Reply to "how did this taste?" with a number ("82, balanced and sweet") and it's saved straight to the shot — no metadata editor needed.
One-tap rating row. Three face icons (good / okay / bad → 80 / 60 / 40) appear on unrated shots in post-shot review. Tap to save instantly. The precision slider still works for finer scores.
Auto-rating for clean shots. Shots that hit on-target yield and duration get a provisional 75 marked "inferred," so the AI's "best recent shot" anchor works even if you don't manually rate every shot.
New Auto-Favorites grouping: Bean + Profile + Grinder + Weight. Splits cards by target yield and a 0.5 g dose bucket, so 18 g→36 g and 18 g→40 g recipes on the same grinder keep separate cards.
Per-profile Stop-At-Weight learning. Switching between an open spout and double spout no longer cross-contaminates drip predictions.
New "Puck failed" badge. Shots where peak pressure never built (massive channel, missing puck, severe underdose, way-too-coarse grind) now flag a single red chip with "Don't tune off this shot," instead of a misleading "Temp unstable" or "Clean extraction" label.
Aborted shots are no longer saved. Tapping Stop during preheat used to clutter history with 0 g entries.
Improvements
- Profile-switch suggestions are ordered by grind direction (coarser first if shot ran slow, finer first if fast).
- Less hallucination: the advisor verifies grinder numbers against your actual history before quoting them, and won't suggest a lever profile mid–turbo dial-in.
- VoiceOver on the shot graph now announces phase name and units ("Preinfusion, 0.5 bar") instead of bare numbers.
- AI dial-in is materially better at avoiding common mistakes — uses your grinder's smallest step, asks for taste before recommending changes, anchors on your highest-rated past shot in 90 days.
- Auto-Favorites cards show target yield (what loads when you tap) instead of the most recent shot's reading.
- Auto-Favorites Info/Show buttons correctly scope to the card's exact recipe in weight mode.
- Settings → Machine card labels itself "Simulated" when in simulation mode.
- Quality badges recompute when you open a shot, so detector improvements take effect on existing shots automatically.
- Grind-issue detection now catches gushers (e.g. 18 g → 56 g actual on a 40 g target).
- Accessibility status messages now route through VoiceOver in your chosen voice and language.
Bug Fixes
- Fixed iOS crash when tapping the dropdown chevron next to coffee/grinder autocomplete fields on iOS 26.
- Fixed shot timer and steam timer rolling over at ~65 seconds.
- Fixed Shot Summary dialog always appearing empty.
- Fixed channeling false positives on Londinium-style profiles during the low-pressure preinfusion soak.
- Fixed channeling and grind-issue false positives on lever profiles (80's Espresso, Cremina, Londinium).
- Fixed Temp unstable false positives on cold-machine and aborted shots.
- Fixed DE1 not auto-reconnecting after a failed startup connection.
- Fixed update checker downgrading from beta builds to older stable releases.
- Fixed the water refill warning ignoring your configured threshold.
- Fixed steam duration not updating when switching pitcher presets mid-session.
- Fixed edits being lost when navigating back from brew-recipe or post-shot review.
- Fixed AI replies disappearing after closing an input dialog mid-conversation.
1.7.3 May 4
New
• Update your DE1's firmware straight from the app over Bluetooth — no laptop required.
• Tap +10g during a shot to extend your stop-at-weight target mid-pour.
• Steam presets can now include an Off option that disables the steam heater.
• Export your shot history to file with a single toggle.
• Scale weight is announced on the Steam page for blind milk weighing (VoiceOver).
• Cleaner post-shot review header with a shot-quality badge.
Improved
• Smarter shot analysis — fewer false positives and better puck-failure detection.
• Profile uploads auto-retry and surface a clear error if the machine doesn't respond.
• Auto flow calibration is more stable with batched updates and pressure smoothing.
• Steam health tracks actual flow time and needs two low sessions before auto-reset.
• Flush duration cap raised from 30 to 45 seconds.
• Water-level indicator pulses when the tank is low.
• Wide VoiceOver pass — preset pop-ups, AI responses, and graph readouts now read aloud correctly.
Fixed
• The +10g bump no longer carries over to the next shot.
• TDS / extraction yield no longer leaks between post-shot reviews.
• Wi-Fi device discovery during app-to-app migration is reliable again.
• Steam warning banners stay visible until you dismiss them.
• Phase name updates on every frame change.
• AI replies render correctly on mobile.
• Your last typed word is no longer dropped when saving or sending.
1.7.1 Apr 23
- Post-shot review redesigned — Quality badges, TDS reading, and shot analysis are now right in the header for quicker access. New "first step skipped" badge detects a known DE1 firmware bug so you know when a power-cycle is needed.
- Steam stop-on-time — Steam timer now reliably stops the machine on real hardware, not just in the simulator.
- Scale stays connected in background — Your scale no longer disconnects when the app is backgrounded on Android.
- Flow calibration expanded — Multiplier cap raised from 2.0 to 3.0 with an unusual-value warning. Auto-calibration ceiling is gated to firmware versions that support it.
- Unified device scanning — One "Scan for Devices" button finds your DE1, scale, and refractometer in a single pass.
- Preset modified indicator — Espresso preset pills now show when settings have been changed from the saved preset. Beans pill tracks unsaved changes too.
- Accessibility improvements — Scale weight announced on the Steam page for blind milk weighing. Preset lists announced when opened on all operation pages.
- AI Chat (experimental) — Claude Desktop integration for dialing-in conversations with live context from your beans, shots, and profile.
- Stability fixes — Fixed a crash during startup on some devices, improved Visualizer upload compatibility, and fixed favorite profile tap opening the editor instead of selecting.
1.6.6 Apr 13
Shot Detail & Review
- Redesigned Shot Detail page with improved layout and usability
- App now returns to idle properly after a shot when post-shot review is disabled
Beans & Presets
- Improved bean page UX: easier preset saving, better keyboard handling
- You're now prompted to save or discard changes when switching bean presets
- Presets stay highlighted while editing; "keep unsaved" button renamed for clarity
- Barista field now saved correctly in bean presets
Espresso & Profiles
- Fixed false-positive channeling detection on bloom and soak profiles
- Improved stop-at-weight (SAW) settling — no longer declares stable while weight is still above rolling average
- Fixed stop-at-volume (SAV) for basic profiles when a target weight is also set
- Profile import deduplication improved; built-in profiles synced with de1app
- Import from DE1 App now includes profiles alongside shots
- Combined import results shown in a single dialog instead of two
Steam
- New steam calibration tool with dryness estimation
- Milk weight now shown on steam preset pills
Scale
- Scale widget shows correct "connecting" vs "not found" text
- Tap the scale weight widget to scan when your BLE scale is asleep
- Fixed hot water stop-at-weight failures and frozen scale issues
Settings & UI
- Auto-sleep and auto-wake settings moved to Screensaver tab with improved layout
- AI Advice button hidden when no API key is configured; added "None" option for Discuss
- GHC Simulator renamed to "Mini GHC" and enabled for headless machines
- Screensaver now properly hides the status bar
- Quality badges hidden for profiles without a knowledge base entry
- Fixed settings changes during active espresso/steam triggering unwanted BLE writes
- Starring an active profile now correctly syncs it as your selected favorite
Reliability
- WEBP image support on iOS
- Qt upgraded to 6.10.3
- Fixed BLE connection attempts when Bluetooth is turned off
- Translation fixes for dynamic keys and hardcoded strings
- Favorite profile data protected against race conditions
1.6.5 Apr 10
Shot Review Overhaul
- New basic/advanced mode toggle — basic shows clean essentials, advanced reveals detailed diagnostics
- Quality badges on every shot: grind issues, channeling, and extraction quality at a glance
- Filter your shot history by quality flags to quickly find problem shots
- Phase-by-phase breakdown of pressure, flow, and temperature
- Smarter grind advice — turbo and filter shots are no longer flagged incorrectly
Steam Health Tracker
- New steam graph showing pressure and flow over time
- Health score tracks your steam system performance across sessions
- Scale buildup detection warns before it becomes a problem
- "Clean Machine" button sets a fresh baseline after descaling
Water Level Warning
- Progressive alerts warn you before the water tank runs too low, preventing the firmware safety halt mid-shot
Bean Presets Redesign
- Bean favorites are now a reorderable vertical list — drag to prioritize your go-to beans
AI Advisor Improvements
- Expanded profile knowledge base with community profiles (Damian, Hendon Turbo, Nu Skool, LPI, Idan's Strega, JW, and more)
- Smarter dial-in guidance that knows your grinder and profile characteristics
- Weight curve analysis uses actual cumulative weight instead of flow rate
Screen Capture
- Remote screen viewing via Pocket Integration for troubleshooting and sharing
Bug Fixes
- Fixed keyboard covering bottom fields in Brew Settings
- Fixed original Decent Scale (non-HDS) connection issues
- Fixed stale profile favorites appearing after deletion
- Fixed BLE reconnect timer leak on disconnect
- Profile editor now allows zero range limits and shows 2 decimal places for flow/pressure
- Stop at Weight and Target Volume limits increased to 500
- DiFluid R2 no longer drains battery after leaving shot review
1.6.4 Apr 6
Settings Redesign
- Reorganized settings into fewer, clearer tabs — Machine, Calibration, History & Data, Language & Access, About
- Added settings search — find any setting instantly
- Added Device Migration dialog for transferring data between devices
Shot Graph
- Fixed trailing drop to zero at end of extraction — the graph now ends cleanly at your final pressure/flow
- Fixed shot plan widget — long-press to choose which fields to show (profile, roaster, grind, roast date, dose & yield)
Bluetooth Reliability
- Fixed false stop-at-weight triggers caused by BLE weight spikes
- Added checksum validation on Decent Scale packets to reject corrupted data
- Added watchdog for Decent Scale (auto-recovery if scale stops responding, matching de1app)
- Fixed scale BLE drops when timer resets during extraction
- Fixed BLE writes being sent before DE1 was ready, preventing connection failures
- Refractometer auto-reconnects on disconnect and app resume; TDS is now read manually with a button
Profile Editors
- Fixed incorrect weight/volume values on some built-in profiles (e.g., Traditional Lever showed 135g instead of 36g)
- Disabled steps now show "off" instead of "0", matching de1app
- Corrected exit condition vs limiter labels
- Improved simple profile editor labels and layout
Brew Settings & Beans
- Added roast date field to the Brew Settings dialog
- Bean presets are now immutable favorites — your saved presets won't change when you edit current beans
Display & Layout
- Fixed safe area padding on iOS — app now uses the full screen correctly
- Fixed screensaver showing background gaps instead of solid black
- Firmware version now shows build number (e.g., v1342), matching de1app's 3-line format
AI Assistant
- AI now proactively references your bean knowledge when analyzing shots
- Fullscreen input dialog on mobile for easier typing
Other
- Profile favorites and selection UX improved
- Brew recipe overrides now persist across app restarts
- "What's New" screen shows current version notes when already up to date
1.6.3 Apr 2
DiFluid R2 Refractometer Support
Connect your DiFluid R2 Extract refractometer via Bluetooth. Measure TDS directly from the post-shot review screen
with the new "Read" button — no need to switch apps.
Read-Only Profile Protection
Built-in profiles (matching de1app) are now protected from accidental edits. If you modify one, it's automatically
saved as a "(modified)" copy, keeping the original intact.
Improved Shot Stopping
Stop-at-weight and stop-at-volume logic now matches de1app exactly. Fixed an issue where shots could be cut short at
36 ml instead of using the correct 200 ml safety limit. New option to ignore volume-based stop when a Bluetooth scale
is connected.
Better Profile Editing
- Profile graph now shows realistic simulation curves matching de1app's preview
- Slider and parameter changes no longer flood the machine with BLE uploads — changes are sent once when you exit the
editor
- Fixed ValueInput popup: vertical swipes no longer accidentally open it, gear selection (×1/×10/×100) persists
between drags, and you can double-tap to type a value directly
Screensaver Stability
Fixed a freeze that could occur when turning the display off and back on. The screensaver now properly pauses all
rendering when the screen is off, preventing ANR on Android and resume glitches on all platforms.
Post-Shot Review Fix
Fixed a race condition where editing shot notes or other fields would visibly revert after saving.
Accessibility
Fixed VoiceOver/TalkBack announcing "Decenza" between every button when navigating with a screen reader.
DecenzaPocket Integration
Added relay pairing and goal temperature reporting for the upcoming DecenzaPocket companion.
Reliability
- App now navigates back to idle when the machine disconnects mid-operation
- Fixed BLE codec edge case that could send incorrect values on certain platforms
- Fixed DiFluid R2 reconnection crash
- Hot water volume safety limit now scales correctly with your configured water volume
1.6.1 Apr 2
Further iOS specific crash fixes (the video screensaver)
1.6.0 Mar 23
Themes & Customization
- New Light, Dark, and System theme modes with dual color palettes
- Full color editor — customize every color in your theme
- Separate water level and tile button color controls
Espresso Experience
- New Cup Fill view — realistic 3D-rendered cup with crema, pour stream, and steam
- Phase indicator pills over the shot chart during extraction
- Show/Hide Stats toggle on the espresso screen
- Animated frame transition markers on the live shot graph
- Right axis toggle on the live shot graph
- "Use Unsaved" — try profile edits during a shot without saving first
- Configurable auto-close timer for the post-shot review screen
- Auto flow calibration graduated from beta to default-on
AI Shot Analysis
- Profile-aware AI analysis with per-profile knowledge bases
- Sparkle indicator showing which profiles have AI insights available
- Shot history context for smarter recommendations
Scales & Connectivity
- Multi-scale management — connect multiple Bluetooth scales at once
- Battery level display for Acaia and Bookoo scales
- Improved BLE reliability with better retry timing
- Fixed scale auto-reconnect after discovery
Custom Buttons
- New actions: Load Profile, Previous Profile, navigation commands
- Steam heater on/off toggle action
Hot Water & Steam
- Live flow rate adjustment while pouring hot water
Grinder & Beans
- Structured grinder fields: brand, model, burr type and size
- Date picker for roast date entry
Descaling
- Redesigned wizard with official Decent guide info
- "Run Again" button on completion screen
Web Server
- HTTPS support on iOS via Apple Security framework
- Battery level widget on the web status bar
Home Assistant (MQTT)
- Additional auto-discovery configs for HA integration
Screensaver
- Day-night terminator on the shot map screensaver
- Reduced memory usage with lazy-loaded components
General Improvements
- All strings now translatable — expanded language support
- Locale-aware 12h/24h time formatting
- Consistent theme-based font sizing
- Improved VoiceOver/accessibility across dialogs and buttons
- Compact layout for favorite details
Bug Fixes
- Shot timer no longer includes SAW settling time
- Warning banner when Stop At Weight is bypassed (untared cup)
- Fixed live shot graph clipping and jagged lines
- Fixed tare request storm causing scale issues
- Fixed bean auto-fill clearing unexpectedly on roaster change
- Moved all database queries off the main thread — smoother UI
- Fixed crash after sleep/wake cycle
- Fixed emoji rendering crash on macOS
- D-Flow/A-Flow profiles now match the reference de1app
- Fixed Visualizer upload profile fields
- Stopped unnecessary API polling during screensaver
1.5.7 Mar 17
New Features
- Screensaver screen dimming — dims your actual screen brightness, not just an overlay
- Tappable graph legend — tap line names during extraction to show/hide individual curves
- Auto flow calibration (beta) — automatically adjusts flow multiplier for accurate weight-based brewing
- Smoother weight flow rate curves on the shot graph
- Unit suffixes on value inputs — fields now show bar, ml/s, °C/°F inline
- "Show" button on Auto-Favorites — jump to matching shots in history
- 12h/24h time follows your system locale throughout the app (clocks, screensaver, shot history)
- Home Assistant MQTT discovery — machine sensors and controls appear automatically in HA
- Backup restore list sorted newest-first
- Scale connection dialogs deferred until machine is Ready (no popups during startup)
Bug Fixes
- Fix shot history migration that could block startup or lose data
- Fix BLE reconnection reliability — DE1 and scale auto-reconnect after drops
- Fix Bookoo scale stop-at-weight reliability (tare oscillation no longer disables SAW)
- Improved stop-at-weight accuracy for Acaia, Bookoo, and Hiroia scales
- Fix TOTP authentication for remote access
- Fix post-shot review graph and measurement ordering
- Fix back button on post-shot review and beans pages
- Fix D-Flow/A-Flow recipe bugs
- Fix screensaver showing briefly on app exit
- Fix first-run restore showing empty backup list
- Smoother UI — all database operations moved off the main thread
- MQTT password excluded from backups and device migration (security)
- Improved VoiceOver accessibility in dialogs and value inputs
- Profile format unified with de1app v2 for better compatibility
1.5.6 Mar 6
- CRT/Pip-Boy screen effect with gain, contrast, saturation, hue shift color grading
- Puck resistance curve (P/F) on shot graphs
- Graph legend toggles, inspect crosshair, axis swap, and weight flow smoothing
- Numeric search in shot history
- Saved searches replace combo box filters in shot history
- Sort button in shot history
- Shot comparison page redesign with crosshair inspection and unified table
- Bulk delete shots in shot history
- Auto-Favorite info page with expandable notes
- Expandable text areas for notes/description fields
- Factory reset with two-stage confirmation (Settings > Data)
- On-device theme editor restored
- Community theme sharing and theme names on browser thumbnails
- MACHINE_READY layout variable for diagnosing headless machine issues
Improvements
- Stop-on-weight latency auto-tune and settling improvements
- Weather widget uses location-aware units and time format
- Brew dialog: "Beans" renamed to "Roaster/Coffee", fixed spacing
- Shot detail page layout improvements
- Glow Start slider inverted for more intuitive control
- Library panel widened to fix filter button overflow
- Shot plan temperature always uses first frame (matches de1app)
- Metadata features always-on (removed toggle gate)
- Multiple rounds of VoiceOver accessibility improvements
Bug Fixes
- Fix weight processor tare race that prevented stop-at-weight from firing
- Fix hot water stopping immediately on first attempt of the day
- Fix crash on BLE disconnect
- Fix second GHC flush immediately showing as complete
- Fix shot timer start and settling oscillation
- Fix recipe profile temperature display on startup
- Fix new recipe inheriting info text from previous profile
- Fix BLE refresh overlay stuck forever when DE1 fails to reconnect
- Fix profile editor stale bindings and scrollbar overlap
- Fix shot plan text not updating after bean edits
- Defer sleep until profile upload completes (prevents stuck GHC)
- Fix location permissions on iOS
1.5.5 Feb 24
What's New in 1.5.3
Smarter Shot Review
- EY (Extraction Yield) now auto-calculates from your dose, output, and TDS — no more manual math
- Faster number entry: drag your finger further from the control to change values in bigger steps — great for TDS and
other precise inputs
AI Shot Recommendations
- Ask the built-in AI assistant for brewing advice based on your recent shots
- Multi-turn conversations — follow up with questions about your results
New Recipe Editors
- Dedicated editors for D-Flow, A-Flow, Pressure, and Flow profiles
- A-Flow toggle buttons: quickly enable Ramp Down, Flow Up, and 2nd Fill stages
Shot Graph Improvements
- Weight flow rate curve added to the extraction graph
- Smoother, faster graph rendering
Backup & Restore
- Improved backup system with smaller file sizes
- Better restore experience with progress feedback
Accessibility
- Full VoiceOver support across all pages and input fields
- Screen reader announcements for shot progress and gear changes
Other Improvements
- Flow sensor calibration page
- Heater calibration with safety warnings
- Per-preset hot water flow rate
- Editable bean and profile fields in Auto-Favorites
- Two-tap steam stop enabled by default for safety
Bug Fixes
- Fixed shots getting blocked when scale disconnects during volume-based profiles
- Fixed profile editor incorrectly showing 'Modified' on entry
- Fixed update popup appearing over screensaver
- Fixed keyboard handling issues on various pages
- Many stability improvements
1.5.3 Feb 20
New Features
- Widget Library with Community Sharing — Browse, download, and upload custom widgets via decenza.coffee
- WYSIWYG Text Editor — Rich text editing with emoji picker, multi-action support, and widget conversion
- Screensaver Widgets — Screensavers available as layout editor widgets with live previews
- Shot Map Widget — New widget mode with width slider for screensaver widgets
- Weather Widget Improvements — Sunrise/sunset detection, moon phases, 3-day forecast
- AI Shot Analysis Improvements — Profile intent awareness, grinder awareness, model upgrade
- Last Shot Widget added to layout editor
- Hide-background option for custom layout items
- %GRIND% and %GRINDER% custom layout variables
- Quit layout item for home screen
- Profile logo support
- Shot rating slider replaces numeric input, with preset buttons
- Configurable default shot rating
- Beverage type tracking in shot history
- Save simulated shots to history
- Data entry improvements — Suggestion dropdowns and persistent settings
- FlowScale puck absorption model — More accurate virtual scale, with opt-out toggle
- Zone scale controls and shot map texture picker
- Community browser — Selection model, type filters, deduplicated uploads/downloads
- SSE push notifications for web layout editor (real-time sync)
- Classic folder-style tabs for settings and library panels
- Library previews now use actual idle page rendering (WYSIWYG)
- Web library/community panel in layout editor
- MQTT — Additional topics, data fields, and commands
- Download size verification in auto-updater
- Manual IP entry for data migration
- Refill kit UI improvements with override controls
- Dual preview modes and scale icon in editor
Bug Fixes
- Fix iOS yield progress bar flickering during extraction
- Fix bean preset not applied when switching on BeanInfoPage
- Fix shot rating defaulting to previous shot's rating
- Fix shots with enjoyment=0 loading incorrectly
- Fix "Clear notes on Start" not clearing notes
- Fix shot history blank screen, search, and default rating bugs
- Fix update checker causing infinite update loop
- Fix weather provider ignoring country code for manual city
- Fix Varia scale zombie connection
- Fix data migration not exporting user-created profiles
- Fix D-Flow profiles always showing "needs update" after import
- Fix stale profile on startup
- Fix visualizer upload sending yield instead of flow rate for flow.by_weight
- Fix BLE scale repeated dialog and retry issues
- Fix library list jumping to top on item selection
- Fix web layout editor: dropdown clipping, upload icon, sidebar cropping
- Fix library type badge hidden behind thumbnail
- Fix color picker text selection loss
- Shot-abort-no-scale safety feature
- Accessibility improvements (water level, temperature, layout delegates)
Other
- App renamed from "Decenza DE1" to "Decenza"
- Native Qt BLE on Android (removed Nordic dependency)
- Linux ARM64 / Raspberry Pi 4 support
- Qt upgraded to 6.10.2
- Emoji rendered as Twemoji SVGs (fixes GPU crashes)
1.4.5 Feb 12
New Features
Configurable Status Bar: Status bar is now customizable through the layout editor
New Layout Widgets: Page Title, Steam Temperature, and Separator widgets
AI Layout Assistant: Ask AI button in the HTML layout editor for AI-assisted layout design
Translation Management: Clear individual or all AI translations (preserves human edits)
macOS Scale Support: CoreBluetooth scale transport now works on macOS
Bug Fixes
Fixed translation editor scroll position when editing or clearing translations
Fixed icon rendering (white colors, proper viewBox sizing)
Fixed ActionButton icon sizing for non-square SVGs
1.3.8 Feb 6
- Import profiles from Files app — On iOS, you can now import .json and .tcl profile files directly from iCloud Drive, the Files app, or other sources using the native file picker
- Customizable Text widget with AI-powered HTML generation for layouts
- Full backup download/restore via the web interface
- Layout editor available both in-app and via the web interface
1.3.4 Feb 1
New Features
- Dynamic layout system for IdlePage — auto-sizing readouts, spacer widgets, zone Y-offsets, compact double-click
- Shot graph frame transition reasons — shows why each frame advanced: weight [W], pressure [P], flow [F], or time [T] on live graph, history detail, and web interface
- Vital stats in web interface header — temperature, water level, and connection status
- Screensaver on GHC sleep — activates when the machine is put to sleep via the Group Head Controller
- Store all BLE shot data — mix temperature, resistance, and water dispensed now captured in shot history
- Water refill level and dose range settings
- Scrollable bean presets
- Popup queue system — notifications no longer overlap
- Steam heater defaults to on
- Grinder selection in settings
Bug Fixes
- Fix iOS SIGSEGV crash during app suspension (CoreBluetooth threading)
- Fix popup clamping for bottom-right bar buttons
- Fix scale issues: LCD off on sleep, timer reset, Eureka weight parsing
Other
- Accessibility improvements
1.3.1 Jan 30
Decenza DE1 for iOS - v1.2.11 Release Notes
Scale Connectivity (Major)
- Fixed iOS scale connectivity so we now support more scales.
- Native CoreBluetooth transport for iOS scale connectivity makes your scale more accurate and faster responding
- Fix Felicita scale timer not starting with espresso shots (was working for steam/flush)
Shot & Timing Improvements
- Dedicated weight axis on shot graphs - Weight now has its own properly scaled axis
- Fixed shot timer showing incorrect values and graph timing desync
- Fixed scale timer and shot timer start timing
- Fixed brew-by-ratio override not being used during shots
- Fixed stop-at-weight accuracy for espresso shots (was +/- 5g off)
- Fixed hot water stop - now uses scale weight instead of flowmeter for accurate stopping
- Fixed shot timer showing negative values after BLE glitches
- Fixed weight curve offset on shot graph (now perfectly aligned with pressure/flow)
- Fixed shot timer counting during preheating (now shows 0 until extraction starts)
- Removed false "Bluetooth stuck" warnings for scale timeouts
- Fixed bean preset not loading correctly
- Adaptive Stop-at-Weight learning: SAW now learns from each shot to predict drip more accurately based on flow rate
- Fix weight spikes appearing on shot graph from scale glitches
Brew Ratio
- Increased brew ratio slider maximum from 4x to 20x
- Added long-press for brew ratio adjustment in accessibility mode
- Brew ratio dialog now shifts up when keyboard appears
- Add full accessibility support to brew-by-ratio dialog
- Add grinder selection dropdown to brew-by-ratio dialog
Steam & Hot Water
- Fixed steam and hot water control issues
- Fixed steam heater control when "Keep Steam Heater On" is disabled
- Moved Steam Heater settings to Preferences tab
AI Features
- Added OpenRouter.ai as AI provider with model selection
- AI conversation history now persists between sessions
- Fix OpenRouter AI provider not working for shot analysis
- Fix SAW learning incorrectly triggering during steaming
Profile & Bean Management
- Added ability to edit profile names
- Fixed bean preset update when bean has the same name
- Per-shot overrides with status indicator in UI
- Fixed profile import issues
Connectivity
- Added Bluetooth stuck detection with user prompt to help recover from connection issues
- Acaia scale multi-tare support
- MQTT profile selection support
- Persistent MQTT client ID (prevents duplicate Home Assistant devices)
Other
- Added share log support for easier troubleshooting
- Improved accessibility of translation browser for screen readers
- Fixed screensaver resource paths
- Crash-on-exit reports no longer prompt users unnecessarily
1.2.12 Jan 29
What's New in Decenza DE1 (since iOS 1.1.39)
New Features
Auto-Favorites - Quick access to your recent bean + profile combinations. One tap loads all settings from your last shot with that combination. Enable in Settings → Shot History.
Keyboard Shortcuts - Control the machine with keyboard keys (great for Bluetooth keyboards):
- E = Espresso, S = Steam, W = Water, F = Flush
- Space = Stop, P = Sleep
Home Automation (MQTT) - Integrate with Home Assistant and other smart home systems. Monitor machine state, temperature, pressure, and more. Configure in Settings → MQTT.
Auto-Wake Stay Awake - Machine can stay awake longer after auto-waking, giving you time to prepare.
Steam Wand Auto-Flush - Automatically flush the steam wand after steaming.
Stop At Volume - Stop shots based on total liquid volume (flow × time) in addition to weight.
Automatic Scale Reconnect - Scale automatically reconnects if Bluetooth connection drops.
Device-to-Device Data Migration - Transfer profiles, shots, and settings between devices over WiFi. Found in Settings → Data.
Improvements
- Accessibility - Better tap-to-announce for screen readers, improved value announcements
- Guest profiles/beans highlighted in gold for easy identification
- Faster button response - Value input buttons now respond immediately
- Shot History accessible from Settings even when idle button is hidden
Bug Fixes
- Fixed profile and temperature reverting to wrong values on startup
- Fixed favorite profile being reset on app launch
- Fixed custom theme colors resetting to default blue
- Fixed Visualizer goal curves not aligning with shot data
- Fixed weight recording getting out of sync during Bluetooth glitches
- Fixed DE1 not going to sleep when exiting app via long-press
- Fixed Visualizer profile import for TCL format profiles
1.2.5 Jan 22
- Auto-load profile — pin one profile so it loads automatically when the app starts (DSx2-style).
- Save a copy of any profile — quickly duplicate and edit without overwriting the original.
- User-configurable DE1 fan threshold — choose the temperature at which the fan kicks in (was hardcoded).
- Back-arrow exit during active flush — exit the flush page mid-flush without waiting.
- Faster SAW convergence — stop-at-weight learning settles in fewer shots (N=5→3, graduation 2→1, read window 5→3).
Refractometer & shot review
- R2 auto-populate now only triggers on the active shot review page (avoids cross-contaminating older shots).
- Refractometer readings below 3% TDS are rejected as unrealistic.
- Temperature Unstable badge removed end-to-end — the detector was producing too many false positives.
Bug fixes
- Visualizer upload UI feedback restored on the post-shot review page.
- Beans preset selection is preserved when clicking a favourite (no more accidental deselection).
- On-screen start buttons are blocked when the group head controller (GHC) is active (prevents double-trigger).
- QuickRatingRow font rendering fix.
- Screensaver corrupt media files are now deleted and re-downloaded instead of cycling forever on the bad file.
- Session marker re-emitted after log file trim (post-trim logs no longer look orphaned).
BLE / connectivity
- Scale reconnect timer now arms after a failed startup connection (no more "stuck disconnected" after first launch).
- profileUploaded is correctly emitted when the firmware flash guard drops an upload (recipe page no longer hangs waiting).
- Periodic CCCD re-writes stopped on all scales (was causing disconnects on Eureka Precisa and adding noise on others).
- Redundant scale CCCD auto-enable removed.
- Negotiated connection parameters + state logged at controller error for faster diagnosis.
- ShotServer listen-socket health instrumentation added.
AI advisor
- Retries on 5xx and 429 responses from AI providers (transient errors no longer surface as failures).
- Anthropic cache_control.ttl field type corrected; 400 error body now logged for easier debugging.
- Decent's official dial-in targets and grind diagnostics for Adaptive v2 and Londinium profiles bundled into the advisor.
more Version 1.7.4 May 13
Data Not Linked to You The following data may be collected but it is not linked to your identity:
Supported Features
VoiceOver
Dark Interface
Sufficient Contrast
Audio Descriptions