September 21st, 2023
In the case of a bricked ESC/Controller/Control Board, STLinking can save the controller from needing to be replaced in some instances.
This method also is capable of downgrading versions like DRV 1.8.7 and DRV 1.8.8.
This page shows how to STLink the 2nd gen ESC/controller based on the Artery AT32 chip that comes on 2022 maxes and newer and has screw terminals.
For this process, you will need:
This process can be dangerous if done incorrectly so take caution when performing these steps and make sure you use a computer you are comfortable possibly destroying.
If you short a battery line you could end up blowing up your STLink, Computer, and more or even causing a fire.
For the Ninebot ESX Series/SNSC 1.0, use the guide at STLink Ninebot ESX ESC.
Check out the difference between the Ninebot Max ESC Generations and use the steps below depending on which one you have.
There are 3 different board layouts.
Click the image above to go to the guide that corresponds to your model.
Start by removing the 18 Security Torx T-15 screws on the bottom.
The locations of the 18 screws.
Using an M4 Allen/Hex wrench or bit, remove the two screws holding the ESC in place.
This is a Gen 1 ESC but the Gen 2 will be in the same place.
Carefully unplug each of the connectors.
You may need to scrape more rubber potting compound away from some of the connectors in order to unplug them.
Remove the black shell from the ESC, and take the outer clips off first in order to slide the shell out from under the upper lip.
4 clips hold the shell on.
Once removed, locate the debug pins.
The pins are located opposite of the white connectors and battery connector.
Connect the pins to the STLink as shown:
The pinout for the STLink for the data pins.
Download ScooterHacking ReFlasher from the ScooterHacking website.
Install it and open it.
Once installed, open the software and change your model to Ninebot Max.
The correct model selected in reflasher.
Make sure you have ‘AT32’ selected as the chip or you will brick your esc.
To show the console (helpful for debugging errors), press settings -> show console.
The correct MCU selected in reflasher.
Fill out your serial number and current mileage and press ‘Launch Recovery’.
Press launch recovery then check the console for any errors.
Check the console to make sure there were no issues flashing.
A successful flash indicated by no errors in the console.
Remove the STLink and plug back in the ESC and use ScooterHacking Utility to check that your version number is now 1.6.13 or 1.7.3.
The downgrade was successful as shown here by the version number.
The second picture in this guide is incorrect and not on this new controller. Please correct, thank you.
Feel free to send a better image, I don’t own a gen 2 max so I can’t take one myself.
The caption pretty explicitly explains this caveat if you read it.
Hey joey, great documentation
I’m about to follow it tonight. Just wondering if there is a chance I cound bust the controller. If I do is it fixable or would I need a new one?
Depends on how you break it, if you make sure to be careful and clear the capacitor before attempting then shorting isn’t really a big worry. That’s pretty much the only way to really mess up an esc, flashing the wrong firmware can still be fixed by using an stlink again.