I just finished testing it and it's working great; it uses a $0.50 optical endstop.
Check it out, I'd love to hear some feedback!
I just finished testing it and it's working great; it uses a $0.50 optical endstop.
Check it out, I'd love to hear some feedback!
@chrishamm Heyy amazing thank you for the update!
Installed 64bit on my Duet3 MB6HC + Rpi3b+ and everything running mighty fine right out the box this time -- no vnc/hdmi shenanigans like with the experimental build.
Hdmi touchscreen feels super snappy too, way more responsive than back on buster, outstanding work, now to push some plastic!
Just published the updated model using a $3 Schmitt trigger equipped arduino sensor;
Getting much more consistent reading
Check it out there
Awesome Stuart, thanks for carrying on Danal's work
Looks well documented too, I'll give it a shot over the weekend.
Very neat of you to handle issues outside of your own setup too
Do you think in it's current state this could realistically be implemented as a plugin in DWC for a possible GUI?
@o_lampe Excellent question; it worked about fine for me with pretty high tolerance (ended up running 25-200%) but would still get occasional spikes at 400% triggering false positives
Then @JohnOCFII made this awesome in-depth investigation using a logic analyzer and found out that the signal was indeed noisy and implementing a schmitt trigger solved the issue; https://forum.duet3d.com/topic/19284/inconsistent-results-with-optical-encoder-wheel-filament-sensor
So I found an IR sensor that has a shmitt trigger integrated and modified the housing for it
brilliant, that would give a great second life to my old ipad; the web interface gets clunky through safari
I'll give it a shot!
Hey man I just noticed I had this lines in my config.g here for my sensorless homing;
it seems like Stealthchop would not engage unless these are in place
; Stealthchop parameters
M915 P0 S3 F1 H134 T1 R0
M915 P1 S3 F1 H134 T1 R0
I do not not why, but my guess would be around T parameter that controls the coolstep register according to https://duet3d.dozuki.com/Wiki/Gcode#Section_M915_Configure_motor_stall_detection
Edit: Also the Hmin parameter; for which I made a calculator here:
https://docs.google.com/spreadsheets/d/1gCapl-1CZh7Zz267W_CFtLBbBV-UMDjpXMGDIyr5oE4/edit?usp=sharing
@dc42 thoughts?
@bearer Oh boi I sense we'll be needing incremental encoder support
Would be fairly simple to implement though; "just" adding a second sensor and 2nd row of slots from the hardware point...now to add it in the code..
I use a custom Flex3Drive with absolute shortest filament path so I haven't experimented with PA either
@jay_s_uk Well I'd be damned; didn't think of removing them but these were indeed tied to my TMC5160 tuning
Also somehow missed that I had M569 set to D3...
Set it back to D2, disabled M915 and it seems to be running like a champ now, thank you very much!
Let's push some plastic now
Hi @Phaedrux , yes mounting them was the first thing I did upon reception; when the problem occured I removed the belts to insulate the gantry binding possibility and kept testing this way to prevent crashing it due to the stalls
First 2 prints after updating; all goes well until the end where I find the head:
My slicer end script is just M0; see the last few lines of that example print:
;TYPE:WALL-INNER
G1 F2925 X153.975 Y152.548 E0.84064
G1 F1500 E-0.3
G0 F7200 X106.719 Y152.548
G0 X106.313 Y152.548
G1 F1500 E0.49956
G1 F2836.4 X104.964 Y152.548 E0.10883
;TIME_ELAPSED:1108.150049
G1 F1500 E-0.3
M82 ;absolute extrusion mode
M107
M0
M83 ;relative extrusion mode
M104 S0
;End of Gcode
My stop.g looks as follow:
; /sys/stop.g
; Clean up and shut down after a print
; M0 in slicer to invoke
M400 ; wait for moves to finish
M104 S0 ; turn off temperature
M140 S0 ; turn off heatbed
M107 ; turn off fan
G1 E-3 F300 ; retract 3 mm to reduce pressure in the nozzle
G91
G1 X2 Y2 ; Wipe nozzle
G90
; Drop Z, being careful near the max
if move.axes[2].machinePosition + 10 < move.axes[2].max
G1 Z{ move.axes[2].machinePosition + 10 }
else
G1 Z{ move.axes[2].max }
G0 X-30 Y100 F3000 ; move to purge bucket
Seems like the printer may freeze right at line 9 of my stop.g?
However and that's where I'm at a loss, the issue does not appear when aborting a print with pause/stop.
Any ideas on what could that be?
Here is a M122 (after restarting because unresponsive when the crash occurs)
M122
=== Diagnostics ===
RepRapFirmware for Duet 3 MB6HC version 3.6.0-beta.3 (2025-01-16 19:09:36) running on Duet 3 MB6HC v1.0 or earlier (SBC mode)
Board ID: 08DJM-956L2-G43S4-6JTDA-3SS6L-1B76H
Used output buffers: 1 of 40 (17 max)
=== RTOS ===
Static ram: 136892
Dynamic ram: 95960 of which 5464 recycled
Never used RAM 105740, free system stack 200 words
Tasks: SBC(2,ready,0.6%,747) HEAT(3,nWait 6,0.0%,369) Move(4,nWait 6,0.0%,333) TMC(4,nWait 6,2.8%,377) CanReceiv(6,nWait 1,0.0%,794) CanSender(5,nWait 7,0.0%,334) CanClock(7,delaying,0.0%,353) MAIN(2,running,94.5%,139) IDLE(0,ready,2.0%,29) USBD(3,blocked,0.0%,149), total 100.0%
Owned mutexes: HTTP(MAIN)
=== Platform ===
Last reset 00:03:32 ago, cause: power up
Last software reset at 2025-01-21 01:41, reason: User, Gcodes spinning, available RAM 105956, slot 2
Software reset code 0x2003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task SBC Freestk 0 n/a
Error status: 0x00
MCU temperature: min 35.9, current 37.6, max 38.7
Supply voltage: min 29.4, current 29.5, max 29.5, under voltage events: 0, over voltage events: 0, power good: yes
12V rail voltage: min 12.0, current 12.1, max 12.1, under voltage events: 0
Heap OK, handles allocated/used 99/14, heap memory allocated/used/recyclable 2048/792/592, gc cycles 0
Events: 0 queued, 0 completed
Date/time: 2025-02-02 00:51:54
Slowest loop: 193.96ms; fastest: 0.06ms
USB interrupts 2
=== Storage ===
Free file entries: 20
SD card 0 not detected, interface speed: 37.5MBytes/sec
SD card longest read time 0.0ms, write time 0.0ms, max retries 0
=== Move ===
Segments created 0, maxWait 0ms, bed comp in use: none, height map offset 0.000, hiccups added 0/0 (0.00/0.00ms), max steps late 0, ebfmin 0.00, ebfmax 0.00
Pos req/act/dcf: 0.00/0/0.00 0.00/0/0.00 0.00/0/0.00
next step interrupt due in 68 ticks, disabled
Driver 0: standstill, SG min n/a, mspos 2, reads 31387, writes 25 timeouts 0
Driver 1: standstill, SG min n/a, mspos 2, reads 31387, writes 25 timeouts 0
Driver 2: standstill, SG min n/a, mspos 8, reads 31388, writes 24 timeouts 0
Driver 3: standstill, SG min n/a, mspos 8, reads 31388, writes 24 timeouts 0
Driver 4: standstill, SG min n/a, mspos 8, reads 31389, writes 24 timeouts 0
Driver 5: standstill, SG min n/a, mspos 8, reads 31402, writes 11 timeouts 0
Phase step loop runtime (us): min=0, max=20, frequency (Hz): min=1889, max=2118
=== DDARing 0 ===
Scheduled moves 0, completed 0, LaErrors 0, Underruns [0, 0, 0]
Segments left 0, axes/extruders owned 0x80000003, drives owned 0x80000003
Code queue is empty
=== DDARing 1 ===
Scheduled moves 0, completed 0, LaErrors 0, Underruns [0, 0, 0]
Segments left 0, axes/extruders owned 0x00000000, drives owned 0x00000000
Code queue is empty
=== Heat ===
Bed heaters 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters -1 -1 -1 -1 -1 -1 -1 -1, ordering erHeater 1 is on, I-accum = 0.0
=== GCodes ===
Movement locks held by null, 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
File2 is idle in state(s) 0
Queue2 is idle in state(s) 0
=== CAN ===
Messages queued 1730, received 3816, lost 0, ignored 0, errs 607, boc 0
Longest wait 2ms for reply type 6031, peak Tx sync delay 31346, free buffers 50 (min 49), ts 1007/1006/0
Tx timeouts 0,0,0,0,0,0
=== SBC interface ===
Transfer state: 5, failed transfers: 0, checksum errors: 1
RX/TX seq numbers: 6457/6457
SPI underruns 0, overruns 0
State: 5, disconnects: 0, timeouts: 0 total, 0 by SBC, IAP RAM available 0x27c70
Buffer RX/TX: 0/0-0, open files: 0
=== Duet Control Server ===
Duet Control Server version 3.6.0-beta.3 (2025-01-17 10:25:30, 64-bit)
HTTP+Executed:
> Executing M122
Trigger+Post:
> Executing M409 K"network" I1 (31 more codes pending)
>> Macro config.g: Idle
Trigger:
>> Finishing macro config.g, started by system
Code buffer space: 4096
Configured SPI speed: 8000000Hz, TfrRdy pin glitches: 0
Full transfers per second: 25.28, max time between full transfers: 1660.9ms, max pin wait times: 328.1ms/7.1ms
Codes per second: 0.32
Maximum length of RX/TX data transfers: 4508/872
And my Config.g
;
; ___________ __ .__
; \_ _____/___________ _____/ |______ | |
; | __) \_ __ \__ \ _/ ___\ __\__ \ | |
; | \ | | \// __ \\ \___| | / __ \| |__
; \___ / |__| (____ /\___ >__| (____ /____/
; \/ \/ \/ \/
; ___________ .__ .__
; \_ _____/ ____ ____ |__| ____ ____ ___________|__| ____ ____
; | __)_ / \ / ___\| |/ \_/ __ \_/ __ \_ __ \ |/ \ / ___\
; | \ | \/ /_/ > | | \ ___/\ ___/| | \/ | | \/ /_/ >
; /_______ /___| /\___ /|__|___| /\___ >\___ >__| |__|___| /\___ /
; \/ \//_____/ \/ \/ \/ \//_____/
; General Setup - RailCore RRF on an SBC for Duet3
; General
G21 ; Work in millimetres
G90 ; Send absolute coordinates...
M83 ; ...but relative extruder moves
M564 S1 H1 ; No movement before homing, no out-of-range
G4 S2 ; wait for expansion boards to start
; Debugging
M111 S0 ; Debug (S0 is off; S1 is on)
M929 P"eventlog.txt" S1 ; start logging to file eventlog.txt
M915 X Y S10 F0 R0 ; log motor stalls
; Stepper Configuration and Trinamic Drive Tuning
M569 P0.0 S1 D3 V5 H5 ; X / Rear - LDO-57STH56-2804MACRC
M569 P0.1 S0 D3 V5 H5 ; Y / Front - LDO-57STH56-2804MACRC
M569 P0.2 S1 D3 V5 H5 ; Z / FL - LDO-42STH47-1684MAC
M569 P0.3 S1 D3 V5 H5 ; Z / RL - LDO-42STH47-1684MAC
M569 P0.4 S1 D3 V5 H5 ; Z / MR - LDO-42STH47-1684MAC
;M569 P5 S0 D2 V5 H5 ; E / Extruder - LDO-42STH25-1004AC
;M569 P5 S1 D2 V5 H5 ; E / Extruder - Biqu H2
;M569 P5 S0 D2 V5 H5 ; E / Extruder - Orbiter 2.0
M569 P124.0 S1 D2 ; E / Extruder - SmorbV3 Toolboard
; Axis configuration
M669 K1 ; Corexy mode
;M584 X0 Y1 Z2:3:4 E5 ; Map X to drive 0 Y to drive 1, Z to drives 2, 3, 4, and E to drive 5
M584 X0.0 Y0.1 Z0.2:0.3:0.4 E124.0 ; Map X to drive 0 Y to drive 1, Z to drives 2, 3, 4, and E to toolboard drive 0
M208 X270 Y290 Z325 ; Set axis maxima and high homing switch positions (adjust to suit your machine)
M208 X-35 Y0 Z0 S1 ; Set axis minima and low homing switch positions (adjust to make X=0 and Y=0 the edges of the bed)
; Stealthchop parameters
M915 P0:1 S3 F1 H153 ;T20000 R0
M915 P2:3:4 S3 F1 H1652 ;T1 R0
;M915 P5 S3 F1 H540 T1 R0
;M915 P124.0 S3 F1 H540 T1 R0
; Steps/mm (for the default 1/16 microstepping)
M92 X160 Y160 Z1600 ; Axis Steps/mm
;M92 E4206 ; FLEX3DRive
;M92 E932 ; Biqu H2
M92 E676 ; Orbiter 2.0
; Microstepping (independent of M92 above)
M350 X64 Y64 Z16 I1 ; Set 32x microstepping for axes with interpolation
;M350 E8 I0 ; Set 16x microstepping for Flex3Drive extruder interpolation OFF
;M350 E16 I1 ; Biqu H2
M350 E16 I1 ; Orbiter 2.0
; Motor current
M906 X{2800 * 0.65} Y{2800 * 0.65} Z{1680 * 0.65} I30 ; Set PEAK motor currents (mA) and motor idle factor
;M906 E420 I30 ; Flex3Drive
;M906 E800 I30 ; Biqu H2
;M906 E1000 I10 ; Orbiter 2.0 (rated 1 amp, recommended 1.2)
M906 E850 I10 ; Smorb3.0 (rated 1 amp, recommended 1.2)
M84 S30 ; Idle timeout 30s
; Speeds
M203 X15000 Y15000 Z600 E7200 ; Maximum speeds (mm/min) // XY15000(250mm/s), Z600(10mm/s)), E7200 (120mm/s)
; Accelerations and Jerk
M201 X2500 Y2500 Z100 ; Accelerations (mm/s^2)
;M201 E120 ; Flex3Drive
;M201 E5000 ; Biqu H2
;M201 E3000 ; Orbiter 2.0
M201 E3000 ; Smorb 8000mm/s recommended
M566 X800 Y800 Z100 ; Maximum jerk speeds (mm/min)
;M566 E6 ; Flex3Drive
;M566 E300 ; Biqu H2
;M566 E300 ; Orbiter 2.0
M566 E300 ; Smorb
; Leadscrew locations
M671 X-10:-10:333 Y22.5:277.5:150 S7.5
; End Stops
M574 X1 S1 P"io0.in" ; Map the X endstop to io1.in
;M574 Y1 S1 P"io3.in" ; Map the Y endstop to io2.in
M574 Y1 S1 P"124.io2.in" ; Map the Y endstop to toolboard io1.in
; BLTouch
;M558 P9 C"io7.in" H5 R1 F120 T6000 A5 S0.02 B1 ; Define the bltouch input on io7.in
;M950 S0 C"io7.out" ; Define the bltouch servo on io7.out
;G31 X0 Y25 Z2.00 P25 ; Set the offsets for the bltouch Flex3Drive
;G31 X-25 Y0 Z1.814 P25 ; Set the offsets for the bltouch Biqu H2
;G31 K0 P25 X0.0 Y20.0 Z2.924 ; Set the offsets for the bltouch Orbiter 2.0
; Euclid Probe
M574 Z1 S2 ; configure Z-probe endstop for low end on Z
M558 K0 P8 C"124.io0.in" H8 F300 T9000 A3 S0.01 ; Define Euclid input
G31 K0 P500 X25.0 Y0.0 Z1.486 ; Set offset for Smorb V3 Euclid
; Thermistors
M308 S0 P"temp0" Y"thermistor" A"Keenovo" T100000 B4240 H0 L0 ; Bed thermistor - connected to temp0
;M308 S1 P"temp1" Y"thermistor" A"Mosquito" T4606017 B5848 C5.548428e-8 H0 L0 ; Dyze 500c thermistor - connected to e0_heat
;M308 S1 P"temp1" Y"thermistor" A"BiquH2" T100000 B3950 C0 H0 L0 ; Biqu H2 Chinesium HT-NTC100K thermistor - connected to e0_heat
;M308 S1 P"124.temp0" Y"thermistor" A"Smorb" T100000 B4138 C0 H0 L0 ; Smorb ATC Semitec 104NT-4-R025H42G
M308 S1 P"124.temp0" Y"thermistor" A"Smorb" T100000 B4681 C6.483003e-8 H0 L0 ; Smorb ATC Semitec 104NT-4-R025H42G
; M308 S3 P"124.io1.in" Y"thermistor" A"Extruder Temp" T100000 B4092 ; Smorb extruder temp (not supported)
; Define Heaters
M950 H0 C"out0" T0 ; Bed heater is on out0
;M950 H1 C"out1" T1 Q10 ; Hotend heater is on out1
M950 H1 C"124.out0" T1 Q250 ; Hotend heater is on toolboard out0
; Heater model parameters
M307 H0 A158.5 C366.7 D2.1 S1.0 V24.0 B0 ; Keenovo duet 3 configuration
;M307 H1 R3.573 C131.3:99.7 D5.74 S1.00 V29.4 ; Mosquito 205deg 29.4V
;M307 H1 R3.368 K0.543:0.000 D7.05 E1.35 S1.00 B0 V29.3 ; Mosquito new model 215c 29.3V
;M307 H1 R4.724 C172.5:109.0 D7.70 S1.00 V29.4 ; Biqu H2 205deg 29.4V
M307 H1 R4.017 K0.408:0.270 D6.28 E1.35 S1.00 B0 V29.4 ; Smorb temp 215c 29.3V
; Heater Fault Parameters
M570 H1 P10 T15 S180 ; Hotend allows 10sec for anomaly, permits 15deg excursion, abandons print after 180s
M143 H1 P1 S350 A0 ; raise a heater fault if it exceeds 350C
; Define Bed
M140 H0
M557 X30:295 Y5:285 P15:15 ; Sets mesh leveling probing area /!\ Accounts for probe offset
; Fans
;M950 F0 C"out5" Q250 ; Hotend fan on "out5" connector
;M106 P0 C"Hotend Fan" H1 X0.8 T75 B0.3 ; Enable thermostatic mode for hotend fan - 0.8 to compensate for 29.4V
;M950 F1 C"out4" Q250 ; Layer fan on "out4" connector
;M106 P1 C"Layer Fan" X0.8 S0 ; Layer Fan
M950 F0 C"124.out1" Q500 ; Hotend fan on "out5" connector
M106 P0 C"Hotend Fan" H1 T75 X0.8 ; Enable thermostatic mode for hotend fan - 0.8 to compensate for 29.4V
M950 F1 C"124.out2" Q500 ; Layer fan on "out4" connector
M106 P1 C"Layer Fan" H-1 S0 X0.8 ; Layer Fan
; Tool definitions
M563 P0 S"Smorb v3" D0 H1 F1 ; Define tool 0
G10 P0 S0 R0 ; Set tool 0 operating and standby temperatures
; Duet3 Cooling
M308 S2 Y"drivers" A"DRIVERS" ; Configure sensor 2 as temperature warning and overheat flags on the TMC2660 on Duet
M308 S3 Y"mcu-temp" A"MCU" ; Configure sensor 3 as thermistor on pin e1temp for left stepper
M950 F2 C"out6" Q250 ; Create fan 2 on pin fan2 and set its frequency
;M106 P2 C"ElectroBox" H1 S0.8 T75 ; Set fan 2 value
M106 P2 C"ElectroBox" H1 X0.7 T-30:50 ; Set fan 2 value
M308 S4 P"124.temp1" Y"thermistor" A"Chamber Temp" T100000 B4092 ; Toolboard temp
; LED
M950 F3 C"out8" Q1000
M106 P3 C"Enclosure Light" X0.6 S0
M950 C"124.rgbled" E0 T1
M950 F5 C"124.io0.out" Q1000
M106 P5 C"Hotend Light" X0.6 S0
; Filament Sensor
;M591 D0 P7 C"io6.in" S0 E51 L2.1 R85:115 ; Fractal Encoder filament sensor
; Mesh Bed Compensation
;G29 S1 ; Load height map from SD card - Disabled in config.g, moved after startup routing probing
M376 H3 ; Set taper height 3mm
; External Triggers
M950 J1 C"io1.in" ; Green Button on io1
M950 J2 C"io4.in" ; Red Button on io4
M950 J3 C"io2.in" ; Black Button on io2
M950 J4 C"io5.in" ; Blue Button on io5
M581 T2 P1 S1 R2 ; Green button trigger 2 only when not printing (Load filament)
M581 T3 P1 S1 R1 ; Green button trigger 3 only when printing (Raise Z)
M581 T4 P2 S1 R2 ; Red button trigger 4 only when not printing (Unload filament)
M581 T5 P2 S1 R1 ; Red button trigger 5 only when printing (Stop)
M581 T6 P3 S1 R2 ; Black button trigger 6 only when not printing (Resume)
M581 T7 P3 S1 R1 ; Black button trigger 7 only when printing (Lower Z)
M581 T8 P4 S1 R2 ; Blue button trigger 8 only when not printing (LED strip on/off)
M581 T9 P4 S1 R1 ; Blue button trigger 9 only when printing (LED strip on/off)
; Accelerometer
;M955 P0 I21 C"spi.cs3+spi.cs2" ; LIS3DH removable on Orbiter 2
M955 P124.0 I20 ; Onboard toolboard
;M593 P"mzv" F42
; Dynamic Acceleration Adjustment (DAA)
;M593 F52
; Logging
M929 P"eventlog.txt" S1 ; start logging to file eventlog.txt
T0 ; Select first hot end
; Global Variables
global hotend_timer_started = false
global hotend_timer = 0
@chrishamm Heyy amazing thank you for the update!
Installed 64bit on my Duet3 MB6HC + Rpi3b+ and everything running mighty fine right out the box this time -- no vnc/hdmi shenanigans like with the experimental build.
Hdmi touchscreen feels super snappy too, way more responsive than back on buster, outstanding work, now to push some plastic!
@chrishamm Ok great that definitely did something;
Now I can connect on both RealVNC and TigerVNC... But all I get is a grey screen in both cases
Such is the case on both duetpi and the official pi release, both updated to latest (I have them both on separate SD cards now to cross test)
HDMI display still shows on official release (still no touchscreen) and black on Duetpi
The search continues
@chrishamm interesting; just flashed latest vanila raspios bookworm and the screen works out of the box (but not the touchscreen?)
Meanwhile I'm unable to access VNC, neither through Tiger or RealVNC with both wayland and X11, even while confirmed running hmm
bump couldn't figure it out still
@chrishamm Ok I just installed it on a fresh card; A couple issues:
My HDMI display shows a black, unresponsive screen after bootup despite showing the Duet bg and boot sequence just fine. Display manager service checked and active
Likewise, VNC is not connecting despite the service being turned on
I have full access through SSH though, through which I performed a git init, remote add and fetch origin in /sd to get my backup from my github backup; all is well, however...
It appears the file permissions are all bonked out; config refuses to load with this message: Error in start-up file config.g line 29: Access to the path '/opt/dsf/sd/sys/eventlog.txt' is denied.
>>> This is a know issue I previously sorted out by doing sudo chmod 777 -R /opt/dsf/sd
but there has to be a better way right
Any tips on fixing these quirks? Thanks!
@chrishamm woohoo great news, will finally be able to make use of my arducam
Can the current image be fully upgraded to release when it comes out or will that require reflashing the release image?
@gloomyandy This was my first time updating from the Duet; RC1 was a fresh flash from USB, but yep I'm on Duet3 MB6HC + SBC
Just a heads up, the fw file names appear to be case sensitive, but the https://github.com/gloomyandy/RepRapFirmware/releases repo produces wrong case (Duet3Firmware_FLY36RRF where M997 expects Fly)
This is also erroneous on the docs: https://teamgloomy.github.io/fly_rrf_36_general.html
I've figured simply correcting the case on both .bin and .uf2 made the flash successful
Perhaps have GitHub produce case correct filename and reflect it in the docs for further reference?
Apart from that still happy with the board, thank you!
@jay_s_uk Well I'd be damned; didn't think of removing them but these were indeed tied to my TMC5160 tuning
Also somehow missed that I had M569 set to D3...
Set it back to D2, disabled M915 and it seems to be running like a champ now, thank you very much!
Let's push some plastic now