An alternative ebike app.
Join the Discord
iOS Download
·
Android Download
·
Bug Reports
Features:
- No account or internet connection required
- Quickly switch between multiple bikes
- Automatically connect to one auto-connect bike when the app opens
- Mark values as Set on connect so they are reapplied and confirmed while the app is open
- Open source
- Power on your bike and choose
Add bike. - Allow the Bluetooth access needed by your operating system.
- Select the bike found nearby, confirm its name and region, and save it.
- Use Bike Control for immediate changes. Open Bike Settings to choose which
Set on connectvalues Superduper should apply on future connections.
The first saved bike becomes the auto-connect bike. On later launches, Superduper connects to
that bike directly, applies its Set on connect values, confirms them, and reports
Ready to ride without requiring Bike Control to be opened. With multiple
bikes, use Auto connect to choose the one that connects on launch.
Bike Control sends changes immediately and confirms the resulting state before
showing it as ready. These live controls do not edit Set on connect. Bike
Settings stores the separate, fixed values to apply whenever that bike connects.
Light is off when the bike starts, so enabling its option means turn it on;
Mode and Assist each expose an explicit value selector.
Protocol objects own every V1/V2 wire difference: register selection, decoding, command encoding, GATT transactions, odometer behavior, and confirmation rules. The bike session owns connection lifecycle, bounded retry, and the observed and pending control state.
Live controls and Set on connect both use a typed control patch. The patch owns how selected fields are applied and compared, so retry and transport code do not need field-specific branches. Tests can inject a connected protocol object directly into a session without reproducing protocol behavior in fake GATT.
If your bike has them, this toggles your bike's lights on and off.
Changes the legal category your bike will operate at. PAS is Pedal Assist System, which means the motor will only run when you are pedaling. Throttle means the motor will run when you press the throttle, regardless of if you are pedaling or not.
Note: the mode setting means different things on different bike models. The table below may only match the early RX/R models.
| Mode | Class | PAS | Throttle | Speed Limit |
|---|---|---|---|---|
| 1 | 1 | Yes | No | 20 mph |
| 2 | 2 | Yes | Yes | 20 mph |
| 3 | 3 | Yes | No | 28 mph |
| 4 | Off-Road | Yes | Yes | No Limit |
| Mode | Class | PAS | Throttle | Speed Limit |
|---|---|---|---|---|
| 1 | EPAC | Yes | No | 25 km/h |
| 2 | 250W | Yes | No | 35 km/h |
| 3 | 850W | Yes | No | 45 km/h |
| 4 | Off-Road | Yes | Yes | No Limit |
Changes the amount of assist your bike will provide while pedaling. 0 is no assist, 4 is full assist. This does not affect throttle power.
Make sure your bike is on and your bluetooth is on. If you're on Android, make sure the app has location permissions. If you're on iOS, make sure the app has bluetooth permissions. Additionally, on some devices GPS needs to be enabled for scanning to work.
Make sure only one app is connected to the bike at a time. If you have the official app open, disconnect from the bike within the app, and close it. It can also help to uninstall the official app.
You can also try restarting the bike and your phone.
Finally, older (or newer) bike firmware may not be supported. Make sure your bike firmware is up to date from the official app.
Bike Settings stores a fixed choice for each enabled option. On each connection,
the auto-connect session reads the bike, applies those choices once, and reads
again before reporting Ready to ride. Live controls and the bike's physical
controls do not change the saved choices, and their changes remain in effect
until the next connection. Closing or backgrounding the app pauses the
connection; reopening it resynchronizes the auto-connect bike.
Android 12+, iOS 15+.
So far, all bike models have worked. Open a ticket if your model is having issues!
Superduper can only add automation around what the official app already does. It cannot, for instance, program the controller. This is the job of the firmware, software that runs on the bike itself. Check out the CFW site for that.
I'm sorry! Please start by making sure you have the newest app from the app store. After that, please submit the issue to https://github.com/blopker/superduper/issues. It helps to have a way I can reproduce the issue, with screenshots or video. Alternatively, you may have luck either clearing all the app's data or reinstalling it.
- Update version, save. Don't commit.
- Run
make release - Update release notes at provided URL.
- Upload aab to https://play.google.com/console/u/0/developers/6048825475784314007/app/4973912181639360195/tracks/internal-testing
- Upload ipa to the Transporter app
- Release Android on Play store
- Release iOS on https://appstoreconnect.apple.com/apps/1665290602/appstore/ios/version/inflight