I had the hard brake issue with my electrical scooter (Xiaomi Mijia M365 Pro) that fried some MOSFETs and board circuit paths of the scooter controller, then I changed the original MOSFETs to similar ones, fixed the board paths and tested. This fixed the problem, but to prevent from happening again I had to use some heat pads on the MOSFETs and set the KERS to weak.
I have my scooter for a while now (since Jun of 2019) and like any DIY, hacker or curious person I uploaded a Custom Firmware (CFW), it felt very nice to ride the scooter with a little more power and with the maximum speed of 34km/h (stock firmware is 25km/h).
I rode more than 2,000 km and had only one issue with the scooter controller that I will teach you how to fix and how to prevent that.
After this fix I’ve been riding for more than 2 years without any problem.
PS.: If you want you can download my CFW from clicking here
One day back in 2019 I was happily riding home with my firmware modified scooter M365 Pro down on a very inclined hill, at approximately 35km/h when I pushed the brake and it decelerated nice on the beginning but shortly after that, the front wheel started to brake harder and felt like it was bumping on something.
Luckily I was able to stop before an intersection but the scooter stopped working and I had to walk pushing the scooter from this moment on. It was a hot summer day and I was 2km from my home, I couldn’t use the scooter as a non electrical scooter because the front wheel was offering some resistance and this resistance increased by the speed, therefore, the higher the speed, the greater the resistance on the wheel.
I felt very intrigued by that condition and a little frustrated because I had to walk home and if I walked more than 4 km/h the scooter would get very heavy, besides that a random guy that was walking his dog made fun of me saying that “these modernities are very problematics” hehehe.
After I got home I grabbed my tools, opened the scooter for the first time and discovered that the scooter controller had two of the thre phases, that sends/receives power to/from the motor, shorted. So I disassembled the controller and found this on the back of the board:
Two of six MOSFETs (NCEP85T14) was fried, both where responsible from one phase, one to send power to the motor and the other to get the regeneration power (KERS) back to the battery, when you are not accelerating. As you can see the other two regen phases channel showed signals of heating.
This shortage on two phases explained why the wheel was offering more and more resistance when the speed increased, because the permanent magnets on the motor when passed near a coil (phase) generate a electric current, but since the coil was shorted it was generating back a EMP that repelled back the magnet.
Why it happened?
When I was riding down hill I saw the number 40 in the screen, at that time I thought that it was the speed I was riding but after looking it up and talking with some people from a Facebook group named “Xiaomi Mijia M365/Pro users” on this post I found out that it was an error 40 which means “Main controller temperature sensor error or overheating” and it made sense, because the hotter a MOSFET gets, the greater the resistance, which causes more heating consecutively until it burns.
Well but why it got so hot?
The regen brakes (KERS) have three possible configurations Weak, Medium and Strong, I liked to ride on strong mode because it made me use less the brakes, but it also makes the controller to heat up more (I’ll explain why later). Independent if you use the stock firmware or a custom one, if you ride long downhills with KERS set to Strong, your controller will heat up and may cause a damage.
How to fix that?
The Xiaomi M365 had two things to fix, (1) exchange the defective MOSFETs and (2) fix the melted and burned paths on the circuit board.
You can easily fix this issue by buying a new controller for about $30 to $50 dollars on Aliexpress. Ok, it’s not that expensive, but I spent less then $5 dollars with this fix. Besides that, what is the fun in doing the easy way? In the end you can learn something new (like I did).
The controller’s MOSFETs model was NCEP85T14. They are N-chanel 140A (420A peak) 85V MOSFETs (datasheet), and I only found them to buy from China. It would take at least a month to arrive and I didn’t want to wait, so I went to my local store and bought a similar one, the N-chanel 130A (500A peak) 75V MOSFET model IRF1407 (datasheet).
PS.: My father has a shop that fixes home appliances (TVs, Sound devices, computers…) and I worked with him when I was young and I saw him doing this all the time, so I called him and asked what parameters I should check to encounter a similar MOSFET, that’s why I chose the IRF1407.
Then I exchanged the defective MOSFETs (1) to its similars and I moved to (2) fix the problem with the melted paths on the circuit board. There was a place where the solder melted and another path (the darkest one) was completely disconnected
As you can see the other phases had signals of heating to, but no damage occurred. So I used a wire to redo the path that was broken and resold the melted solder path. it looked like that:
Then I mounted everything again and it worked like a charm!
How to prevent that
If you’ve read everything until here you probably understood that the root cause of those problems was excessive HEAT. Ok but let’s understand where all this heat came from and why.
Can I count external heat? Yes it contributed, it was a hot day, but it was far away from the main cause. Extra heat from the extra power that the custom firmware (CFW) provided? Yes, some of the heat was caused by it, but as I told you before this problem can occur even with stock firmwares. So what was the main cause?
Well in my analysis the CFW contributed because it made the scooter faster downhill and that generates more power within the KERS on Strong, more power generates more heat, more heat increases the MOSFETs resistance, more resistance generates even more heat and so on.
The original controller doesn’t have good heat dissipation between the aluminium case and the MOSFETs so doing something to help the dissipation is crucial and by reducing the power generated by the KERS pretty much resolves this problem.
I used heat pads between the MOSFETs and the aluminium case of the controller to dissipate better the heat and set the KERS to weak. After that I rode more than 1,000 km with the same CFW and everything worked fine for me.
PS.: Setting the KERS to weak doesn’t affect your ridding distance as you can see in this Reddit Post
If you have any questions, feel free to ask me!
Have you ever had this or a similar problem? Tell me more about your experience.
In the next post from my Xiaomi M365 Pro, I will show you the mods that I made, stay tuned.