For simplicity and convenience, the Pro2, Pro and 1s generators were merged into one gen, based on DRV155, which proved to be most stable and reliable.
Following this merge, some additional parameters were added.
On the top of the page, you can find direct links to original ZIPs, should you need to revert to an original state (for warranty purposes, etc.)
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.
The scooter won’t enter into charging mode based on BMS’ communication. You can tell by the beep sound it makes when charger is connected. The default behavior is to prevent accidental accelleration in this mode, however when another battery pack is connected in parallel through the charging port, it prevents any sort of riding. Should be disabled only if needed.
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
Self explanatory, check if you have Mi 3 or Pro2/1s and lock icon doesn't appear.
Use the Reset button to get back to original settings
This changes the displayed wattage values,
but it also enables BMS emulator, and prevents error 21 from happening with custom battery packs. Be sure to short RX/TX (marked R and T) pins on the esc first (currently only implemented for Max)
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.
Power limit 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)
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.
Changes the way the throttle reacts:
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. This parameter is applicable only to speed based throttle, in DPC it's ignored.
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.
Use the Reset button to get back to original settings
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.
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.
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.
Sets the flashing frequency for rear light in flashes per minute.
By default, the rear red light will blink when the brake lever is pressed. Check this to keep that from happening.
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.
Self-explanatory, disables beep, signalling the activation of cruise control.
With this enabled, the scooter will be always on in lock mode, with blocked motor to prevent theft.
Check this if you want to apply the cooked firmware to M365 classic, with 4-dot display. This will also enable extra Sport mode for this model, indicated with both green and white LED being on.
Enable this only if you used open source BMS, as detailed on BoToX github.
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.
9.47 for XuanCheng tires
9.1 for Wanda P1237 tires
9.0 for Deli SA-206 tires
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.
Disables BMS UART communication, thus prevents DRV from entering into error 21 or 24 state, and subsequent scooter slow-down. However no BMS data will be processed.
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.