Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login
    1. Home
    2. benjamin.forest
    3. Posts
    • Profile
    • Following 0
    • Followers 0
    • Topics 3
    • Posts 33
    • Best 1
    • Controversial 0
    • Groups 0

    Posts made by benjamin.forest

    • RE: Configuring idle timeout

      Hi,
      Had this functionality been added ? It would be great indeed. Or maybe could you give me the github ticket number if any, to follow it ? Or the whishlist mentionned upper is not in github ?
      I suppose implementation could be similar to M84 ?
      All the best,

      posted in Tuning and tweaking
      benjamin.forestundefined
      benjamin.forest
    • RE: Debug tips

      It doesn't work.

      I think it is linked to the calculation method : we are using directionVector, and it is calculated without using kinematics. So I guess everything after this (DDA.cpp, ~line 300) is miscalculated. Notably afterPrepare.cKc will have the wrong sign when hmz0scK is calculated in DriveMovement.c, ~l542, as you guessed earlier. My problem is that changing my model won't change that.

      Besides, I thougth about calucations performed in PrepareDeltaAxis and CalcNextStepTimeDeltaFull, but I do not manage to get the full picture. I can link tower position to motion direction and the percentage of accomplished motion, but that does not adds up with the code nicely. I get things in common, like A, B, aA, bB, but I'm still missing some pieces of the puzzle.

      I don't get where the speed/accelerations, that seemed to be calculated in cartesian tool coordinate system are translated into articular one either.

      Sorry if my questions seems naive.

      All the best,

      posted in Firmware developers
      benjamin.forestundefined
      benjamin.forest
    • RE: Debug tips

      Great thank you !
      I'll try right away.

      It's really cool to calculate the quadratics equations, I didn't thought of it.

      posted in Firmware developers
      benjamin.forestundefined
      benjamin.forest
    • RE: Debug tips

      any tips about dsK signification ?
      All the best,

      posted in Firmware developers
      benjamin.forestundefined
      benjamin.forest
    • RE: Unit Testing Firmware

      @JoergS5 Thanks a lot. I've seen it was a popular fork, I'll look into it.
      @dc42 Thanks as well. I'll try to get something out of Movement / DDA debug.

      posted in Firmware developers
      benjamin.forestundefined
      benjamin.forest
    • RE: Unit Testing Firmware

      Hi,

      Has anyone made any progress on isolating parts of RepRapFirmware ? I'm struggling to create a new kinematics, and the debugPrintf debugging method is not my favorite ...

      On the other side, my quick tentative to extract a few cpp files from Movement folder lead me to Core.h and other deeply target-related files, so it seems quite intricated. Am I missing something ?

      All the best,

      posted in Firmware developers
      benjamin.forestundefined
      benjamin.forest
    • RE: Debug tips

      Thanks for your time, I really appreciate it.

      About the model, I agree that this is equivallent if the carriage are below the end effector. This is what I tried when I inversed motors directions. Maybe I screwed up with my model, though.

      About pure Z motion :line 117 of DriveMovement.c, a comment about pure Z movement let me think that maybe it was handled differently ?

      A few more questions if you have time, since i'm trying to read the code to try encircle my problem :

      • It seems that LinearDelta does not use segmentation (GCodes.cpp, l.2047). I was thinking that segmentation was typically used for non-linear robots. What do I miss ? Is segmentation done somewhere else ? Probably in DDA, but where ?
      • What does DDA stands for ? Wikipedia propose "Discontinuous deformation analysis", but that does not seem to correspond ;). Looking forward in results I found Digital differential analyzer, which seems better ! Is that correct ?
      • So if I undestand correctly, DDA is performing two things : Motion planning, and rasterisation. Correct ?
      • I'm a little lost with the functions Prepare, PrepareDeltaAxis, CalcNextStepDelta, CalcNextStepTimeDeltaFull. Are they following a known algorithm ?

      My problem seems to come from DriveMovement.cpp, around line 527 : dsK < 0.
      When I try a simple G1 Y10 motion for example, dsK is < 0 for two of my three axes, leading to bad motion. Do you know what it could mean ?

      All the best,

      posted in Firmware developers
      benjamin.forestundefined
      benjamin.forest
    • RE: Debug tips

      I note as well that for pure Z motion, kinematics does not seem to be taken into account ...

      posted in Firmware developers
      benjamin.forestundefined
      benjamin.forest
    • RE: Debug tips

      I suppose I mp.delta parameters are miscalculated maybe ?

      posted in Firmware developers
      benjamin.forestundefined
      benjamin.forest
    • RE: Debug tips

      I've tried three strategies :

      Invert Z in LinearDelta Model
      Works, but X/Y moves in head coordinate system triggers wrong direction for motors. Leads to a strongly parabolic bedplate.

      Change Linear model and inverse motors directions
      Works for Z, but refuse motion for some axes in X/Y motion (dsK in DriveMovement taking negative values). Leads to only one axis on three moving for an Y motion for example.

      Change Z at the source, in G1 command handling
      Not interesting, but works. But create other problems (appart from not being maintainable), such as handling all function that need inverted Z.

      posted in Firmware developers
      benjamin.forestundefined
      benjamin.forest
    • RE: Debug tips

      Thanks,
      A small video shows our printer in motion : https://youtu.be/gORqC7tfNXI?t=22.

      Basically it is a LinearDelta, where the Head is fixed, and the bedplate moves. The only difference from a model point of view is a -Z instead of Z in CartesianTMotorSteps / MotorStepsToCartesian.

      posted in Firmware developers
      benjamin.forestundefined
      benjamin.forest
    • RE: Debug tips

      Thanks for your answer. I'm aware of M111 commands but they havent been that usefull so far, my problem doesn't seem to reach them.

      Any doc on DDA / DriveMovement general principles ? I get it that it is responsible for motion trajectory planning, but can't get a general view of their flow ...

      All the best

      posted in Firmware developers
      benjamin.forestundefined
      benjamin.forest
    • RE: Debug tips

      Note that I take any advice or documentation about DDA, DriveMovement and algorithm used as well 🙂

      posted in Firmware developers
      benjamin.forestundefined
      benjamin.forest
    • Debug tips

      Hi,

      As mentionned in a previous post, I'm struggling with something which seemed simple on a first glance but is a real pain in reality, ie adding an "inverse delta model" in kinematics.
      This is because the delta kinematics logic is actually being disseminated in the firmware (search for isDeltaMovement for example).

      I am not sure to perfectly understand why the DDA needs to know it is performing a delta movement, but I am encountering difficulties to understand what's going on, and where my motion fails.

      Do you have any tips about how to efficiently debug my kinematics, without adding debugPrintf, or M111 commands ?

      All the best,

      posted in Firmware developers
      benjamin.forestundefined
      benjamin.forest
    • RE: Inverted Delta kinematics

      Thanks, I'll think about it.

      posted in Firmware developers
      benjamin.forestundefined
      benjamin.forest
    • RE: Inverted Delta kinematics

      Sure, I'll be thinking about it. I remember you were working on some test as well, did you publish something about it ?

      All the best,

      posted in Firmware developers
      benjamin.forestundefined
      benjamin.forest
    • RE: Inverted Delta kinematics

      Thanks, that's a good Idea. I made this by error when I started trying. The problem is that if it works well for Z, when moving along X/Y the model is no longer valid, since motors are moving in the wrong direction. This lead to the motion being parabolic and is not usable ... Unless maybe I change my model accordingly ? I'll investigate if no other solution is possible.

      posted in Firmware developers
      benjamin.forestundefined
      benjamin.forest
    • RE: Inverted Delta kinematics

      Thank you very much for taking the time to understand my problem, it's always a good thing to explain things, and helps my self understanding of what I've done !

      All the best,
      and until my next post 😉

      posted in Firmware developers
      benjamin.forestundefined
      benjamin.forest
    • RE: Inverted Delta kinematics

      Yes, but I didn't found the way direction is actually calculated

      posted in Firmware developers
      benjamin.forestundefined
      benjamin.forest
    • RE: Inverted Delta kinematics

      bool DriveMovement::PrepareDeltaAxis(const DDA& dda, const PrepParams& params) noexcept Does seem to intervene as well, but I don't know how or when ...

      posted in Firmware developers
      benjamin.forestundefined
      benjamin.forest