135V / 200A ESC Krakatoa

As the title says.

Completely untested. Pure paper exercise for another larger project.

This is for educational purposes only.

I will release the schematics later.

Cheers,
Valentine

PS Schematics link below

5 Likes

You are spitting out designs in an incredible frequency and they all look nice as well, despite their functionality!

Impressive! looks great

That’s a beast! I take it the name implies how much magic smoke is stored inside? :laughing:
At that power level, what would be the pros and cons of soldering thick wires along the board for the conducting paths, versus using the super wide PCB traces?

The bare pcb 5mm ground copper trace is for extra solder or wire to carry the current. There is another VIN bare copper on the back. Then you need screw terminals for the wires. And yes, if you smoke this, it will look like a volcano. :boom: :boom: :boom:

1 Like

Posted the project link above in the original post. The BOM is all in stock.

Five board batch costs 115, or about $23 per board before shipping / taxes / import duties

Old Tom Bombadil is a merry fellow,
Bright blue his jacket is, and his boots are yellow.
None has ever caught him yet, for Tom, he is the master:
His songs are stronger songs, and his feet are faster.

I see people cloning the project, thank you! Hope it works out for you.

Three things.

This is a table-top exercise. It works in your head only, may not work IRL.

Secondly, I keep adjusting the design based on whatever my needs are, and tomorrow the design may be slightly different.

Lastly, this is a REALLY high powered board. At the high end (if the design really works), manufactured with correct cooling and 3oz copper and bar traces it could produce 27kW continuous output. As a comparison, a medium sized golf cart motor is 5kW and a high end golf cart motor is 10kW. You will most probably injure yourself, or worse, trying to test this at home.

Don’t do this in your garage with bare hands and no serious protective gear and equipment. Really.

1 Like

I’m back from vacation. And coming back with a bang!

Fabbed the Krakatoa board, ready to test. 4 layers of 2oz copper. Banana for comparison. Also put the Mosquito board next to it.

Reminds me a little bit of the Giant suit of armor in the Tower of London exhibit:

3 Likes

Wow that’s some high power!

I can only imagine what kind of power supply / battery configuration would be needed to stress test such a board. My fingers tingle just thinking about it…

I have high current lead acid batteries and high load power resistors.

Well, this is the setup. Good news that it works. Bad news is that it blew up my power supply. Next step is to test with a 1000A lead acid battery. Pencil for the wire thickness comparison. In a few hours, if you hear a loud cataclysmic explosion, that’s the Krakatoa board blowing up.

Oh yeah and buy a new PS…

The test was successful. I discovered a number of small problems and had to rework the design to make it user friendly. The Infineon driver is not exactly what you call user friendly so I had to add some friendliness. Downside is it made it more expensive and complex.

Modified driver is in the link above on that thread. Below is just a screengrab of the 3d render.

3 Likes

For those of you who noticed I changed the design again. At very high drain voltage and current the IR cannot deliver the gate current required to open the gates and overheats. The mosfets I chose are made of very cheap chinesium and have extremely high gate charge. Plus I proved the IR works and moving on to improve my designs. This is not a real production pcb, this board is a test and experimentation setup for me. Who knows, tomorrow I may reject the dgd drivers, too, and rework it again with yet another driver.

Omnia mutantur, nos et mutamur in illis;
Illa vices quasdam res habet, illa vices;
Quo modo? Fit semper tempore melior homo.

Cheers,
Valentine

Valentine, I really appreciate you posting your controller designs! I was able to learn quite a lot from studying your layouts.

Regarding the ITRIP, would you give a little more explanation? I searched Itrip on the rest of the forum and searched on the Docs without much success. Maybe I missed something simple in the documentation.

itrip is the driver trip current. it causes the voltage drop across the sense resistor to exceed the trip level, iirc 0.4V. thank you for liking my designs, hope im helping here. cheers!

@Kai_Justice

Please refer to the documentation.

Cheers,
Valentine

@Valentine

Aha! Thank you, this makes more sense when considering the Infineon driver chip. A hardware safety is a great feature.

It appears that you moved away from this chip in leu of the DGD2110S16-13. The schematic in easyEDA shows both. But the hardware layout has the DGD2110S16-13. This is then routed to the micro to make a determination to shut off the 3 mosfet drivers?

I appreciate your explanations,



Continuing to use this board to learn from.
(Note the 3 amp fuse).

I am not quite sure what to expect out of the drivers.

I have the open loop velocity example loaded up and have square waves present on the appropriate pins ( B13-A10), 12v present on c17, c12, c1. I expected to see some square waves on the outputs of the drivers.

I added capacitance and the motor to see if maybe if I was misunderstanding a signal and needed some inductance or a load, this did not make a difference.

Mosfet pins are not shorted… Maybe I ruined the driver chips while soldering…?

12v present on R1, R10, and R12…

Common grounds between 3.3v and 12v supply… I do have a 48v battery hooked up. But my belief is I should see output waveforms without this.

Any pointers?

2 Likes

@Kai_Justice

Im traveling and my access is limited.

Amazing Setup, will look into it when i get the right time

Meanwhile please post your open velocity code.

Also i see you replaced the drivers, schematics of the PCB will be very helpful, probably necessary.

Cheers,
Valentine

@Valentine hopefully you are traveling somewhere warm! It has been raining nonstop and threatens snow again here in Northern Indiana.

I hope I did not replace the drivers, I followed the schematic from the link a the top of the post;

// Open loop motor control example
#include <SimpleFOC.h>

// BLDC motor & driver instance
// BLDCMotor motor = BLDCMotor(pole pair number);
BLDCMotor motor = BLDCMotor(4);
// BLDCDriver3PWM driver = BLDCDriver3PWM(pwmA, pwmB, pwmC, Enable(optional));
//BLDCDriver3PWM driver = BLDCDriver3PWM(PB1, PB0, PA6, PA7);
BLDCDriver6PWM driver = BLDCDriver6PWM(PA8, PB13, PA9, PB14, PA10, PB15, PB12);

// Stepper motor & driver instance
//StepperMotor motor = StepperMotor(50);
//StepperDriver4PWM driver = StepperDriver4PWM(9, 5, 10, 6, 8);

//target variable
float target_velocity = 0;

// instantiate the commander
Commander command = Commander(Serial);
void doTarget(char* cmd) { command.scalar(&target_velocity, cmd); }
void doLimit(char* cmd) { command.scalar(&motor.voltage_limit, cmd); }

void setup() {

// driver config
// power supply voltage [V]
driver.voltage_power_supply = 58;
// 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 = 48;
driver.init();
// link the motor and the driver
motor.linkDriver(&driver);

// limiting motor movements
// limit the voltage to be set to the motor
// start very low for high resistance motors
// current = voltage / resistance, so try to be well under 1Amp
motor.voltage_limit = 58; // [V]
// open loop control config
motor.controller = MotionControlType::velocity_openloop;

// init motor hardware
motor.init();

// add target command T
command.add('T', doTarget, "target velocity");
command.add('L', doLimit, "voltage limit");

Serial.begin(115200);
Serial.println("Motor ready!");
Serial.println("Set target velocity [rad/s]");
_delay(1000);
}

void loop() {

// open loop velocity movement
// using motor.voltage_limit and motor.velocity_limit
// to turn the motor "backwards", just set a negative target_velocity
motor.move(3);

// user communication
command.run();
Serial.println(target_velocity);

}

At one point I just set the velocity to 3 such that I did not have to rely on the commander serial interface. I have also tried 5 rad/s.