Missing Steps - Cant Print SpreadCycle StealthChop tuning help
-
Hi Guys
Need a bit more help with tuning spreadcycle / stealthchop and more so how and when the driver switches form one to the other. I configured homing and stallguard and have tuned a few really nice cal cubes in slicer but all at fairly low speeds (not getting into spreadcycle territory?) now increasing print and travel speeds im experiencing huge "bangs/crashes" which I assume is on the change from one mode to the other and vice versa (I think anyway). So the result is huge layer shifts especially apparent when I have more than one body on the print bed ( large travel moves). After the 3rd fail / bang or thud however you want to call it I sat and watched the 4th, I observed during a long travel move it seems to be in two stages, move - a pause for milliseconds - finish move. so the pause is the switch from stealthchop to spreadcyle? On a number of travel moves is when the layer shift happens (missing steps?) but in all G1 X, Y moves, direction changes, speed changes or acceleration/decelerations there is a distinct sound that I can only describe as micro bangs / thuds that has only become apparent with increasing speeds. Im only talking 180mm/s on no print moves and 60-100 on print moves. For clarity ive been using PA at .05 or 0.6 (don't know if that's a factor to consider)
Last night I tried a number of things, raising / lower motor currents and reducing jerk and accelerations none of which made any noticeable difference.
M569 P0.0 S0 V0 and M569 P0.1 S0 V0 as I understand it V0 will auto switch (inf) but im still not understanding the config description, in my head it would seem to remove the feature from the equation is the best option and force the driver to stay in spreadcycle taking the headache away but for the life of me have no clue how to do that. Making V4000 just screws stallguard senseless homing up and V100 is telephone numbers fast.
Can somebody help me understand how, why, when and where the change overs happen, how to dial them in and when?
This hard crash / bang causing the layer shift is monumental, 1st one I actually thought the printer fell off the desk on to the floor.
Also connected im convinced is my extruder motor, increasing speeds is causing a lot "clicking" all of the time but im not seeing missing extrusion ( again quite loud and very annoying) StealthChop / SpreadCycle switching again??mini 5 / sbc 3.3b2
ldo-42sth48-2004mac
ldo-42sth25-1404macconfig.g
; General preferences Duplicate lines and comment out unused G90 ; Send absolute coordinates... M83 ; ...but relative extruder moves M564 H0 ; Permits ALL Axis movement prior to or without ANY Homing require [ over-rides default of no movement until all homed ] ; Network Networked of sbc ;M550 P"Duet3" ; Set machine name ;M552 S1 ; Enable network ;*** Access point is configured manually via M587 ;M586 P0 S1 ; Enable HTTP ;M586 P1 S0 ; Disable FTP ;M586 P2 S0 ; Disable Telnet M575 P1 S1 B57600 ; Panel Due ; Drive Mappings M569 P0.0 S0 V0 ; Drive 0 goes forwards: X Axis M569 P0.1 S0 V0 ; Drive 1 goes backwards: Y Axis M569 P0.2 S0 V0 ; Drive 2 goes backwards: Z Axis M569 P0.3 S0 V0 ; Drive 3 goes forwards: E Axis M569 P0.4 S0 V0 ; Drive 4 goes backwards: Z Axis (at E1) ; Motor remapping for dual Z and axis Limits M584 X0 Y1 Z2:4 E3 ; two Z motors connected to driver outputs Z and E1 M671 X-37:287 Y0:0 S4 ; leadscrews at left (connected to Z) and right (connected to E1) of X axis ; Micrpstepping and Speed M350 X16 Y16 E16 Z16 I1 ; Configure microstepping with interpolation M92 X200.00 Y200.00 Z400.00 E830.00 ; Set steps per mm ; Speeds, Acceleration and Jerk ;M566 X240 Y240 Z24 E1200 P1 ; Set maximum instantaneous speed changes (mm/min) aka Jerk M566 X600 Y600 Z24 E3000 P1 ; Set maximum instantaneous speed changes (mm/min) aka Jerk ;M203 X7200 Y7200 Z720 E4000 ; Set maximum speeds (mm/min) M203 X10800 Y10800 Z720 E4000 ; Set maximum speeds (mm/min) M201 X1250.00 Y1250.00 Z200 E4000 ; Set accelerations (mm/s^2) M204 P1250 T1700 ; set print and travel accelerations (mm(s^2) ; Motor currents M906 X1000 Y1000 Z600.00 E1120 I30 ; Set motor currents (mA) and motor idle factor in percent M84 S30 ; Set idle timeout ; Printer geometry M208 X0:250 Y-4:215 Z-0.5:415 ; X carriage moves from 0 to 250, Y bed goes from 0 to 210 M564 H0 ; allow unhomed movement ; Endstops M915 XY F0 S0 H400 R1 ; configure stall detection for sensorless homing M574 X1 Y1 S3 ; Set endstops controlled by motor load detection ; Stallgaurd Sensitivy M915 X S-30 F0 H400 R0 M915 Y S-30 F0 H400 R0 ;M915 X S-4 F0 H400 R0 ; Set X axis Sensitivity ;working 3.3 ;M915 Y S-2 F0 H400 R0 ; Set y axis Sensitivity ; woring 3.3 ; Input Shaper M593 F61.85 P4 ; Input Shaping ; Z-Probe Super Pinda M574 X1 S3 ; configure sensorless endstop for low end on X M574 Y1 S3 ; configure sensorless endstop for low end on Y M574 Z1 S2 ; Set endstops controlled by probe M558 P5 C"^io3.in" I1 H1 F500 T4800 A30 S0.004 ; Super Pinda ; Probing Mesh Grid and Sheets M557 X24:221 Y10:195 P8 ; Define mesh grid for probing G31 P1000 X23 Y5 Z1.91 ; Textured Sheet ;G31 P1000 X23 Y5 Z1.280 ; PEI ; Heatbed Heaters and Thermistor Bed M308 S0 P"temp0" Y"thermistor" T100000 B4725 C7.060000e-8 ; Set thermistor + ADC parameters for heater 0 Bed M950 H0 C"out0" T0 Q10 ; Creates Bed Heater M307 H0 R0.273 C345.3 D10.89 S1.00 V23.8 ; Bed PID new version !!saved In config-override!! M140 H0 ; Bed uses Heater 0 M143 H0 S120 ; Set temperature limit for heater 0 to 120C Bed ; HotEnd Heaters and Thermistor HotEnd M308 S1 P"temp1" Y"thermistor" T500000 B4723 C1.19622e-7 ;define E0 temperature sensor Slice HT M950 H1 C"out1" T1 ; Create HotEnd Heater M307 H1 R2.383 C178.5:130.6 D5.32 S1.00 V23.9 ; Hotend PID new version !!saved In config-override!! M143 H1 S285 ; Set temperature limit for heater 1 to 285C HotEnd M302 S185 R185 ; Fans M950 F1 C"out5" Q250 ; Creates HOTEND Fan M106 P1 T45 S235 H1 ; HOTEND Fan Settings M950 F0 C"out6" Q100 ; Creates PARTS COOLING FAN M106 P0 H-1 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned off PARTS COOLING FAN ; 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 0C G91 G1 X1 Y1 Z1 ; calibrate StealthChop values G90 M83 G4 S2 M84 ; disable motors M98 P"0:/macros/02_Functions/StartupFilamentSensorCheck" ; Runout Sensor Logic: Startup with filament = runout sensor active Startup without filament = autoload active ;M92 X200.00 Y200.00 Z400.00 E830.00 ; Set steps per mm
-
Would it be a more predictable solution to only use stealthchop while homing and use spreadcycle all other times??
Has anyone actually successfully configured up 2209 drivers / motors to run well?
-
seems as if the options are limited to stealth ON for homing only, then spreadcycle for all other.
Getting the code right for this appears to be the challenge now.
Wish I had the answer for ya buddy ... ANybody ? Bueller ?
-
@sputnikoc3d said in SpreadCycle / StealthChop tuning / configuring help:
seems as if the options are limited to stealth ON for homing only, then spreadcycle for all other.
Getting the code right for this appears to be the challenge now.
Wish I had the answer for ya buddy ... ANybody ? Bueller ?
Seems like the worlds best kept secret...
-
So ive tried some more this evening, thought I had made some progress but still not great. I checked M569 P0.0 S0 V50
M569 P0.1 S0 V50 at 75mm/s for my motors to fall into line with my homing speed of 66.6mm/s, I can't say whether the bangs or what im calling micro bangs / thuds are still there as it sounds worse everywhere else... Thought's, help?Layer shift / skipped steps??
X Axis
M569 P0.1 Drive 1 runs in reverse, active low enable, timing fast, mode stealthChop, ccr 0x00053, toff 3, tblank 0, tpwmthrs 50 (75.0 mm/sec), pwmScaleSum 10, pwmScaleAuto 0, pwmOfsAuto 112, pwmGradAuto 18, pos 584
Y Axis
M569 P0.0 Drive 0 runs in reverse, active low enable, timing fast, mode stealthChop, ccr 0x00053, toff 3, tblank 0, tpwmthrs 50 (75.0 mm/sec), pwmScaleSum 11, pwmScaleAuto 0, pwmOfsAuto 119, pwmGradAuto 18, pos 328
Home X ( Y is a duplicate) I had to increase the speed of "G1 X125 F5000 ; centre the head and set a reasonable feed rate" line as the final move sounded terrible at the end.
; homex.g ; called to home the X axis ; M561 M400 ; make sure everything has stopped before we make changes M574 X1 S3 ; set endstops to use motor stall M913 X50 ; reduce motor current to 50% to prevent belts slipping G91 ; use relative positioning G1 H2 Z5 ; Move Z up M17 X ; energise X motor for stealthChop tuning G4 P150 ; pause to allow the driver to establish the motor parameters G1 H1 X-270 F4000 ; home X keep F above 3600 to maintain sensorless homing. G90 ; back to absolute positioning M913 X100 ; Reset power back to 100% G1 X125 F5000 ; centre the head and set a reasonable feed rate
config.g
; General preferences Duplicate lines and comment out unused G90 ; Send absolute coordinates... M83 ; ...but relative extruder moves M564 H0 ; Permits ALL Axis movement prior to or without ANY Homing require [ over-rides default of no movement until all homed ] ; Network Networked of sbc ;M550 P"Duet3" ; Set machine name ;M552 S1 ; Enable network ;*** Access point is configured manually via M587 ;M586 P0 S1 ; Enable HTTP ;M586 P1 S0 ; Disable FTP ;M586 P2 S0 ; Disable Telnet M575 P1 S1 B57600 ; Panel Due ; Drive Mappings M569 P0.0 S0 V50 ; Drive 0 goes forwards: X Axis M569 P0.1 S0 V50 ; Drive 1 goes backwards: Y Axis M569 P0.2 S0 V0 ; Drive 2 goes backwards: Z Axis M569 P0.3 S0 V0 ; Drive 3 goes forwards: E Axis M569 P0.4 S0 V0 ; Drive 4 goes backwards: Z Axis (at E1) ; Motor remapping for dual Z and axis Limits M584 X0 Y1 Z2:4 E3 ; two Z motors connected to driver outputs Z and E1 M671 X-37:287 Y0:0 S4 ; leadscrews at left (connected to Z) and right (connected to E1) of X axis ; Micrpstepping and Speed M350 X16 Y16 E16 Z16 I1 ; Configure microstepping with interpolation M92 X200.00 Y200.00 Z400.00 E830.00 ; Set steps per mm ; Speeds, Acceleration and Jerk ;M566 X240 Y240 Z24 E1200 P1 ; Set maximum instantaneous speed changes (mm/min) aka Jerk M566 X600 Y600 Z24 E3000 P1 ; Set maximum instantaneous speed changes (mm/min) aka Jerk ;M203 X7200 Y7200 Z720 E4000 ; Set maximum speeds (mm/min) M203 X10800 Y10800 Z720 E4000 ; Set maximum speeds (mm/min) M201 X1250.00 Y1250.00 Z200 E4000 ; Set accelerations (mm/s^2) M204 P1250 T1700 ; set print and travel accelerations (mm(s^2) ; Motor currents M906 X1000 Y1000 Z600.00 E1120 I30 ; Set motor currents (mA) and motor idle factor in percent M84 S30 ; Set idle timeout ; Printer geometry M208 X0:250 Y-4:215 Z-0.5:415 ; X carriage moves from 0 to 250, Y bed goes from 0 to 210 M564 H0 ; allow unhomed movement ; Endstops M915 XY F0 S0 H400 R1 ; configure stall detection for sensorless homing M574 X1 Y1 S3 ; Set endstops controlled by motor load detection ; Stallgaurd Sensitivy M915 X S-50 F0 H400 R0 M915 Y S-50 F0 H400 R0 ;M915 X S-4 F0 H400 R0 ; Set X axis Sensitivity ;working 3.3 ;M915 Y S-2 F0 H400 R0 ; Set y axis Sensitivity ; woring 3.3 ; Input Shaper M593 F61.85 P4 ; Input Shaping ; Z-Probe Super Pinda M574 X1 S3 ; configure sensorless endstop for low end on X M574 Y1 S3 ; configure sensorless endstop for low end on Y M574 Z1 S2 ; Set endstops controlled by probe M558 P5 C"^io3.in" I1 H1 F500 T4800 A30 S0.004 ; Super Pinda ; Probing Mesh Grid and Sheets M557 X24:221 Y10:195 P8 ; Define mesh grid for probing G31 P1000 X23 Y5 Z1.91 ; Textured Sheet ;G31 P1000 X23 Y5 Z1.280 ; PEI ; Heatbed Heaters and Thermistor Bed M308 S0 P"temp0" Y"thermistor" T100000 B4725 C7.060000e-8 ; Set thermistor + ADC parameters for heater 0 Bed M950 H0 C"out0" T0 Q10 ; Creates Bed Heater M307 H0 R0.273 C345.3 D10.89 S1.00 V23.8 ; Bed PID new version !!saved In config-override!! M140 H0 ; Bed uses Heater 0 M143 H0 S120 ; Set temperature limit for heater 0 to 120C Bed ; HotEnd Heaters and Thermistor HotEnd M308 S1 P"temp1" Y"thermistor" T500000 B4723 C1.19622e-7 ;define E0 temperature sensor Slice HT M950 H1 C"out1" T1 ; Create HotEnd Heater M307 H1 R2.383 C178.5:130.6 D5.32 S1.00 V23.9 ; Hotend PID new version !!saved In config-override!! M143 H1 S285 ; Set temperature limit for heater 1 to 285C HotEnd M302 S185 R185 ; Fans M950 F1 C"out5" Q250 ; Creates HOTEND Fan M106 P1 T45 S235 H1 ; HOTEND Fan Settings M950 F0 C"out6" Q100 ; Creates PARTS COOLING FAN M106 P0 H-1 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned off PARTS COOLING FAN ; 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 0C G91 G1 X1 Y1 Z1 ; calibrate StealthChop values G90 M83 G4 S2 M84 ; disable motors M98 P"0:/macros/02_Functions/StartupFilamentSensorCheck" ; Runout Sensor Logic: Startup with filament = runout sensor active Startup without filament = autoload active ;M92 X200.00 Y200.00 Z400.00 E830.00 ; Set steps per mm
M122 report ( Don't know if its needed)
m122 === Diagnostics === RepRapFirmware for Duet 3 Mini 5+ version 3.3beta2 running on Duet 3 Mini5plus WiFi (SBC mode) Board ID: Z9NZN-A296U-D65J0-40KM4-LY03Z-ZPQPD Used output buffers: 1 of 40 (12 max) === RTOS === Static ram: 99720 Dynamic ram: 93276 of which 0 recycled Never used RAM 47852, free system stack 108 words Tasks: Linux(ready,143) HEAT(delaying,293) CanReceiv(notifyWait,943) CanSender(notifyWait,358) CanClock(delaying,340) TMC(notifyWait,100) MAIN(running,356) IDLE(ready,20) AIN(delaying,260) Owned mutexes: HTTP(MAIN) === Platform === Last reset 01:12:49 ago, cause: software Last software reset at 2021-03-28 21:10, reason: User, none spinning, available RAM 47852, slot 2 Software reset code 0x0012 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00000000 BFAR 0xe000ed38 SP 0x00000000 Task Linu Freestk 0 n/a Error status: 0x00 Aux0 errors 0,0,0 Aux1 errors 0,0,0 Supply voltage: min 0.0, current 23.9, max 24.0, under voltage events: 0, over voltage events: 0, power good: yes Heap OK, handles allocated/used 99/0, heap memory allocated/used/recyclable 2048/114/114, gc cycles 0 Driver 0: position 2000, standstill, SG min/max 0/494, read errors 0, write errors 1, ifcnt 93, reads 24161, writes 38, timeouts 217, DMA errors 0, failedOp 0x06 Driver 1: position 40000, standstill, SG min/max 0/496, read errors 0, write errors 1, ifcnt 89, reads 24308, writes 36, timeouts 72, DMA errors 0, failedOp 0x01 Driver 2: position 24252, standstill, SG min/max 0/284, read errors 0, write errors 1, ifcnt 63, reads 23802, writes 24, timeouts 589, DMA errors 0, failedOp 0x41 Driver 3: position 0, standstill, SG min/max 0/498, read errors 0, write errors 1, ifcnt 41, reads 24360, writes 15, timeouts 40, DMA errors 0, failedOp 0x06 Driver 4: position 0, standstill, SG min/max 0/294, read errors 0, write errors 1, ifcnt 63, reads 24392, writes 24, timeouts 0, DMA errors 0 Driver 5: position 0, assumed not present Driver 6: position 0, assumed not present Date/time: 2021-03-28 22:23:14 Cache data hit count 4294967295 Slowest loop: 253.14ms; fastest: 0.08ms === Storage === Free file entries: 10 SD card 0 not detected, interface speed: 0.0MBytes/sec SD card longest read time 0.0ms, write time 0.0ms, max retries 0 === Move === DMs created 83, maxWait 2221597ms, bed compensation in use: mesh, comp offset 0.000 === MainDDARing === Scheduled moves 6406, completed moves 6406, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 247, 10], CDDA state -1 === AuxDDARing === Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters = 0 -1, chamberHeaters = -1 -1 Heater 0 is on, I-accum = 0.8 Heater 1 is on, I-accum = 0.5 === GCodes === Segments left: 0 Movement lock held by null HTTP* is doing "M122" in state(s) 0 Telnet 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 LCD is idle in state(s) 0 SBC is idle in state(s) 0 Daemon is idle in state(s) 0 Aux2 is idle in state(s) 0 Autopause is idle in state(s) 0 Code queue is empty. === Filament sensors === Extruder 0 sensor: ok === CAN === Messages queued 39348, send timeouts 39344, received 0, lost 0, longest wait 0ms for reply type 0, peak Tx sync delay 0, free buffers 17 (min 16) Last cancelled message type 4514 dest 127 === SBC interface === State: 4, failed transfers: 0 Last transfer: 4ms ago RX/TX seq numbers: 19840/19840 SPI underruns 0, overruns 0 Number of disconnects: 0, IAP RAM available 0x11584 Buffer RX/TX: 0/0-0 === Duet Control Server === Duet Control Server v3.3-b2 Code buffer space: 4096 Configured SPI speed: 8000000 Hz Full transfers per second: 34.54 Codes per second: 1.64 Maximum length of RX/TX data transfers: 5420/1492 28/03/2021, 22:19:23 Cancelled printing file 0:/gcodes/Mosquito_Fan_Duct_v5_0.2mm_ASA_MK3S_1h24m.gcode, print time was 0h 11m 28/03/2021, 22:08:23 Height map loaded from file heightmap.csv 28/03/2021, 22:08:02 M32 "0:/gcodes/Mosquito_Fan_Duct_v5_0.2mm_ASA_MK3S_1h24m.gcode" File 0:/gcodes/Mosquito_Fan_Duct_v5_0.2mm_ASA_MK3S_1h24m.gcode selected for printing 28/03/2021, 22:06:06 M98 P"0:/macros/Level X gantry " Leadscrew adjustments made: -0.011 -0.029, points used 2, (mean, deviation) before (-0.020, 0.005) after (0.000, 0.000) Leadscrew adjustments made: 0.011 0.002, points used 2, (mean, deviation) before (0.006, 0.002) after (-0.000, 0.000)
-
Anyone??
-
@carcamerarig could part of the issue be related to this:
https://forum.duet3d.com/topic/21108/stall-detection-on-duet-3-mini -
Thanks for the link and trying to lend an assist. Myself and a few others are trying to get our heads around this issue with the OP. I have a new build that will use the Mini as well, and our friends with the 3H full board is lending a hand - but we just cant seem to get things working as they should.
Homing is sorted ... however; after we take him out of stealthchop via M569 D2 parameter after homing- hes still missing steps and getting layer shifts in very easy prints - no major torque stress - no blobs - not nozzle impacts - just infill moves.
There really has to be a better way to tune these .9* motors and these drivers - this nonsense has been going on for days now ...
-
@carcamerarig Your video (posted earlier) does not seem to be accessible, at least it isn't for me.
-
@gloomyandy said in SpreadCycle / StealthChop tuning / configuring help:
@carcamerarig Your video (posted earlier) does not seem to be accessible, at least it isn't for me.
should be I just checked, links set to anyone with link, anyone else not able to see it?
-
@t3p3tony said in SpreadCycle / StealthChop tuning / configuring help:
@carcamerarig could part of the issue be related to this:
https://forum.duet3d.com/topic/21108/stall-detection-on-duet-3-miniHonestly I have no clue now, that thread went cold with no definitive outcome, I asked if the Gcode dictionary reflected the updated comments?
-
I've tried helping @carcamerarig on this issue, maybe I can give my take on what's going on. We believe we have homing with stallguard figured out, but that's not the main issue.
The issue is during fast moves, the printer will stutter causing a thump sound, resulting in a layer shift. The nozzle is not hitting the print or other obstruction.
I thought originally this may be caused by the switchover from stealtchop to spreadcyce. However forcing the machine into spreadcycle after homing did not alleviate the issue during a print. @carcamerarig Can you post a link to the video showing the problem?
-
@ctilley79 @carcamerarig does it still do the thump with mesh bed levelling disabled? Could be a slow Z axis movement is stopping X Y movement.
Ian
-
@droftarts He has a prusa type machine similar to mine and mine doesn't behave like this. We both have similar acceleration and jerk settings for Z although he does keep his Z in StealthChop full time. The only ohter difference is my machines are Duet WiFis.
-
Duet WifI = TMC2660
Duet 3 Mini = TMC22090.9 motors + TMC2209 are difficult to set up. Our Marlin neighbours are having similar difficulties with 0.9 motors, TMC2209 and StealthChop.
Imo it's not worth the hustle. Use 1.8 motors, set V to 0 (no hybrid mode) and happy printing.
-
@carcamerarig Still doesn't work for me.
-
@argo we've switched entirely to spreadcycle and the issue remains.
-
@ctilley79 said in SpreadCycle / StealthChop tuning / configuring help:
I've tried helping @carcamerarig on this issue, maybe I can give my take on what's going on. We believe we have homing with stallguard figured out, but that's not the main issue.
The issue is during fast moves, the printer will stutter causing a thump sound, resulting in a layer shift. The nozzle is not hitting the print or other obstruction.
I thought originally this may be caused by the switchover from stealtchop to spreadcyce. However forcing the machine into spreadcycle after homing did not alleviate the issue during a print. @carcamerarig Can you post a link to the video showing the problem?
-
@ctilley79 said in SpreadCycle / StealthChop tuning / configuring help:
@argo we've switched entirely to spreadcycle and the issue remains.
M569 P0.0
Drive 0 runs in reverse, active low enable, timing fast, mode spreadCycle, ccr 0x00053, toff 3, tblank 0, hstart/hend/hdec 5/0/0, pos 264 -
Why cant this board be easily tuned and configured to run with .9* motors while other - cheaper alternatives and lessor developed FW can?
This really shouldn't be this difficult. Perhaps 2209 drivers werent the best selection for the Duet mini boards ?