Repository navigation
FAQ
The quick-answer and troubleshooting page. Started from the Decent Diaspora community discussion thread and ordered by how often each question comes up. For the full reference, see the Manual; for install problems, Installation.
- Connecting to the DE1 and Scales (most common issue)
- Installation
- Profiles
- Recipes and Beans
- Espresso and Stop-at-Weight
- Steam, Hot Water, and Flush
- Shot History
- The Idle Screen and Main Interface
- Troubleshooting
- Web Server and Remote Access
- Auto-Wake and Sleep
- AI Assistant
- Home Screen Widget
- Screensavers
- Themes and Customization
- Accessibility (TalkBack / VoiceOver)
- Data Migration and Backup
- Miscellaneous
→ Manual: Connecting Your Machine and Scale · Troubleshooting
This is by far the most common support topic in the community.
The most common cause is that the DE1 app (de1app) is still running in the background and holds the Bluetooth connection. On Android, press the square "recent apps" button, find the de1app card, and swipe it closed completely. Then restart Decenza.
Go to Settings → Connections and tap Scan Devices. Make sure the de1app is fully closed first, as it may be holding the BLE connection to the scale.
Tap the red "Scale not found" text in the top status bar to trigger an immediate re-scan. Decenza also reconnects to a dropped scale automatically.
They can coexist as installed apps, but only one can be connected to the machine at a time. Always fully close (not just minimize) the DE1 app before using Decenza.
Decenza supports a wide range of Bluetooth scales: Decent Scale, Skale (v1 and v2), Acaia Lunar/Pearl, Felicita, Eureka Precisa, Bookoo, Atom Heart Éclair, Difluid, Hiroia, Solo Barista, Timemore, Varia Aku, and more. → Manual: Supported Scales
Yes. Android requires the Location permission for Bluetooth Low Energy scanning. Grant it when prompted on first launch, or go to Android Settings → Apps → Decenza → Permissions.
Try: (1) Fully close the de1app. (2) Disable battery optimization for Decenza — Android Settings → Battery → Battery Optimization → find Decenza → "Don't optimize". (3) If problems persist, reboot both the tablet and the DE1.
Download the latest release from https://github.com/Kulitorum/Decenza/releases. On Android, tap the .apk file on your tablet to install. On Windows and macOS, download and run the installer. On Linux, use the AppImage.
Yes. The developer uses a Teclast tablet himself. It works well. For a similarly priced alternative, consider a Samsung Galaxy Tab A9, Lenovo Tab One, or the Decent M50mini (~$100 range).
This can happen when Android considers the new version a "downgrade" from a previously installed version. Uninstall the old version first, then reinstall from the latest APK on GitHub.
Yes. It is available on the Apple App Store (search "Decenza"). iOS releases are usually a few days behind Android because Apple requires app review for each update.
Yes. macOS, Windows, and Linux AppImage builds are all in every GitHub release.
On Android, Windows, macOS, and Linux — yes, completely free. On iOS, there is a $10 charge to help offset the Apple Developer Program fee and hardware costs.
Yes. The source code is on GitHub: https://github.com/Kulitorum/Decenza
The Decent-supplied Teclast tablet does not support the Play Store, so it was not a priority. The GitHub APK and the app's built-in update mechanism work well for most users.
Double-tap or long-press the Profiles button → find the profile in the list → tap the star icon to mark it as a favorite. Starred profiles appear as "pills" on the idle screen.
Long-press or double-tap a pill on the idle screen (or double-tap the Profiles button and select the profile) to open the editor. When you exit, you will be asked to Discard, Save As (new name), or Overwrite the existing profile.
Open any profile in the editor, make your changes, and choose "Save As" with a new name when exiting. There is no blank "create from scratch" button in the app — always start from an existing profile. (To rename a profile without copying it, use the ⋮ menu on its row in the profile list → Rename.)
Double-tap the Profiles button → tap "Tablet" (or "Import from DE1 App") → it will scan for the de1app folder and import all profiles.
Double-tap Profiles → select "Visualizer" from the import options. Enter your Visualizer credentials in Settings first.
Yes — long-press a profile pill (the buttons that appear when you tap the Profiles button) to see a popup graph preview of the profile.
Auto-Favorites automatically tracks your unique bean + profile combinations from shot history and presents them as a quick-access list. Enable and configure it from the Auto-Favorites screen. One tap loads all settings — profile, dose, bean info, grinder — from a past shot.
If new versions of built-in profiles were released with an app update, Update All re-imports them. You can also long-press an individual profile to force-reimport just that one.
Yes. In the profile editor (top section), enable "Recommended dose" and enter a value. When this profile is selected, the dose is set from it — unless an active recipe or an active bean already carries one. The order is recipe → bean → profile, and a source with no dose is skipped rather than counting as zero. See Manual: Recommended Dose.
Because a recipe or a bean was active, and both outrank the profile — the dose belongs to the coffee and the drink, not to the way the shot is pulled. Change it in Brew Settings, which writes back to whichever of the two is active. (In older versions a profile switch did overwrite it, and because a dose edit writes through, it also rewrote what that bean or recipe remembered.)
A recipe is the whole drink saved as one tap — it bundles a profile plus a specific bag of beans, the equipment package, dose/yield/temperature, grind, and any milk or hot-water steps. A profile only describes how the shot is pulled; a recipe ties everything together so one tap loads the entire drink. You can still brew with just a profile — recipes are optional.
Decenza 2.0 defaults to a recipes-first idle screen; the Espresso/Profiles button moved to the bottom bar (it works exactly as before). If you upgraded, you were shown a one-time offer to switch — you can always rearrange things yourself in Settings → Layout.
Tap Recipes on the idle screen (double-tap to open the full page), then Add: Recipe. A short wizard walks you through drink type → beans → profile → details. Or turn a great shot into a recipe: tap the Recipe button next to Load on any Shot History row.
Two ways, and the second is the backup for the first:
- Search by name — in the bean/bag editor, search the coffee against the community Bean Base (Loffee Labs / Visualizer) and pick the match; roaster, origin, process, and tasting notes fill in automatically.
- Paste the product URL — if the coffee isn't found in search, paste the roaster's product-page URL and tap Get info from page. Decenza reads the page (falling back to your AI provider for script-rendered shop pages) and fills in the empty fields, including the photo. (URL extraction needs an AI provider configured in Settings → AI.)
Yes. On the Bag Inventory page tap Add Tea (instead of Add Coffee). Tea bags store steeping temperature and leaf dose, and you can make a tea recipe — including a "Just hot water — no profile" tea that brews by starting Hot Water. Tea details can be looked up by name or pulled from a vendor URL, exactly like coffee.
They became bean bags — one card per physical bag in your inventory. The active bag is your bean state (no separate "save preset" step), each bag remembers its own grind, and bags carry freeze/thaw dates. Double-tap Beans to open the Bag Inventory.
That recipe's bag is no longer in your inventory. It still works (it uses that bag's last grind), but tap the message to point it at a current bag. Decenza also re-links recipes automatically when you finish or restock a bag.
Decenza monitors the scale and sends a stop command slightly before the target weight is reached, compensating for the drip that continues after the pump stops. Adaptive SAW automatically learns your scale's lag time after 4–5 shots and converges to within ~0.3g accuracy. → Manual: Stop-at-Weight
Adaptive SAW tunes itself to your scale over a few shots. You can view and reset the learned value in Settings → Calibration → Weight Stop Timing. Scales with higher Bluetooth latency may take longer to converge.
Double-tap the weight readout (brown/orange text in the top status bar) and pick a ratio. This arms a ratio rather than converting it to a fixed weight: the stop-at target is derived from the dose you actually weighed and keeps following it, so weighing 17.5 g instead of 18 g moves a 1:2 target from 36 g to 35 g by itself. A dialed ratio also survives a switch to another profile of the same kind (espresso, filter or tea). → Manual: Yield — a fixed weight or a ratio
Yes. In the profile limits settings, set the volume target to your desired value and set the weight target to 0 (disabled).
Double-tap the temperature display on the main screen to set a per-shot temperature override. An override indicator appears; tap and press "Clear" to remove it.
Useful for headless DE1 users or those with external keyboards/macro pads:
- E — Start Espresso
- S — Start Steam
- W — Start Hot Water
- F — Start Flush
- Space — Stop / Go to Idle
- P — Sleep
→ Manual: Steam · Hot Water and Flush
Select the Steam preset from the main screen. The steamer runs until the configured time expires. Remove the container, wipe the wand, then press Stop on the GHC (or the screen stop button on headless machines). The DE1 then automatically purges the steam wand.
Yes. Enable "Auto flush wand" in Settings → Machine. The purge runs automatically after a configurable delay without requiring a GHC button press. Stopping by hand is already one press — stop and purge happen together unless you enable "Two-tap to stop steaming", which splits them.
In Settings → Machine → Steam Heater, turn off Keep warm when idle. Leave Let the recipe decide on and a milk recipe still warms it when you start the shot; turn both off and the heater only runs when you press Steam. To stop it right now, tap Heater off in the pitcher row.
Let the recipe decide is on and that recipe has no pitcher. Add a pitcher to the recipe, or turn the setting off.
→ Manual: Shot History · Data Management
Go to Settings → History & Data and use the "Import from DE1 App" option. It imports shot files from the de1app folder and converts them to Decenza's database format, including all DYE data.
In the shot history view, select shots and tap Compare. The comparison view shows 3 shots at a time with left/right navigation arrows when more are selected, so you can compare as many as you like.
Keywords take an exact value, a range, or a minimum: rating:70+, dose:16-18, yield:30-40, time:25-35, tds:1.3-1.5, ey:18-22. There are also quality flags (channeling:yes, temp:yes, grind:yes, skipframe:yes) and recipe: for recipe names. Combine them with plain text: ethiopia dose:18 channeling:yes. Tap Keywords in the search bar for the full reference. → Manual: Searching and Filtering
Enter your Visualizer username/email and password in Settings → Visualizer (or via the web interface settings). Enable auto-upload to send shots automatically, or upload individual shots from the shot history view.
When you pull a shot, the profile name and an approximate location (rounded to ±11 km) are published to decenza.coffee — a community map of Decent shots worldwide. In Settings → Machine → Shot Map you can turn it off, or type a Manual city to place yourself without GPS — handy on a tablet with no location fix, or if you'd rather not publish where you actually are.
→ Manual: The Idle Screen · Layout Editor
On a fresh 2.0 install the idle screen leads with Recipes and shows a center row of Recipes, Beans, Steam, and Hot water buttons (Profiles and Flush live in the bottom bar; the layout is customizable in Settings → Layout). Tapping a button once reveals "pill" buttons for your recipes/presets. Double-tapping or long-pressing opens the full page for that function.
Single-tap the weight readout (brown/orange text) in the top status bar.
The Layout Editor lets you freely configure the idle screen. Access it via Settings → Layout, or the web interface burger menu → Layout Editor. Widgets include action buttons, temperature, weight, weather, custom text (supports HTML and template variables like %TEMP%, %STEAM_TEMP%, %PRESSURE%), flip clock, and more. → Manual: Layout Editor
A headless DE1 has no Group Head Controller, so the app is the sole control surface — Decenza is designed to work fully without one.
Single-tap an operation button to slide out its pill row, then tap a pill: an already-selected (highlighted) pill starts immediately, an unselected one takes two taps — first to select, second to start. A Stop button appears on screen during any active operation.
For one-tap access without the pill menus, add the Mini GHC widget (Settings → Layout) — five compact buttons for Espresso, Steam, Hot Water, Flush and Stop. It's active only on headless machines. An external keyboard or macro pad works too: E S W F start each operation, Space stops, P sleeps.
→ Manual: Headless Machines for the full detail, including remote control by screen mirroring.
Close Decenza completely, then close the de1app completely, and reopen Decenza — it should find the machine over Bluetooth. If it's still simulated, check the Simulation Mode toggle in Settings → Machine (desktop only; it doesn't exist on Android or iOS). A scale reading "Simulated" is a separate thing — see above.
Check the profile's stop-at-volume (SAV) and stop-at-weight (SAW) settings in the profile editor. 0 means disabled, and if both are set, whichever triggers first stops the shot — so an unintentionally low SAV will cut a shot short even when SAW is correct. Set SAV to 0 if you only want to stop by weight, and verify the SAW target matches your intended yield.
Common causes: (1) No BLE connection — confirm the firmware version shows in Settings → Connections. (2) Missing permissions — grant all of them, including Location. (3) Battery optimization — exclude Decenza in Android Settings → Battery. (4) Animation scales set to 0x in Developer Options — restore them to 1x.
The DE1 received an empty or invalid profile. Re-import your profiles with the Overwrite option from the full profiles list.
Reinstall the APK directly from the GitHub releases page for a clean install.
- Enable the web server: Settings → History & Data → Enable Server
- Open
http://<tablet-ip>:8888in a browser - Burger menu → Debug → Download Log (system log)
- For shot-specific issues: open the shot in the web interface → debug log link at the bottom of the shot page
Open an issue at https://github.com/Kulitorum/Decenza/issues. Include: Decenza version, device model and OS version, steps to reproduce, system debug log, and a shot debug log if the issue is shot-related.
Go to Settings → History & Data → Enable Server. The IP address and port (8888) will be shown. Access from any browser on the same network: http://<tablet-ip>:8888
Browse and search shot history and graphs, manage recipes, beans, and equipment, edit the idle-screen layout and theme, browse and share community widgets, back up and restore everything, configure AI / Visualizer / MQTT / MCP, upload screensaver media, update the app, and read debug logs. → Manual: Web Server has the full burger-menu list.
Yes. The web interface includes a power switch (burger menu) to wake or sleep the DE1. MQTT support is also available for home automation integration.
Yes. From the web interface burger menu, you can upload a new APK directly to the tablet and install it.
You can secure it with HTTPS and TOTP (authenticator app) for internet access. Decenza Pocket is a simpler remote control option for most users. To reach the MCP connector from anywhere, see Manual: Remote Access.
Android refuses debugging connections over WiFi until you enable them and authorise your computer:
- Developer options — Settings → About tablet, tap Build number seven times.
- Debugging — Settings → System → Developer options, turn on USB debugging (and Wireless debugging on Android 11+).
-
Authorise the computer, either:
-
With a cable (any Android version): plug in, unlock the screen, tick Always allow from this computer on the "Allow USB debugging?" prompt, tap Allow, run
adb tcpip 5555, unplug. -
Wirelessly (Android 11+): tap the words Wireless debugging (not the toggle) → Pair device with pairing code, run
adb pair <ip>:<port>with the port shown on the tablet, and type the six-digit code.
-
With a cable (any Android version): plug in, unlock the screen, tick Always allow from this computer on the "Allow USB debugging?" prompt, tap Allow, run
Then adb connect <tablet-ip>:5555 and scrcpy.
After a tablet reboot,
adb tcpip 5555is forgotten — repeat the cable step. Wireless pairing survives a reboot but the port changes, so check the Wireless debugging screen for the current one. The pairing port and the connect port are different numbers.
The device is still bound to a Tailscale account or a deleted tailnet that doesn't match the one you're signing in with. To recover:
- Sign in to the Tailscale admin console with the account you want the tablet on — use a private window if your browser is stuck on the wrong account — and under Machines delete the old
decenza-<device>entry if present. - In Decenza, tap Sign out of Tailscale (under Settings → AI → MCP Server → Remote Access) and confirm. This wipes the stored identity and shows a fresh sign-in link.
- Open that link, authorize with the intended account, then re-enable Funnel for the device.
Yes. Settings → Screensaver → Auto-Wake sets the days, the wake time, and a Stay awake duration (up to 12 h). The machine stays on for that whole window regardless of the normal idle timeout.
Yes — Decenza Pocket (https://github.com/Kulitorum/DecenzaPocket/releases) is a companion app for Android and iOS that lets you wake/sleep the machine remotely, with a live screenshot view of the tablet. It works over the internet once paired on WiFi.
There is a normal idle timer and a stay-awake window tied to the auto-wake schedule. Inside the window the machine stays on no matter what — the schedule outranks the idle timeout. Outside it, the idle timer applies as usual. The window is checked against the clock continuously, so it works even if the app wasn't running at the wake minute or you turned the machine on yourself. If the machine now stays hot longer than you expect, lower the Stay awake duration.
Go to Settings → AI and enter an API key for your preferred provider (OpenAI, Anthropic/Claude, Google Gemini, Ollama, or OpenRouter). Once configured, the AI chat is available on the main screen and in shot history/detail views.
Claude, OpenAI and Gemini all give good dial-in advice — pick whichever you already have an API key for. Gemini's default is the cheapest and Claude's the most expensive; a shot analysis runs from well under a cent to about six cents, and Settings → AI shows a running estimate for your selected model. Ollama runs locally at no API cost. → Manual: AI Assistant
AI conversation history persists across app restarts, enabling multi-session dialing-in conversations.
Yes, from v1.6.0. Decenza includes a Model Context Protocol (MCP) server that lets AI agents like Claude Desktop read machine state and shot history and control the machine. Open http://<tablet-ip>:8888/mcp/setup in a browser for the install command. From v2.0 the Claude and ChatGPT mobile apps can connect too, from anywhere, via Remote Access. → Manual: MCP Server
On iOS, force-quit and reopen Decenza so it republishes its status snapshot. On either platform, check the device hasn't been low on memory — the OS can reclaim the app process, and the widget updates once Decenza runs again.
It shows the most recent shot saved to Shot History. With auto-save off, a shot you don't keep never appears.
Open the app at least once after a fresh install or update, then return to the picker. On iOS, also confirm you're on iOS 18 or later; on Android, API 28 or later.
Flip clock, 3D pipes, Strange Attractors, shot map (decenza.coffee), custom image/video slideshow (upload via web server), and a blank screen option.
Enable the web server in Settings → History & Data → Enable Server. Open the web URL in any browser on your network. In the burger menu, choose "Upload images".
Decenza has an option to override the Android system screen-off timeout — enable it in Settings. The screensaver activates when the machine is sleeping. On first run, video screensavers download from the internet and may take a moment.
Go to Settings → Theme. Adjust colors with sliders or hex codes, or use the random color palette generator for a harmonious AI-designed scheme.
Approximately 66 languages, using the device system language by default. Override it in Settings → Lang & Access → Languages; the same page has Browse & Customize Strings for editing individual translations. Switching language applies immediately, with no restart. If a community translation has gaps, Decenza offers to fill them using your configured AI provider.
Yes. Full TalkBack (Android) and VoiceOver (iOS) accessibility is a core design goal. Blind users can operate the machine independently — selecting profiles, starting/stopping shots, and receiving audio feedback during extraction.
Decenza uses a first-tap-to-announce, second-tap-to-activate pattern. The first tap on any element reads its label, value, and state aloud; the second tap activates it. Value inputs announce the parameter name and units when changed.
On your current device: Settings → History & Data → Enable Server. On the new device: Settings → History & Data → Search for Devices. Select the source device → Import All transfers profiles, shots, settings, and AI conversations. Works across all platforms (Android → iOS, Android → Windows, etc.).
Decenza performs automatic daily backups of all data. For a manual backup: web interface burger menu → Backup → Download ZIP.
Yes. Web interface burger menu → Restore → upload a backup ZIP → select which data types to restore (you can restore profiles only, shots only, etc.).
→ Manual: Automation · Settings Reference
Yes. Decenza has an MQTT client that publishes machine state and receives commands. Configure it in Settings → MQTT. You can switch profiles remotely by publishing to the decenza/profile/set MQTT topic.
Yes. An Obsidian plugin lets you browse and embed shot data in your Obsidian vault. Find it in the GitHub repository under obsidian-plugin/.
Yes. If you discuss a shot with the AI and then upload it, the AI's recommendation is included in the Visualizer upload metadata.