In consistent Z-Height when using bed mesh compensation. Temperature compensation not used

I re-did all my calibrations of Beacon as per Helge's manual from 1 to 5 https://github.com/HelgeKeck/RatOS/blob/documentation_v2.1/site/docs/configuration/beacon_contact.md#6-first-print-and-fine-tuning. At part 6 the nozzle is approx. 0.5mm to high, so I babystep to a proper first layer squisch. Enter SAVE_Z_OFFSET in the console. stop the print. Save_config. I see that the output now says: Beacon model offset has been updated, new value is -0.46781 after restart, the next print is again approx. 0.5 to high and I can repeat this all night. I thought it should report nozzle_expansion_coefficient_multiplier which was then stored in ratos-variables.cfg? I see the offset stored in printer.cfg ## [beacon model default] ## model_coef = 1.5342032526719307, ## 1.880564739924257, ## 0.7935932185257765, ## 0.4214869424357539, ## 0.4005696380338588, ## 0.18265385683360716, ## -0.3581376145096513, ## -0.24503087067892673, ## 0.22965651676785573, ## 0.162235225657583 ## model_domain = 1.8463517416415423e-07,1.9258448304884734e-07 ## model_range = 0.200000,5.000000 ## model_temp = 45.218379 #*# model_offset = -0.46781 I MUST BE DOING SOMETING WRONG.... But I an (again) clueless....
GitHub
RatOS/site/docs/configuration/beacon_contact.md at documentation_v2...
The preconfigured Raspberry Pi image that makes it easy to run Klipper + Moonraker + Mainsail on your printer. - HelgeKeck/RatOS
Solution:
So, Only thing that I can think of is that my reference Contact mesh somehow was erroneous.... or something in the other refference files was off. anyway, now I need to redo all the bed meshes But I think I solved it (by accident, that is)
Jump to solution
31 Replies
Arthur_C
Arthur_COP3mo ago
@miklschmidt Can I (unpolitely) ask you to comment on above? I have tried until deep into the night but my z-offset keeps being between 0.4 and 0.5.... everytime I babystep / savez-offset / save_config the value in the printer.cfg model offset gets increased but it looks like it is not read at the start of the print.
miklschmidt
miklschmidt3mo ago
Sorry i’m on vacation without access to a PC. But it sounds like you may have disabled truezero or smth. Try removing any overrides of ratos beacon variables Also make sure you don’t have any “SET_GCODE_OFFSET” in your slicer profile etc
Arthur_C
Arthur_COP3mo ago
(apologies for disturbing you on your vacation... no need to dive into this than now... for me it is just a hobby so no worries.... 😉 )
NickiDotDk
NickiDotDk3mo ago
Following very impatiently while someone is on vacation, because apparently that is a thing 😉
Helge Keck
Helge Keck3mo ago
jsut update to the latest ratos and try again we have pushed some fixes
Arthur_C
Arthur_COP3mo ago
I updated yesterday to v2.1.0-RC3-6-g3e108c4. I see no updates available as of yet... Am I missing something?
Arthur_C
Arthur_COP3mo ago
Console output:
No description
Arthur_C
Arthur_COP3mo ago
Ratos Variables
No description
Helge Keck
Helge Keck3mo ago
you are using save_z_offset without temp expansion compensation save_z_offset is for the expansion compensation, if you dont use it use apply_z_offset
Arthur_C
Arthur_COP3mo ago
If I understood correctly, as long as the nozzle_expension_coefficient_multiplier > 0 it should compensate that first...
Helge Keck
Helge Keck3mo ago
you need to decide what you want to sue i highly recommend to use the expansion compensation with the contact feature atm you are not using it or your beacon calibration is borked and you have negative values
Arthur_C
Arthur_COP3mo ago
I have been using expansion compensation for a while. I did not turn it off nor is it in my printer.cfg (i think,.... let me quickly check
Helge Keck
Helge Keck3mo ago
int his case you need to recalibrate it
Arthur_C
Arthur_COP3mo ago
Done that already 10 times,... I think the expension compansation is switched of. I need to check... Default is "On" right?
Arthur_C
Arthur_COP3mo ago
Did a RatOS Echo: It is on! (right?)
No description
Arthur_C
Arthur_COP3mo ago
reverted back to an earlier version as per https://discord.com/channels/582187371529764864/859890291591217162/1290481614949843077 Did not change anything, which leads me to think that it is something in my config and not in RatOS? I spend a couple of hours on the issue and I think I solved it. Problem is now that I do not know what solved it. - I updated everything in update manager to lates of today v2.1.0-RC3-6-g3e108c4 - copied my printer.cfg to my PC and re-did the configuration wizard. With the help of my backup .cfg I quickly made sure all motor directions were ok and added back in the Ratos Variables and T) variable that I believed had no influance (little gamble there....)
Arthur_C
Arthur_COP3mo ago
No description
Arthur_C
Arthur_COP3mo ago
- At the bottom of the .cfg, I copied back-in, the pid settings and input shaper + skew profiles (Skew profiles I doubted about because that could have caused issues so I made note of that to delete that if further testing was not resolving the issue)
Arthur_C
Arthur_COP3mo ago
No description
Arthur_C
Arthur_COP3mo ago
- I made sure there was nothing mentioned below that, so no beacon model and no contact meshes etc. - Then I redid all the RatOS Beacon calibration (I wanted to put a link here to the site but the server won't allow me,... funny...)
Arthur_C
Arthur_COP3mo ago
No description
Arthur_C
Arthur_COP3mo ago
- latency check result was 0.6 avg. - Temperature expansion calibration = nozzle_expansion_coefficient_t0 = 0.05562499999538728 (I rember that prior to resetting all of this it was approx 0.061, so no big difference) - Then the final calibration and save_config - Checked that all the values are saved in printer.cfg and ratos-variables - then I started my first test print and offcourse it threw a warning that my filament wasn't loaded - Then it threw an error that te Contact refference mesh could not be found,... obviously... As I already inserted variable_beacon_scan_compensation_enable: True back in. So I created a new contact mesh with BEACON_CREATE_SCAN_COMPENSATION_MESH BED_TEMP=80 PROFILE=Contact - I used a powdercoated PEI sheet for this mesh. - As I needed a reference mesh of the samebuildplate under the same conditions I did the naugthy thing to copy the reference contact mesh and just changed the name to Powder_PETG_B80_CH0 (and made a note to redo this mesh properly if needed) - THEN I printed my first test-print which needed hardly any babystepping (did a little, just for good measure. nozzle was a bit too close to the bed). - Then I did SAVE_Z_OFFSET and now the message was:
Arthur_C
Arthur_COP3mo ago
No description
Arthur_C
Arthur_COP3mo ago
Before it showed me:
Arthur_C
Arthur_COP3mo ago
No description
Solution
Arthur_C
Arthur_C3mo ago
So, Only thing that I can think of is that my reference Contact mesh somehow was erroneous.... or something in the other refference files was off. anyway, now I need to redo all the bed meshes But I think I solved it (by accident, that is)
NickiDotDk
NickiDotDk3mo ago
Did exactly what you did, and now I can save the offset again! 🙂
Arthur_C
Arthur_COP3mo ago
Good to hear!!!!
miklschmidt
miklschmidt3mo ago
This multiplier seems quite high to me, you prolly won't need an offset this high after the additional zeroing prior to scan compensation mesh creation has been implemented. It's unlikely that a multiplier of 1.79 would cause any damage (higher multiplier, the more the nozzle is raised from the bed), but just to be sure i would probably recreate those scan compensation meshes after updating (i know it sucks, it takes a long time) and reduce that thermal expansion modifier back to 0.6 (edit it straight in ratos-variables.cfg -> save and restart). Then do first layer calibration again and everything should be all fine and dandy with no suprises even when switching plates (provided you remember to switch to the right compensation mesh 😄 ).
Arthur_C
Arthur_COP3mo ago
Updated and did a first layer print (before I read this post). Had to drop the nozzle a bit and now the multiplier is 1.2ish.... Not realy looking forward to redoing al these meshes again (takes 28 minutes to complete, .... ask me how I know...). Also, I have this in my start_print_gcode in my slicer:
{ if build_plate == "PEI"}
{if filament_type == "PETG"}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=beacon_scan_compensation_profile VALUE='"PEI_PETG_B80_CH0"'
{elsif filament_type == "FLEX"}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=beacon_scan_compensation_profile VALUE='"PEI_FLEX_B40_CH0"'
{elsif filament_type == "ASA"}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=beacon_scan_compensation_profile VALUE='"PEI_ASA_B95_CH40"'
{ endif }
{elsif build_plate=="Powder"}
{if filament_type == "PETG"}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=beacon_scan_compensation_profile VALUE='"Powder_PETG_B80_CH0"'
{elsif filament_type == "FLEX"}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=beacon_scan_compensation_profile VALUE='"Powder_FLEX_B40_CH0"'
{elsif filament_type == "ASA"}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=beacon_scan_compensation_profile VALUE='"Powder_ASA_B95_CH40"'
{ endif }
{elsif build_plate=="POA"}
{if filament_type == "PETG"}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=beacon_scan_compensation_profile VALUE='"POA_PETG_B80_CH0"'
{elsif filament_type == "FLEX"}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=beacon_scan_compensation_profile VALUE='"POA_FLEX_B40_CH0"'
{elsif filament_type == "ASA"}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=beacon_scan_compensation_profile VALUE='"POA_ASA_B95_CH40"'
{ endif }
{ endif }
{ if build_plate == "PEI"}
{if filament_type == "PETG"}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=beacon_scan_compensation_profile VALUE='"PEI_PETG_B80_CH0"'
{elsif filament_type == "FLEX"}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=beacon_scan_compensation_profile VALUE='"PEI_FLEX_B40_CH0"'
{elsif filament_type == "ASA"}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=beacon_scan_compensation_profile VALUE='"PEI_ASA_B95_CH40"'
{ endif }
{elsif build_plate=="Powder"}
{if filament_type == "PETG"}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=beacon_scan_compensation_profile VALUE='"Powder_PETG_B80_CH0"'
{elsif filament_type == "FLEX"}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=beacon_scan_compensation_profile VALUE='"Powder_FLEX_B40_CH0"'
{elsif filament_type == "ASA"}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=beacon_scan_compensation_profile VALUE='"Powder_ASA_B95_CH40"'
{ endif }
{elsif build_plate=="POA"}
{if filament_type == "PETG"}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=beacon_scan_compensation_profile VALUE='"POA_PETG_B80_CH0"'
{elsif filament_type == "FLEX"}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=beacon_scan_compensation_profile VALUE='"POA_FLEX_B40_CH0"'
{elsif filament_type == "ASA"}
SET_GCODE_VARIABLE MACRO=RatOS VARIABLE=beacon_scan_compensation_profile VALUE='"POA_ASA_B95_CH40"'
{ endif }
{ endif }
and I have this in my printer Custom Variables:
;build_plate = "POA"
build_plate = "PEI"
;build_plate = "Powder"
;build_plate = "POA"
build_plate = "PEI"
;build_plate = "Powder"
I just un-comment the right line and off we go (I only forget to do this about half of the time,... so almost a habit,...)
miklschmidt
miklschmidt3mo ago
Updated and did a first layer print (before I read this post). Had to drop the nozzle a bit and now the multiplier is 1.2ish
Ah okay, tbf it was only the POA one that seemed to need redoing, so just redoing those is probably good enough 🙂

Did you find this page helpful?