Ninebot ES/SNSC Custom Firmware Toolkit

Disclaimer

Configure your own custom firmware by adjusting the options below.
There are safety checks in place to ensure your scooter will not be bricked.
Be aware that a higher motor power will shorten the lifetime of your battery and could damage your motor.
By default nothing will be patched, enable patches with the "Patch?" checkbox next to them.
Please remember that ScooterHacking.org or its members can not be held responsible for any damage you may cause to yourself or your scooter.
The software is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement.
In no event shall the authors or copyright holders be liable for any claim, damages or other liability, wether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other other dealings in the software.


1.3+ is recommended over 1.2.0, because you most likely won't have to downgrade the BMS.
Select ZIP if you want to flash using NinebotFun / ES DownG.
Select Encoded bin if you want to flash using Ninebot-Flasher / py9b / NineRift.
Select Bin if you know what you're doing. Don't flash that file.
Speed in km/h at which the scooter will start braking on it's own when the motor is not active.
You will still have recuperative braking when using the brake lever.
If you want "KERS OFF" then just put this to 40km/h.
Disabling KERS might result in failure of the control board and in injuries caused by strong braking. (...)
At which factor the KERS strength is divided.
Only 6 and 2 are available to prevent bricks.
The scooter will stay below this speed. Use it if you're running at limited speed even in Sport mode.
How many seconds it takes for cruise control to kick in.
Minimum speed in km/h before the motor will start.
Lower = More power. Too much power is not recommended for battery and motor life.
Modifying this value without knowing what you're doing will surely break your scooter.
For 10" wheels use 315, don't change otherwise. Experimental!
Makes the version number higher to prevent updates from the Ninebot app. Updated!
Enables the SWD interface, allowing real-time debugging using ST-Link. Testing!
Allows the scooter to run on any battery without the need of a Ninebot BMS. Experimental!
Warning: the scooter won't provide any info on the current battery state, voltage, or remaining capacity.
Instead of speed-based, the throttle will work on a power-based algorithm (like in a thermal engine vehicle).
Max speed is ignored if you enable this.
Disables auto shutdown when the scooter is locked so it stays on forever. Updated!
ESC will ignore input from the charging line, scooter will be rideable during charge. Useful for non-official external batteries.
Only if you use the nonexistent compatible open source BMS!
Make sure to double check all of your entered values before submitting!

⚠ NEW The tool now makes .zip files with both encrypted and unencrypted firmware and an info.txt inside.
⚠ NEW Use the following Windows app made by majsi to flash your modified firmware: Ninebot-Flasher
⚠ NEW Use the following Android app made by CamiAlfa to flash your modified firmware: ES DownG

Source code on GitHub