Coder Social home page Coder Social logo

Comments (7)

DerAndere1 avatar DerAndere1 commented on August 15, 2024

What display config?

from marlin.

hobiseven avatar hobiseven commented on August 15, 2024

See below, in the independent move axis menu
Motion > Move Axis > Move I
For example.
I is way slower than Y.
J is actually faster the I, but displacement is super small. H
IMG_1633

from marlin.

DerAndere1 avatar DerAndere1 commented on August 15, 2024

I have no clue about the display-related code. Never had a serious look at it (I don't use a dedicated display but connect to a laptop). Maybe someone else knows how to fix it?

from marlin.

hobiseven avatar hobiseven commented on August 15, 2024

@DerAndere1 ; After fixing the IJK steps calculation, this is still broken. I will fix this now.

from marlin.

hobiseven avatar hobiseven commented on August 15, 2024

Ok, found the issue, at least something obviously wrong : Acceleration is correct for X, but incorrect for J. Note, this is also possibly impacting all movements.

To reproduce, simply request an axis moove through the moove menu, and request 10mm. For X, we have 80 steps per mm > 800 steps requested overall. The steps requested is correctly calculated in stepper.cpp for X,I and J.
Result :
X mooves by 1/4 turn, and my X stepper is 200 steps per turn > 50 steps done.
Y mooves by 1/2 turn, and my X stepper is 100 steps per turn > 50 steps done.
I mooves by 1/4 turn, and my I stepper is 200 steps per turn > 50 steps done but at very slow speed
J mooves by a very small amount very fast. Trying to go back to original position only works 1 time out of 2. the second time, axis direction is inverted.

Issue can be seen in stepper.cpp, line 1877

// Compute the acceleration and deceleration points
accelerate_until = current_block->accelerate_until << oversampling;
decelerate_after = current_block->decelerate_after << oversampling;

For X
Accelerate_until = 400
decelerate_after = 400
For I
Accelerate_until = 0
decelerate_after = 800
For J
Accelerate_until = 0
decelerate_after = 800

After a bit of followup in the code, the mistake is not in stepper.cpp, but is in the planner, passing wrong parameters.... More to come!
Luckily, the STM32 allows hardware breakpoint on the target. Now way to find that on an AVR platform, unless you have the code developped in Atmel IDE + debug probe.

from marlin.

hobiseven avatar hobiseven commented on August 15, 2024

Update : For short Gcode files, all works perfectly. The attached file, much longer, still shows difference on J axis. I think this is the same root cause as the difference seen in the displacement issued by the menus. Gcode attached as a reference. Same Naca 43012 profile cut at the same time on both XY and IJ.
Would be great is @DerAndere1 you could play this file in your AVR board, even on Marlin 119, to check wether the issue is a porting issue, or a missing code issue.

43012.zip
Output on ARM , M114 at the end :

Send: M114
Recv: echo:M114
Recv: X:0.35 Y:0.00 Z:0.00 I:0.35 J:-1.42 E:0.00 Count X:28 Y:0 Z:0 I:14 J:-57
Recv: ok

The output should be exactly the same X /I and Y/J.

Let me check the acceleration and deceleration calculation. There seems to be quite a lot of 6 axis code missing from motion.cpp... more to come

from marlin.

hobiseven avatar hobiseven commented on August 15, 2024

This is fixed. Definition of manual feedrates ware missing for I, J and K axes for LCDs using ULTIPANEL, EXTENSIBLE_UI.
See commit https://github.com/hobiseven/Marlin/commit/efde6ca2a6abb3e05f3f909bc1d65dbbe0a2ece8

from marlin.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.