Messed up buying controller skr 1.4

Since you are not using endstops and afaik the firmware is not configured for sensoless homing, you are not supposed to use the homing function. The machine can’t determen where home is. You move your tool to the position where you want to start and send a “this is 0,0,0 message” (reset zero in UGS).

Thanks for the answers!

But if I zero Z Y and X on the lcd, doesn´t the machine then asume that “that zeroed” position is now “home”?
That is what I´m trying, and it failled all times.

@jeffeb3 I´ve made a crown test (with no lowrider, only the steppers) and at least they move all… it doesn´t mean anything… but anyway it´s soooo satisfaying for me :smile:

The “Home” command on the LCD doesn’t mean “return to home position,” it means “Find out where home position is by bumping up against the endstops.”

1 Like

Ooh… then I understood it wrong…

So, if I zero all axis to one point, that point is “zero”, but not “home”… right?

1 Like

Right, when I home my machine (I use endstops) I have to press reset zero to make that point 0. But also, as I start a job, I manualy place the tool on the zeropoint of the gcode (as shown in my gcodesender) and press reset-zero again.

TL;DR Warning - This post is long and tries to explain work versus machine coordinate systems. If you don’t want that level of detail, skip it after understanding the following:

  • Move the tool to the desired location and use the gcode command G92 X0 Y0 Z0 to set where you want “home” to be.
  • Use the command G0 X0 Y0 Z0 to move the tool to the currently defined “home” location. (But be warned - this will move the tool to the origin in a straight line and may damage your tool or workpiece if they collide.)

Most gcode flavors support a bunch of different possible coordinate systems, each of which (not surprisingly) can be based on different frames of reference. Even in the analog world “home” means one thing inside a baseball diamond, and something completely different everywhere else, and different thigs to different people.

To oversimplify things a bit, I think of “Home” as a place, also sometimes called the “origin” where all coordinates are equal to zero. This is often relative to a work piece.

“Homing” to me is a verb where the machine decides where “Home” is by moving in a defined process until sensors (usually switches, but other things like edgefinders or surface probes can be used) let the machine identify where in the movement envelope the tool is located, and it sets coordinates to match. End stops establish machine home based on the overall movement envelope of the machine. Edge finders and surface probes find workpiece home. If you don’t have switches or sensors, the G92 command allows you to specify any arbitrary tool location as any particular coordinate. Most often, we’ll move the tool to where we want the origin to be and send G92 X0 Y0 Z0.

In 3D printing (what Marlin firmware was originally built to support) there isn’t usually a distinction made between work(piece) coordinates and machine coordinates because you need to be able to print pretty much anywhere inside the machine space.

With CNC milling it can be very useful to maintain the distinction between these coordinate systems. You could, for example, set up a bunch of blank workpieces on your spoil board, set the origin to the location of the first workpiece, run the gcode to machine that first piece, (re)set the origin for the second piece, run the exact same gcode to machine the second piece, reset the origin for the third piece, lather, rinse, repeat… In this example, the gcode is written in workpiece coordinates and the different blank workpiece locations are specified using machine coordinate offsets.

Now let’s take another look at that G92 command. What it is really saying is “offset the workpiece position from the machine position by this much for the specified axis (or axes).” You can reset this value as often as you like. You can also store a number of standard workspace offsets. For example you might store different ‘preset’ home locations for fixture plates or work-holding vices if your machine had several.

There are even “coordinate systems” that can automatically adjust to new tool lengths, or compensate for expected tool wear after a known number of hours of use in different materials.

Luckily, most of that complexity can be safely ignored unless and until you need it, but understanding that “home” means different things depending on what you’re trying to do, is a pretty important first step.

3 Likes

Great explanation!

1 Like

Wow, that was a brilliant explanation!!! Tons os thanks!

I understand it all really better, but still are a little confused at one point:

-if I send the G92 x0 y0 z0, I’m telling the machine that where it is, is the “zero” point.

-if I rezero all axis on the machine, I’m telling the machine that it is now on the “zero” point.

Is there any difference between them? Probably I’m loosing something because of my level of english, so sorry for that :sweat_smile:

Anyway, thanks for all the great help you are all giving me!

If there’s a button or menu option on the machine that says it will “zero all axes” it’s probably sending a G92 X0 Y0 Z0 command.

If there’s a button or menu options that says “Home” then it is probably triggering a homing cycle for one or more axes looking for an end stop sensor.

(edit added second paragraph)

1 Like

-if I rezero all axis on the machine

If by “rezero the axis” you mean “Home” the machine, this is exactly the distinction that Tom makes in his (IMHO excellent) post. As he indicates, there is a major conceptual difference between Home and G92. Considering only the X and Y axes and setting aside the concept of workspaces for a moment, when you home a machine, you are returning to the exact same physical location every time. A G92 X0 Y0 set the origin to the current position of your router. This position is almost always relative to some place on the workpiece. Both set a (0,0) on your machine that could be used by any g-code executed. One difference between Home and G92 is that by default on the Marlin firmware, if a machine is Homed, then negative g-code movement/coordinates are ignored. After Homing, the Marlin firmware assumes the machine is at its minimal XY positions and prevents the machine from jamming itself against the micro-switches.

1 Like

HI
I have a skr1.4 turbo with DRV8825 and all working very good. i have V1 menu to reset axes =0
i can send my marlin if you want to try mine…you need to change a little thing to work (driver name…)

DAvid

1 Like

Hello,
I have a 1.4Turbo waiting for deployment - but been watching the comment flow and waiting for some inspiration. Meanwhile my LR2 is successfully operating with a RAMPS 1.4 and DRV8825’s, dual mode with endstops.

You seem to have sorted out the essential changes, and I wonder if you would kindly share these.

Rgds,
Brian Rowbotham
Johannesburg
South Africa

Hi there!

I´ve been busy but I´m back again trying to put together my Lowrider…

First of all: thank you everybody for all the answers, each of them are a great help, really.

@davidrc I would really appreciate that you could send me your marlin. Maybe it solves the new issue I have…

So this is the situation:

I builded the lowrider, smooth move, belts tight… everything as I saw on the documentation and the forums… It wandered a little in the middle of the X axis, but I added a lateral wheel and that solved the problem. I´ll upload pics as soon as I get the wiring “showable” :smile:

I was about to run the test crown when I asked myself if it mooved really 10mm in each axis… and surprise!!!

-On the X axis, when I move 10mm on the screen (on marlin or touch screen mode), it moves 20mm.
-The same on Z axis.
-On the Y axis, it moves correctly, I mean: if I demand 10mm, it moves 10mm.

So, what is wrong here? Perhaps firmware? It´s curious that this issue only happens on the axis that have double motors…

Maybe it´s really simple to solve, but I can´t find out where to look…

Thanks in advance!!!

search on youtube… step calibration…you have some tuto to make that
david

From my following the forum, there are two things to look at. First in configuration.h, there is this line that sets the steps per mm:

#define DEFAULT_AXIS_STEPS_PER_UNIT { 100, 100, 400, 100 }

This line above is from my Rambo board, and the needed values will change depending on how you have the microstepping setup for your specific drivers. Mine are all set to 16 microsteps. So you can either change these values, and/or you can change the microsteps for your drivers.

Note that the values represented in this #define can be changed without reflashing the firmware using an M92 g-code command and then made persistent using an M500 g-code command.

1 Like

Thank you @robertbu!

I tried, but I guess it’s too much for me… I think I’ll give up and finally buy a Skr pro, so I can use “finished” firmware, and keep going on.

And I’ll cross fingers waiting that solves the double movement issue I have.

What drivers do you have? If by two probably means they aren’t set for the same microsteps. If you have drv8825s or a4498, then I suspect you are missing some jumpers under the drivers.

1 Like

Hi @jeffeb3!

I have the tmc 2209 drivers, and I only left on the jumper that enables the uart mode. And I left it the same in the 3 axis, so I can’t understand why two axis work wrong (X and Z) and the Y one is correct.

Yep. That makes no sense to me. Check what the steps per mm are by just sending M92. They should be 100,100,400,100. You can also change them with M92. Weird.

I´ve done that now… and what it sends me is: x200 y200 z800 e200.

That means all is the double the value it should be… but the Y axis is working as it should… really weird!

Anything I can do to try to fix this? Just as knowledge, because I´ve already ordered a skr pro so I can use the proper firmware ( the problem should be here).

Thanks in advance!