-
-
Notifications
You must be signed in to change notification settings - Fork 20
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. |
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 |
Hi , this work is more than amazing . I have a question . Is it possible to enable 5axis TRT and a corexy kinematics in your configuration or do I need to write kinematics from zero? |
Not possible without programming. You have to add new kinematics that combine the equations for PENTA_AXIS_TRT and CORE |
And what about penta_axis_trt and 4 extruders for different colors . Is it possible ? . |
In my opinion, it is not wrong if there is a slicer software that can declare these deviations. CNC multi-axis gcode generator software all do this, the important thing is how good your software construction ability is. i am also trying to communicate with DerAndere1 here #72 to assist him in understanding that it would be better to create a multi-axis simultaneous actuator controller . |
Thanks . What about units for the 4th and 5th axis . Are they mm or degrees ? Due to inverse kinematics I guess they must be degrees |
Linear axes are in mm (inches), rotational axes are in degrees. Please learn the dynamics on the branch of DerAndere1 |
Thanks for the recommendation. I'll follow that |
when the previous move involved linear axes and the next move only involves rotational axes (or vice versa), it is recommended to specify feedrate for the next move using G1 F. Take care to properly set DEFAULT_STEPS_PER_UNIT and enable AXIS4_ROTATES as well as AXIS5_ROTATES. Then rotational axes are in deg. More info can be found in the README file |
PENTA_AXIS_TRT and PENTA_AXIS_HT as well as a config without special kinematics enabled are all compatible with up to 8 Extruders. Branch https://github.com/DerAndere1/Marlin/tree/penta_axis_kinematics is not well tested but should support up to 255 tools (of which the first 8 can be extruders, followed by up to 1 laser, followed by tools for a spindle). You should define HOTEND_OFFSETS_Z for all tools. In My fork, for 4 Extruders you will need
for compatibility with commercially available CNC controllers and LinuxCNC. Also, with kinematics in the firmware you reduce the traffic over serial communication, thus you can have smaller segments, i.e. higher resolution and smoother motion. If you want to let the slicer handle the kinematics, you can disable all kinematics options in the firmware ( If you have your slicer working with kinematics, please share a link. That would be of great value for the community |
If I joint both Corexy and 5axis . Do you think ill face a memory allocation problem because of many variables? Just to know in what ill struggle before starting the journey. I am quite new with cpp but ill try |
Depends in your Motherboard, but I never Had Problems with memory allocation as far as i am aware of. First Thing I would try ist indeed removing the Offending sanity Check and try to enable both, CORE_XY and PENTA_AXIS_TRT and See what You get. It might work with just minor Code Changes: CORE kinematics are embedded deeply in the Planner, so the Firmware might first do the core kinematics in the Planner and then do the TRT kinematics on top of that |
At the end of this YouTube video, multiple axes are controlled using cura. |
While enabling mechanical toolchanger option and sending gcode to extruder 1 or 2 (T1 or T2) it doesn't receive the order to extrude T1 // G0 E1 10 for example . Should I modify some cpp file? |
It is great to see that an additional person is working on this. I added Mr. Carpentier's code to my current list of open source projects concerned with CAM software for multi-axis 3D printing:
|
I have a new link, I don't know if his code helps, I can't test it because I can't install them. |
Yet another multi-axis Gcode generator: https://github.com/jyjblrd/Radial_Non_Planar_Slicer |
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: