Problems with PWM Output and Configurator
-
Hello
I use the duet3d 6XD.
If i want to configure it there is only the option for io4.out io5.out and io7.out.
But these are not the pwm outputs that are descripted in the documentation. I tried to write in the config file "out4" insteat also didnt worked.And even if i set my max spindle speed to 19200rpm in the config it doesnt want to go over 10k rpm in the interface. I dont have a voltage tester that is capable for pwm so i wanted to go 100percent to meassure it normally
-
@tomtendo Only io4 and io7 have PWM on the 6XD, see https://docs.duet3d.com/Duet3D_hardware/Duet_3_family/Duet_3_Mainboard_6XD_Hardware_Overview#inputoutput-port-capabilities
Please post your config.g, and the response to M122.
Ian
-
M122 === Diagnostics === RepRapFirmware for Duet 3 MB6XD version 3.5.3 (2024-09-18 11:27:56) running on Duet 3 MB6XD v1.0 (standalone mode) Board ID: 08DLM-956DA-M24S4-7JKD4-3SJ6N-KBJQU Used output buffers: 1 of 40 (18 max) Error in macro line 58 while starting up: exactly one of EFHJPSR must be given === RTOS === Static ram: 153760 Dynamic ram: 118264 of which 184 recycled Never used RAM 70928, free system stack 210 words Tasks: NETWORK(1,ready,33.9%,182) ETHERNET(5,nWait 7,0.1%,322) HEAT(3,nWait 6,0.0%,360) Move(4,nWait 6,0.0%,335) CanReceiv(6,nWait 1,0.0%,939) CanSender(5,nWait 7,0.0%,334) CanClock(7,delaying,0.0%,336) MAIN(1,running,65.9%,128) IDLE(0,ready,0.1%,29), total 100.0% Owned mutexes: === Platform === Last reset 00:03:34 ago, cause: power up Last software reset at 2024-11-08 16:52, reason: User, Gcodes spinning, available RAM 70856, slot 0 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task MAIN Freestk 0 n/a Error status: 0x00 MCU temperature: min 8.7, current 23.6, max 23.6 Supply voltage: min 23.8, current 23.9, max 23.9, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 12.0, current 12.1, max 12.2, under voltage events: 0 Heap OK, handles allocated/used 99/2, heap memory allocated/used/recyclable 2048/48/0, gc cycles 0 Events: 0 queued, 0 completed Driver 0: ok Driver 1: ok Driver 2: ok Driver 3: ok Driver 4: ok Driver 5: ok Date/time: 2024-11-08 17:46:09 Slowest loop: 6.82ms; fastest: 0.06ms === Storage === Free file entries: 20 SD card 0 detected, interface speed: 25.0MBytes/sec SD card longest read time 3.2ms, write time 0.0ms, max retries 0 === Move === DMs created 125, segments created 0, maxWait 0ms, bed compensation in use: none, height map offset 0.000, max steps late 0, min interval 0, bad calcs 0, ebfmin 0.00, ebfmax 0.00 no step interrupt scheduled Moves shaped first try 0, on retry 0, too short 0, wrong shape 0, maybepossible 0 === DDARing 0 === Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === DDARing 1 === Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0 === GCodes === Movement locks held by null, null HTTP is idle 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 Q0 segments left 0, axes/extruders owned 0x0000000 Code queue 0 is empty Q1 segments left 0, axes/extruders owned 0x0000000 Code queue 1 is empty === CAN === Messages queued 1073, received 0, lost 0, errs 1009044, boc 0 Longest wait 0ms for reply type 0, peak Tx sync delay 0, free buffers 50 (min 50), ts 1073/0/0 Tx timeouts 0,0,1072,0,0,0 last cancelled message type 30 dest 127 === Network === Slowest loop: 6.24ms; fastest: 0.03ms Responder states: MQTT(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0) HTTP sessions: 1 of 8 = Ethernet = Interface state: active Error counts: 0 0 0 1 0 0 Socket states: 5 2 2 2 2 2 0 0 === Multicast handler === Responder is inactive, messages received 0, responses 0
code_text
; Configuration file for RepRapFirmware on Duet 3 Main Board 6XD ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.5.5 on Fri Nov 08 2024 16:48:28 GMT+0100 (Mitteleuropäische Normalzeit) ; General G90 ; absolute coordinates M83 ; relative extruder moves M550 P"Duet 3" ; set hostname ; Network M552 P192.168.2.1 S1 ; configure Ethernet adapter M553 P255.255.255.0 ; set netmask M554 P192.168.2.1 ; set gateway M586 P1 S1 ; configure FTP M586 P0 S1 ; configure HTTP ; Motor Idle Current Reduction M906 I30 ; set motor current idle factor M84 S30 ; set motor current idle timeout ; External Drivers M569 P0.0 S1 R0 T5:5:10:0 ; driver 0.0 goes forwards and requires an active-low enable signal (X axis) M569 P0.1 S0 R0 T5:5:10:0 ; driver 0.1 goes backwards and requires an active-low enable signal (X axis) M569 P0.2 S1 R0 T5:5:10:0 ; driver 0.2 goes forwards and requires an active-low enable signal (Y axis) M569 P0.3 S1 R0 T5:5:10:0 ; driver 0.3 goes forwards and requires an active-low enable signal (Y axis) M569 P0.4 S1 R0 T5:5:10:0 ; driver 0.4 goes forwards and requires an active-low enable signal (Z axis) ; Axes M584 X0.0:0.1 Y0.2:0.3 Z0.4 ; set axis mapping M350 X16 Y16 Z16 I0 ; configure microstepping without interpolation M92 X35.56 Y35.56 Z800 ; configure steps per mm M208 X0:900 Y0:560 Z0:140 ; set minimum and maximum axis limits M566 X900 Y900 Z12 ; set maximum instantaneous speed changes (mm/min) M203 X3000 Y3000 Z180 ; set maximum speeds (mm/min) M201 X250 Y250 Z20 ; set accelerations (mm/s^2) ; Kinematics M669 K0 ; configure Cartesian kinematics ; Endstops M574 X1 P"!io0.in" S1 ; configure X axis endstop M574 Y1 P"!io1.in" S1 ; configure Y axis endstop M574 Z2 P"!io2.in" S1 ; configure Z axis endstop ; Heaters M950 H0 C"out0" T0 ; create heater #0 M143 H0 P0 T0 C0 S140 A0 ; configure heater monitor #0 for heater #0 M307 H0 R2.43 D5.5 E1.35 K0.56 B1 ; configure model of heater #0 M950 H1 C"out1" T1 ; create heater #1 M143 H1 P0 T1 C0 S285 A0 ; configure heater monitor #0 for heater #1 M307 H1 R2.43 D5.5 E1.35 K0.56 B0 ; configure model of heater #1 ; Heated beds M140 P0 H0 ; configure heated bed #0 ; Spindles M950 C"io4.out" Q500 L60:19200 ; configure spindle #0 ; Tools M563 P0 D0 H1 R0 ; create tool #0 M568 P0 R0 S0 ; set initial tool #0 active and standby temperatures to 0C ; Miscellaneous M453 ; select CNC mode T0 ; select first tool
-
@tomtendo what VFD are you using, or what is io4 driving? Output is 3.3V, so is that signal high enough voltage? Usually a PWM to 10V converter is needed for VFD control, see https://docs.duet3d.com/en/User_manual/Machine_configuration/Configuration_CNC#connecting-a-spindle
Ian
-
@droftarts I have the green one as descripted. I checked it again. The jumper is at 5volts. It has 24v input, And i go from io4.out and oi4 ground pin to the pwm inputs.
I meassured 0v at the other side on the converter. I hope this helps -
@droftarts if the output is only 3.3v a converter would also not work right? maybee this is the problem?
-
@tomtendo said in Problems with PWM Output and Configurator:
; Spindles
M950 C"io4.out" Q500 L60:19200 ; configure spindle #0Rather than using io4.out, which has a 3.3V signal level, use the LASER/VFD/SERVO output, which is a 5V PWM signal. It's what it says to do in the instructions I linked above
Here are some ways to connect them to a Duet: ... To the VFD/LASER output of a Duet 3 or 3 Mini. Connect the PWMIN+ to the OUT pin of the Duet VFD/LASER connector, and PWMIN- to the GND pin of the Duet. Set the jumper to 5V.
Change the M950 command to:
M950 C"vfd" Q500 L60:19200 ; configure spindle #0
It's top right on the wiring diagram:
Ian
-
This is how i wired it also didnt worked.
M950 C"vfd" Q2000 L0:19200 ; configure spindle #0
-
@tomtendo If you set the spindle to 100% (disconnect the wires so it doesn't start the spindle), you should get +5V between the VFD pin and GND on the Duet, and 0V when the spindle is turned off. Do you? If not, have you reset the Duet since you changed that line in config.g, so it can take effect?
Ian
-
@droftarts i dont really know why but i cant get the spindle over 10k rpm
I did M3 P0 S3000 and then tried to put 19200rmp in the dashboard but it only go to 10k rpm. Are there other limit factors then the config file?
And thx for all the help
-
@tomtendo Oh, hang on, your M950 needs an R parameter, so it knows it's a spindle. See the 'Spindle' tab here https://docs.duet3d.com/en/User_manual/Reference/Gcodes#configuration-examples-and-notes
Try:
M950 R0 C"vfd" Q2000 L0:19200 ; configure spindle #0
Then send:
M3 P0 S19200
Ian
-