Updates

How to keep Librescoot up to date. For routine updates, Bluetooth is the preferred path; USB remains available for maps, recovery and cases where no suitable Bluetooth update is available.

Preferred method: update over Bluetooth

1.2+ For a routine update within the same release channel, transfer the delta artifact from stasis for unu (Android on Google Play, iOS on TestFlight) over Bluetooth. This is the normal choice for most updates: it needs neither a SIM card nor a cable, and there is no need to enter Update Mode.

Bluetooth accepts firmware for both the MDB and DBC. Full images work too, but take much longer to transfer; use a delta whenever one is available for the version currently installed. Keep the phone near the scooter until the transfer has finished. The scooter then uses the normal installation and restart process.

The receiving side must already run Librescoot 1.2 or newer. Reaching 1.2 for the first time, installing maps and routing data, changing channel without a network connection, and recovering a broken update still use USB or another available update path.

USB: maps, recovery and manual installation

Use Update Mode when no suitable Bluetooth delta is available, or when you need to install maps, recover the scooter, or move an offline scooter to another channel. A detailed step-by-step guide is on Update Mode. The process in short:

  1. With the scooter parked, open Menu → Settings → System → Update Mode….
  2. Open the footwell with a PH2 Phillips or H4 hex driver, release the retaining screw, and disconnect the internal DBC USB cable from the MDB's Mini-B port.
  3. Connect your laptop to that port. The scooter appears as a removable drive.
  4. Copy the downloaded .mender or .delta firmware file into the drive's system-update/ folder.
  5. Eject the drive cleanly, then leave Update Mode.
  6. Disconnect the laptop, then reconnect and secure the internal DBC USB cable.

The same drive also accepts offline map files and uncompressed .tar routing archives. 1.3+ zstd-compressed .tar.zst routing archives are supported as well. The Update Mode guide explains which files to use. Current firmware versions are on the changelog page or directly in GitHub Releases.

With a SIM card: automatic updates over the mobile network

If your scooter has an active SIM card, Librescoot can handle updating entirely in the background. By default the scooter then checks every six hours whether a newer version is available, downloads it if needed, and installs it, all without any manual action from you. How often it looks is adjustable on the display, see Update settings on the scooter.

On a bad connection, partial download data is retained, the transfer resumes when conditions allow instead of starting again from zero, and ordinary retries back off after failures.

1.3+ If a download stalls or exceeds its transfer budget, that retry delay persists across scheduled checks. A later scheduled check may therefore wait before transferring again.

What you see on the display

While an automatic update is running, an extra icon for the current step appears in the top right of the status bar. During download and installation, a percentage progress value sits next to it, so you can tell that something is happening in the background.

If the scooter is in standby and the display would otherwise be off, a dedicated black screen takes over during the update. It shows a loading indicator in the center, a short status message like "Downloading updates..." or "Installing updates...", and a progress bar. At the bottom of the screen, "stand-by" indicates which state the scooter is currently in.

A manual update over USB looks different. What that looks like and how the process works is described on Update Mode.

The status bar shows the current step and its percentage.
The standby screen during an automatic update.

During an automatic update

Updates don't block normal operation. While a download or an installation is running, you can keep riding, stop, lock, and unlock again. The scooter only briefly delays actions that would trigger a state change: about fifteen seconds during download, up to one minute during installation. That gives the active step time to finish cleanly before the scooter moves on to the next state.

When a new version actually becomes active

Regardless of whether an update came over USB or over the mobile network, the new version only becomes active at the next restart of the respective component.

  • The MDB (the main computer in the footwell) restarts itself automatically once installation is complete, as soon as the scooter has been in standby for about three minutes straight.
  • The DBC (the display computer behind the handlebar) restarts itself once the scooter reaches a safe state, such as standby or park mode.

In both cases, the new version is automatically active the next time around. With the brake-lever gesture in park mode (hold both brake levers for three seconds), you can check the currently installed versions in the version box at any time.

Release channels: Stable, Testing, Nightly

Librescoot is published in parallel across three channels:

  • Stable is the recommended version for everyday use and the normal choice in the Installer.
  • Testing gives riders new features early, at the price of the occasional rough edge.
  • Nightly builds the current development state every day. Expect serious problems here, and be ready to recover manually if needed.

You can tell which channel you're currently running from the version number in the version box. Online, switch with Menu → Settings → System → Updates → Switch Release Channel or the lsc CLI tool. A channel switch pulls a full image, so give it time and a decent connection.

Offline, download an artifact from the channel you want and install it through Update Mode. If no explicit channel override is configured, the updater infers the future channel from the installed release.

Update settings on the scooter

1.3+ The update settings live on the display under Menu → Settings → System → Updates. You no longer need lsc or an SSH session for any of them.

  • Check Frequency: how often the scooter looks for a new release. Off, 6h, 12h, 24h, 3d, or 7d. The default is 6h. Off switches the scheduled check off entirely, so the manual check below becomes the only way an update is ever found.
  • Check for Updates Now: looks immediately, and the row shows how long ago the last check ran.
  • Change Update Type: Delta or Full. Delta transfers only what changed since the installed release and is the sensible choice on a metered SIM. Full always fetches the whole image.
  • Switch Release Channel: Stable, Testing, or Nightly. Switching means a full image download, so the entry is a list you confirm rather than something you can cycle past by accident.

Each of these settings applies to the scooter as a whole, so both computers stay on the same channel, type, and schedule. If the settings were changed outside the menu and no longer match, the row shows "Diverged" instead of a value; picking any option applies it to both again. Switching the release channel through this menu needs an internet connection; offline, use a firmware package from the wanted channel in Update Mode instead.

If an update fails

If something goes wrong with a USB update, you can simply try again from the start. The guide on Update Mode describes the process in detail.

With an automatic OTA update, the scooter shows an error icon in the status bar if the download or installation didn't complete. The scooter keeps working as before and the old version stays active. Partial download data is retained and ordinary retries resume later. 1.3+ After a stalled or budget-aborted download, the retry delay also persists across scheduled checks, so a later check may wait before transferring again.

If an update has visibly broken something, or the update function itself stops working, the fastest way forward is usually to reflash the affected board: either through Update Mode or with a full installation through the Installer, which can also recover a system. Help for your specific case is available on Discord.

What changed compared to scooterOS

The update mechanism is part of Librescoot. What's different compared to the original firmware is summarized on Changes from scooterOS.