Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

Documentation of Xiaomi controllers made by Gabriele Russo for the Xiaomi community for free, do not pay

anoyone for this file. If you want to donate you can do it here: www.paypal.me/gabryr96
_________________________________________________________________________________________

Xiaomi M365 controller hardware mods from 10s to 20s


As my older messages got lost, I’m re uploading the photo and pictures in this
PDF to have things more sorted.

Introduction (README)
This document includes a lot of info about physically modding the m365 electronic speed controller (ESC) and
other useful tips to avoid burning things, read it all please.

C0 is the big capacitor that we call BULK (or sometimes LINK) capacitor, this is used to smooth the voltage during
current peaks both in braking and accelerating situations.
READ NEXT ONLY IF YOU KNOW A LITTLE BIT OF BASE ELECTRONIC
This cap needs to be calculated using a “pretty simple” formula, coming from the definition of current, voltage,
capacitance and charge, going short the formula is C = I * t / V where I is the inrush current, t is the time duration
of the pulses charging/discharging the cap and V is the maximum allowable voltage drop. That is the bigger C0 is
the smaller the voltage drop during peaks will be, simple as that.
I did some measurements and based on my usage a 2200uf would be the minimum to use for 30 to 50A
continuous current. Anyone is free to use the value he want’s anyway, but you now know how to calculate that
cap.

Are you using this document to repair or sell controllers/parts? think about making a small donation
www.paypal.me/gabryr96

Board 1.4 and 1.5


With this board you can run from 10s (36V) to a maximum of 13s (46,8V) without trace cut.

- C01 original 63V cap


- C0 63V 2200uF/1000uf nichicon PW or nippon KY preferred;
- MOSFET: NCEP85t14, NCEP85t15 or similar ones, even ncep6990 or other original mosfet if firmware current is
under 25A;
- (OPTIONAL) R46 120k to 180k, 0603 resistor
- (OPTIONAL) R28 130K to 390K, 0603 resistor

C0 is the big cap, C01 is the smaller cap under C0.

Original 2.1 and good 2.1 clones


This is the “new” board that come out with the m365 pro model, they now sell them on aliexpress as 3.0 but in
reality is like the one in the picture below, a 2.1 board without silk screen.
This board, if original, is usually capable of working up to 13s without any mod, but I always suggest to reinforce
copper traces with solder or to use some copper wire to reinforce the traces if current over 30A are used.

All resistors mentioned are 0603 size

Capacitors and mosfets:

-----------------------------------------------------------------------------------------------------------------------------------------------------
t.me/EscooterTech t.me/M365bateria10s Thanks to @thefixer2020, @paolo_vlc, skuudiero.it 1
Documentation of Xiaomi controllers made by Gabriele Russo for the Xiaomi community for free, do not pay
anoyone for this file. If you want to donate you can do it here: www.paypal.me/gabryr96
_________________________________________________________________________________________
• Up to 13s
o -C01 original
o -C0 63V 2200uF/1000uf Nichicon PW or Nippon KY preferred, or use original
o -MOSFET NCEP85t14, NCEP85t15, or similar ones
• Up to 19s
o -C01 47uf or 33uf 100V preferred Nichicon PW series
o -C0 2200uf 85V with low esr and high current ripple, at least 2A
o -MOSFET NCEP85t14, NCEP85t15 or other available mosfet with 80/85V, < 150nC gate charge
and RDSon <= 4mohm
• 20s
o C0 100V 1000uf or 2200uf, low ESR, high ripple current
o C01 47uf or 33uf 100V preferred Nichicon PW series or equivalent
o MOSFETs NCEP01T18, IRFB 4110, CSD19536 or any other decent MOSFET capable of that
voltage/current, watch for RDSon and gate charge.

Do you want to use a variable voltage, like from 14s to 20s? skip this part and read the TRACE CUT paragraph at
the end of this PDF, if you know the exact configuration you are going to use then keep reading.

• 14S-15S :
o R44 4.7k or R41 130-140k
o R30 33k
o Voltage multiplier in app: around 1.4
• 16S-17S:
o R44 4.3K or R41 150-160k
o R30 36K
o Voltage multiplier in app: around 1.6
• 18-19s
o R44 3.6K or R41 170-180k
o R30 39K
o Voltage multiplier in app: around 1.8
• 20s:
o R44 3.3K or R41 200k
o R30 43K
o Voltage multiplier in app: around 2.0

-----------------------------------------------------------------------------------------------------------------------------------------------------
t.me/EscooterTech t.me/M365bateria10s Thanks to @thefixer2020, @paolo_vlc, skuudiero.it 2
Documentation of Xiaomi controllers made by Gabriele Russo for the Xiaomi community for free, do not pay
anoyone for this file. If you want to donate you can do it here: www.paypal.me/gabryr96
_________________________________________________________________________________________

2.1 “bad” clone and 3.0 clone


Those are usually recognizable because they use no marking at all on the boards and sometimes they write “sco-
Driver_v3.0” but it’s actually a V2.1 without the silkscreen layer marking the components. For those board you
need to be careful and check: C11,C3A/B/C as well as C0 and C01 if you are going to reuse them.
You can easily spot a 50V SMD cap (C11 and C3X) because they are smaller than usual, in that case you need to
replace that caps with some 100nF 100V x7r caps, size 0805.
Take as reference the picture before, and use the same guide as for original 2.1 boards but making sure that
every component you are replacing is the same value as follows:
R30 = 22k (marked as 223)
R41 = 100k (marked as 01D or 104)
R44 = 6.2k (marked as 622)
R43 = 100k (marked as 01D or 104)

3.0 original board and good clones


This is the last board from Xiaomi at the moment of writing this document, it’s basically the same as a v2.1 but
with copper reinforced traces from the store, I suggest anyway to check the soldering jobs and to adjust where
needed or to add other reinforcements if really high current are used. This board laks the presence of a
silkscreen too but in the lower photo are displayed the main components you need to change, and they are
easily identifiable using the position and the marking on top of them.

As usual make sure the original values are the same as the following and read the “2.1 original board” paragraph
for the resistor, caps and MOSFET values.

R30 = 22k (marked as 223)


R41 = 100k (marked as 01D or 104)
-----------------------------------------------------------------------------------------------------------------------------------------------------
t.me/EscooterTech t.me/M365bateria10s Thanks to @thefixer2020, @paolo_vlc, skuudiero.it 3
Documentation of Xiaomi controllers made by Gabriele Russo for the Xiaomi community for free, do not pay
anoyone for this file. If you want to donate you can do it here: www.paypal.me/gabryr96
_________________________________________________________________________________________
R44 = 6.2k (marked as 622)
R43 = 100k (marked as 01D or 104)

Pre-charge cable (to avoid sparks)


When connecting the battery, specially on more than 10s ones, you need to use a cable with a resistor in it to
avoid a burst of very high current that will burn your connector and can sometimes mess up your freshly made
circuit. To do that you just need a pair of connectors (two xt30 in the picture) some wire and a 100ohm to 270
ohm 1-3W resistor just use what you find in that range.

Once you made your “special” cable then connect it to the battery and to the esc and wait for a couple of
seconds, then you can unplug it and plug in the battery without the precharge cable. Note that if you wait too
long from when you remove the precharge cable and when you plug back the battery then the capacitors may
discharge again and it will spark, so be fast.

-----------------------------------------------------------------------------------------------------------------------------------------------------
t.me/EscooterTech t.me/M365bateria10s Thanks to @thefixer2020, @paolo_vlc, skuudiero.it 4
Documentation of Xiaomi controllers made by Gabriele Russo for the Xiaomi community for free, do not pay
anoyone for this file. If you want to donate you can do it here: www.paypal.me/gabryr96
_________________________________________________________________________________________
Apps, firmware and BMS emulation
If you are using the resistor mod and you don’t have a smart BMS you need to use a firmware that allows BMS
emulation to read the battery voltage. Set the BMS emulation to 10s and voltage limit to 60V, now you will se a
battery reading in the apps and on the display but it’s wrong in the app as it’s reading a scaled down value, so I
suggest you using the M365DashBoard android app go into the settings and use the voltage multiplier specified
before, this way you will obtain voltage, current and power reading more or less accurate.

Wanna use a esc without a compatible bms and don’t care about the voltage reading? Then use the free
firmware made by ScooterHacking crew, I suggest to try the “testing” firmware you can download trough their
ScooterHacking Utility app.

3D printed parts
On my Thingiverse page you can find a lot of m365 related objects to print, for free!
thingiverse.com/gabry96/designs
as usual if you sell those for a profit make sure to make a donation www.paypal.me/gabryr96

Trace CUT mod


Sorry but I don’t find the pictures of this mod, I will do it when I will have time.

Frequently Asked Questions (FAQ)


1. If I do this “resistor mod” can I use the esc from 10s to 16s?
NO, there is a specified range for a reason, resistor in the 14/15s range work just with 14s and 15s
batteries, you actually can’t use a lower or higher voltage battery without risk of damage or the
possibility that the scooter won’t turn on. You need to change different batteries on the same ESC? Use
trace-cut mod and not resistor mod.
2. And from 14s to 20s?
NO, the answer is the same as before.
3. Do I need trace-cut to use 20s with a 2.1 or 3.0 ESC ?
NO, you don’t need a Trace-Cut mod if you are going to use it just for 20s battery, just follow the
tutorial.
4. What happens if I use my controller at 14s or 15s without any mod?
Technically speaking for voltages over a 56V you are giving more than 3.3V to the ADC of the MCU and
that’s bad for it, probably you won’t notice anything but the MCU ADC is slowly degrading till the point
it stops working completely or the MCU itself could die causing huge problems when riding. Don’t say “I
did it and it works”, read the datasheet of a stm32f103c8t6 instead.
5. Why there are two resistors to choose, R44 or R41?
Because I usually changed R44 but people were finding R41 on other groups/pages so they got
confused, actually is a voltage divider so doesn’t matter which one you change, the result is the same,
now I calculated and placed both resistor in the guide so you can change one or the other NOT BOTH.
6. Do I really need a 2200uF capacitor?
That’s called “bulk capacitor” and it’s main purpose is to act as a small reservoir NEAR the load to
smooth out the peaks allowing for a lower voltage drop on the battery during those inrush. The bulk
capacitor could be made of a single capacitor or of a bank of capacitor placed one next to each other,
for example placed directly near the mosfets.
Those caps need to be electrolytic caps made for switching and power applications, this ensures they
have a low enough ESR and will be able to sustain the current flowing during “hard moments” like when
you are braking.
-----------------------------------------------------------------------------------------------------------------------------------------------------
t.me/EscooterTech t.me/M365bateria10s Thanks to @thefixer2020, @paolo_vlc, skuudiero.it 5
Documentation of Xiaomi controllers made by Gabriele Russo for the Xiaomi community for free, do not pay
anoyone for this file. If you want to donate you can do it here: www.paypal.me/gabryr96
_________________________________________________________________________________________
One may think “why don’t you put more ceramic caps near the mosfets as they have way lower ESR?”
To be short the bulk capacitor need to be bigger enough to store enough charge to smooth the peaks
and also need to have a not too low impedance or it will start a sort of resonance creating more noise,
ceramic caps are used in smaller values for decoupling purposes.
Calculating a bulk cap is easy, Coulomb = Ampere * Seconds and Farad = Coulomb / Voltage so F = A*s/V
where A is the inrush current of the load, s is the time duration (in seconds) of the commutation and V is
maximum the voltage difference we want.
7. What’s the max speed I will reach at 20s?
it depends, with a single 300W or 250W don’t expect more than 55km/h
8. Will my gouse catch fire?
of course
9. Will I get shocked if I touch the 42V or 80V battery?
NO, up to 50V DC it’s pretty safe for everyone, from 50V up some people may be more sensible but the
risk of death even at 84V (20s) it’s pretty low, anyway if you don’t know your skin resistance to
electricity then use a simply pair of latex or work gloves.
10. Is it legal to mod the scooter ESC?
well it depends on your country rules, here in Italy it’s legal if the nominal power of the motor is under
500W, as long as it’s like that I can mod everything else.
11. Does the backlight and front light work with 20s?
yes they do, the work at 5V and that’s always provided by the internal buck converter.
12. Why I don’t see the voltage on the app?
you are probably using a scooter with a after market battery, you need to install a firmware with BMS
emulation and then, if there is a resistor mod, you need to use a voltage multiplier in the app to match
the real value.

Version history
Version 0.1 – 05/09/2021 (file created)

-----------------------------------------------------------------------------------------------------------------------------------------------------
t.me/EscooterTech t.me/M365bateria10s Thanks to @thefixer2020, @paolo_vlc, skuudiero.it 6

You might also like