135V / 200A ESC Krakatoa

A few more photos. I wanted to show the waves making it to the driver chip and then show waveforms not coming out of the driver chip.

I am going to draw out the driver and confirm signals on all pins to see if something comes to mind.

Hey, quick one, I’m n the road but before you start “drawing out” things, this driver has reverse shutdown logic. Low is enable, high is disable. Did you properly enable the driver in the code?

Please carefully read the documentation

Page 5

In your code I believe you got it reversed so you shut down explicitly the driver.

Check what’s the signal going into the SD pin, it has to be low. If it’s high (3.3V) you are shutting it down and the driver is in sleep. If you read the doc, the pin is called “shutdown”, not “enable” so HIGH is SHUTDOWN (sleep), LOW is ENABLE, ha ha.

There was an option in SimpleFOC to trigger reverse enable logic. Let me check what was it.


PS OK found it.

driver.enable_active_high = false; // Reverse logic driver, low is enable

Before you init the driver please reverse the enable logic. And please, please read the documentation :slight_smile:

I even tied the enable LOW be default with a pulldown resistor.

If you remove B12 from the init, I believe this would default the driver to ENABLE even without the reverse logic directive.

Aha! Thank you for the direction! I changed the line of code and now have the logic reversed.

Still no output from the driver chip, even when I verify the logic diagram as shown and the data sheet and as you posted above.

I may try to take the 2nd board and populate a single driver. Really wondering if I damaged the chips somewhere along the way.

I did try 20k and 10k to see if maybe I had some sort of noise due to a higher frequency. This was little far fetched, but It was easy enough to attempt.

I did verify that all 3 chips act the same. I popped out the stm32 and pinned in only 1 one of the driver chips with the same result. Also tried tried running a ground directly to the SD pin.

That’s way way too high.
In openloop velocity mode, that’s the voltage you are driving the motor with.

If the voltage supply is about 60V, yes that’s a little (too) high, I would probably lower it to around 10V for a test run. However this is not preventing the PWM from triggering the high/low driver gates signals.

There has to be a different reason.


I took the step to attempt at looking at just the driver. I lowered the voltage as suggested!

When gnd, 3.3v, and 12.2v are applied to the power pins on the board, the H0 pin reads near 0.

When the power supply to the VIN is applied (14 volts), the H0 pin jumps to 10.46 volts. The enable pins are held at about 11.5v. Vcc held at 11.5.


// Open loop motor control example

#include <SimpleFOC.h>

// BLDCDriver3PWM driver = BLDCDriver3PWM(pwmA, pwmB, pwmC, Enable(optional));
BLDCDriver6PWM driver = BLDCDriver6PWM(PA8, PB13, PA9, PB14, PA10, PB15, PB12);

void setup() {

// driver config
driver.pwm_frequency = 20000;
// power supply voltage [V]
driver.voltage_power_supply = 12;
// limit the maximal dc voltage the driver can set
// as a protection measure for the low-resistance motors
// this value is fixed on startup
driver.voltage_limit = 16;

driver.enable_active_high = false; // Reverse logic driver, low is enable

//enable driver

void loop() {

   // setting pwm (A: 3V, B: 1V, C: 5V)

I will try to review and check your input, cheers, Valentine.

Last night, I did try running a single chip with inputs and worked to observe the outputs. I found the same results as the entire board… Consistency is good. But still the incorrect result.

I am excited to learn what I am doing wrong.
Part of my misunderstanding is what I should be seeing on the output pins… I believe I should see a similar square wave as the input.


Correct. Still seems the driver goes to shutdown mode but not sure why. Needs investigation.
Are you in continental US? PM/DM me please.