-
-
Notifications
You must be signed in to change notification settings - Fork 20
[BUG] movement too slow with G2/G3 #72
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
i tried with latest marlin bugfix 2.1.x, it works great. Your tcpc branch has many errors, in addition to the g2/g3 migration error, there is also the problem of declaring spindle in the adv.h file. I have downloaded the latest version on your tcpc branch, reconfigured it, I will test it in the next few days to give you feedback. i use chip mega 2560 board ramps 1.4 for 5 axis machine, has limit switches for all 5 axis. |
What do you mean with tcpc branch? Do you use my Marlin2ForPipetBot branch ? With that branch I can enable SPINDLE_FEATURE without problems. Please provide your configs (Configuration.h, Configuration.adv) and the exact error message. You can attach files by putting them in a .zip archive. Then add a new comment below. While editing the comment, click on the button "Paste, drop or click to add file" below the comment. |
These are the 3 files I have edited in there, In the pin ramps file, I edited the endstop part to add home points for axis a and c |
The change in commit d632ff3 was an attemt to fix an issue with erratic, fast moves when a G1 command involving only linear axes was followed by a G1 command without F parameter that involved rotational axes. The compiltion error when SPINDLE_FEATURE and ABORT_ON_SOFTWARE_ENDSTOP were enabled is now fixed in branch Marlin2ForPipetBot with commit 00e49de. |
I downloaded your latest fix, compiled it, no more errors appear at the moment. I will test it on my cnc router. |
PI3_chess-king.zip |
video.zip |
Am I annoying you by asking too many questions? I discovered an error that I cannot use g38 in the adv.h file if I use tcpc kinematics. I love your firmware, so I want to apply it to multi-axis CNC machines, or robotic arms. i know the marlin platform doesn't prioritize cnc work. If I bother you, then please try to fix the g2/g3 error. |
I appreciate any feedback. Please report as much issues as you can. I have a lack of time and I am not a "hardware guy", so I depend on testers and discussions like this to improve support for mills in Marlin. I will look into these bugs one at a time, whenever I have time to spare. |
I cherry-picked the two most recent change-sets affecting G2/G3 from MarlinFirmware/Marlin. One of the commits was called "Fix G2/G3 error in limit speed", so that might already fix the issue with G2/G3. Please test the latest Marlin2ForPipetBot branch from today Enble G38 with a non-cartesian machine at your own risk. It was never tested. Make sure that the rotational axes are in neutral (zero) position before you send G38: Probing currently can only work if your tool and probe is oriented in Z direction and when the table / printbed is oriented in the XY plane. Switch to tool 0 for probing. HOTEND_OFFSET for tool 0 must be 0. To compile with G38_PROBE_TARGET, remove the following 2 lines from file Marlin/src/inc/SanityCheck.h before compilation: https://github.com/MarlinFirmware/Marlin/blob/bugfix-2.1.x/Marlin/src/inc/SanityCheck.h#L2518-L2519
|
I just recompiled, and am excited to test this g2/g3 fix. We'll come back to this g38 topic once we're done with the g2/g3 fix. I will need some time to rebuild my multi-axis cnc router, with tests using high precision measuring tools. will then respond to you. |
Previously discussed topic, I don't know if it can help? |
what a mess, marlin bugfix 2.1.x branch cannot connect to cura software like your branch. |
video when testing code with Marlin-Marlin2ForPipetBot branch, the response from the software is too strange |
I can confirm that G2 is totaly broken in Marlin2ForPipetBot. On my machine, trajectories and feedrate are wrong, even when compiling for a cartesian machine (no special kinematics defined). It was working at some point,. Looks like some wrongly zero-initilized variable, but I cannot find it. The fr_mm_s varibale in the body of the function Planner::_populate_block shows correct values when executing G2 commands, so that is not the issue. I think the easiest and best way for me to fix this is to rebase onto current bugfix-2.1.x. Initially the new branch I plan to create will not support G49 or G43, it will allways be in TCPC mode. I have already rebased kinematics, quick_home and tool change. TOOLS and G10 is missing. It will take some weeks to have something ready for testing. Sorry for the inconvenience |
I feel a bit regretful if I have to go back to the beginning, the official branch on the marlin homepage, or the bugfix branch makes me not very confident about the part that creates pulses to make the axes move, the sound of the moving motors is not as smooth as the Marlin2ForPipetBot branch. your. |
DerAndere1. |
I am building an additional handle for a cnc machine by using an Arduino nano to generate rotation pulses for the x y z axes. communicates with the motherboard via the RX TX interface. Everything on the handle is fine, but connecting to the motherboard is not possible. I don't know if the mega 2560 chip allows multiple PORT RX TX ports. |
I have completed the handle job version from a free source code, the problem is that I am testing the rx tx communication with the MKS GEN L board, the firmware allows using additional port 2. However, the central controller My heart is building on a multi axis cnc router which is a mega 2560 kit and ramps. I haven't figured out how to solve this problem yet. haha |
a 2560 motherboard is an 8 bit version |
Looking at your compiler error list; |
I have connected handle job to board meg2560 + ramps via rx tx port. firmware marlin bugfix 2.1.x |
DerAndere1 |
DerAndere1 |
GRBLGRU SOFTWARE DOWNLOAD LINK |
I am testing a cyclo gearbox I designed, I plan to share the drawings with you if the testing is successful. Please give me some information so I know it is you via my email. [email protected] |
@DerAndere1 It's been a long time I did not look into the 4 axis foam cutter, and I post this question here as I see people are trying to compile on STM32 platforms. |
I actually see you rebased your branch on 11/10.... so I might actually give a try and use your branch right? |
Hi @hobiseven, happy to hear from you. All foamcutter code was merged into MarlinFirmware/Marlin a long time ago, can't remember when. I have not heard of any bugs, so I guess it works fine on all relevant branches / tags. I use Marlin on STM32 boards myself, albeit no foamcutters. Choose any of the recent versions: from marlinfw.org: example configs for foamcutters that should work with bugfix-2.1.x can can be found at example configs for foamcutters that should work with tagged release 2.1.2.5 can can be found at or use my fork (for foamcutters there are no benefits compared to official Marlin): |
@printercnc if your gearbox model is below 25 MiB, you can upload the model by compressing it as a .zip file and dragging the .zip file into a new comment here. by the way, I contacted the author of Grblgru. He might send me the source code for Grblgru when he feels ready to do so. Please be patient and let him decide. |
@DerAndere1 Thank you for this very valuable information. I have 2.1.2.4 version running with in the 3d printer configuration. I never saw there was configuration files for the foamcutter !!! Great news . Thanks a lot for all your efforts. |
Is to save point coordinates other than machine coordinates x0 y0 z0 is the syntax G10 L20 P 1 X0 Y0. meaning the coordinates x0 y0 will now be saved to g54, instead of me calling the syntax
|
Did you find it? it's here, you download the example configuration to overwrite the original configuration then recompile on the board you need, there will be errors you need to understand about compilation to fix these small errors. |
yes,
should be equivalent to
|
Is there any way to edit the display to add two coordinates of axis A and C? |
I see you have two new modifications related to laser-spindle and tool. do you have any instructions on modifying to display multiple coordinate axes on the screen? for example add two axes A and C instead of X Y Z as it is now. |
if you need it for other screens than currently supported, you need to implement it yourself. I can do only basic changes to DOGM-based displays with MarlinUI and cannot help with code for other displays.
should be fixed now. Let me know if you find other mistakes. Thanks! |
oh, I forgot to add the implementation of LCD_SHOW_SECONDARY_AXES to the recent version. That should also be fixed now, at least for DOGM displays |
|
initially i was missing the library and installed it but still got error. i tried on vscode, and got this error.
which screen are you using can you recommend me. |
hi, are you still working?
assuming the MRZP offset for the first tool is 100 mm, how will the offset be automatically updated when i replace the second tool. |
Last time i tested this, it worked as documented in the README: The DEFAULT_MRZP_OFFSET_Z is independent of any tools. IFor 5 axis CNC machines in head-table configuration (PENTA_AXIS_HT) this is the distance from the gauge line at the tool head to the horizontal centerline of the joint that tilts the tool head. when all axes are in zero position. The gauge line is a tool-independent reference point at the toolhead, usually at- or close to the bottom surface of the spindle, or at the bottom of the toolhead when all tools/hotends are removed. On the other hand, tool length offsets (HOTEND_OFFSET_Z) are the distances between gage line and the tip of each tool. In G43.4 tool center point control mode. the firmware uses inverse kinematics calculations to account for all offsets, i.e. the active workspace offset (set by G10 and G54....), MRZP offset (DEFAULT_MRZP_OFFSET_Z) and the tool length offset (HOTEND_OFFSET_Z, set by G10) of the current tool (set by the tool change command |
Suppose we have an HT machine configuration With the first milling cutter as reference, we can choose DEFAULT_MRZP_OFFSET_Z 100.0 // (mm) is the distance from the center line of the rotating shaft A to the horizontal plane of the cutter head. When we change the milling cutter for machining, this distance will change, and manual measurement will no longer be accurate. We use the g425 command to automatically compensate for the HOTEND_OFFSET_Z distance deviation.
so the distance to make the initial reference HOTEND_OFFSET_Z would probably be like this, and I would have to turn those lines on
set all to 0 since I selected the cnc tool head without the milling cutter installed as the initial reference.
|
tôi gặp thêm lỗi này
khi bật #define CALIBRATION_GCODE |
You definitively need to enable those lines as I explained in the past.
No. You need to set the values of HOTEND_OFFSET_Z to match the distance from the gauge line (bottom of reference tool T0 in your case) to the tip of each tool with a tolerance of +/- 5mm. More negative values mean longer tools. e.g. Hotend offset of tool 0 must stay 0.0. If you have your reference tool T0 and two other tools that are 10 mm longer and 20 mm longer than the reference tool, you would set
or set those offsets at runtime to the proper values using M218 ( (more negative values mean longer tools) or G10 (with this command, more positive values mean longer tools) before using G425.
you have to test this on your machine. I think in your setup, the nozzle-to-probe offset is the distance between the tip of tool 0 and the [tip of the bed probe that is used for G29 and G38]. If you have a dedicated
both definitions have the same meaning, just using different wording. use whatever definition is easier to understand for you. |
I just commited a change that should fix the error that occured when enabling CALIBRATION_GCODE in configs with less than 2 hotends. |
I also commited a change to the Marlin2ForPipetBot branch that makes the definitions of MRZP offsets more specific. I added the info that tool 0 has to be selected when determining the MRZP offset. Thanks for your feedback! |
i get this error
when
value 0 1 2 3 is the same quantity 3d printer extruder, or 0 is the option for 3d printing. 1 is for laser. 3 is cnc center machine. when i change the numbers 0 1 2 3 it all shows the same error. |
you hit a bug that is also present in upstream MarlinFirmware/Marlin. G425 calibration gave that error when no bed leveling options were enabled, Should be fixed now in the Marlin2ForPipetBot branch. |
i also tried to enable some bed leveling options but the error still exists. now you have solved it.
or the current G425 has been improved to not need the G38.2 command anymore. |
I answered this questtion already above. Here is the proof: #72 (comment) Note that G425 and G38 do different things as described in the documentation for Marlin. G425 uses a tool setter connected to a dedicated Loosing track of the discussion like this happens easily when you discuss several problems in one issue. That is why it is important that you close github issues when the original problem was resolved and open a new github issue for each new problem you encounter. To open a new issue, go to the "Issues" tab at the top of this repository, then select "new issue" (green button at the top right) and there, provide a description of your problem. |
Did you test the latest
bugfix-2.1.x
code?No, but I will test it now!
Bug Description
WITH SYNTAX G2/G3 X Y Z I J F THE AXIS DO MOVE BUT VERY SLOWLY
This potential bug was first reported by @printercnc here: #55 (comment)
Bug Timeline
unknown
Expected behavior
Feedrate should be accoring to parameter F
Actual behavior
Feedrate too slow
Steps to Reproduce
TODO
Version of Marlin Firmware
unknown
Printer model
custom
Electronics
unknown
Add-ons
unknown
Bed Leveling
None
Your Slicer
None
Host Software
None
Don't forget to include
Configuration.h
andConfiguration_adv.h
.Additional information & file uploads
TODO
The text was updated successfully, but these errors were encountered: