Direct Drive hub motor grind and noise, "dead spot"

c111jp

10 mW
Joined
Feb 25, 2023
Messages
25
Location
Tokyo
Ok, I've did a mistake. I ignored my "If it ain't broken, don't fix it" rule and now my bike is giving me headaches.
I have a direct drive rear hub motor. Last time I rode it was few months ago and it was working perfectly fine. In the meantime I've did following:
Upgraded to new battery, placed silicone cooling pads between heatsink and mosfets in the controller because it had kapton tape in between (tested for leaks between drains and all good), shunt mod with very little solder just for slight "punch"... Opened up motor in order to replace phase wires since they are pretty thin but one of the bearings just didn't want to let go so I've gave up, greased everything up with urea grease and closed it down. Instead I've shortened wires since they were waaay longer than I need.

Now, the bike rides very smooth in most throttle / load situations but will start to be loud under certain load and throttle positions. It's sort of a higher frequency grinding / disk hissing sound. I have to note that bike now has quite more punch than before. I don't feel it's "sputtering" or hesitating when the noise occurs but maybe sliiiiighlty like it's not giving it's full potential. Basically indication of problems with hall sensors.

Another thing is, from dead stop with very little throttle, motor doesn't start as smooth as it did. There is a "dead" spot. With wheel in the air and holding it with my hand, if I give minimum throttle I can provoke it to completely lock and it won't move even if I gradually increase to full throttle. After few sec controller just cuts power completely. It will sometimes even move backwards for a brief sec when I try. Another reason to suspect halls.

I've unplugged hall sensors and there is no difference whatsoever. Rides identically.
My multimeter recently died so I just "repurposed" usb tester I have sitting around and I've tested hall sensors. There is 5V (4.5) from controller and there was no output whatsoever from halls. I was testing between ground and hall's output pins as per most of internet. Seemed like all 3 are dead which I found weird. They were hard to read but I could see "T41" on one of them. One of them got leg detached as soon as I've touched it so it was time for replacement in any case. I've ordered Uxcell U18 bipolar latching halls as those were the only thing locally available. Changed all 3 and still no output. I've then realized my usb tester won't work on reverse polarity so this time I tested between postive and drains and all 3 work fine as I'm moving the motor by hand. I've put everything together and no change whatsoever. Thought maybe colling pads / mosfets are acting up so I removed heatsink entirely but still fails the "low throttle hold by hand dead spot" test. Tested halls on the controller PCB itself and there is signal up to that point.
While taking controller apart for millionth time, my throttle wires detached from controller PCB. I lightly pulled other wires and few more detached as well, mostly connectors for stuff I don't use like regen. I could see hall wires don't look too sturdy either so I've resoldered most of important wires to PCB. Still same thing, no changes in how motor behaves.

No other conclusion but that something in controller related to hall sensors gave up. I could only trace hall paths to controller and then I'm lost. Is there any component in the controller related to hall sensors I could check before I pronounce it half dead? Thanks.
 
Some thoughts:

Typical bipolar latching hall sensors used in motors do not output any signal by themselves. They only ground their outputs when active.

To test them you must apply a pullup resistor from 5v to the output signal pin of a sensor (three total pullups for three sensors; these are built into the controller for normal operation). This creates a 5v difference to see when the sensor is not active, vs the grounded signal (<1V) you'll see when it is active.

Usually some variant or clone of the Honeywell / Allegro SS41 or SS411 is used. A different sensor may switch with different amounts of magnetic field, or some other property may be different (such as supply voltage range, voltage limit on output for pullup, switching time, etc), and this might affect system operation (probably won't by noticeable in most systems).


If the system operates the same whether sensors are connected or not, then it is running in sensorless mode for whatever reason.

Usually this is from the system not detecting valid sensor inputs.

They could be timed wrong (wrong phase/hall combination), in which case you can re-run any auto-learn the system mgiht have, and it could fix it. Or manually determine the right hall/phase combo (there's a number of posts I've made you can search for with basic directions for this).

THey could have a poor enough connection that the signal isn't being correctly read.

There could be interference from phase currents inducing electrical noise into the hall sensor wires or their ground.

The controller could have ESD damage from handling during modifications/etc, so that the MCU inputs for the hall signals no longer work correctly.

The controller might have a problem with the higher current that's happening now, causing some form of interference in either it's drive of the phases (so it acts sensorless even when it's not), or in some other part of the controller. (with a shunt mod, the controller no longer knows what the actual current is, so if there are things in it's operation that depend on that, those things will no longer work they way they are designed to).


The throttle "dead spot" could be a physical problem with the throttle, where a magnet has moved slightly inside it or the plastics have deformed allowing it to move further than normal, or it could be something in the controllers' internal settings.


If the controller is not user-programmable, it might have reverted to some factory settings default setup that's different from how it was originally shipped to you.

If it's user-programmable, and you have the setup software/cable/etc, you could try resetting each setting in it to what it should be for your setup. (some setup software can read existing settings, but some controllers won't respond to a read operation, only a write, so you might not be able to find out what it's present settings are).


There's other possibilities beyond those.
 
Have you checked that all the rotor magnets are firmly glued down? Do any of them show signs of physical scuffing?
 
From a stop in sensorless mode, can feel a little cogging from a stop. Using hall sensors on a sensored controller would smooth it out, but I always used sensorless, so I can obtain bigger phase wires through axle and less hassle stuffing the wires through the axle. The motor winding insulation could be burnt a bit, or the wire connected to each phase wire can heat up and melt insulation and cog a bit. Happened to me. Frayed insulation on the wires on axle exit. I find over time that little bit of cogging comes and goes, if I'm lazy and let maintenance slide. Cover bearing could be a bit shot.

You should record a video on your mobile phone and post it here.
 
Thanks everyone for your input. Issue is "resolved" so here's an update.

The magnets in the motor are all rock solid and there are no rubbing traces.

My controller has no self learning wires and on the board, only thing that looks like it could potentially fit the description are 2x Q right next to each other (blank, no wires or pins). Nothing happens when shorted together or with ground. There are no visible connections for interface. It has no display connectiors either. Microcontroller is XCM-K. Not sure how to program these as information is surprisingly hard to get by.

I've decided to add regen if possible so I've opened up the controller. Researched about pin's functions and it's incredible again how little info is out there. After testing available pins, seems like shorting X and DS will enable the regen. Shorting it and using low brake indeed enables the regen. I am not 1000% sure X and DS are intented for this purposes though but I've seen those pins being mentioned vaguely around when it comes to regen. Other option mentioned is pin DC to ground but in my case that spins the motor backwards.
While there, I've discovered that shorting K2 to ground give me more top speed (spins the motor faster) and shorting K1 to ground limits the speed further.

I've resoldered all wires connecting to controller again and closed it up. This seems to have fixed the original issue of dead spot. Motor is as smooth as it can be while trying to hold it with a hand and giving minimum throttle. No more dead spot or brief back and forth motion. The hissing / grinding sound has went down considerably and it has sort of moved to slightly different position on the load / rpm curve. I would attribute that to simply pushing more power now, not as an issue.


Unfortunately, the fun didn't last long. I've did a 80km commute and everything was working fine. Next day I start riding and notice right away the regen doesn't work. Motor is disabled when I hit the regen switch so I know the switch is working. Figure it might be just cold solder between X and DS pins, even though I bridged it nicely. As I was riding and constantly pressing regen switch to see if it will start working, about hour or 15km into my ride, regen faintly started to come back and then as I've been pressing the button more, it eventually started working entirely. Half a day later when going home, identical thing. First it didn't work, then started to work after about an hour of riding. Another thing I thought might be the case is battery BMS somehow limiting the regen but, both times I started riding, battery was at about 70%, not full. I have BMS with bluetooth and I've removed all limitations just to test with same result. I think BMS wouldn't be so quick to disable it without regen even starting to work. I also don't think BMS has control or can even see when battery is charged through discharge port because when monitoring in the app, I couldn't see any current when using regen. I could see slight bump in the cell voltages though. Just to note, the regen force was just about right, not too strong, no too weak. It would come on as a bit strong when at higher speeds and then smoothly taper down as I am slowing down, fading nearly completely around 15kmh.

So I've opened up the controller and bridge between X and DS is fine. I reflowed it anyway but still no regen. I started doubting that X and DS pins are for this purpose so I've been jumping once again few other pins to check. While doing so, my hand slipped and I've accidently shorted something in the mosfet area of green phase wire. Motor is running rough but it runs. It won't start on it's own, need to spin the wheel manually. When testing, there is least of a difference how motor works and sounds when green phase wire is disconnected. Thought at first one of the MOSFETS burned out but when I checked them they seem fine. After some checking, there is a weird 9V leak between negative and green phase wire and everything that's soldered to it, including drains of 2 (out of 4 mosfets, 12fet controller) on same phase block.
After more checks with my very limited tools, seems like the cause is one of the smd zener diodes. I can't even tell for sure if it's SMD zener diode or SMD mosfet but it has Y2 stamped on it and apparently it can be both. Before Y2 there is 510ohm SMD resistor and then a SMD what should be a transistor marked as G1. On other phases there is no 9V leak like that. Also, that same 510 resistor on other phases reduces voltage from 14 to about 13.1v which seems about right but on green phase input voltage is 14v and output 10v. That's the same voltage leak I was seeing around, being closer to 9v when measuring around).
Even though I live in self-proclaimed world's technological hub called Tokyo, I couldn't find locally any of the potentially failed components so it's a goner. I will buy another controller. It serverd me well so far. So I guess the mysteryof why regen stopped working stays a mystery.
 
Ok, I've got the new controller. It's XLD Brainpower LSD149. It's a slight upgrade in any way over old one and it's of same size. It's 15Mosfet vs 12Mosfet on old (and fets are rated higher). It has regen connector so connecting it will enable regen, disconnecting it will disable it. The connector itself is just bridging / shorting pins X and DS so I guess that answers my question. Even though they are different controllers, seems like X and DS is most often used for enabling regen across controllers. Not sure why regen died on old controller but it didn't had it enabled from factory so it might've been too "weak" to handle it.

XLD also has "self learning" wire, my old one didn't had it. When I first connected everything, motor was running slight bit rough when spinning in the air. Connected "self study" wires how they call it, and let the motor spin for a while. Disconnected and it was as smooth as it gets while free revving in the air. No dead spots or anything.

Now here comes the annoying part. Controller is rated as 38A. I've managed to see 38A in peak at one point but it's way smoother and gentler in acceleration than my old controller even though old one wasn't seeing that high current (even with shunt mod). Both controllers are sinewave (based on the smoothness and sound). XLD controller has 3 shunts, old one had 2. The power level is more than enough and I will not touch shunts on this one. I won't be seeing those 38A peak like 95% of time too.
Now the problem is, this controller despite being more gentle has somehow moved hissing noise to lower rpm and loads, and it's present through broader range. It is super annoying because it's in the range where I ride most of the time (pulling 200-400w). The hissing is also a bit louder and continues with more load, then it will eventually stop as I reach higher speeds and load starts to drop. It's also a bit louder hissing than before. It's pretty high pitched, like some slight metal to metal contact sound but I know nothing is touching. Not sure what to do with it for now.
One thing I'm thinking.... First thing I did on the controller was replacing kapton on mosfets with a sil-pads. This is what I did on old controller as well. I've made sure that drains are not shorting with heat sink but those pads seem to be easy to break, esecially when pushed in by the sharp edges of mosfets. Theoretically, if there was a slight "leak" between drains of MOSFETS, what would the outcome be? Would it cause those issues such as motor hissing?
 
Sorry for spamming but I've figured it's better to record the sound than trying to describe it with 50 different onomatopoeias lol. I've tried to remove the wind and isolate the sound in post processing as much as possible . In the video I am "opening" and "closing" throttle to provoke the noise. You can clearly hear the buzzing. Anyone heard something similar on DD hub motors?

 
For heatsink/etc, the major heat barrier isn't usually whether it's kapton or silpads, but rather the contact between any heatsink bar the FETs are mounted to and the casing the bar bolts to...the extruded casings are not usually very flat, and neither are the bars, so unless you lap them (a process you can look up on overclocking sites), there is often a lot of air gap between large areas of the two surfaces, and even filling that with thermal paste doesn't make great heat transfer, because that only happens between direct metal-to-metal contact. Thermal paste is only meant to fill tiny surface imperfections, because it's better than air, but not as good as metal, so using so little that it does not get between any actual surfaces that can touch is ideal, only ending up in surfaces that could never touch without it.

If there's no mounting bar and the FETs directly bolt to the casing, it's less of an issue, but if the casing is not flat then the pads will be better than the tape since they can deform to fill the gaps better because they are a lot thicker...but being thicker, they may not pass heat as quickly. (depends on the tape and/or pad, mounting process and angle and pressure, etc).
 
For the motor sound, I can't really tell exactly what is motor sound, freewheel/cassette sound, etc.

Does it not make the sound when unloaded? If it does, then a recording with the bike upside down inside a quiet room, with the chain held off the sprockets so the sprockets turn with the wheel and don't click the freewheeling ratchet would be a lot easier to hear what's going on.

If it only takes a minimal load to cause the sound, you could use the brakes to load the wheel (this will wear them faster, but it usually works for testing like this).


In general, the sounds I have heard from DD motors vary from motor to motor even with the same controller on the same bike with the same usage. Sometimes the sound of the same motor will vary with different controllers because of the amount of current they supply the motor, or the PWM frequency they use, or the timing they use to drive it, etc.

The only sinewave controllers I've used so far are one FOC (SFOC5) which had it's own annoying noise all the time (eve when completely stopped) due to the way it detected rotor position, and one lookuptable sinewave Grinfineon (which really is silent even under startup loads). Most of the sinewave controllers I've heard on other bikes are completely silent, whether FOC or not, except when there were problems with sensors or connections.


Are the three shunts you describe paralleled, monitoring battery current? If so, it's not really relevant how many there are since they're all doing the same job together, making them just one shunt for that purpose.

If they are instead individual in different places on the board, monitoring separate phases, then it means the controller is probably not a typical lookuptable sinewave controller, and is instead an FOC controller. For such controllers you must setup the motor parameters (kV, number of poles, phase resistance and inductance, etc) for your specific motor, and other things about your system and how you want it to behave, or it cannot operate the motor correctly. Some have a decent autotuning routine, but even those require manual tuning after this process to get it to work it's best. If there are no settings for any of these in the setup program for the controller, then it isn't an FOC controller or else it isn't a tunable one and would never operate a motor correctly except for whatever specific one it was designed to operate.
 
For heatsink/etc, the major heat barrier isn't usually whether it's kapton or silpads, but rather the contact between any heatsink bar the FETs are mounted to and the casing the bar bolts to...the extruded casings are not usually very flat, and neither are the bars, so unless you lap them (a process you can look up on overclocking sites), there is often a lot of air gap between large areas of the two surfaces, and even filling that with thermal paste doesn't make great heat transfer, because that only happens between direct metal-to-metal contact. Thermal paste is only meant to fill tiny surface imperfections, because it's better than air, but not as good as metal, so using so little that it does not get between any actual surfaces that can touch is ideal, only ending up in surfaces that could never touch without it.

If there's no mounting bar and the FETs directly bolt to the casing, it's less of an issue, but if the casing is not flat then the pads will be better than the tape since they can deform to fill the gaps better because they are a lot thicker...but being thicker, they may not pass heat as quickly. (depends on the tape and/or pad, mounting process and angle and pressure, etc).
General opinon is that kapton is pretty poor at heat conductivity so that was the main reason for swap to silpads. I couldn't find any conclusive numbers on thermal conductivity though as there seems to be more types of kapton. FETs mount on the bar and bar screws into case on this controller, same as my last one. I've lapped the bar when switching to silpads as well. In the meantime, I've switched back to kapton just to eliminate any issues with that and it's still the same. Will leave it like that now anyway since controller runs completely cool either way.

For the motor sound, I can't really tell exactly what is motor sound, freewheel/cassette sound, etc.

Does it not make the sound when unloaded? If it does, then a recording with the bike upside down inside a quiet room, with the chain held off the sprockets so the sprockets turn with the wheel and don't click the freewheeling ratchet would be a lot easier to hear what's going on.

If it only takes a minimal load to cause the sound, you could use the brakes to load the wheel (this will wear them faster, but it usually works for testing like this).


In general, the sounds I have heard from DD motors vary from motor to motor even with the same controller on the same bike with the same usage. Sometimes the sound of the same motor will vary with different controllers because of the amount of current they supply the motor, or the PWM frequency they use, or the timing they use to drive it, etc.

The only sinewave controllers I've used so far are one FOC (SFOC5) which had it's own annoying noise all the time (eve when completely stopped) due to the way it detected rotor position, and one lookuptable sinewave Grinfineon (which really is silent even under startup loads). Most of the sinewave controllers I've heard on other bikes are completely silent, whether FOC or not, except when there were problems with sensors or connections.


Are the three shunts you describe paralleled, monitoring battery current? If so, it's not really relevant how many there are since they're all doing the same job together, making them just one shunt for that purpose.

If they are instead individual in different places on the board, monitoring separate phases, then it means the controller is probably not a typical lookuptable sinewave controller, and is instead an FOC controller. For such controllers you must setup the motor parameters (kV, number of poles, phase resistance and inductance, etc) for your specific motor, and other things about your system and how you want it to behave, or it cannot operate the motor correctly. Some have a decent autotuning routine, but even those require manual tuning after this process to get it to work it's best. If there are no settings for any of these in the setup program for the controller, then it isn't an FOC controller or else it isn't a tunable one and would never operate a motor correctly except for whatever specific one it was designed to operate.

The sound I'm reffering to can be heard at: 0:04, 0:08, 0:11, 0:16 (faintly), and then 0:22 the loudest once I've perfectly "hit the resonance" . It's that BBBBZZZZZ buzzing. Would be easier to hear with headphones but I can hear it no problem even on my laptop speaker. It's quite distinctive from other sounds.
In the video I'm sort of blipping the throttle trying to hit the right "spot" to make it sound. If I would to just start from a dead stop with light throttle and progressively increase it, it would start sort of as a pulsating hissing of a disk brake (hhhsss, hsss, hssss) and then turn into this buzzing as I keep going with throttle and would then disappear once at full throttle.

Noise will appear only for like a milisecond when under no load and it's really hard to cause it with rear brake. And sometimes it doesn't appear at all. Brake sound will also almost overpower it.
Also want to note that it will buzzz in same way when using regen when it passes through certain RPM / regen power which is interesting. Just as a recap, noise appeared after I've did some changes to previous controller (shunt mod, silpads on FETs) and have opened up the motor in same time. Never had any similar noise from this motor prior to that. When it appeared, it was at high loads with old controller but sound is now present at way lower loads where I ride most of the time with this controller.

The shunts are all paralleled, so nothing fancy. It's a cheap controller.

The noise is driving me insane, it's loud enough to be "embarrassing" as it sounds like something is broken plus it doesn't help with the stealth factor I'm chasing with this bike. But since last post, I've probably removed controller, re-did wiring etc about a million times and despite being so annoying, I give up. I don't know what to look for anymore and I will simply attribute it to some sort of incompatibility between motor and controller.

I've also played with hall wires and it's weird with this controller. Seems like no matter how I arrange hall wires, or disconnect them entirely the motor always behaves the same as following:
Slightly jerky start and not so smooth on first touch of throttle after changes have been done or after "self-learning" wires have been connected, will sometimes reverse for a brief milisecond too, but after few secs of operation, it's like it learns on it's own and it gets smooth after that onwards (other than the buzzing remaining). I've played with self learning wires but doesn't seem to do much other than learning direction and it sort of "resets" what it learned previously.
Once or twice, after spinning motor with learning wires for few secs, when I went for a ride, motor started sputtering pretty bad once more than half of throttle is applied, but once I back off and give throttle again, it's like it learned and it doesn't happen again until I connect self learning wires again and give it more throttle for the first time.

I won't be wasting much more time on it since I already wasted countless hours by now, but thread is opened so if anyone have some input, it's very welcome.
 
Back
Top