Supported scooters: SO1, SO4 Pro Gen3, SO4, SO4 Pro Gen2, SO4 5.1, SO4 5.2, SO myTier, SO2 Air, SO3, SO4 UL and SO6.

SOHacks app showing telemetry, ride modes and scooter controls
Learn more

Direct access to your scooter.

01

Speed Modifier

Speed values from 8 to 65 km/h, depending on the specific model and installed firmware.

02

Telemetry data

Live data such as voltage, current, battery level, speed, remaining range and other model values.

03

Ride modes & controller

Up to 256 ride-mode values and access to model-specific, undocumented controller mappings.

04

QuickBubbles

Create custom quick actions and combine multiple control commands into reusable workflows.

05

Simple map

A reduced map view for quick orientation and navigation while riding.

Model profiles at a glance.

Implemented

10 models
  • SO1
  • SO4 Pro Gen3
  • SO4
  • SO4 5.1
  • SO4 5.2
  • SO myTier
  • SO2 Air
  • SO3
  • SO4 UL
  • SO6

Not supported

6 models
  • SO ONE *
  • SO ONE Lite Pro
  • SO ONE Lite
  • SO4 Pro GT
  • SO4 Pro MAX
  • SO5.xx

What SOHacks does in everyday use.

SOHacks is an Android APK for supported SOFLOW e-scooters. The app connects directly to the selected vehicle through Bluetooth Low Energy. It displays available telemetry and brings compatible controls together in one clear interface. The values that can be read or changed always depend on the model, controller and installed firmware.

01

Connection and model profiles

After launch, the app scans for reachable BLE devices. The user selects a scooter and then chooses the matching model profile. That profile defines the commands and data fields used by the relevant protocol. Correct selection matters because addresses and supported values can differ between model generations.

02

Telemetry without guesswork

The cockpit combines speed, battery level, voltage, current, remaining range, trip and ride mode when the scooter transmits those values. Data comes directly from the controller. Missing fields are not invented. This makes it clear which information the connected model actually provides.

03

Testing changes carefully

Speed values, ride modes and controller mappings are specific to each model. Changes should be made one at a time and tested in a safe private environment. This approach makes it easier to identify which parameter caused a particular result. Known original values should be documented before an adjustment is made.

04

QuickBubbles and repeated workflows

Frequently used functions can be saved as QuickBubbles. They can be named, reordered and distinguished by color. Supported commands can also be combined into short workflows. Repeated actions therefore remain easy to reach without navigating through several settings screens every time.

05

Map, permissions and limitations

A reduced map helps with quick orientation. Bluetooth and location permissions are only required where Android needs them for device discovery or map functions. SOHacks does not replace maintenance or a technical scooter inspection. The app also cannot provide features that the hardware or firmware does not support.

Useful answers before you start.

Which Android version is required?

SOHacks has been tested on Android 9 and newer Android versions. Depending on the device and Android release, the required Bluetooth and location permissions may need to be granted manually.

Does SOHacks work with every SOFLOW model?

No. Only the model profiles listed on this page are implemented. Firmware and hardware revisions can still affect behavior on a scooter with the same model name. Current or unlisted variants should not be treated as compatible.

Why are some telemetry values missing?

Controllers do not all transmit the same data. Some values are available only in specific riding states or firmware versions. The app therefore displays information only when it is received from the connected scooter and can be assigned to the selected profile.

Can I return to an older APK?

Yes. Older GitHub releases are available through the arrow beside the download button. Back up app data and known settings before changing versions. An older app release does not automatically support every older scooter firmware version.

Why does the scooter not go faster even when, for example, 40 km/h is configured?

The configured value is only an upper limit, not a guaranteed speed. The ampere limiter often caps the maximum current the controller can deliver to the motor. More current produces more torque, but the controller, battery and firmware impose limits. A heavier rider, an incline or a headwind requires more torque. Once the current limit is reached, or the battery voltage is insufficient for a higher motor speed, the scooter stops accelerating. Battery charge, temperature, tyre pressure and firmware also affect the speed that can actually be reached.

How should I report a problem?

Report reproducible bugs directly on GitHub or discuss them in the RollerPlausch forum. Please include the app version, scooter model, firmware, Android version and the steps needed to reproduce the issue.

Disclaimer

This project is provided for educational and research purposes only.

The developer assumes no liability for:

  • Damage to hardware
  • Bricked controllers or batteries
  • Injuries
  • Legal consequences
  • Insurance loss
  • Warranty voiding
  • Malfunctions or unexpected behavior

Changing speed limits, motor parameters or firmware behavior may be illegal in your country or region.

Using modified scooters on public roads can result in:

  • Fines
  • Loss of insurance coverage
  • Vehicle confiscation
  • Criminal or civil penalties

You are responsible for complying with all local laws and regulations.
Use this software entirely at your own responsibility.
SOHacks is not an official SOFLOW app. SOFLOW is not affiliated with this project and is not involved in its development or distribution.

Questions or problems? Contact [email protected]