Upgrading stock X5SA board to M8P 1.1 / CB1

Basic Information:

Printer Model: X5SA
MCU / Printerboard: M8P 1.1
Host / SBC CB1
klippy.log
klippy.log (1.7 MB)
printer.cfg (7.4 KB)

Trying to upgrade my X5SA plus with an M8P 1.1 / CB1. The more I mess with this the more confused I get… This printer started as a Tronxy X5SA plus with a direct drive. I replaced the board with a Manta M8P with 2208s, so I could get independent Z motors.

OK, so first issue… I can home the X and Y (I’ll get to the Z axis when I’m done getting the X and Y squared away), but to get it to hit the endstops, I have to increase the position_max: well past the actual size (330x330). I tried using the settings from the printer.cfg I had for the stock board I had flashed with klipper, and they don’t work for this configuration… when the only thing that changed was the board.

I appreciate any help I can get with this upgrade.

Thank you

With a different board you can get a different pinout.

That is strange for you home to 0 (zero) and not to the max.
Are you sure the printer homes to the correct direction?

The config is a bit messed up:

In X you have enable_pin at normal state, for Y it is inverted.
In X for the endstop_pin you have no pull up, for Y you have.

I adjusted the pinouts for the new board…

I pretty much kept the same settings as the original printer.cfg that the printer had before the board upgrade; if they were inverted before, I kept them inverted.

I keep telling myself that eventually I’m going to go to sensorless homing, but part of me says to make sure I get the rest of the printer working first, before I get on that.

I’m not exactly sure what a “pull up” does - to be honest.

1 Like

A pull-up or pull-down makes sure that a pin has a defined state. Only with a defined state, it is possible to detect a change, e.g. the triggering of an end-stop.

So a “pull-up” pulls the pin up to a high level and keeps it there. If the end-stop is triggered, the pin switches to low and the MCU is able to detect that something has happened.

There are two kinds:

  • Hardware, i.e. integrated into your board’s electronics. Almost all endstop-pins have this
  • Software, denoted in Klipper with the ^. Needed when connecting, e.g. a bltouch to a pin that does not have a hardware pull-up

So, its just used for momentary switches (like an endstop). Thanks. Makes sense.

OK, so I’ve made a few changes, and I’m getting the following error. “Unable to read tmc uart ‘stepper_z’ register IFCNT”. I get this error after trying to home all axis. If I do a firmware restart
klippy.log (1.6 MB)
printer.cfg (7.7 KB)
, it goes away till I try to home all axis again. Unfortunately, I made some changes a few days ago and cannot remember what I did that made things turn for the worse (I love my job - insert sarcasm). Here are the most recent priner.cfg and klippy files, hoping someone can help me get back on track.

I’m starting to think I overlooked something on the board, but I don’t know what. I think i have the jumpers set the way the book says to have them.


I’m at a loss. I’ve tried moving jumpers, moving drivers around, changing this and that, and I’m not getting anywhere. I’m tempted to just throw the old stock board back in and get a USB to CANBUS adaptor to get the other z driver, but if hate to just chuck this board in a drawer and let it go unutilized. I’m not sure what I’m missing here. I would really appreciate any help in moving forward with this.

I’m currently setting up the same MCU and SBC with an EBB36 but due to missing parts the hardware can’t be controlled yet.

Keep in mind, as you mentioned independent Z axes, that the third and forth motor connector are both connected to the third stepper driver socket. Meaning, they run in parallel and not independently!

If I see that correct you have all drivers powered via the dedicated motor power source regarding to the jumpers.
Did you connect respective 24 V power cables there?
Otherwise you want to try changing the motor current jumpers:

And please put the heatsinks onto the stepper drivers!!!
A wrong config or some careless tests and you might kill one, if not already…

3 Likes

wait… how did I overlook this detail. I wonder if that was one of the reasons I’ve gotten so confused. What parts are you missing?

I originally had success with running RatrigOS, but after burning my fingers on the Z stepper motors, and the X and Y motors making noises i wasn’t comfortable with - and not finding any solutions, I’ve decided to take a step back, and stick with plain klipper. Knowing the detail that those two connectors run off the same driver, that might have led to some of my confusion. I suppose that’s why Ratrig had that configured to use for the extruder.

Earlier tonight, I had convinced myself that the best way foreword was to utilize my stock MCU as a controller for the X, Y, and extruder. I think I’m going to try without that board, -again- with this detail and see if I cant get it all working again. I’m going to stick with the wiring diagram for the ratrig though… I figure that that diagram has been proofed, and works.

Thanks for that detail… that might have been the catalyst for me finishing this project.

After diving into the ratrig configuration files, I think I realized something else that has been a a source of my frustration… caused by my lack of detail… I was using the diagram of the M8P 1.0, vs the 1.1. eyeroll

After straightening that out, things are moving… but none of the Z motors move…

I have confirmed that the wiring for my Z steppers is correct, by using the ratrig card (I’m tired of going back and fourth to verify things). I’ve compared both the cfg files, and I don’t see why my Z steppers don’t work under the vanilla klipper install.

I have uploaded both my klippey and printer.cfg files in hopes that someone can help.

klippy-5-1-24.log (3.0 MB)
klipper-printer-5-1-24.cfg (9.2 KB)

After looking at some example printer.cfg files, I discovered that the enable pins needed to have a ! before the pin… I don’t understand why the enable pin needs the !.. but now my Z steppers work. it pauses a good 4 seconds before the bed comes back up to hit the microprobe… Not sure how to adjust that.

progress!

from

https://www.klipper3d.org/Config_Reference.html

ok… I guess that makes sense; I mean the other steppers have that on it, so it makes sense that they all do.

No, it don’r make sense.

Did you understand the purpose of the ! ?

It doesn’t make sense that once the enable pin is defined, it still isn’t enabled… but if it doesn’t work, but the other motors have that, then it makes sense that the one having trouble needs it too. I’m just going to have to bank it in the “it doesn’t make sense, but that’s the way it works” part of my memory.

I understand that the ! reverses things, so even though its enabled, I need the ! to make it move. I don’t understand why it isn’t enabled, until i define the pin, and add the ! - THEN its enabled.

I appreciate you taking the time to explain it.

Now I see what you mean with all.

Yes all stepper drivers must have the ! in front of the pin names.

It’s the logic of the chip that requires a low signal to enable the stepper.

maybe I’m just tired, but I’m determined to push through… I’ve made so much progress in the last 48 hours that I just want to keep going.

Again, I appreciate all the help guys.

little bugs here and there… sometimes when direct one of the axis, it happens to all of them, it seems like its stuck… then it hurries up and plays catch up… like, for example… I have the print bed at 10MM; I want to bring it to 2mm, using the interface; 1 MM at a time… if I quickly press the 1mm button 5 times, it might move the bed up 3, stop for a few seconds, then come up the rest of the way a few seconds later. could this be do to having my printer.cfg file a little messy (tons of notes in it), or does that not matter?

1 Like

The printer seems to have settled out, and its not having these other little issues anymore… I’m having a problem finding the correct offset though (seems so basic it shouldn’t be an issue).

-I currently only have two Z steppers, so i set up tilt to use the front two corners (solid and not easily adjusted. After a few back and fourths, it gets within spec.
-I then go to adjust the back center screw (using screws tilt calculate) to get the bed as trammed to the gantry as I can. So far so good.
-I go to set up the height-map, and everything looks about as flat as i can hope for using the stock bed, with a 330x330 tronxy glass bed on it.
-I start printing, and the prime line comes out beautifully, it starts printing and the bed goes down as the print head moves toward the center of the bed, where it would start to print. The result is the printer starts printing millimeters above the bed. As the head moves around the bed, the bed seems to be moving to adjust for the ABL more than it should be. I can get the offset just right for one part of the bed, and its off for another. so much a difference that the filament wont stick to the bed.

Any ideas?

Attached is my current klippy file.

Thanks for all the help so far… I feel like I’m so close to finishing this upgrade, I can practically taste it.
klippy - 5-17-24.log (3.6 MB)

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.