Struggling in setting up the bed compensation
-
All,
I am facing an issue. I have adjusted my bed with a caliper and some jig and it appears to be level from left to right. I use a Mini differential IR sensor.
I have this build surface stick on a glass
[https://www.amazon.co.uk/gp/product/B07JMT8C9R/ref=ppx_yo_dt_b_asin_title_o04_s02?ie=UTF8&psc=1](link url)When I run a G32, my bed look to have the center well above the left and right.
I created a macro that measure left and right and that gives me the left and right coordinatesG28 ; home G30 P0 X20 Y150 H0 Z-99999 ; probe near a leadscrew G30 P1 X165 Y150 H0 Z-99999 S-1 ; probe near a leadscrew M84 G28 ; home G30 P0 X20 Y150 H0 Z-99999 ; probe near a leadscrew G30 P1 X165 Y150 H0 Z-99999 S-1 ; probe near a leadscrew M84
This gives me
12/16/2020, 7:05:05 PM M98 P"0:/macros/LEADSCREW" G32 bed probe heights: -0.193 -0.174, mean -0.183, deviation from mean 0.010 12/16/2020, 7:01:26 PM M999 G32 bed probe heights: -0.258 -0.233, mean -0.246, deviation from mean 0.013
The heat map looks as follow
RepRapFirmware height map file v2, min error -0.371, max error 0.133, mean -0.155, deviation 0.220 xmin,xmax,ymin,ymax,radius,xspacing,yspacing,xnum,ynum 20.00,170.00,20.00,270.00,-1.00,150.00,250.00,2,2 -0.371, -0.366 0.133, -0.017
I can't manage to tweak it. Even, if I manage to get something better, it will fail in next 30 minutes with no print.
Antoine
-
I forgot my settings are as follow
config; Configuration file for p3STEEL ; Communication and general M111 S0 ; Debug off M550 pp3steel ; Machine name and Netbios name (can be anything you like) M552 S1 ; Enable WiFi ; misc settings M555 P2 ; Set output to look like Marlin M575 P1 B57600 S1 ; Comms parameters for PanelDue ; setting for all axis G21 ; Work in millimeters G90 ; Send absolute coordinates... M83 ; ...but relative extruder moves ; Axis and motor configuration M569 P0 S0 ; Drive 0 goes forwards (x) M569 P1 S1 ; Drive 1 goes forwards (Y) M569 P2 S1 ; Drive 2 goes forwards (z) M569 P3 S0 ; Drive 3 goes forwards (e1) M569 P4 S1 ; Drive 4 goes forwards (E2) ; microstepping and homing switch config M350 X16 Y16 Z16 E16 I1 ; set 16x microstepping with interpolation M574 X1 S1 P"!xstop" ; X min active high endstop switch M574 Y1 S1 P"!ystop" ; Y min active high endstop switch M574 Z1 S1 P"zstop" ; Z min active high endstop switch ; Motor current and acceleration M906 X1000 Y1200 Z1200 E1200 I30 ; Set motor currents (mA) and increase idle current to 60% M84 S60 ; Set idle timeout M201 X3000 Y3000 Z15 E3600 ; Accelerations (mm/s^2) M203 X6000 Y6000 Z100 E1200 ; feedrate (mm/min) M566 X1800 Y1800 Z180 E300 ; Maximum instant speed changes mm/minute M210 X5000 Y5000 Z60 ; set hming feedrate ; steps per mm M92 X79.01 Y76.04 Z3298.92 ; Set axis steps/mm M92 E415:415 ; set extruder 0 and 1 steps/mm ; Thermistors M308 S0 P"bed_temp" Y"thermistor" T100000 B3950 ; define bed temperature sensor M308 S1 P"e0_temp" Y"thermistor" T100000 B4725 C7.06e-8 ; define E0 temperature sensor M950 H0 C"bed_heat" T0 ; heater 0 uses the bed_heat pin, sensor 0 M950 H1 C"e0_heat" T1 ; heater 1 uses the e0_heat pin and sensor 1 M950 F0 C"fan0" ; Fan 0 M140 H0 ; the bed heater is heater 0 M143 H1 S270 ; Set maximum heater temperature to 270C M143 H0 S115 ; Set maximum heater temperature to 270C ; Tool definitions M563 P0 D0 H1 ; Define tool 0 old M571 P"e0heat *" S1.0 G10 P0 S0 R0 ; Set tool 0 operating and standby temperatures ; Z probe and compensation definition M558 P1 C"^zprobe.in" X0 Y0 Z1 H5 F500 T3000 ; smart IR Z probe, used for homing Z axis only, dive height 3mm, probe speed 200mm/min, travel speed 5000mm/min G31 P500 X15 Y3 Z0.40 ; set threshold and offsets (we were at 0.50 BEFORE ADJUSTMENT) ;*** If you are using axis compensation, put the figures in the following command M556 S78 X0 Y0 Z0 ; Axis compensation here M206 X0 Y0 Z0 M208 X0 Y0 Z0 S1 ; set minimum Z ; max travel and origin M208 X215 Y310 Z200 ; T0 ; select first hot end M570 H1 P20 T30 ; Miscellaneous M501 ; Load saved parameters from non-volatile memory
bed
G28 X0 Y0 ; Home All G28 Z0 ; Home All M561 ; clear any existing bed transform M557 X20:170 Y20:270 P2:2 M376 H3 ;taper off compensation after 3mm G29 G1 X10 Y10 F5000 ; move the head to the corner (optional)
-
Can you post your homing files as well?
Also post the results of M122 and M98 P"config.g" please.
-
@Phaedrux said in Struggling in setting up the bed compensation:
M122
Hello
So
M122M122 === Diagnostics === RepRapFirmware for Duet 2 WiFi/Ethernet version 3.1.1 running on Duet WiFi 1.0 or 1.01 Board ID: 08DAM-999TL-MQ4S4-6J1DG-3S46N-TPHRY Used output buffers: 3 of 24 (12 max) === RTOS === Static ram: 27980 Dynamic ram: 93788 of which 60 recycled Exception stack ram used: 584 Never used ram: 8660 Tasks: NETWORK(ready,708) HEAT(blocked,1224) MAIN(running,1904) IDLE(ready,80) Owned mutexes: WiFi(NETWORK) === Platform === Last reset 03:48:29 ago, cause: software Last software reset at 2020-12-16 19:01, reason: User, spinning module GCodes, available RAM 8708 bytes (slot 1) Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f000 BFAR 0xe000ed38 SP 0xffffffff Task MAIN Error status: 0 MCU temperature: min 31.6, current 36.0, max 40.1 Supply voltage: min 13.3, current 13.9, max 14.1, under voltage events: 0, over voltage events: 0, power good: yes Driver 0: ok, SG min/max 0/1023 Driver 1: ok, SG min/max 0/1023 Driver 2: ok, SG min/max 155/959 Driver 3: ok, SG min/max not available Driver 4: standstill, SG min/max not available Date/time: 2020-12-16 22:49:56 Cache data hit count 4294967295 Slowest loop: 87.70ms; fastest: 0.12ms I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0 === Storage === Free file entries: 9 SD card 0 detected, interface speed: 20.0MBytes/sec SD card longest read time 1.5ms, write time 9.6ms, max retries 0 === Move === Hiccups: 0(0), FreeDm: 165, MinFreeDm: 85, MaxWait: 5148849ms Bed compensation in use: mesh, comp offset 0.000 === MainDDARing === Scheduled moves: 3102, completed moves: 3063, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 CDDA state: 3 === AuxDDARing === Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 CDDA state: -1 === Heat === Bed heaters = 0 -1 -1 -1, chamberHeaters = -1 -1 -1 -1 Heater 0 is on, I-accum = 0.0 Heater 1 is on, I-accum = 0.4 === GCodes === Segments left: 1 Movement lock held by null HTTP is idle in state(s) 0 Telnet is idle in state(s) 0 File is doing "G1 X111.801 Y162.049 E0.0048" in state(s) 0 USB is idle in state(s) 0 Aux is idle in state(s) 0 Trigger is idle in state(s) 0 Queue is idle in state(s) 0 Daemon is idle in state(s) 0 Autopause is idle in state(s) 0 Code queue is empty. === Network === Slowest loop: 46.35ms; fastest: 0.00ms Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions HTTP sessions: 1 of 8 - WiFi - Network state is active WiFi module is connected to access point Failed messages: pending 0, notready 0, noresp 0 WiFi firmware version 1.23 WiFi MAC address 60:01:94:09:bc:4e WiFi Vcc 3.44, reset reason Unknown WiFi flash size 4194304, free heap 23568 WiFi IP address 10.0.0.19 WiFi signal strength -62dBm, reconnections 0, sleep mode modem Socket states: 0 0 0 0 0 0 0 0
M98 P"config.g", I think that shows already some issues. i'll look into that.
Warning: M210: Command is not supported Error: in file macro line 44 column 10: M92: array too long, max length = 1 Error: Unknown pin name 'e0heat*' 16/12/2020 à 22:51:22 Error: Heater 2 not found Error: Heater 3 not found Error: Heater 4 not found Error: Heater 5 not found Error: Heater 6 not found Error: Heater 7 not found
and last the home file.
G91 ; relative mode G1 Z1 F200 H2 ; raise head 1mm G1 X-240 Y-340 F2000 H1 ; move up to 240mm in the -X and -Y directions until the homing switches are triggered G1 X4 Y4 F1200 ; move slowly 6mm in +X and +Y directions G1 X-5 Y-5 F1000 H1 ; move up to 10mm in the -X and -Y directions until the homing switches are triggered G90 ; back to absolute mode G1 X105 Y155 F3000 G30 ; lower head, stop when probe triggered and set Z to trigger height
-
I corrected the config.g now looking as follow, but still getting some errors unrelated to my issues.
; Configuration file for p3STEEL ; Communication and general M111 S0 ; Debug off M550 pp3steel ; Machine name and Netbios name (can be anything you like) M552 S1 ; Enable WiFi ; misc settings M555 P2 ; Set output to look like Marlin M575 P1 B57600 S1 ; Comms parameters for PanelDue ; setting for all axis G21 ; Work in millimeters G90 ; Send absolute coordinates... M83 ; ...but relative extruder moves ; Axis and motor configuration M569 P0 S0 ; Drive 0 goes forwards (x) M569 P1 S1 ; Drive 1 goes forwards (Y) M569 P2 S1 ; Drive 2 goes forwards (z) M569 P3 S0 ; Drive 3 goes forwards (e1) M569 P4 S1 ; Drive 4 goes forwards (E2) ; microstepping and homing switch config M350 X16 Y16 Z16 E16 I1 ; set 16x microstepping with interpolation M574 X1 S1 P"!xstop" ; X min active high endstop switch M574 Y1 S1 P"!ystop" ; Y min active high endstop switch M574 Z1 S1 P"zstop" ; Z min active high endstop switch ; Motor current and acceleration M906 X1000 Y1200 Z1200 E1200 I30 ; Set motor currents (mA) and increase idle current to 60% M84 S60 ; Set idle timeout M201 X3000 Y3000 Z15 E3600 ; Accelerations (mm/s^2) M203 X6000 Y6000 Z100 E1200 ; feedrate (mm/min) M566 X1800 Y1800 Z180 E300 ; Maximum instant speed changes mm/minute ; M210 X5000 Y5000 Z60 ; set hming feedrate ; steps per mm M92 X79.01 Y76.04 Z3298.92 ; Set axis steps/mm ; M92 E415:415 ; set extruder 0 and 1 steps/mm M92 E415 ; Thermistors M308 S0 P"bed_temp" Y"thermistor" T100000 B3950 ; define bed temperature sensor M308 S1 P"e0_temp" Y"thermistor" T100000 B4725 C7.06e-8 ; define E0 temperature sensor M950 H0 C"bed_heat" T0 ; heater 0 uses the bed_heat pin, sensor 0 M950 H1 C"e0_heat" T1 ; heater 1 uses the e0_heat pin and sensor 1 M950 F0 C"fan0" ; Fan 0 M140 H0 ; the bed heater is heater 0 M143 H1 S270 ; Set maximum heater temperature to 270C M143 H0 S115 ; Set maximum heater temperature to 270C ; Tool definitions M563 P0 D0 H1 ; Define tool 0 old M571 P"e0_heat *" S1.0 G10 P0 S0 R0 ; Set tool 0 operating and standby temperatures ; Z probe and compensation definition M558 P1 C"^zprobe.in" X0 Y0 Z1 H5 F500 T3000 ; smart IR Z probe, used for homing Z axis only, dive height 3mm, probe speed 200mm/min, travel speed 5000mm/min G31 P500 X15 Y3 Z0.40 ; set threshold and offsets (we were at 0.50 BEFORE ADJUSTMENT) ;*** If you are using axis compensation, put the figures in the following command M556 S78 X0 Y0 Z0 ; Axis compensation here M206 X0 Y0 Z0 M208 X0 Y0 Z0 S1 ; set minimum Z ; max travel and origin M208 X215 Y310 Z200 ; T0 ; select first hot end M570 H1 P20 T30 ; Miscellaneous M501 ; Load saved parameters from non-volatile memory
diagnostic
```
M98 P"config.g"
Error: Unknown pin name 'e0heat*'
Error: Heater 2 not found
Error: Heater 3 not found
Error: Heater 4 not found
Error: Heater 5 not found
Error: Heater 6 not found
Error: Heater 7 not found -
What do you have in config-override.g? I think that is probably where the heater not found is coming from.
@antoine-voiry said in Struggling in setting up the bed compensation:
Error: Unknown pin name 'e0heat*'
Are you still getting that error? It looks like you've changed the pin name?
@antoine-voiry said in Struggling in setting up the bed compensation:
I can't manage to tweak it. Even, if I manage to get something better, it will fail in next 30 minutes with no print.
What do you mean by fail in the next 30 minutes with no print?
@antoine-voiry said in Struggling in setting up the bed compensation:
G28 X0 Y0 ; Home All G28 Z0 ; Home All
You posted homeall, but your bed.g actually called homex homey and homez separately, so please post those files as well.
What do you have in your slicer start gcode?
-
Thanks so much!
The bed probing will be fine, and then I keep the printer on with no print and another bed level will be completely off.
I am still getting the e0heat error. In the config override, I only have the PID tune, I can post the file if needed.
I would not be surprised if I have some odd things in the config, I have been tweaking this config for at least 5 years.Here is home x
G91 ; relative mode G1 Z1 F600 H2 ; lift Z relative to current position G1 X-240 F2000 H1 ; move up to 240mm in the -X direction, stopping if the homing switch is triggered G1 X4 F1000 ; move slowly 4mm in the +X direction G1 X-5 F1000 H1 ; move slowly 10mm in the -X direction, stopping at the homing switch G1 Z1 F200 H2 ; lower the head again G90 ; back to absolute mode
home y
G91 ; relative mode G1 Z0.5 F200 H2 ; lift Z relative to current position G1 Y-320 F3000 H1 ; move up to 240mm in the -X direction, stopping if the homing switch is triggered G1 Y4 F600 ; move slowly 4mm in the +X direction G1 Y-5 F600 H1 ; move slowly 10mm in the -X direction, stopping at the homing switch G1 Z-0.5 F200 H2 ; lower the head again G90 ; back to absolute mode
home z
G91 ; relative mode G1 Z5 F200 H2 ; raise head 4mm to ensure it is above the Z probe trigger height G90 ; back to absolute mode G1 X100 Y150 F3000 ; put head over the centre of the bed, or wherever you want to probe G30 ; lower head, stop when probe triggered and set Z to trigger height
Example start GCODE
G90 M83 M106 S0 M140 S65 M190 S65 ; probe bed M300 s1500 p500 ; BIP probe starting G32 ;probe bed M300 s1500 p500 ; BIP probe ending ; probe bed end ; set temperature M109 S215 ; wipe extruder sequence G1 X15 Y10 Z0.2 F3000 ; avoid binder clips G1 X130 E12 F500 ; prime line G1 X145 F100 ; slow wipe G92 E0 ;zero the extruded length ; process P3STEE PLA1.75 ; layer 1, Z = 0.240 T0 G1 E-1.4000 F2100 ; feature skirt
-
Couple things I notice
Your positioning of the probe before sending the G30 is different between homeall and homez. They should match.
In your bed.g you specify a taper height of 3mm. That may be pretty tight and can lead to les compensation then expected when printing. Try setting M376 H0 to disable taper entirely and see if it makes a difference.
Also, in our bed.g move the M561 to the start of the file before the homing calls.
The first time you start a print, it's homing, and then doing the bed mesh. The second time you start a print, the mesh is still active, then you are homing, and then you are canceling the mesh and then creating a new mesh.
I think by having the mesh active the second time you home you're throwing off your second mesh creation.
-
Hello
i am trying that.
Antoine -
I'd like to piggyback on this conversation for a moment, if you will humor me. I'm currently using mesh compensation and having pretty good results, but because of two binder clips (front left and back right) I'm missing probing of a couple of strips, leading to I think some very unfortunate interpolation in those regions.
I'd like to add some individual probe points in to cover these regions, but @Phaedrux 's comment about having the mesh active has me thinking that this isn't as simple as I would like.
Specifically I'd like to (a) cover the majority of the plate with G29, and (b) fill in a few additional spots, presumably with G30. Am I thinking about this the right way, and should I do the G30s first so that the map isn't in place, or am I overthinking it?
Thanks!
-
@paralepsis Please start a separate thread.