User Tools

Site Tools


M365 Pro 2 cooking guide

Detailed parameter description for M365 Pro 2 firmware generator

Download Scooter Hacking utility

This tab links straight to Google Play store. It is suggested to use SH utility for flashing the herein generated firmware.

In case your device does not come with Google Play or Google Service Framework installed, you can download the apk here:


This category contains suggested presets, set up by community. You can base your template on any of them, however it’s suggested to start from vanilla configuration.

You can also save presets in your browser or import/export them into a file


Base firmware version

Use DRV223 if you don't know what you're doing.

Remove 30km/h speed check

This will patch out new limitation imposed in 223/224 DRV that beeps when the target speed reaches 30km/h or more.

Remove charging mode

If you intend on using external battery through the charging on, turn this on. For all other uses, keep it off.

Version spoofing

Artificially inflates the firmware version number in order to prevent any official apps from unsolicited upgrading. No side effects are to be expected with sideloading different firmwares. Recommended

Power and Speed

Estimated draw

Current in the following rows should be thought as torque. More amperage means more torque, but also more stress on the components and motor, usually less range on single charge. It is suggested to start from factory values and proceed up only if necessary. 25A on Sport mode is already high enough that the motor cannot exert this level of torque for long without overheating. Bear in mind that the motor case temperature are only a fraction of the heat generated by coils, which are usually 50-60C hotter than the case.

Estimated draw is the 'older' setting for current. In practical sense, this would be the target current you'll reach during operation, with small fluctuations based on the current elevation or speed.

Current limit was previously known as phase current limit . This is the peak envelope power on the ABC phases, measured by the ESC itself. __Treat this as hard limit, and the estimated draw as soft limit.u When unsure, you can set this to 2-3 times of the estimated draw.

Recommended values (if you don't know what to do)

  • Sport - Estimated 25A, Limit 65A
  • Drive - Estimated 17A, Limit 65A
  • Eco - Estimated 10A

Max speed

Max speed is rather self explanatory, in speed mode, your max speed will be limited by this setting. The scooter never actually reaches this, due to various factors. Generally, 1km/h should be added here to reach the target speed, e.g. for 25km/h, set 26.

Direct power control

Changes the way the throttle reacts:

  • In speed mode, throttle position always corresponds to fractional value of the set max speed. This speed, especially with cruise control enabled, will be kept regardless of terrain or air resistance, also considering maximum current for set mode (eco/drive/sport)
  • In direct power mode, throttle position corresponds to fractional value of the max current/power set for said mode. In contrast, here the power remains constant, but the speed changes with the torque the motor needs to apply to keep you moving. This results in speeding up with low payload, low air drag or downhill, and slowing down with high payload, high air drag or uphill.
    • Direct power mode ignores any speed limits you might have set, including the global set limit.
    • Acceleration tends to be smoother, as the throttle reacts in a similar way to gas/accellerator pedal in combustion vehicles
    • In direct power mode, your scooter will try to reach the maximum speed possible, until set current limits are reached.
    • DPC mode can be disabled entirely, enabled through boot sequence with brake lever pressed (press the brake lever while turning on the scooter, and keep it pressed for 2 seconds until it’s fully on), or always enabled.
      • Since 5th March, there's also an additional method of activating DPC using shu app, Switchable, register option allows you to enable DPC in the app by activating DPC switch. It can also be automated through the Automation menu.
    • There are two response settings for the throttle – flat and quadratic
      • Flat makes the throttle response linear – e.g. throttle at 60% results in 60% of the max current set
      • Quadratic makes the throttle response, well, quadratic (or logarithmic if you prefer) :-) - 60% throttle will result in approx 40% of the max current set

Current raising coefficient

This setting controls how is the full current applied, relative to your active current. The idea here is not to stress the motor at low rotations per minute, where its efficiency is the lowest. 16000 is the allowable maximum.

If you limit the current limit to conservative values, you can max this out, to get current-accurate DPC.

Motor start speed

Motor will not exert any torque unless this speed is reached. Please note that even when this is set to 0, the scooter won’t accelerate from dead stop. Minimum speed here is >0.01kmh represented by the value “0” on the slider.

Braking & Energy Recovery

Brake lever parameters

Lever virtual limit – modifies the linear response of the brake lever in such a way, to apply the maximum value sooner based on relative position of the brake lever. 130 results in fully linear response, 0-100%, 85 reaches the maximum braking power at about 70% of the brake lever range.

If you have separate lever or thumb throttle for ebrake, set this to maximum to get the best dynamic range, otherwise keep to 75-100 with combined levers.

Minimum and Maximum phase current

Sets the strength of how your brake will be pulling. It is advisable not to go over 30A, as there are reports of broken controller boards due to regenerative braking. Furthermore, there is a limit to how much braking can be achieved per system voltage. Going over this limit means the scooter will try to brake by applying current instead of regeneration. This can stress the components excessively, and shouldn’t be used in other cases except emergencies. More braking power can be unlocked by raising system voltage to 48V or beyond.


Disables automatic braking when no acceleration is applied. Recommended, as the default automatic braking has no significant advantages, and only results in applying throttle more than necessary. Furthermore, small current is applied when the scooter is moving even without any throttle set. This can help with coasting, as the static magnetic forces of the motor are overcome, which would normally cause drag.

Current raising coefficient

Again, same as with adding torque, this controls the relation of the braking current applied to the speed you’re moving. Lower setting might help with finding balance between good downhill speed and regeneration, while higher values will pull more current faster, leading to quicker stop.

Brake light mode

Changes the way the rear light reacts to braking

  • Default - No strobe on drive, strobe on braking
  • Static - ON all the time - no matter lever position
  • Reversed - No strobe on braking, strobe on drive
  • Strobe - Always strobe

Brake light flash frequency

Sets the flashing frequency for rear light in flashes per minute.

No brake light flash on throttle release

By default, the rear red light will blink when the brake lever is pressed. Check this to keep that from happening.

Cruise control

Cruise control delay

Sets the time until cruise control is applied, when the throttle is kept at the same position. After the beep, your speed or power will be kept constant, until you touch the throttle again, or apply brakes.


Error raising level

Check this guide for what errors will be raised with the applied settings:

Stock, unmodded scooter should have this set to level 0.
If you have higher voltage battery with no “smart” bms, set this to level 2 to prevent ESC from triggering error 21
Level 3, known as stealth level bypasses all errors. Not recommended for general usage

Stay on when scooter is locked

With this enabled, the scooter will be always on in lock mode, with blocked motor to prevent theft.

Change ESC-BMS baud rate to 76800

Enable this only if you used open source BMS, as detailed on BoToX github.

Wheel size diameter

Keep as is, if you use stock 8.5” tires. This directly affects speed limits set earlier, and should be set only in case 10” tires were put on.

Set to:
9.47 for XuanCheng tires
9.0 for Wanda P1237 tires
9.0 for Deli SA-206 tires

Battery voltage limit

Change this only if you increased battery voltage. The threshold should be maximum 4.3V per cell.

So 51.6V for 12s, 55.9 for 13s, 60.2V for 14s and 64.5 for 15s.

Time to cook

Select the output format based on the flashing app you use, and then click Download ZIP

Congratulations, you have successfully cooked your custom, tailored firmware. Now load it in Scooter Hacking utility, DownG or XiaoFlasher (deprecated) and enjoy

guide-pro2.txt · Last modified: 2022/01/15 01:36 by