Carbide3D Nomad Pro 883 configuration
-
Hi all,
I recently grilled the control board of a Nomad Pro 883 from Carbide3D we have at work and as they don't produce replacement parts often (apparently) I decided to go with a Duet 3 Mini 5+. It was also the occasion to make the router smarter and access its progress over wifi, add a LEDs strip and dream about future improvements ! Anyway the thing is now all patched up so it's a good time to share my config.
A few tips if you are trying to do the same:
- Be careful the phases are flipped on carbidemotion boards compared to the duets.
- The card might overheat (at least it does cutting through aluminium) so you will need a nice radiator block inside the electronic case or use a fan (what I did).
- The duet doesn't directly output what's needed for the three phases brushless motor of the Nomad. I used Carbide's McGuillicutty (the stock controller). To make it fit inside the electronic box I had to pierce and thread a new hole.
- The new Nomad 3 doesn't use the same motor/motor controller do you your own research to know what's needed in that case.
Config file
; Configuration file for Duet 3 Mini 5+ (firmware version 3.3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.3.16 on Tue Oct 10 2023 09:38:06 GMT+0200 (heure d’été d’Europe centrale) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"NomadPro" ; set printer name ; Network M551 P"---------" ; set password M552 S1 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P0.0 S0 ; physical drive 0.0 goes forwards M569 P0.1 S1 ; physical drive 0.1 goes forwards M569 P0.2 S1 ; physical drive 0.2 goes forwards M584 X0.0 Y0.1 Z0.2 ; set drive mapping M350 X8 Y8 Z8 I1 ; configure microstepping with interpolation M92 X200.00 Y200.00 Z200.00 ; set steps per mm M566 X900.00 Y900.00 Z900.00 ; set maximum instantaneous speed changes (mm/min) M203 X5000.00 Y3000.00 Z1000 I1 ; set maximum speeds (mm/min) M201 X500.00 Y500.00 Z200 ; set accelerations (mm/s^2) M906 X2000 Y2000 Z2000 I80 ; set motor currents XYZ(mA) I(percent) M84 S0 ; disable motor idle current reduction M669 S5 ; segmentation of movements to permit faster pauses and screening ; Axis Limits M208 X0 Y0 Z0 S1 ; set axis minima M208 X240 Y225 Z98 S0 ; set axis maxima ; Endstops M574 X2 S1 P"!^io0.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin ^io0.in M574 Y2 S1 P"!^io1.in" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin ^io1.in M574 Z2 S1 P"!^io2.in" ; configure switch-type (e.g. microswitch) endstop for high end on Z via pin ^io2.in ; Triggers M950 J1 C"io5.in" ; binds io5.in to trigger #1 M581 P1 T0 S1 R0 ; triggers emergency stop on front button switch ; Z-Probe M558 P5 C"!^io3.in" H5 F90 T6000 ; set Z probe type to switch and the dive height + speeds, first probe at 300mm/s, then 90mm/s G31 P500 X0 Y0 Z0 ; set Z probe trigger value, offset and trigger height ; Heaters M140 H-1 ; disable heated bed (overrides default heater mapping) ; Fans M950 F1 C"out4" Q500 ; create fan 1 on pin out4 and set its frequency M106 P1 S1 H-1 ; set fan 1 value. Thermostatic control is turned off (note used btw) M950 F0 C"out3" Q500 ; create fan 0 on pin out3 and set its frequency M308 S10 Y"mcu-temp" A"MCU" ; electronics temperature sensor on 10 M106 P0 H10 T50 ; sensors 10 (and 11) control fan 0 a PWM starts from 40C at 0 to 70C at 100 ; Spindle M950 R0 C"vfd" L10000 ; maximum rpm = 10000 M563 P0 S"Spindle" R0 ; define tool0 M563 P1 S"Spindle" R0 ; define tool1 M563 P2 S"Spindle" R0 ; define tool2 M563 P3 S"Spindle" R0 ; define tool3 M563 P4 S"Spindle" R0 ; define tool4 M563 P5 S"Spindle" R0 ; define tool5 M563 P6 S"Spindle" R0 ; define tool6 M563 P7 S"Spindle" R0 ; define tool7 M563 P8 S"Spindle" R0 ; define tool8 M563 P9 S"Spindle" R0 ; define tool9 M563 P10 S"Spindle" R0 ; define tool10 G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C M453 ; enable CNC mode ; LED M950 P0 C"out5" ; LED strip on OutPut 5
Tool probing macro
;probeTool.g ; if state.currentTool == -1 ; if no tool is selected, select the 0th T0 P0 if !move.axes[2].homed ; home what needs to be homed G28 Z if !move.axes[0].homed G28 X if !move.axes[1].homed ; even Y has to be homed if using G30 G28 Y M5 ; stops spindle just in case G53 G0 Z{move.axes[2].max} ; get high to avoid collision G53 G0 X237.5 ; get above the bit setter ;G53 G0 Z35 ; dive to get close M558 F1100 ; change probe speed G30 S-2 ; probe fast G0 Z3 ; rise up 3mm M558 F60 ; change probe speed G30 S-2 ; probe slow G53 G0 Z{move.axes[2].max} ; get back up
Might need to move up more than 5mm depending on luck and descent speed...
Changing tool
This started to work as I was writing this entry so it hasn't be intensely tested. Stay by the CNC for your first time !
; tfree.g if !move.axes[2].homed G28 Z else G53 G1 Z{move.axes[2].max} ; lift tool high M5 ; spindle off, should be automatic and already done but you never know
; tpre.g if !move.axes[2].homed ; home what needs to be homed G28 Z if !move.axes[0].homed G28 X G53 G0 Z{move.axes[2].max} ; lift the tool G53 G0 X{move.axes[0].max/2} ; parking position to easily change the tool M291 P"Please change the tool and then press ok" R"Tool change" S3 ; message to wait for user action M98 P"0:/macros/probeTool.g"
; tpost0.g G53 G0 Z{move.axes[2].max} ;Sets tool to highest to avoid collisons G0 R2 X0 Y0 ;Return to working XY coordinates M3 ;Turn spindle on G0 R2 Z1 ;Descend tool to working height +1mm G1 R2 Z0 F30
EDIT: Added ten M563 commands to create new tools, tool changing had a bizarre behaviour before that (duh). Mind you only T0-10 are available in this setup.
-
@Bibouda thanks for sharing this.
-
-
-