Firmware 2.03beta2 available



  • 18 gauge is only around 0.8mm² the wiki says around 2.5mm² is recommended which is around 13-14 gauge

    Dont know if it's a pattern yet but I've read about a few issues with the duex and all those people seem to be running solid core cable.



  • Thanks, will bump up to 14 gauge. I'm using stranded wires crimped in ferrules. I'm guessing, the insufficiently thick ground would the source of my issues. I'm not sure solid core can be crimped, or tightened adequately.



  • Yes completely agree



  • @dc42 I installed a 14 gauge ground wire -- while at it also did the VIN wire. Both are 1/2 the length they were before, couldn't get shorter than this now. I left the 16 gauge(it was 16 not 18 before) going to the PSU, it's coupled in a ferrule together with a very short 14 gauge jumper to duex5. The printer itself with everything on never pulls more than 200w, since my I'm using an AC bed, 16 gauge wire has not been an issue for 24v DC power.

    Now the main question is, how do I test the i2c bus for reliability. Under normal conditions it takes a long time for me to start seeing timeouts, is there a test routine, something that would send a bunch of data on i2c which you would expect to produce some errors if the wiring was at issue (I don't mind running some custom firmware to bang on the i2c bus).

    Thanks again.



  • Will do later today.


  • administrators

    @kazolar said in Firmware 2.03beta2 available:

    @dc42 I installed a 14 gauge ground wire -- while at it also did the VIN wire. Both are 1/2 the length they were before, couldn't get shorter than this now. I left the 16 gauge(it was 16 not 18 before) going to the PSU, it's coupled in a ferrule together with a very short 14 gauge jumper to duex5. The printer itself with everything on never pulls more than 200w, since my I'm using an AC bed, 16 gauge wire has not been an issue for 24v DC power.

    Now the main question is, how do I test the i2c bus for reliability. Under normal conditions it takes a long time for me to start seeing timeouts, is there a test routine, something that would send a bunch of data on i2c which you would expect to produce some errors if the wiring was at issue (I don't mind running some custom firmware to bang on the i2c bus).

    Thanks again.

    You could try sending repeated commands to change the speed of the DueX fans. Each one will require an I2C transaction.

    Here's another possibility: pick one of the DueX servo outputs that corresponds to an unused heater channel, connect the servo control pin of that output to the cathode of a small signal diode, and connect the anode of that diode to one of the DueX endstop inputs. Then use M307 to disable that heater, and M42 to set up 50% PWM on that servo output at a low frequency. Every time the endstop input toggles, the DueX will signal a change to the Duet, and the Duet will do an I2C transaction to find out what changed.



  • Is there a certain resistance that shouldn't be exceeded on the ground connection between the boards? I've got really thick wires running from both boards to the power supply and I measured the resistance to be somewhere around 0.4 Ohms. Since I get the errors extremely rarely, I added an additional, short but significantly thinner wire between the boards, which appeared to halve the resistance. Would this be good enough?


  • administrators

    @edgars-batna, you should be looking for 0.1 ohms or less. Bear in mind that your multimeter may read greater than zero ohms when you short the leads together, in which case subtract that value from the reading you get between the two terminal blocks. My multimeter reads 0.2 ohms between the ground side screws of the two VIN terminal blocks, and also 0.2 ohms if I short the leads together.

    Inductance matters too, which is why the wire must be kept short. The reason is that the stepper motors draw large pulsing currents when they are energised, and this will cause there to be ground noise between the Duet and DueX unless that wire has low resistance and inductance.



  • @dc42 Thanks, it's exactly as you described, so I suppose the value should be good enough now.



  • @dc42 I ran some gcode shifting fan speed for tool 3 (fan on the duex5) repeatedly a few hundred times and no i2c errors or timeouts. Wonder if that means it's solved. I'll try the servo trick. Would adding the resistors hurt any?


  • administrators

    Adding the resistors won't hurt. We're going to reduce the values of the ones on the DuetX in the next manufacturing batch.



  • Just posting here to confirm that 2.03 beta is working fine on my CoreXY with sensorless homing.

    here is my last print (printed in ABS):

    0_1552824161524_behelit.jpg

    it's a sleeping Crimson Behelit. (Berserk fans will know what this is 🙂 )



  • So after updating to 2.03 b2, my COREXY is now mirrored? before it homed with 0,0 towards the left front of the printer, but now it is the right front?

    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool on Tue Jul 31 2018 15:05:50 GMT+0200 (Centraleuropæisk sommertid)
    
    ; General preferences
    G90                                                                    ; Send absolute coordinates...
    M83                                                                    ; ...but relative extruder moves
    M555 P1                                                                ; Set firmware compatibility to look like RepRapFirmare
    
    M667 S1 X-1.0                                                               ; Select CoreXY mode
    
    ; Network
    M550 PD-bot EVO                                                         ; Set machine name
    M551 Psmorum2765                                                       ; Set password
    M552 S1                                                                ; Enable network
    M587 S"Egsdal" P"smorum2765" I192.168.1.31 J192.168.0.1 K255.255.255.0 ; Configure access point and IP addresses. You can delete this line once connected
    M586 P0 S1                                                             ; Enable HTTP
    M586 P1 S0                                                             ; Disable FTP
    M586 P2 S0                                                             ; Disable Telnet
    
    ; Drives
    M569 P0 S1                                                             ; Drive 0 goes forwards
    M569 P1 S0                                                             ; Drive 1 goes backwards
    M569 P2 S1                                                             ; Drive 2 goes forwards
    M569 P3 S1                                                             ; Drive 3 goes forwards
    M569 P4 S1 C65972                                                           ; Drive 4 goes forwards
    M569 P5 S0                                                             ; Drive 5 goes forwards
    M569 P6 S1                                                             ; Drive 6 goes forwards
    M569 P7 S1                                                             ; Drive 7 goes forwards
    M569 P8 S1                                                             ; Drive 8 goes forwards
    M569 P9 S1 C65972
                                                                ; Drive 9 goes forwards
    
    M584 X4 Y9 Z2:1:0 E6:5                                                     ; Apply custom drive mapping
    M350 X16 Y16 Z16 E16:16 I1 S2                                            ; Configure microstepping with interpolation
    M92 X200 Y200 Z800 E2700:2700                                          ; Set steps per mm
    M566 X1500 Y1500 Z18 E40:1200                                          ; Set maximum instantaneous speed changes (mm/min) jerk
    M203 X8400 Y8400 Z800 E2400:2400                                       ; Set maximum speeds (mm/min)
    M201 X500 Y300 Z250 E150:1000                                           ; Set accelerations (mm/s^2)
    M906 X1000 Y1000 Z1000 E1100:1100 I40                                  ; Set motor currents (mA) and motor idle factor in per cent
    M84 S10                                                               ; Set idle timeout
    
    ; Axis Limits
    M208 X0 Y0 Z0 S1                                                       ; Set axis minima
    M208 X320 Y290 Z500 S0                                                 ; Set axis maxima
    
    
    
    
    ; Define the X and Y coordinates of the leadscrews.
    ; Must come after M584 (Set drive mapping), M667 (Select CoreXY Mode) and M669 (Choosing Kinematics type)
    ; Motor order: Front left (1), front right (2), rear right (3).
    ; Snn Maximum correction in mm to apply to each leadscrew (optional, default 1.0)
    M671 X-50:367.0:367.0 Y177:33:315 S20 P2 F1.25
    
    ; Endstops
    M574 X1 Y1 S3                                                          ; Set endstops controlled by motor load detection
    
    ; Z-Probe
    M307 H5 A-1 C-1 D-1                                                    ;dissable heater 5 for PWM use
    M574 Z1 S2                                                             ; Set endstops controlled by probe
    M558 P9 H5 F500 T5000                                                 ; Set Z probe type to BL touch and the dive height + speeds
    G31 P25 X0 Y88 Z1.81                                                     ; Set Z probe trigger value, offset and trigger height
    M557 X50:280 Y70:260 S40                                               ; Define mesh grid
    
    ; Heaters
    M305 P0  T100000 B4725 C7.06e-8 R4700 H0                                 ; Set thermistor + ADC parameters for heater 0
    M307 H0 B1 A397.7 C1129.5 D15.1	V24.3						; set bed to bit bang 
    M143 H0 S130                                                            ; Set temperature limit for heater 0 to 80C
    M305 P4  T100000 B4725 C7.060000e-8 R4700 X5                               ; Set thermistor + ADC parameters for heater 1
    M143 H4 S360                                                           ; Set temperature limit for heater 1 to 360C
    M305 P7  T100000 B4725 C7.06e-8 R4700  X3                              ; Set thermistor + ADC parameters for heater 2
    M143 H7 S360                                                           ; Set temperature limit for heater 2 to 360C
    
    ; Fans
    M106 P5 S0 B0.0 H4:7 T50 L255 C"Water-pump"
    M106 P6 S0 B0.0 L255 H4:7 T50 C"Radiator fan"
    M106 P4 S0 B0.0 C"Part fan";
    
    ;LEDS
    M106 P7 S0 F100 B0.0 C"LED light"
    
    
    ; Tools
    M563 P0 D1 H4 F4                                                          ; Define tool 0
    G10 P0 X-10 Y0 Z0                                                        ; Set tool 0 axis offsets
    G10 P0 R0 S0   
                                                            ; Set initial tool 0 active and standby temperatures to 0C
    M563 P1 D0 H7 F4                                                          ; Define tool 1
    G10 P1 X10 Y0 Z0                                                       ; Set tool 1 axis offsets
    G10 P1 R0 S0                                                           ; Set initial tool 1 active and standby temperatures to 0C
    
    
    
    
    ; Automatic saving after power loss is not enabled
    
    ; Custom settings are not configured
    
    ; Miscellaneous
    M501                                                                   ; Load saved parameters from non-volatile memory
    

    and home all:

    M400; make sure everything has stopped before we make changes
    M280 P5 S160 ;
    M574 X1 Y1 S3		;		
    M913 X30 Y30 		; XY motors to 30% current	
    M915 X Y H400 S3 R0 F0	; set X and Y to sensitivity , do nothing when stall, unfiltered
    
    
    ; X axis home		
    G91			; use relative positioning
    G1 Z10 F6000 S2    ; lift Z relative to current position
    G1 S1 X-405 F6000 ; move quickly to X axis endstop and stop there (first pass)
    G1 X5 F6000       ; go back a few mm
    G1 S1 X-405 F4000  ; move slowly to X axis endstop once more (second pass)
    
    ; Y axis home
    G1 S1 Y-305 F6000 ; move quickly to Y axis endstop and stop there (first pass)
    G1 Y5 F6000       ; go back a few mm
    G1 S1 Y-305 F4000  ; move slowly to Y axis endstop once more (second pass)
    G90               ; absolute positioning
    M913 X100 Y100; motor currents back to 100%
    
    ; Z-axis
    
    M561                     ; Clear any bed transform
    G1 X160 Y130 F6000
    G30
    G32                      ; Start 3-point probe sequence - Bed.g
    ;M375 P"bareplate.csv"    ; Load heightmap
    ;G1 Z20.0 F6000           ; Move Z to 20
    ;G1 X5 Y5    		 ; Move Head to front left
    M402;
    

    and bed.g

    M561 ; clear any bed transform
    ;G28 Z;
    M561; Clear bed height map 
    ; Probe the bed at 3 points
    
    G30 P0 X20 Y95 Z-9999;
    G30 P1 X20 Y270 Z-9999;
    G30 P2 X260 Y270 Z-9999;
    G30 P3 X260 Y95 Z-9999;
    G30 P4 X145 Y135 Z-9999 S3;
    G1 X20 Y20
    

    Also ruins my auto leveling/3 screw setup
    0_1553355697428_Unavngivet.png



  • @martin1454
    In your config.g remove M667 S1 and replace it with M669 K1. That will sort it!



  • @chas2706 said in Firmware 2.03beta2 available:

    @martin1454
    In your config.g remove M667 S1 and replace it with M669 K1. That will sort it!

    Still mirrored 😕



  • @chas2706 : from which firmware did you upgrade may I ask?
    If coming from an older firmware (pre 1.19), the Y motors will need reverse direction. (you can do that in firmware)



  • @whosrdaddy said in Firmware 2.03beta2 available:

    @chas2706 : from which firmware did you upgrade may I ask?
    If coming from an older firmware (pre 1.19), the Y motors will need reverse direction. (you can do that in firmware)

    If it is me you are reffering to - 2.0 or what it was called late december

    EDIT: found out how the new 669 worked - had 2 put X-1.0:-1.0



  • @martin1454 : Yeah wrong person 🙂
    Glad you worked it out.
    Weird, I also have a CoreXY but I did not have to change anything...


  • administrators

    From the upgrade notes for 2.03beta1:

    If you have a CoreXY or other Core architecture printer, and you were using any axis factor parameters in your M667 command in config.g, those parameters are no longer supported. You will need to use M669 matrix parameters instead.

    @Martin1454 was using a X-1 parameter in his M667 command. Swapping the X and Y motors over and adjusting the directions in M569 would have worked too.



  • Hi. So far, I've been with firmware 2.02 RC3 in my Kossel.

    When I calibrated the bed with G32 with calibration factor 8, after two passes, I had some 0.05mm measurements, the difference between each measured point, and the first layer was very good

    I have updated to the latest version, 2.03 beta 2, and when doing the G32 calibration several times, I get disparate measurements between the measured points of up to 0.2mm. Now the first layers are uneven in different parts of the bed.

    Have I missed something? Has anything changed in this latest firmware?

    Thanks and best regards


Locked
 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.