Matt's MP3DP V5 Build

I have the board design in easy eda on my laptop at home. Ill send it along later today.

No rush, thanks!

no rush… sorry about that. Here is the svg file of the board. It is displayed below (rt click save as), but internally should have the dimensions. A dxf is also attached below.

PCB_PCB_z-brakes-v1_2025-10-28
PCB_z-brakes-v1_2025-10-28.dxf (503.2 KB)

2 Likes

No worries, I was able to get some measurements off of it when it came in.

Thanks for sending this over though!

Any guidance on setting up the Z Brakes as far as wiring and Klipper config goes? Is there another forum thread I should reference?

You need a 5v high signal from your board to flip the relay that isnt pulled up on boot or it will always keep the brakes off when the board powers up. You may need to test. Red led is brake applied. Green led is good to operate. You will hear it flip. I believe the snippet shared above has the multipin use example. The z brake must be off before enabling the z motors. Since homing is typically x first, i multipin the z brake with x enable so when x is powered the brakes turn off and then when z homes the 2209 doesn’t get confused. If you do it wrong klipper will fault and say z motor short detected, but it wont cook anything… At least in all my z brake testing i never fried one.

Okay so I have added in the Z brakes. I have 24v coming in and I have a 5V high coming in. When I switch the printer on, I hear some flipping, the red light flashes and then no LEDs are on anymore. No red or green

  1. remember svg for the power and signal connections left to right (see board diagram below)
    S = signal from 5V line. if your board only does 3.3V, then you may need a relay to switch 5V to the 5V relay coil
    V = 24V motor drive voltage. If those have power, then these relays will have power
    G = ground.

Verify your board is labeled like this:

  1. test voltage connections of the relays for proper operation
    with 24V and ground connected and powered, you should see a red LED turn on.

  2. verify 5V signal to deactivate brake. Default is BRAKE ON = red LED.
    If you apply 5V power and ground from a 5V supply, then the red light should turn off and the green light on (if 24V is connected properly). If you swapped ground and 24V, then bad things can happen and you won’t see LED at all.

Here is how I have it wired right now. I have 24V and GND straight from 24 power supply. I have 5V signal from a 5V high on the SKR Pro (pulling 5V from the 5V pin on the Extension-1 header). Of course the stepper motors are already being powered with 24V from the SKR Pro. Would it be a problem that I am providing motor power at the MCU and at the Z Brake. Should it be one or the other?

With 5V signal disconnected, I can power and I am seeing a RED light. The motors are hard to turn so I know they are shorted.

Once I connect the 5V, I hear the relays flip, the RED light goes off, but no GREEN light. The motors are now free to move.

I have now gotten everything to move as expected and am running a test print. I think I am okay, just no GREEN light…

2 Likes

There is a slim possibility the led is on backwards. You can test it with a multimeter set on ohm /diode testing. Disconnect all power and ground if you test the led. Try in both orientations with the red and black probe wires. If it lights up with the multimeter, It will be very dim. If it lights then you know. If it doesn’t i might have a spare i can send you if you want to swap it out.

I will check this out and let you know!

In the meantime, my Z_Tilt isn’t working. Here is what I am getting during a Z_Tilt. Is it adjusting the wrong direction??

Just to be sure… the order of z steppers is:

z = front left

z1 = back middle

z2 = front right


!! Retries aborting: Probed points range is increasing.

// Retries: 3/8 Probed points range: 1.525000 tolerance: 0.010000

// Making the following Z adjustments: // stepper_z = 0.021511 // stepper_z1 = -0.711025 // stepper_z2 = 0.677112

// probe at 150.000,300.001 is z=1.257599

// probe at 150.000,300.001 is z=1.247599

// probe at 290.000,24.999 is z=-0.272401

// probe at 290.000,24.999 is z=-0.272401

// probe at 3.000,25.001 is z=0.447599

// probe at 3.000,25.001 is z=0.447599

// Retries: 2/8 Probed points range: 0.870000 tolerance: 0.010000

// Making the following Z adjustments: // stepper_z = 0.014641 // stepper_z1 = -0.407599 // stepper_z2 = 0.384668

// probe at 150.000,300.001 is z=1.013816

// probe at 150.000,300.001 is z=1.013816

// probe at 290.000,24.999 is z=0.143816

// probe at 290.000,24.999 is z=0.143816

// probe at 3.000,25.001 is z=0.563816

// probe at 3.000,25.001 is z=0.553816

// Retries: 1/8 Probed points range: 0.485000 tolerance: 0.010000

// Making the following Z adjustments: // stepper_z = 0.121758 // stepper_z1 = -0.203816 // stepper_z2 = 0.244910

// probe at 150.000,300.001 is z=0.904180

// probe at 150.000,300.001 is z=0.914180

// probe at 290.000,24.999 is z=0.424180

// probe at 290.000,24.999 is z=0.424180

// probe at 3.000,25.001 is z=0.744180

// probe at 3.000,25.001 is z=0.744180

// Retries: 0/8 Probed points range: 0.970000 tolerance: 0.010000

// Making the following Z adjustments: // stepper_z = 0.592726 // stepper_z1 = -0.394180 // stepper_z2 = -0.186137

// probe at 150.000,300.001 is z=0.540000

// probe at 150.000,300.001 is z=0.540000

// probe at 290.000,24.999 is z=0.390000

// probe at 290.000,24.999 is z=0.390000

// probe at 3.000,25.001 is z=1.360000

// probe at 3.000,25.001 is z=1.360000

Z_TILT_ADJUST

Your probe position needs to match motor location. If z is front left, it should probe front left first, then z1 the rear middle then z2 front right. Looking at your probe coordinates it is out of sync and probing rear then right then left.

Edit your config by moving that third probe location to the top of the set.

Can’t remember for sure which firmware, but Marlin has a section for the Z steppers as to what order jt expects the motors jn for bed levelling. I ran into that with the MP3DPv3.

It’s been a while, and I’ve moved to RepRap Firmware, but my recollection says Z1 front left, Z2 Front right, Z3 rear centre.

Found it in Configuration_adv.h about a quarter of the way down.

#define Z_STEPPER_AUTO_ALIGN
....
 |   3   |
 |       |
 | 1   2 |
....

that section describes the Z stepper alignment which you choose. Basically Marlin expects tou to have the steppers going anti-clockwise around the bed as the only allowable choices.

This is how most of us run them. BUT, at least for Klipper, it doesn’t matter, what does matter is that you have your locations right for Z tilt as @orob pointed out. I think that is the main source of the issue you are seeing @MattMed You can either swap the plugs for 2 and 3 to get them how you have the Z tilt set up for, or you can change your ztilt to match how you have your motors wired.

2 Likes

Yep, this fixed it. All good now, thanks!

2 Likes

Anyone know of a pin on the SKR Pro 1.2 that is 5V high but goes low when restarting firmware? I have my voltmeter and testing all the 5V pins I can find. Everytime I restart Klipper and/or firmware, it remains 5V, therefore allowing my bed to still fall.

I don’t have an answer, but I do have a few questions:

  • If you want one or more I/O pins to go low, could a power cycle could accomplish that?
  • Does the board not do a power cycle when the reset button is pushed?
  • If you don’t want to do a power cycle, can you put a couple of lines in a script that cycles the desired I/O pin, and have that script run on startup/reset?

When restarting Klipper or restarting the firmware the power always remains on. It does not power cycle. This keeps the pins high, atleast the pins I have tried. I need to locate a pin that pulls low when executing a reset/reboot.

I do not want it to power cycle. For instance, when saving a config file in Klipper, it will reboot Klipper and the firmware, causing the bed to fall because the Z Brakes are still disengaged due to the 5V high it continuously receives. I need to find a 5V high that pulls low on reboot.

I thought I’ve read here that folks are using a klipper macro to do the restart, which sets the brake pin appropriately, then does the reset, then re-sets the brake back to disabled.