I have an OTS BLDC motor controller as well as one that I just made myself and both seem to be dramatically slower at higher frequencies. When I look at how much current is being drawn it makes sense, but it does not make sense otherwise. I have two tests: 1. 20% duty cycle, f_PWM = 3kHz draws about I = 0.8A from power supply, motor spins faster 2. 20% duty cycle, f_PWM = 8kHz draws about I = 0.25A from power supply, motor spins slower This is particularly bad because I want to drive the motor at f_PWM ~30kHz. To be honest, these tests were done with my controller which is limited from ever getting to 100% duty cycle so that I will never have any crossover that could lead to shoot-through. That said, I do NOT think the losses are switching losses (the current is also much lower). Any ideas or common reasons why? Thanks in advance ADDED: by f_PWM I mean the frequency of the square wave I am sending to the MOSFET gates at each commutation step. I have not yet attempted speed control but my plan was to adjust this frequency. I guess I'm not entirely sure of the dead time. On a single commutation step I: 1. turn off all square wave outputs 2. re-map the appropriate outputs according to what the hall effect sensor state is. I put the same square wave on the appropriate high and low side transistors Additionally, 1.5us before and after the square wave rises and falls, I fill the rest of the period with a square wave on the low-side counterpart of the high-side transistor to re-charge a charge-pump capacitor. This is necessary because I am using N-Channel MOSFETs on the high-side as well. I know that's a little sloppy of a description, but please let me know if there's anything I can clarify.