-
@Phaedrux said in Rotary delta calibration not implemented?:
Are you still getting hiccups in M122 after a fresh reboot and running G32?
You can add some commands to bed.g to lower the acceleration, jerk, and max speed before the probing and then return it to normal again at the end.
m122 === Diagnostics === RepRapFirmware for LPC176x based Boards (biquskr_1.3) version 3.2_1 running on LPC176x at 100Mhz Used output buffers: 3 of 16 (11 max) === RTOS === Static ram: 4956 Dynamic Memory (RTOS Heap 5): 8488 free, 8448 never used Allocations: 212 Frees: 51 Never used RAM 256, free system stack 16 words Tasks: NETWORK(ready,195) HEAT(blocked,243) MAIN(running,354) IDLE(ready,21) Owned mutexes: WiFi(NETWORK) === Platform === Last reset 00:13:28 ago, cause: [power up][reset button] Last software reset at 2021-01-11 23:51, reason: User, GCodes spinning, available RAM 256, slot 1 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00428000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a Error status: 0x00 Aux0 errors 0,0,0 Supply voltage: under voltage events: 0 Driver 0: position -21712, standstill, SG min/max 0/398, error r/w 2/0, ifcnt 19, cnt r/w 25110/19, timeout 0, failedOp 0xff Driver 1: position -21712, standstill, SG min/max 0/270, error r/w 1/0, ifcnt 20, cnt r/w 25109/20, timeout 0, failedOp 0xff Driver 2: position -21712, standstill, SG min/max 0/302, error r/w 3/0, ifcnt 19, cnt r/w 25108/19, timeout 0, failedOp 0xff Driver 3: position 0, no-driver-detected Driver 4: position 0 Driver 5: position 0 Driver 6: position 0 Date/time: 2021-01-12 00:08:22 Slowest loop: 69.25ms; fastest: 0.12ms Step timer: target 216165456 count 808616327 delta -592450871 late 0 USBSerial connected 0 ADC not ready 2 ADC error threshold 10 ADC Init 1 Ints: 0; Calls 0; fast: 4294967295uS; slow 0uS adj 0 bad 0 big delta 0 PWM Channels Delta 1234083299 Start -1 End -1 === Storage === Free file entries: 4 SD card 0 detected SD card longest read time 6.8ms, write time 5.9ms, max retries 0 === Move === DMs created 40, maxWait 72981ms, bed compensation in use: none, comp offset 0.000 === DDARing === Scheduled moves 38, completed moves 38, hiccups 37, stepErrors 0, LaErrors 0, Underruns [0, 0, 6], CDDA state -1 === Heat === Bed heaters = 0, chamberHeaters = -1 Heater 1 is on, I-accum = 0.0 === GCodes === Segments left: 0 Movement lock held by null HTTP is idle in state(s) 0 File is idle 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: 240.66ms; fastest: 0.00ms Responder states: HTTP(0) HTTP(0) HTTP sessions: 1 of 2 - WiFi - Network state is active WiFi module is connected to access point Failed messages: pending 0, notready 0, noresp 0 WiFi firmware version 1.25B0-01L-D WiFi MAC address e0:3f:49:23:39:c4 WiFi Vcc 2.93, reset reason Turned on by main processor WiFi flash size 4194304, free heap 35656 WiFi IP address 192.168.1.97 WiFi signal strength -56dBm, mode 802.11n, reconnections 0, sleep mode modem Clock register 00181001 Socket states: 0 0
-
; bed.g ; called to perform automatic delta calibration via G32 ; ; generated by RepRapFirmware Configuration Tool v3.2.1 on Mon Jan 11 2021 22:12:55 GMT+0200 (Восточная Европа, стандартное время) M561 ; clear any bed transform G1 F500 G0 F500 G28 G30 P0 X0.00 Y80.00 Z-99999 H33.385 G30 P1 X69.28 Y-40.00 Z-99999 H33.385 G30 P2 X-69.28 Y-40.00 Z-99999 H33.385 G30 P3 X0.00 Y40.00 Z-99999 H33.385 G30 P4 X34.64 Y-20.00 Z-99999 H33.385 G30 P5 X-34.64 Y-20.00 Z-99999 H33.385 G30 P6 X0 Y0 Z-99999 S6
-
https://drive.google.com/file/d/17lobb0XFThtsjyVlk1SSF1ID_IGeao0-/view?usp=sharing
M350 X16 Y16 Z16 E16
M92 X440.375 Y440.375 Z440.375 E440.375 -
it seems to be a problem with the firmware in particular rotary delta kinematics
-
@Orang_ said in Rotary delta calibration not implemented?:
G1 F500 G0 F500
That won't have any effect on the G30 moves. You'll need to do something like this.
; bed.g ; called to perform automatic delta calibration via G32 ; ; generated by RepRapFirmware Configuration Tool v3.2.1 on Mon Jan 11 2021 22:12:55 GMT+0200 (Восточная Европа, стандартное время) M561 ; clear any bed transform G28 M566 X400 Y400 Z400 ; set maximum instantaneous speed changes (mm/min) M203 X6000 Y6000 Z6000 ; set maximum speeds (mm/min) M201 X400 Y400 Z400 ; set accelerations (mm/s^2) G30 P0 X0.00 Y80.00 Z-99999 H33.385 G30 P1 X69.28 Y-40.00 Z-99999 H33.385 G30 P2 X-69.28 Y-40.00 Z-99999 H33.385 G30 P3 X0.00 Y40.00 Z-99999 H33.385 G30 P4 X34.64 Y-20.00 Z-99999 H33.385 G30 P5 X-34.64 Y-20.00 Z-99999 H33.385 G30 P6 X0 Y0 Z-99999 S6 M566 X1200.00 Y1200.00 Z1200.00 E1200.00 ; set maximum instantaneous speed changes (mm/min) M203 X18000.00 Y18000.00 Z18000.00 E1200.00 ; set maximum speeds (mm/min) M201 X500.00 Y500.00 Z500.00 E1000.00 ; set accelerations (mm/s^2)
You might also want to reduce the travel speed in M558
M558 P5 C"^zstop" H5 F120 T1000
@Orang_ said in Rotary delta calibration not implemented?:
hiccups 37
That's much better
Also, is your motor current set appropriately for your motors? 60-85% of rated max is the rule of thumb.
-
@Phaedrux said in Rotary delta calibration not implemented?:
Also, is your motor current set appropriately for your motors? 60-85% of rated max is the rule of thumb.
yes
-
M566 X400 Y400 Z400 ; set maximum instantaneous speed changes (mm/min)
M203 X6000 Y6000 Z6000 ; set maximum speeds (mm/min)
M201 X400 Y400 Z400 ; set accelerations (mm/s^2)
also has no effect(((( -
@Orang_ said in Rotary delta calibration not implemented?:
M203 X6000 Y6000 Z6000 ; set maximum speeds (mm/min)
Try to halve the speed values to 3000
-
sorry I have M203 X1000 Y1000 Z1000
-
could this have something to do with that t2 tool? the printer is set up so that 0 is the effector, or rather the fisheye center
-
@Orang_ said in Rotary delta calibration not implemented?:
; Tools M563 P0 D0 H1 F0 ; define tool 0 G10 P0 X0 Y0 Z ; set tool 0 axis offsets G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C M563 P2 S"2rr" D0 H1 F0 ; define tool 2 G10 P2 X0 Y0 Z-23.3 ; set tool 2 axis offsets G10 P2 R0 S0 M563 P5 S"TEST" D0 H1 F0 ; define tool 2 G10 P2 X0 Y0 Z-29.3 ; set tool 2 axis offsets G10 P2 R0 S0
You mean this?
Why does it go from P0 to P2 then P5, but P5 still uses G10 commands with P2?
-
@Phaedrux said in Rotary delta calibration not implemented?:
Why does it go from P0 to P2 then P5, but P5 still uses G10 commands with P2?
I switched to rrf firmware not long ago
-
@Phaedrux said in Rotary delta calibration not implemented?:
You mean this?
I mean that during normal movement the printer moves correctly, during arc calibration you can see it on the video. it can be related to the offset of the tool and the sensor
-
I'm not exactly sure how the -Z offset on tool2 is going to have an effect. I'm not even really sure what the reasoning or intension is there.
You're using an IR sensor though, so you should have an XY offset configured for it in G31
G31 X0 Y0 Z33.385 P25
And the Z trigger height should be calibrated.
https://duet3d.dozuki.com/Wiki/Test_and_calibrate_the_Z_probe
I would try simplifying your tool definitions to
; Tools
M563 P0 D0 H1 F0 ; 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 0CAnd then select T0 at the end of config.g instead of T2
Then try G32 again.
-
https://github.com/Duet3D/RepRapFirmware/blob/dev/src/Movement/Kinematics/RotaryDeltaKinematics.cpp
221 bool RotaryDeltaKinematics::DoAutoCalibration(size_t numFactors, const RandomProbePointSet& probePoints, const StringRef& reply) 222 { 223 return true; // auto calibration not implemented yet 224 } 225 226 // Write the parameters that are set by auto calibration to a file, returning 227 true if success 228 bool RotaryDeltaKinematics::WriteCalibrationParameters(FileStore *f) const 229 { 230 return true; // auto calibration not implemented yet 231 }
-
I understand correctly that there is no calibration for rotary delta?
-
@Orang_ said in Rotary delta calibration not implemented?:
I understand correctly that there is no calibration for rotary delta?
That is correct. The problem is that there are potentially many calibration variables for a rotary delta. For example, there are two pivot locations (like the tower position corrections for a linear delta), three upper arm lengths, three lower arm lengths, three pivot height corrections, three homing position corrections, and the delta radius. That's 18 parameters. It's unlikely the by probing a flat bed and measuring the height errors, it would be possible to calibrate all of these. However, if some of these are known to be accurate (for example, if all the arms are manufactured to precise lengths) then it may be possible to auto-calibrate the remaining parameters.
I can try adding auto calibration when I have time, but it might not give very good results.
-
@dc42 said in Rotary delta calibration not implemented?:
That is correct. The problem is that there are potentially many calibration variables for a rotary delta. For example, there are two pivot locations (like the tower position corrections for a linear delta), three upper arm lengths, three lower arm lengths, three pivot height corrections, three homing position corrections, and the delta radius. That's 18 parameters. It's unlikely the by probing a flat bed and measuring the height errors, it would be possible to calibrate all of these. However, if some of these are known to be accurate (for example, if all the arms are manufactured to precise lengths) then it may be possible to auto-calibrate the remaining parameters.
I can try adding auto calibration when I have time, but it might not give very good results.Thank you, I really like your firmware, if there are any changes with the calibration, please let me know, I would be happy to test it. Also there is not a big group of people who own similar printers I think they will also support it.
-
I'll just make @gloomyandy aware of this thread
-
@Orang_ on another note. Is there a good project for building one? Saw this one this week: https://www.youtube.com/watch?v=Tj1KAbq99dc