Installation - Kulitorum/Decenza GitHub Wiki

Installing Decenza

Decenza runs on Android, iOS, macOS, Windows, and Linux. Choose your platform below.

Download the latest release: GitHub Releases ยท iOS App Store


Android

Android is the most common platform โ€” most DE1 owners use the Decent-supplied Teclast tablet or a Samsung/Lenovo tablet placed next to the machine.

Step 1 โ€” Download the APK

  1. On your Android device, open a browser and go to the GitHub Releases page
  2. Tap the .apk file under the latest release to download it

Step 2 โ€” Allow installation from unknown sources

Android blocks apps that didn't come from the Play Store by default. You need to enable installation from your browser:

  • Android 8+: When you tap the APK, Android will prompt you to allow your browser to install unknown apps. Tap Settings โ†’ toggle on Allow from this source โ†’ go back and tap Install
  • Older Android: Android Settings โ†’ Security โ†’ enable Unknown sources

Step 3 โ€” Install and grant permissions

Tap the downloaded APK and follow the installer prompts. When Decenza first opens, grant these permissions:

Permission Why it's needed
Bluetooth Connect to the DE1 machine and scale
Location Required by Android for Bluetooth scanning (OS restriction โ€” Decenza does not use your GPS location)
Files / Storage Import profiles and manage backups
Nearby devices (Android 17+) Lets the web server, MQTT, a WiFi scale and device transfer reach your network

If you accidentally denied a permission, go to Android Settings โ†’ Apps โ†’ Decenza โ†’ Permissions to grant it manually.

Step 4 โ€” Disable battery optimization (important)

Android aggressively kills background apps to save battery, which causes Decenza to disconnect mid-shot. This is the most common cause of connection problems.

Android Settings โ†’ Battery โ†’ Battery Optimization โ†’ find Decenza โ†’ tap Don't optimize

The exact path varies by manufacturer:

  • Samsung: Settings โ†’ Device care โ†’ Battery โ†’ Background usage limits โ†’ Never sleeping apps โ†’ add Decenza
  • Lenovo: Settings โ†’ Battery โ†’ Power saving exceptions โ†’ add Decenza
  • Stock Android: Settings โ†’ Apps โ†’ Decenza โ†’ Battery โ†’ Unrestricted

Updating

Decenza checks for updates automatically and shows a banner when a new version is available. You can also update through the web interface: open http://<tablet-ip>:8888 in a browser โ†’ burger menu โ†’ Update App โ†’ upload the new APK.

If the APK won't install after an update: Android may report the package as invalid or refuse the install if it considers the new version a "downgrade" (can happen after switching between release tracks). Uninstall the old version first, then install fresh from the latest APK.


iOS

Requires iOS or iPadOS 18 or later.

  1. Open the App Store on your iPhone or iPad
  2. Search for "Decenza"
  3. Tap Get and authenticate with Face ID or your Apple ID
  4. The app costs $10 โ€” iOS is the only paid platform, to help offset Apple Developer Program fees
  5. Tap Open to launch; grant Bluetooth permission when prompted

iOS releases typically arrive 2โ€“3 days after other platforms because each update goes through Apple's review process.

Updating: Updates come through the App Store automatically, or tap Update next to Decenza in the App Store.


macOS

Requires macOS 14.4 (Sonoma) or later.

  1. Download the .dmg file from GitHub Releases
  2. Open the .dmg and drag Decenza to your Applications folder
  3. Launch Decenza from Applications or Launchpad

First launch โ€” Gatekeeper warning: macOS may block the app because it is not notarized through the Mac App Store. If you see "Decenza cannot be opened because the developer cannot be verified":

  • Right-click (or Control-click) Decenza in Applications โ†’ Open โ†’ click Open in the dialog
  • Or: System Settings โ†’ Privacy & Security โ†’ scroll down to the security message about Decenza โ†’ click Open Anyway

You only need to do this once.

Bluetooth permission: macOS will ask for Bluetooth access on first launch โ€” click OK to allow it.


Windows

  1. Download the _installer.exe file from GitHub Releases
  2. Run the installer โ€” it installs Decenza and all required Qt dependencies automatically
  3. Launch Decenza from the Start menu or desktop shortcut

SmartScreen warning: Windows may show "Windows protected your PC" because the installer is not signed with an EV code certificate. Click More info โ†’ Run anyway.

Bluetooth permission: If Windows asks for Bluetooth access, click Allow.

Updating: Decenza checks for updates automatically. You can also update via the web interface (burger menu โ†’ Update App).


Linux

Step 1 โ€” Download and install

  1. Download the Linux binary from GitHub Releases
  2. Install it to /usr/local/bin โ€” this avoids Bluetooth permission issues on systems where the home folder is mounted nosuid:
    sudo cp Decenza /usr/local/bin/Decenza
    sudo chmod +x /usr/local/bin/Decenza

You can run it from your home folder too, but /usr/local/bin is more reliable. If your home partition is mounted nosuid (check with mount | grep /home), running from home will silently break Bluetooth even after applying the permission below.

Step 2 โ€” Grant Bluetooth permission

Decenza needs the CAP_NET_ADMIN capability to scan for Bluetooth devices. Without it, the app will find the DE1 in a scan but never bring it online.

sudo setcap 'cap_net_admin+eip' /usr/local/bin/Decenza

Verify it was applied:

getcap /usr/local/bin/Decenza
# Should show: /usr/local/bin/Decenza cap_net_admin=eip

From v1.6.7+: If the capability is missing, Decenza shows a dialog at startup with the exact setcap command for your install path โ€” so you won't have to guess.

After every update: The capability is tied to the binary file. Re-run the setcap command each time you install a new version.

Step 3 โ€” Run

/usr/local/bin/Decenza

Troubleshooting: DE1 found but won't go Online

If Decenza finds the DE1 in a scan but it never shows as Online, a stale BlueZ cache is the most common cause โ€” especially after a routine OS or library update.

  1. Get the DE1's MAC address from Decenza's log or Settings โ†’ Connections
  2. Remove the cached entry and restart Bluetooth:
    bluetoothctl remove <DE1-MAC>
    sudo systemctl restart bluetooth
    sudo hciconfig hci0 reset
  3. Power-cycle the DE1 (switch at the back, wait 10 seconds)
  4. Relaunch Decenza and scan again

Allow the DE1 a few seconds after powering on before scanning โ€” if Decenza scans before the DE1 is advertising, the first attempt will fail. A manual rescan from Settings โ†’ Connections will pick it up immediately once it's ready.


First Connection

Once installed, Decenza will start scanning for your DE1 automatically. Before it can connect:

1. Close the DE1 app (de1app) completely

Only one app can hold the Bluetooth connection at a time. The de1app running in the background is the most common reason Decenza can't connect.

  • Android: Press the square recent-apps button โ†’ find the de1app card โ†’ swipe it away
  • iOS: Swipe up from the bottom (or double-press Home) โ†’ swipe away the de1app card
  • Desktop: Quit the de1app from the menu bar or taskbar

2. Power on the DE1

The machine must be awake for Decenza to find it.

3. Watch for the connection indicator

The top status bar shows the DE1 firmware version when connected. If it shows "no device found" after 30 seconds, go to Settings โ†’ Connections โ†’ Scan Devices.

4. Connect your scale (optional)

Most Bluetooth scales are detected automatically. If yours isn't found, put it in pairing mode and tap Settings โ†’ Connections โ†’ Scan Devices. See Manual#appendix-c-supported-scales for the full list.


Troubleshooting

"No device found" / won't connect to DE1

  1. Close the de1app completely (the most common cause โ€” see above)
  2. Check Bluetooth is enabled on your device
  3. On Android: confirm Location permission is granted (required for BLE scanning)
  4. On Android: confirm battery optimization is disabled for Decenza
  5. Power-cycle the DE1 (turn it off and back on)
  6. Restart Decenza

Scale shows as "Simulated scale"

The de1app may be holding the BLE connection to the scale. Close it completely, then tap Settings โ†’ Connections โ†’ Scan Devices.

Android permissions were denied at first launch

Android Settings โ†’ Apps โ†’ Decenza โ†’ Permissions โ†’ enable Bluetooth, Location and (Android 17+) Nearby devices.

APK won't install / "package is invalid"

Uninstall the existing version of Decenza first, then install from the latest APK on GitHub.

Linux: DE1 found but never goes Online

See the Linux troubleshooting section above โ€” stale BlueZ cache after an OS update is the most common cause.

Linux: Bluetooth doesn't work / DE1 not found at all

Run getcap /usr/local/bin/Decenza โ€” if the output is empty, the CAP_NET_ADMIN capability was never set or was cleared by an update. Re-run:

sudo setcap 'cap_net_admin+eip' /usr/local/bin/Decenza

macOS blocks the app even after "Open Anyway"

Try running from Terminal:

xattr -d com.apple.quarantine /Applications/Decenza.app

Graphs don't appear during shots / screen stays on idle

Usually a missing permission or battery optimization issue on Android. See FAQ#troubleshooting for the full checklist.


After installing, see the Manual for a full guide to using Decenza, or the FAQ for quick answers to common questions.

โš ๏ธ **GitHub.com Fallback** โš ๏ธ