Mesh calibration not working or what am I doing wrong?
-
@fcwilt Yes, I have already tried different options. On small objects more or less. But I'm interested in a big one.
What is the use of mesh calibration if it requires a flat bed?
Maybe you will try to lower the one corner of the bedon on your printer by 2-3mm and try to print something. Will calibration work?
I think not.
-
This post is deleted! -
Same problem, Duet2 WiFi. Pretending to compensate, but in fact there is no compensation.
M122 === Diagnostics === RepRapFirmware for Duet 2 WiFi/Ethernet version 2.04RC1 running on Duet WiFi 1.02 or later Board ID: 08DGM-917DA-G4MSD-6JTDA-3SN6T-TSTV8 Used output buffers: 3 of 24 (15 max) === RTOS === Static ram: 25680 Dynamic ram: 93784 of which 276 recycled Exception stack ram used: 516 Never used ram: 10816 Tasks: NETWORK(ready,508) HEAT(blocked,1236) MAIN(running,3772) IDLE(ready,160) Owned mutexes: === Platform === Last reset 00:17:30 ago, cause: software Last software reset at 2019-11-04 18:09, reason: User, spinning module GCodes, available RAM 10792 bytes (slot 2) Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0441f000 BFAR 0xe000ed38 SP 0xffffffff Task 0x4e49414d Error status: 0 Free file entries: 9 SD card 0 detected, interface speed: 20.0MBytes/sec SD card longest block write time: 2.8ms, max retries 0 MCU temperature: min 28.3, current 28.9, max 29.3 Supply voltage: min 25.6, current 25.9, max 26.3, under voltage events: 0, over voltage events: 0, power good: yes Driver 0: standstill, SG min/max 0/217 Driver 1: standstill, SG min/max 0/1023 Driver 2: standstill, SG min/max 43/271 Driver 3: standstill, SG min/max not available Driver 4: standstill, SG min/max not available Date/time: 2019-11-04 18:26:41 Cache data hit count 3800896749 Slowest loop: 17.34ms; fastest: 0.08ms I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0 === Move === Hiccups: 0, FreeDm: 169, MinFreeDm: 166, MaxWait: 987376ms Bed compensation in use: mesh, comp offset 0.000 === DDARing === Scheduled moves: 58, completed moves: 58, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 === Heat === Bed heaters = 0 -1 -1 -1, chamberHeaters = -1 -1 === GCodes === Segments left: 0 Stack records: 3 allocated, 0 in use Movement lock held by null http is idle in state(s) 0 telnet is idle in state(s) 0 file is idle in state(s) 0 serial is idle in state(s) 0 aux is idle in state(s) 0 daemon is idle in state(s) 0 queue is idle in state(s) 0 autopause is idle in state(s) 0 Code queue is empty. === Network === Slowest loop: 203.14ms; fastest: 0.08ms Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0) HTTP sessions: 1 of 8 - WiFi - Network state is running WiFi module is connected to access point Failed messages: pending 0, notready 0, noresp 1 WiFi firmware version 1.23 WiFi MAC address ec:fa:bc:2d:df:7b WiFi Vcc 3.47, reset reason Turned on by main processor WiFi flash size 4194304, free heap 25704 WiFi IP address 192.168.1.53 WiFi signal strength -45dBm, reconnections 0, sleep mode modem Socket states: 0 0 0 0 0 0 0 0
Config.g
; Configuration file for Duet WiFi (firmware version 1.21) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool on Tue Oct 09 2018 13:27:56 GMT+0300 ; General preferences M80 ; Turns on the ATX power supply G90 ; Send absolute coordinates... M83 ; ...but relative extruder moves M667 S1 ; Select CoreXY mode ; Network M550 PBLV mgn Cube ; Set machine name M552 S1 ; Enable network M587 S"xxxx" P"xxxx" I192.168.1.53 J192.168.1.1 K255.255.255.0 ; Configure access point. You can delete this line once connected M586 P0 S1 ; Enable HTTP M586 P1 S0 ; Disable FTP M586 P2 S0 ; Disable Telnet ; Drives M569 P0 S0 ; Drive 0 goes backwards blv: its was S1 M569 P1 S0 ; Drive 1 goes backwards blv: its was S1 M569 P2 S1 ; Drive 2 goes forwards M569 P3 S1 ; Drive 3 goes backwards WAS 0 M350 X16 Y16 Z16 E16 I1 ; Configure microstepping with interpolation M92 X200 Y200 Z400 E408 ; Set steps per mm for Bondtech. E405.18 M566 X600 Y600 Z24 E300 ; Set maximum instantaneous speed changes (Jerk) (mm/min) M566 X600 Y600 Z24 E300 M203 X20000 Y20000 Z600 E2000 ; Set maximum speeds (mm/min) M201 X3000 Y3000 Z100 E5000 ; Set accelerations (mm/s^2) M906 X1500 Y1500 Z1500 E1100 I30 ; Set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Pressure advance M572 D0 S0.065 ; disabled Pressure advance ; Axis Limits M208 X-23 Y0 Z0 S1 ; Set axis minima M208 X320 Y321 Z350 S0 ; Set axis maxima ; Endstops M574 X1 Y2 S1 ; Set active high endstops edit: Y endstop is high(max). ; Z-Probe M574 Z1 S2 ; Set endstops controlled by probe M307 H1 A429.0 C107.7 D7.0 V23.8 B0 M307 H0 A68.5 C499.3 D2.7 V23.8 B0 ; Set PID for heated bed values M307 H3 A-1 C-1 D-1 ; BLTouch configure M558 P9 H5 F200 T8000 ; Set Z probe type BLTouch sensor M280 P3 S160 I1 ; BLTouch alarm release and pin UP G31 P25 X27 Y-10 Z2.56 ; BLTouch sensor ;Z2.63 - ABS M376 H5 ; Heaters M305 P0 T100000 B3950 C0 R4700 ; Set thermistor + ADC parameters for heater 0 M143 H0 S140 ; Set temperature limit for heater 0 to 100C M305 P1 T100000 B3950 C0 R4700 M143 H1 S290 ; Set temperature limit for heater 1 to 260C ; Fans M106 P0 S0 I0 F500 H-1 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off M106 P1 S1 I0 F500 H1 T50 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on M106 P2 S1 I0 F500 H1 T50 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on ; Tools M563 P0 D0 H1 ; Define tool 0 G10 P0 X0 Y0 Z0 ; Set tool 0 axis offsets G10 P0 R0 S0 ; Set initial tool 0 active and standby temperatures to 0C ; Automatic power saving M911 S21 R22 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; Set voltage thresholds and actions to run on power loss
bed.g
; bed.g ; called to perform automatic bed compensation via G32 ; ; generated by RepRapFirmware Configuration Tool on Tue Oct 09 2018 13:27:56 GMT+0300 M291 P"Probing mesh grid process started" R"Probing.." S1 T2 M561 ; clear any bed transform G28 ; home all axis bb M564 S0 G90 ; absolute positioning bb ; Define mesh grid M557 X30:270 Y30:270 S80:80 ; 16 points ;M557 X30:270 Y30:270 S240:240 ;4 points G29 S0 ; Probe the bed and save height map to file G29 S1
homeall.g
; homeall.g ; called to home all axes ; ; generated by RepRapFirmware Configuration Tool on Tue Oct 09 2018 13:27:56 GMT+0300 G91 ; relative positioning G1 Z5 F6000 S2 ; lift Z relative to current position G1 S1 X-355 Y355 F6000 ; move quickly to X or Y endstop and stop there (first pass) G1 S1 X-355 ; home X axis G1 S1 Y355 ; home Y axis G1 X5 Y-5 F6000 ; go back a few mm G1 S1 X-355 F360 ; move slowly to X axis endstop once more (second pass) G1 S1 Y355 ; then move slowly to Y axis endstop G90 ; absolute positioning G1 X152 Y166.4 F6000 ; go to first bed probe point and home Z G30 ; home Z by probing the bed
homez.g
; homez.g ; called to home the Z axis ; ; generated by RepRapFirmware Configuration Tool on Tue Oct 09 2018 13:27:56 GMT+0300 G91 ; relative positioning G1 Z5 F6000 S2 ; lift Z relative to current position G90 ; absolute positioning G1 X152 Y166.4 F6000 ; go to first probe point G30 ; home Z by probing the bed
-
@Dep said in Mesh calibration not working or what am I doing wrong?:
What is the use of mesh calibration if it requires a flat bed?
It doesn't require a flat bed but it does mean there is less Z adjustment required.
I'm not fully convinced it is a mesh compensation problem. Which is why I asked about using a tight grid (10x10 or 20x20) to probe those different areas of the bed.
I would like to know if the strange numbers you are getting will show up in all regions of the bed. If they did it would suggest something else is going.
Maybe you will try to lower the one corner of the bedon on your printer by 2-3mm and try to print
I would but the range of adjustment for my printer is small.
Frederick
-
Bed compensation in use: none, comp offset 0.000
Is that correct?
Mine says
Bed compensation in use: mesh, comp offset 0.000(manual bed levelling)
-
My M122 after new test.
M122 === Diagnostics === RepRapFirmware for Duet version 1.25RC4 running on Duet 0.85 Used output buffers: 3 of 16 (9 max) === System === Static ram: 44204 Dynamic ram: 42620 of which 3288 recycled Stack ram used: 136 current, 4132 maximum Never used ram: 4060 === Platform === Last reset 03:48:05 ago, cause: power up Last software reset at 2019-11-01 19:24, reason: User, spinning module GCodes, available RAM 4060 bytes (slot 2) Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0400f000 BFAR 0xe000ed38 SP 0xffffffff Error status: 0 Free file entries: 10 SD card 0 detected, interface speed: 21.0MBytes/sec SD card longest block write time: 31.2ms, max retries 0 MCU temperature: min 44.8, current 53.1, max 55.4 Date/time: 2019-11-04 18:26:58 Slowest loop: 283.88ms; fastest: 0.10ms I2C nak errors 768, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 768 === Move === Hiccups: 68, FreeDm: 100, MinFreeDm: 88, MaxWait: 5296105ms Bed compensation in use: mesh, comp offset 0.000 === DDARing === Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 === Heat === Bed heaters = 2, chamberHeaters = 0 -1 Heater 1 is on, I-accum = 0.3 === GCodes === Segments left: 0 Stack records: 2 allocated, 0 in use Movement lock held by null http is idle in state(s) 0 telnet is idle in state(s) 0 file is idle in state(s) 0 serial is idle in state(s) 0 aux is idle in state(s) 0 daemon is idle in state(s) 0 queue is idle in state(s) 0 autopause is idle in state(s) 0 Code queue is empty. === Network === Free connections: 15 of 16 Free transactions: 23 of 24 Locked: 0, state: 4, listening: 20071bf4, 0, 0
I don’t think skipping Z steps, because I have a servo stepper motor on Z.
-
@Lc1975 said in Mesh calibration not working or what am I doing wrong?:
Bed compensation in use: none, comp offset 0.000
Is that correct?
Mine says
Bed compensation in use: mesh, comp offset 0.000(manual bed levelling)
I fixed the message .. I wrote the last output here right after the printer was loaded .. now I executed G32 and then M122
-
@tarantul said in Mesh calibration not working or what am I doing wrong?:
M557 X30:270 Y30:270 S80:80 ; 16 points
far to few probing points.
-
@Veti said in Mesh calibration not working or what am I doing wrong?:
@tarantul said in Mesh calibration not working or what am I doing wrong?:
M557 X30:270 Y30:270 S80:80 ; 16 points
far to few probing points.
How many optimal points are needed? And if the failure in the center of the bed does this not compensate ?
-
@tarantul said in Mesh calibration not working or what am I doing wrong?:
How many optimal points are needed?
if there are problems with the first layer. increase the number of points.
-
@Dep said in Mesh calibration not working or what am I doing wrong?:
The height maps are far apart because the table was not heated. Now I will make a new card on the heated table.
In the meantime, you have posted a height map of your heated bed. It is quite similar to the first map in your thread, and it is equally frightening. Your bed heater must be a real weapon of mass-distortion
The bed is driven by four lead screws - do you allow the bed to expand horizontally, or are the suspensions fixed?
Are there any restrictions on the size of the shift?
I don’t know how the mesh grid compensation is implemented, but it is meant to level the print over the first few layers. See M376 for reference. In my experience, it helps a lot with the last some hundredth of a mm, but it is difficult to compensate differences in the range of several layer heights.
-
I am gonna throw a few things in here because I had a long journey getting the compensation to work on my machine. In my case it was twist in the X axis causing the problem, but it took me a long time to discover because I was just randomly changing settings and hoping for improvement rather than using a systematic approach.
There are several possibilities where the bed compensation could have problems. In order to troubleshoot systematically you'll need to build a list of potential error sources, and then troubleshoot by eliminating variables and testing what remains until you narrow down the root cause of the issue.
Every time I made a change, I would take another height map reading and save it into an excel spreadsheet. This allowed me use the charting tools and math functions to easily visualize and compare different readings to see what the similarities and differences were, and to see if I was making improvement over time.
There are many potential sources of errors in the bed map process. You'll have to come up with your own list, but here is what I ended up checking on mine:
-
Probe itself. Could be poor repeatability on the component. I replaced my bltouch with a simple microswitch just for testing purposes. Didn't change anything in the height maps, which eliminated the probe as a source of error.
-
Probe mounting location. This is a big one, particularly if the probe is in front of or behind the nozzle, any twist in the X axis could lead to incorrect readings due to the cosine error of the measurement. This will normally present as a 'tilted' height map, where one side is significantly higher than the other and it's fairly even over the distance. If there is a lot of downward deflection in X you would normally see a humped height map where the center is higher than left and right edges. This ended up being the problem in my case as my X axis was tilted. My probe was mounted far enough from the nozzle in X that a slight tilt was enough to introduce more than 0.4mm deviation into the readings.
-
Probe offsets. Large offsets can cause issues for mechanical reasons as above. Just validate the numbers otherwise. I think this is correct for you so unlikely to be an error source.
-
Interference in wiring between probe and duet. I replaced the existing wiring harness with a shielded wire just for testing which was ran far away from motor wires etc. This didn't change readings at all so it eliminated cable interference as a significant error source.
-
Temperature variation. Make sure at least the bed is stabilized to print temp before probing as it will certainly affect level. If you have a plastic probe mount it could possibly be softening slightly with temperature and changing readings as well (not terribly likely but possible). In my case this did make a big difference in readings between temperatures. My process is now to re-run the height map when I change materials with a significant difference in bed temp (from PLA to Polycarbonate for example)
-
Height map generation within firmware. You can check that this is OK by manual bed map generation. You can make one by attaching a dial indicator or similar. Fasten it to the extruder so it rides the carriage around. Record readings at various points to manually generate a height map csv file for the firmware. Compare this to the automatically generated maps. Load it up, then check to see if the compensation is better or worse. If the compensation is correct with a manual map, then something in the automatic map generation step is the source of the problem. If the compensation does not change or gets worse, then it's more likely to be with the compensation math / implementation itself (or the manual readings were taken incorrectly). In my case the manually generated map did not match the automatically generated map, which indicated problems with the automatic map process.
-
Compensation within firmware. You can make a fake height map with some easy to visualize error, such as a straight left-right variation of 5mm or so. Then just move across the bed with compensation enabled to ensure the system moves the expected amount. A dial indicator as above is a very helpful tool for this. In this case you would leave the dial stationary on any point in the bed, just to measure Z axis motion only. For my machine the compensation with the manually generated map worked perfectly, which indicated that the problem was NOT in the application of compensation but rather in the height map generation process or probe.
Sorry for the novel, hope this helps
-
-
Hi,
There was some question about mesh compensation working on your printer.
The attached is my height map when probing 180 points (12x15) on a 20x20 mm grid using a BLTouch v3.0.
You can see a high spot on the left. I use a textured build surface on glass on aluminum. The build surface has an adhesive back. I think the high spot is because I didn't get it adhered evenly.
In any case when mesh compensation is enable I can see the Z axis stepper turning small amounts when printing in the area of the high spot.
The prints come out fine despite that high spot being appx 0.17 mm higher than most of the other points.
I am using a Duet WiFi with 2.04 firmware.
Frederick
-
@fcwilt
that bed would be a good way to illustrate the problem of to few probing points.can you just for demonstration reduce the number of points by lets say 4 and post the picture?
-
Hi,
I much prefer this height map done with just four points near the corners of the bed.
It makes my printer building skills look so much better.
Sadly it doesn't print as well with just these four points of compensation.
But the bed looks great doesn't it!!!!
-
I think now the main problem is skipping steps in Z
On the Z axis I have a Leadshine hybrid servo drive HBS507
And all that tested before that was with the setup of the M569 P7
After the last print, I noticed Hiccups 64
Next, I made the M569 P7 T2.5: 2.5: 5 - no result
Then M569 P7 T5: 5: 6 and Hiccups 20, and got better print
Then M569 P7 T20 and even better print and Hiccups 4
True, I constantly executed the M122 command during the printing process - it seems that it resets HiccupsWhere to go next? What should be the timings for my motor?
-
@nhof thank you very much! Take note of your recommendations!
-
@Dep said in Mesh calibration not working or what am I doing wrong?:
I think now the main problem is skipping steps in Z
On the Z axis I have a Leadshine hybrid servo drive HBS507
And all that tested before that was with the setup of the M569 P7
After the last print, I noticed Hiccups 64
Next, I made the M569 P7 T2.5: 2.5: 5 - no result
Then M569 P7 T5: 5: 6 and Hiccups 20, and got better print
Then M569 P7 T20 and even better print and Hiccups 4
True, I constantly executed the M122 command during the printing process - it seems that it resets HiccupsWhere to go next? What should be the timings for my motor?
May want to start a new thread with the Leadshine servo question to get some more views.
-
@Phaedrux yes thanks!
-
I started new tread about Leadshine hybrid servo drive tuning
https://forum.duet3d.com/topic/12762/leadshine-hybrid-servo-drive-tuning