CR6Community / Marlin

This Marlin fork has the goal of cleaning-up the source code changes for the CR-6 so it can be merged upstream. We also want to extend the functionality to make it fully functional
GNU General Public License v3.0
470 stars 83 forks source link

Z-offset display doesn't show numbers below -0.01 #211

Closed ztakis closed 3 years ago

ztakis commented 3 years ago

Description

Z-offset display box doesn't show numbers below -0.01

Steps to Reproduce

The following assumes you are using the original CR-6 bed.

  1. Go to the leveling screen.
  2. Place a credit card (or similar) at the center of the bed.
  3. 'Home' over the credit card and then remove it.
  4. Now try to adjust Z-offset using the "paper method".
  5. If you are not hitting below zero, try again the above steps with a thicker card.
  6. In my case, I had to press minus about 15 times below zero to start to feel the paper drag.
  7. While the nozzle does move lower, the z-offset display stops at -0.01

Expected behavior:

It should be able to display +/- 100

Logging:

Recv: T:25.00 /0.00 B:23.75 /0.00 @:0 B@:0 Send: M111 S247 Recv: echo:DEBUG:ECHO,INFO,ERRORS,COMMUNICATION,LEVELING Recv: ok Recv: T:25.00 /0.00 B:23.75 /0.00 @:0 B@:0 Recv: T:25.03 /0.00 B:23.79 /0.00 @:0 B@:0 Recv: T:25.00 /0.00 B:23.79 /0.00 @:0 B@:0 Recv: Invoking handler for screen 52with VP=4164 value=3 Recv: Invoking handler for screen 52with VP=4164 value=3 Recv: Invoking handler for screen 52with VP=4164 value=3 Recv: T:24.96 /0.00 B:23.75 /0.00 @:0 B@:0 Recv: Invoking handler for screen 52with VP=4164 value=3 Recv: Invoking handler for screen 52with VP=4164 value=3 Recv: Saving DWIN LCD setting from EEPROM Recv: echo:Settings Stored (767 bytes; crc 16099) Recv: //action:notification Settings Stored Recv: Invoking handler for screen 52with VP=4164 value=3 Recv: Saving DWIN LCD setting from EEPROM Recv: echo:Settings Stored (767 bytes; crc 13948) Recv: //action:notification Settings Stored Recv: T:25.00 /0.00 B:23.75 /0.00 @:0 B@:0 Recv: Invoking handler for screen 52with VP=4164 value=3 Recv: Saving DWIN LCD setting from EEPROM Recv: echo:Settings Stored (767 bytes; crc 47146) Recv: //action:notification Settings Stored Recv: T:24.96 /0.00 B:23.75 /0.00 @:0 B@:0 Recv: Invoking handler for screen 52with VP=4164 value=3 Recv: Invoking handler for screen 52with VP=4164 value=3 Recv: Invoking handler for screen 52with VP=4164 value=3 Recv: T:24.96 /0.00 B:23.79 /0.00 @:0 B@:0 Recv: Invoking handler for screen 52with VP=4164 value=3 Recv: Invoking handler for screen 52with VP=4164 value=3 Recv: Invoking handler for screen 52with VP=4164 value=3 Recv: Invoking handler for screen 52with VP=4164 value=3 Recv: Invoking handler for screen 52with VP=4164 value=3 Recv: Invoking handler for screen 52with VP=4164 value=3 Recv: T:25.00 /0.00 B:23.83 /0.00 @:0 B@:0 Recv: Invoking handler for screen 52with VP=4164 value=3 Recv: Saving DWIN LCD setting from EEPROM Recv: echo:Settings Stored (767 bytes; crc 26661) Recv: //action:notification Settings Stored Recv: T:24.96 /0.00 B:23.75 /0.00 @:0 B@:0 Recv: Invoking handler for screen 52with VP=4164 value=3 Recv: Invoking handler for screen 52with VP=4164 value=3 Recv: Invoking handler for screen 52with VP=4164 value=3 Recv: T:25.00 /0.00 B:23.75 /0.00 @:0 B@:0 Recv: Saving DWIN LCD setting from EEPROM Recv: echo:Settings Stored (767 bytes; crc 28220) Recv: //action:notification Settings Stored Recv: T:25.06 /0.00 B:23.75 /0.00 @:0 B@:0 Recv: T:25.00 /0.00 B:23.75 /0.00 @:0 B@:0 Recv: T:25.00 /0.00 B:23.75 /0.00 @:0 B@:0 Recv: wait

Additional Information

CR6Comm-Rel6Pre4 / v4.5.2

Thinkersbluff commented 3 years ago

Why would you want to do this?

Z Offset is meant to compensate for a bias in Z=0.0 representing the amount of deflection required to trigger detection of the bed by the strain gauge.

If the nozzle is striking an obstacle and not the bed itself, why ask the firmware to compensate? Why not remove the obstacle?

To dial-in negative numbers on Z with Marlin, one usually needs to release the software endstops. That option is not currently present on our menus.

ztakis commented 3 years ago

Short answer: for testing

Thinkersbluff commented 3 years ago

I guess if we want to define limits for our support of non-stock printer configurations, this is as good a way as any to expose and address that. I did see @Sebazzz recently exploring the idea of converting the CR-6 to a BLTouch ABL system, which would require the negative offset and release software endstop functionality.

It does seem to go beyond the scope of the current mission objective, though.

ztakis commented 3 years ago

If you haven't noticed, the nozzle DOES move below zero, it's the display that doesn't follow.

Thinkersbluff commented 3 years ago

If you haven't noticed, the nozzle DOES move below zero, it's the display that doesn't follow

I could understand citing that fact as an issue. I see two possible solutions to that issue.

As currently phrased, I think this "issue" is actually a feature-request, assuming a particular resolution & the actual issue is not clearly stated.

e.g. The Issue Title could be, "Z-Offset is able to adjust the Z axis below Z=0.0, but the displayed Z position remains at 0.0." A separate Feature Request could reference this one & ask that the firmware support "dialing-in" negative Z Offsets. That separation of issues would allow for a discussion of each on its own merits, rather than conflating the two.

Sebazzz commented 3 years ago

Confirmed. Seems to be something in interop.

Sebazzz commented 3 years ago

We seem to be transmitting the right information:

Z-offset: -0.50 - -50]

For M851 Z-0.5.

It must be something inside the lower interop layer.

I will compare it with the code from CF3:

https://github.com/CR6Community/Marlin/blob/90066ad2f95dab75d64185ca5140da6ac16514e5/Marlin/src/lcd/dwin/LCD_RTS.cpp#L534-L567

Sebazzz commented 3 years ago

This has now been fixed. Thanks for reporting.