
(Before doing this whole procedure, try and see if you are one of the lucky few who got an already Bluetooth enabled dashboard. Go right ahead to the step where you download the ESDownG app and test if you can connect. If yes, then just generate your Custom Firmware and flash it with the app, if not, well, good reading and happy disassembly!)
MATERIAL NEEDED

- A disassembled ES2/ES4 Ninebot Dashboard (procedure below)
- A soldering iron and some tin
- A ST-Link V2
- Also long Allen and Hex screwdrivers
(You can get all of this for cheap on Amazon if you don't want to wait for long Alliexpress shipping)
DISASSEMBLY PROCEDURE



(imgur post: https://imgur.com/a/xJSWI1c to zoom on pics)
Screens taken from the original video here: https://www.youtube.com/watch?v=bTMKUIi2EJY
SOLDERING

Connect each cable to your ST-Link.
Each pin's function is normally written on the dongle.
You need to connect the SWD GND cable soldered on the dashboard to the SWD GND pin on your ST-LINK, same for SWD CLK, SWD IO, etc...
You will have 4 cables all in all. Don't forget to remove the C15 capacitor and clean the contacts to avoid shorts.

NOTE: Pay attention to what's written on your ST-Link, you will not necessarily have the pin's functions in the same order, so you'll need to link them accordingly. Also, regarding the VCC/3.3v cable, you only need to attach it to ONE pin, choose one of both.
Since moving your ST-Link around is likely to break your soldering, it is highly recommended to use a USB extender.
Now plug your ST-Link.
SOFTWARE NEEDED
(22/09/2021: updated by Lothean, fixed dead link)
ST-Link V2 drivers (install them):
[Download]
(mirror if Mega link is down) [Download]
ESx dashboard flash software:
[Download] (edit by Lothean)
Unzip the archive and run "flash_BLE107.bat"
Read carefully what's written on the screen and follow instructions if necessary.
If the flash was successful, it should be indicated.
Done! Now it should be using original Ninebot firmware.
The dash has now been converted successfully to a real OEM dash!
Re-install your dashboard following the disassembly procedure inverting all the steps. You should have a Bluetooth flashing icon on your dashboard when reconnecting it. Leave it like this.
You can skip all previous steps if you buy an OEM dashboard/if your dashboard is already OEM
US link for verified OEM-compatible dashboard:
[Buy on eBay - Seller: ScooterClone]
Now, go to https://ninebot.scooterhacking.org/
Accept the warning box message.
Let all "Patch!" boxes unticked, do not change anything else to get the most optimized configuration.
Click the Patch! button and download your custom firmware.
Download it to your phone with GoogleDrive or e-mail or whatever.
Download the Bluetooth flashing android application on a 4.0 Bluetooth enabled Android phone:
[Get ES_downG]
(APK mirror if app gets removed)[Download]
Install and launch the app. Make sure your dashboard is still turned on with the flashing bluetooth icon.
Hit the Connect button on the app.
You will get this:

then hit Open bin. Find your custom firmware named DRV(something).zip Make sure it is in ZIP format and that you haven't decompressed it.
When you have loaded the .zip file. Hit the Flash bin button. Wait for the flash to be done; When it says all done, hit the Disconnect button to free the bluetooth communication canal. Download and install the Official Segway Ninebot app:
[Get Segway-Ninebot app]
DO NOT UPDATE TO THE LATEST FIRMWARE, always click the "Later" button.
(Unless you really do want the latest official firmware, but be aware that this will lock the speed limit of your Ninebot to 25km/h and potentially prevent downgrade if any future update decides so).
You can now rename your Ninebot, change the lights, view mileage, etc...
Enjoy!