-
-
Notifications
You must be signed in to change notification settings - Fork 19
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
Marlin-9axis_pull hardware test report Axes 8 and 9 #55
Comments
Thanks for testing and reporting. I will have a look. |
compilation for 8 and 9 axes is fixed now in https://github.com/DerAndere1/Marlin/tree/Marlin/9axis_pull . Thanks for providing the preconfigured firmware, it helped with development . Your pin files and configs can be copied over without changes. |
I have tested the latest version Marlin/9axis_pull. |
It seems the P axis is always in relative mode. This seems to be related to issue #54 . I had no problem with absolute/relative mode in upstream Marlin bugfix-2.0.x so it seems like a good idea to rebase the 9axis code onto current MarlinFirmware/Marlin bugfix-2.0.x now as that should fix the issue EDIT: you issue seems to be more than just relative mode I have read 25mm where you wrote 35mm. What happens if you send |
Luckily I just found and fixed a typo in 9axis_pull that led to a bug in the p axis that would have been very hard to debug otherwise. Maybe that fixes it already |
Memo to myself: I have to change uint8_t to linear_axis_bits_t in the following lines: Marlin/Marlin/src/module/stepper.h Line 291 in 2b18e92
Marlin/Marlin/src/module/stepper.h Line 545 in 2b18e92
Marlin/Marlin/src/gcode/gcode.h Line 329 in 2b18e92
Marlin/Marlin/src/module/planner.cpp Line 2333 in 2b18e92
Marlin/Marlin/src/module/planner.cpp Line 2337 in 2b18e92
Marlin/Marlin/src/module/stepper.cpp Line 152 in 2b18e92
Marlin/Marlin/src/module/stepper.cpp Line 1662 in 2b18e92
Marlin/Marlin/src/module/stepper.h Line 291 in 2b18e92
Marlin/Marlin/src/module/stepper.h Line 545 in 2b18e92
and make sure the following macro from motion.h L425 is moved to types.h or elsewhere so that it is available in all files listed above:
|
above changes are now in 9axis_pull branch. Testing is much appreciated |
yes my git repository was in a strange state. should be fixed now including an additional correction regarding relative/absolute mode |
If the current solution is problematic with 8 or 9 axes, we will have to use |
In the first configured version 3 days ago, the 8th axis worked without any problems. |
Latest version downloaded My pin files and configs copied over without changes. The dir problem with the 9th axis is not solved yet. The other 8 Axis work well G1 X100 Y100 Z100 A90 B45 C45 U90 V90 I send you the current configuration |
When looking for a solution to the ( dir ) problem of the P Axis Marlin > src > core > types.h 376 template Line 380 ----> a9 this must be ax9 Unfortunately this doesn't solve the ( dir ) problem of the P Axis. I also came across a few things while searching that I don't know if it's wrong. Marlin > src > inc > Conditionals_post.h 186 #if LINEAR_AXES >= 9 I'm missing the code for the 10th Axis . Marlin > src > feature > stepper_driver_safety.cpp In this file I see everything from the X Y and Z Axis plus extruders E |
I now changed the type of one occurance of
|
Just a quick feedback. |
This is great. If you like, you can prepare a list of Gcodes you need for printing and one list for G--codes you tested succssfullly. Alternatively, you could attach an example gcode file (preferrrably one with many different commands) that you tested, and report the Start-Gcode and End-Gcode (if any) you are using. That would be equally helpful - Would be nice to see where we stand. |
For the X Y and Z Axis all standard codes work I did the tests you asked about before DerAnder1 |
I configured the 10th Axis. (The 10th Axis works after corrections ) Question For the cooling of drivers on the extension board M5. Configuration_adv.h 466 --> #define CONTROLLER_FAN_PIN FAN2_PIN // Set a custom pin for the controller fan Is that possible with the current configuration ? Test report Axis 10.txt |
Thanks for the corrections. One of the more challenging things to get working correctly with a 5+ DoF machine is probably bed leveling. For your setup, we could change the AUTO_BED_LEVELING_3POINT code so that it automatically adjusts the rotational axes of the table. Then the bed can be assumed to be level after a G29. Otherwise (or for mesh-based bed leveling procedures) you would probably have to implement inverse kinematics for your machine within Marlin |
I will contact Hcc!3d via their website and see if we can get in contact as soon as I have time. |
((The AUTO_BED_LEVELING_3POINT code so that it automatically adjusts the rotational axes of the table.)) That would be nice . 1193--> #define NOZZLE_TO_PROBE_OFFSET { 10,-20, -2.0, 0, 0, 0, 0, 0, 0, 0 } In this line you must be able to indicate how all axes are in the G29 function. Before I bring my printer back to 7 Axes I send you a video of the test setup for 10 Axes |
Not so sure about that. I think you allways should home all axes before sending G29 and in that case, only offsets in X, Y and Z are meaningful. NOZZLE_TO_PROBE_OFFSET should become distances in the cartesian 3D space, so only X, Y and Z element is meaningful. The additional elements of value 0 in that array are only a workaround that is needed until Marlin has a dedicated variable type for 3D coordinates. Quote from the wiki:
What I meant with my proposal was to eliminate the need for bed leveling compensation in software during the print by doing it in hardware once during the G29 procedure. Here is some pseudo-code for that implementation of G29:
(inspired from Marlin/Marlin/src/gcode/bedlevel/abl/G29.cpp Line 702 in de061ba
|
I think I misunderstood you. First homen G28 and then bed leveling G29 will not always go well . |
Have you already implemented my changes to, the 10 Axis test report, in the official version? |
G29 AUTO BED LEVELING > LINEAR < also works |
I have added your corrections plus one change in motion.h to 9axis_pull. But so far I have not found a solution to the "?" reported with Regarding
Does it help to set the following in Configuration.h ?
|
When I download Marlin-9axis_pull as zip file. |
Also when I download zip file I get Marlin-Marlin2ForPipetBot.zip |
Edit: github fixed their bug that caused the issue with downloading different branches as zip from github.com. |
Very satisfying to watch :) In the meantime I have uploaded the fixes mentioned above to the kinem2 branch. When you update to the current version, the settings for the XYZBC_HEAD_TABLE kinematics will have to be renamed as follows: In addition, I am in the process of adding kinematics for a 5 axis CNC machine in tilting rotary table configuration with axes XYZAC. It is not ready for testing in hardware. In my first draft I came up with these calculations which need to be verified on a calculator using example values: Marlin/Marlin/src/module/penta_axis_trt.cpp Lines 85 to 109 in 7266e35
|
It would be nice to have a demo video showcasing the G43.4 command. Are you interested in licensing a short video under a liberal license like the Creative Commons Attribution ShareAlike License (CC-BY-SA-4.0)? |
I will make a video for you to license the G43.4 command. |
You could try the M665 command that I extended to be able to fine-tune the machine rotational center point Z offset (MRZP). For the XYZBC_HEAD_TABLE setup with a single hotend, the MRZP is the pivot length of the tool head (measured from the joint of the B axis to the nozzle tip). The default value is given by |
if that does not help, it might be that you have to adjust settings [X/Y/Z]_MIN_POS and [X/Y/Z]_MAX_POS until the 0 position after homing is exactly at the center of the bed surface. Otherwise it could be a rounding error in firmware. |
Hi
That reminds me the error I was getting initially where the printer was not getting back to the initial position due to a small error in one of the piece of code in planner.cpp. Does each individual axis return to their exact initial position after many back and forth moves? Error was accumulating on I or j axis and resulted in a few steps off….
Olivier Briand / NXP Semiconductors
… On 4 Nov 2022, at 10:51, HendrikJan-5D ***@***.***> wrote:
I will make a video for you to license the G43.4 command.
But first I want to do some more testing.
To clarify what is causing the mechanical deviation,
at the combined X Y B C Z axis displacement .
I see a deviation in the Z height,
and a deviation in the circle position.
It is not yet clear to me if this is caused by the mechanics or by the firmware calculations.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.
|
I also saw that error , |
I downloaded your latest version kinem-2. And get a compiler error see info |
Hardware and software testing for TCPC and G codes G43.4 / G49 |
Thanks for the reports!!! Do I understand correctly that the last video can be used (shared with others) under the terms of the Creative Commons Attribution ShareAlike License, Version 4.0 ? I updated the kinem2 branch again to fix compilation. I was able to compile it with your latest configs after changing values of HOTEND_OFFSET_X, HOTEND_OFFSET_Y and HOTEND_OFFSET_Z so they look like this:
Note that the number of elements in these arrays must match the value of Segments per second can now be changed at runtime using Currently, the G43.4 command must be followed by a move command that explicitely specifies the desired tool position for ALL axes, i.e. a complete Quote from https://www.haascnc.com/service/codes-settings.type=gcode.machine=mill.value=G234.html
|
Yes You understand correctly that the last video can be used (shared with others) under the terms of the Creative Commons Attribution ShareAlike License, Version 4.0 ?. |
No file transfer needed.
Suggestion for the video description:
|
Regarding further developments, I cannot guarantee much. |
For your interest: another interesting aspect of the current kinem2 branch are improvements related to automatic tool changers and machines that combine 3D printing and milling. The value of the new option |
I reconfigured your latest version. Connecting... |
As you describe the issue, it repeatedly happens at the same command. This points to a firmware issue rather than hardware (loose/broken usb cable, too high baudrate). It is always recommended to have command M400 after the final move command. For debugging. send M111 S1 at the start of the Gcode script and see if you get the expected "OK" echos after each command, Maybe you could try increasing config setting |
I have done several tests. |
To see if I could control the Rotary Axes via the LCD display. |
Please test if you can fix the first error (cannot call non-constexpr function "strstr") by updating your libraries and the ST STM32 platform under "PlatformIO home" I used your latest configs to identify and fix a compile error related to the U axis in my move_rotary_axes_from_LCD branch. here is a link to the single line change: To compile the fixed move_rotary_axes_from_LCD branch, I did the following changes in your Configuration_adv.h as advised by the sanity check:
change those lines to something like this:
Instead, if you know what you are doing and/or are willing to accept the risks associated with experimentation, you can remove sanity checks by deleting (comment out) the related lines in file SanityCheck.h |
Compeiler problem solved. |
I have updated the Marlin2ForPipetBot branch. It is currently the most up-to-date branch. The updated example configs for your printer can be found at https://github.com/DerAndere1/Marlin/tree/Marlin2ForPipetBot/config/examples/multi_axis_3D_printer.
|
I detected a very slow g2 g3 movement error on your tcpc branch |
I wonder if anyone has responded to you yet? i just uploaded your latest revision on tcpc branch, i will reconfigure and test g2 g3 movement |
No one has yet responded to my TCPC test report. |
I'M FEEDBACK TO DerAndere1, I DON'T KNOW IF THE FEEDBACK HERE IS CORRECT? IT IS NOT RELATED TO THE PROBLEMS YOU MENTIONED, WITH THE SYNTAX G1 X Y Z F , THE AXIS MOVE VERY SMOOTH. WITH THE SYNTAX G2/G3 X Y Z I J F THE AXIS DO MOVE BUT VERY SLOWLY. |
Open a new Issue to contact DerAndere1 |
Hi, I opend a new issue to track the reported bug concerning the feedrate with G2/G3. I hope everyone is doing fine. By the way, open source CAD models of a tilting rotary table or documetation how to build one is difficult to find. If you can share your design under some license like the Creative Commons Attribution License 4.0 or CC-BY-SA 4.0, I would be interested. |
I am an engineer specializing in CNC machining. I have many 3D CAD files about 4 and 5 axis rotation mechanisms. I don't know how to send the files to share. It took me months to create a github account, oh so happy, first thing I have to report the problem to you, DerAndere |
To support rebasing 9axis_pull branch onto current upstream MarlinFirmware/Marlin/bugfix-2.0.x
Have I configured Marlin-9axis_pull for 8 axes
And tested with a Dummy hardware shaft.
All functions work.
I configured Marlin-9axis_pull for 9 axes.
I am getting compiler errors
Marlin > src > feature > tmc_util.cpp
445 #if AXIS_IS_TMC(P)
446 if (monitor_tmc_driver(stepperP, need_update_error_counters, need_debug_reporting))
447 step_current_down(stepperPM); <-------------> must be (stepperP )
448 #endif
Marlin > src > core > macros.h
LIST_INC_INC_16 was not declared in this scope [332,25]
Marlin > src > core > serial.cpp
identifier q is undefined C/C++ (20) [117,3]
q was not declared in this scoop [118, 160]
Marlin > src > gcode > config > M92.ccp
Q_AXIS was not declared in this scope
It seems if you choose 9 axes , ( P ) the 10th axis is also chosen ( Q )
Would you take a look at this, I can't figure it out.
Send the complete configuration to you.
Marlin-9axis_pull 9 Axis test.zip
The text was updated successfully, but these errors were encountered: