-
-
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
G29 Bed Leveling Error #44
Comments
Hello, I am new to this forum. As a member of 3d.hcc.nl , a hobby club of members who are involved in 3d printing, 3d scanning, cad software (fusion 360). Because I couldn't choose the best method, I decoder to built both in the 3d printer, which results in a 3d printer with 7 axes. See https://youtu.be/rdrwuG2sWQU All this is controlled by a BTT GTR V1.0 plus M5 V1.0 board with TMC2226 drivers Globally all 6 axes work, Kind regards, |
I just saw your message, thx for the report and the video (the first time I saw a 6 axis printer with my firmare, I use the firmare for different purposes.. congrats to your machine!). The most advanced branch is https://github.com/DerAndere1/Marlin/tree/6axis_PR1 but even there, G29 is probably still broken as it is still an open feature request. To test it, you have to use the default config files from that branch and adjust them to your needs again. Configs from Marlin2ForPipetBot do not work for https://github.com/DerAndere1/Marlin/tree/6axis_PR1 . No guarantees that g29 works, though, I cannot test bed leveling in hardware, so it is very difficult for me to fix this problem. One user managed to make a very old version of Marlin-6axis work with G29, A link to that firmware can be found in the last comment of the discussion at #15 . I cannot give any support for that code, though. It will probably not work with your stepper drivers, Please feel encouraged to report issues related to https://github.com/DerAndere1/Marlin/tree/6axis_PR1 at https://github.com/DerAndere1/Marlin/issues . but I only have very limited resources to move this forward. Things that are working with 6-axis-Marlin are documented here: https://github.com/DerAndere1/Marlin/wiki . things not listed there are not tested yet. If you have no experience in C++ coding, you should consider using an alternative firmware that officially supports your board and drivers. . otherwise: G29 is handled in file Marlin/src/gcode/bedlevel/abl/G29.cpp . I will also have a closer look at that file. |
In the video it looks as if the printer was homing, but X Y and Z still show non-zero values. Are you sure you issued a G28 command before G29? |
Thank you for your response. G28 homing is performed by all 6 axes. I am now trying to configure Marlin-6-axis-dev. See also |
Hello DerAndere With Marlin2ForPipetBot I can home and control 6 axes (and 3D print) 1241 #if AXIS_HAS_STEALTHCHOP (I) There are also some errors in trinamic.cpp In pins_BTT_GTR_V1_0.h I corrected the following 36 #ifdef E2END Can you have a look at the other compiling errors with my configuration. |
Thanks for finding the bugs. I guess that fixing errors in Trinamic.cpp beyond getting rid of compile errors will be hard for me, because I do not have those drivers. I would happily accept a pull request. If you have a fixed trinamic.cpp file, you could alternatively attach a zip-compressed copy of the fixed file to a comment here. Off topic: I will get in touch with 3d.hcc.nl. Sounds fun. |
DerAndere1 , Thanks for your reply. I found errors from compiler data in the following files Settings.ccp trinamic.h trinamic.cpp #define J_HAS_HW_SERIAL 1 #define K_HAS_HW_SERIAL 1 Conditionals_post.h #ifndef I_SLAVE_ADDRESS #ifndef J_SLAVE_ADDRESS #ifndef K_SLAVE_ADDRESS Errors may also have arisen because a SanityCheck has been added. I will send You a configured working software folder Marlin-Marlin2ForPipetBot. And a configured non-working software folder Marlin-6axis_PR1. Would you take a look at this. config-Marlin-6axis_PR1.zip |
Thx for looking closer into this. I just added commit b26ef9c to the 6axis_PR1 branch that should fix the sections you mentioned. I will test-compile with your configs in the next days and fix remaining errors. |
thinkyhead added commit MarlinFirmware@54ddd6f that might fix G29. Could you test in hardware? |
I am going to reconfigure and test the modified Marlin-6axis_PR1 on my printer. |
The last Marlin-6axis_PR1 reconfigured. Made changes in pins_BTT_GTR_V1_0.h firmware.bin loaded in the printer. M122 S0 stepper info for X Y Z A B C E = ok I will send you the complete configured files problem message after compiling
2779 LOOP_LINEAR_AXES(a) probe.offset[a] = dpo[a]; // [ a ] gives problem notification ?????????? See changes below corrected rules in settings.cpp 3906 const bool chop_i = stepperI.get_stored_stealthChop(); corrected rules in pins_BTT_GTR_V1_0.h 36 #ifdef E2END 58 #define SOL1_PIN PH6 // changed from PS_ON_PIN 114 #define I_STOP_PIN PI4 // M5 M1_STOP 172 #define I_STEP_PIN PF3 179 #define J_STEP_PIN PD14 186 #define K_STEP_PIN PE12 267 #if ENABLED(M5_EXTENDER) 271 #define J_SERIAL_TX_PIN PE15 274 #define K_SERIAL_TX_PIN PE7 |
Thx. I am currently applying the changes to settngs.cpp. I do not like to mess around with board-specific pin files in the PR1 branch yet. Are the following changes specific to the PR1 branch or should the same changes be applied to upstream MarlinFirmware/Marlin, independent of 6xis support?
|
I currently try the following workaround (untested): settings.cpp change line 2775 - 2783 to:
With this change, in your configuratiion.adv you need to add some zeros to the following array. E.g. if you use LINEAR_AXES 6, change to I have no idea how bed probing should behave with LINEAR_AXES >= 4. |
36 #ifdef E2END I got this information from the BIGTREETECH service team. 58 #define SOL1_PIN PH6 // changed from PS_ON_PIN Here you should be able to choose between a SOL1_PIN PH6 or PS_ON_PIN PH6 In Configuration.h line 1135 # NOZZEL_TO_PROBE_ OFFSET {10, -2, 2}. This has nothing to do with how many axles you use. |
Do you have any idea why I can not Home Axes A ,B ,and C |
I just added some commits to 6axis_PR1 that fixed homing of A, B, and C for me. You should be able to copy and paste your last config into the current 6axis_PR1 code |
Regarding the EEPROM size: What is the main symtom/error if you keep in your pins_BTT_GTR_V1_0.h file the old
? In case that causes any actual symptoms, please open a bug report at https://github.com/MarlinFirmware/Marlin/issues/ |
I got an error message related to the EEPROM version. I will test whether the homing now works with A, B, and C. |
I opened a bug report at MarlinFirmware#21977 . If you like you can post a comment in that discussion and provide a config for latest upstream Marlin bugfix-2.0.x that reproduces the EEPROM error. |
The current 6axis_PR1 is probably broken again but I provide a link to the 6axis_PR1 branch at the time of commit https://github.com/DerAndere1/Marlin/tree/2c232728ae4e80d34c7a88695f38248a8c2d0dc8 where G28 was supposed to work |
I have copy and paste my last config files configuration.h into the current 6axis_PR1 code And then I got an Error related on my EEprom size change. Furthermore, I got an error regarding your changed in the BED PROBE OFFZET problem In settings.cpp Lines 2632 to 2640 #if HAS_BED_PROBE This has to do with line 1135 of #define NOZZLE_TO_PROBE_OFFSET {10, -20, 2} Which blocks further compilation 'LOOP_XYZ' was not declared in this scope |
You last issues are expected. Currently you have to extend the array NOZZLE_TO_PROBE_OFFSET in Configuration.h with elements of vallue 0 for each extra axis.
Regarding EEPROM size change: |
I followed your advice. no more compiler errors
G28 homing for all axes work I need to do more tests to see if everything works. Thanks for the help and support. Is there a possibility to add an extra axle? To be continued, |
The prescribed sequence of uploading Marlin, then sending M502 followed by M500 is documented on the Marlin homepage, |
Support for up to 8 linear axes (later 9 or even 10) plus extruder is just ready for testing since some hours. For the progress, see https://github.com/DerAndere1/Marlin/pulls . You can download, configure and compile the firmware from branch 9axis_pull (https://github.com/DerAndere1/Marlin/tree/9axis_pull). I still exprect compile errors though. |
DerAnder1 I configured Marlin-9axis_pull for 7 axes SanityCheck.h Marlin\src\inc SanityCheck.h This has to do with Configuration_adv.h including all configured Marlin-9axis_pull files |
When further testing Marlin-6axis_RP1 I run into the following problem. In summary: after performing a bed leveling all axes are blocked by something written in the EEPROM |
Thanks for narrowing down the isse. It would be great to see logging data from the leveling. To get it, please enable DEBUG_LEVELING_FEATURE in Configuration.h, then make sure that you send M502, followed by M500 directly after uploading your configured firmware. Use a host software to send G-code to the printer via USB. Send |
After looking at the first log data I saw that the z probe offset was wrong . See info at the logging file Regarding 9axis_pull error |
Here is some additional information.
|
One batch of changes to make 7 axes compile in 9axis_pull was this commit 638ccdd, you see multiple files changed, indicated by the colors |
Code for up to 6 axes was now merged into official MarlinFirmware/Marlin bugfix-2.0.x. I identified a hidden bug that was fixed in MarlinFirmware/Marlin bugfix 2.0.x . Wait until PR 22056 "Fix compilation after 6axis merge" was also merged into MarlinFirmware/Marlin or wait until I add the fix to the 9axis_pull branch. I will inform you when its ready. |
I had downloaded the latest version of Marlin-9axis_pull this morning. serial.cpp motion.cpp I derived this from the structure of the other axes but there are even more compile errors in it |
I must have forgotten to copy those changes from my local test branch to the 9axis_pull branch.
it compiles. This is now fixed in branch 9axis_pull. In case it does not compile for you, try |
I have reconfigured the latest version Marlin-6axis_PR1 02000900 planner.ccp "message": "expected a ')'", "message": "expected ')' before 'block'", "message": "label "block" was referenced but not defined", 1451 float high = 0.0; 2027 && block->steps.b < MIN_STEPS_PER_SEGMENT, |
Hardware Test Report I tested the latest version Marlin-9axis_pull on the 7th axis. Copied from the previous test version. No compile errors. 7th axis no end stop See further information in the test report. |
Marlin-9axis_pull I see differences between axis 4,5,6 and axis 7 Conditionals_post.h 341 #if LINEAR_AXES >= 6 |
Thanks for the reports and for having a look at the code. Line 345 uses a macro which expands to the same logic as the ternary operator used in line 352. So the logic is functionally equivalent for both axes. I will update the mentioned line anyway whenever I find the time to have a look at the 7th axis homing code. Won't happen this week i guess. |
The bed leveling bug that broke axis movement after G29 is now fixed in upstream MarlinFirmware/Marlin bugfix 2.0.x. |
Thanks. |
Hello DerAndere1, I completely reconfigured Marlin bugfix 2.0 on 22-07-2021. |
I did some additional testing. |
Then I would do the following things:
v. Test Marlin 2.0.7.2 (only 3 axes) and check, if axes X, Y and Z behave as expected during homing, bed leveling and G1 moves. |
DerAndere1 I have found and solved the bed level problem. You are never too old to learn something. ( 75 years ) I will now proceed to test Marlin-9axis_pull for the 7th axis. If desired, I can also test an 8th axis later. Thanks for the support. |
I did some additional research at Marlin-9axis_pull. Marlin > src > inc > conditionals_post.h At line 352, the code is different from line 345. 341 #if LINEAR_AXES >= 6 Marlin > src > module > planner_bezier.cpp From line 191 I also expect
188 interp(position.z, target.z, t), |
Great that you solved the problem for 6 axes.
Regarding 9 axis code: The line for the 7th axis still uses standard C++ syntax (ternary operator)
The code for the other axes was refactored using a macro. The above line can be rewritten as
without change in functionality.
looks like these lines were indeed forgotten. Thanks! |
The concept (that aren't collinear) from English to Dutch, |
Hi DerAndere. |
Marlin-9axis_pull I have resolved the issues I previously reported. Controlling and reporting the 7th axis works. Marlin>src>pins>pins_postprocess.h 490 #if LINEAR_AXES >= 7 Marlin>src>feature>tmc_util.ccp 942 // #if AXIS_IS_TMC(M) This code occurs 2x and gives printout errors at ( M122 S0 ) I want to test everything even more extensively. |
This is fantastic!!! Thanks for the energy and time you invested in fixing these issues. I commited your proposed changes to my 9axis_pull branch. I will close this issue as fixed. Whenever you find new problems, you can open a new, dedicated report at https://github.com/DerAndere1/Marlin/issues (you can keep the bug report short). I expect more problems, but those should be discussed seperately. Watching your video of the 6 axis test run was really satisfying. The next big step is rebasing my 9axis_pull branch onto current upstream MarlinFirmware/Marlin/bugfix-2.0.x , anyone who is good at resolving merge conflicts is welcome to help out with that task. |
Description
Steps to Reproduce
Expected behavior: [What you expect to happen]
Actual behavior: [What actually happens]
Additional Information
Configuration.h
andConfiguration_adv.h
files.The text was updated successfully, but these errors were encountered: