Wierd issues with RRF3 with SBC

  • I have recently upgraded to RRF 3.2beta3.2 from RRF3.1.1 and have noticed some strange behaviour.
    Firstly in the last line of my config.g is a link to a macro that asks me if I want to perform true bed levelling. On most occasions on start up the macro is run but on rare occasions it is skipped!. I had this issue also when running RRF3.1.1 before the upgrade but i just lived with it.

    Secondly, I have finally discovered why on rare occasions it seems like my Z height has changed and I need to babystep to get a good first layer - I have DC42's ir probe and a mat black printbite bed surface. By accident I found that the ir probe gives different results depending on the amount of ambient light or even the position of the printer relative to the room lighting.
    This brings me to the third issue - before printing, a macro "prepare_print.g" is run which amongst other things turns on the led lighting. So, because of my discovery of lighting issues I commented that line out to print with no lighting but then found that sometimes the comment is ignored and my led lighting is switched on!!

    Here;s my config and associated files:

    ; ###General preferences###
    M555 P0 ; Set Reprap-style output
    G21 ; Set dimensions to millimetres
    G90 ; send absolute coordinates...
    M83 ; ...but relative extruder moves

    M550 P"V-Core Pro" ; set printer name
    M669 K1 ; select CoreXY mode

    ; ###Drives###
    M569 P0.0 S1 ; X physical drive 0.0 goes forwards
    M569 P0.1 S1 ; Y physical drive 0.1 goes forwards
    M569 P0.2 S0 ; Z0 physical drive 0.2 goes backwards
    M569 P0.3 S0 ; Z1 physical drive 0.3 goes backwards
    M569 P0.4 S0 ; Z2 physical drive 0.4 goes backwards
    M569 P0.5 S0 ; E0 physical drive 0.5 goes backwards

    ; ###Set drive mapping###
    ; For tripple Z make sure drive 2 is left hand Z and 3 is right hand, 4 at back
    M584 X0.0 Y0.1 Z0.2:0.3:0.4 E0.5 ; Drive mapping for single extruder
    M92 X80.00 Y80.00 Z400.00 E466 ; set steps per mm for volcano 0.4
    M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation

    ; ###Accelerations, speed and jerk###
    M98 P"print_settings/default_speed.g"

    M906 X1000 Y1000 Z1000 E1000 I30 ; set motor currents (mA) and motor idle factor in per cent
    ; V-Core steppers are 1.68 amp so 80% = 1.32amp
    M84 S30 ; Set idle timeout

    ; ###Leadscrew positions###

    M671 X-35:535:245 Y116:116:560 S6.0 ; The measurement is taken from X=0, Y=0. Therefore X will be negative, Y positive

    ; ###Mesh Grid###
    ; The following M557 commands are not needed if you are using a bed.g file to perform bed compensation
    ;*** Adjust the XY coordinates in the following M557 commands to suit your build and the position of the Z probe
    M557 X20:480 Y20:480 S100 ; Define small mesh grid - 25 points
    ;M557 X10:480 Y20:480 S50 ; Define large mesh grid - 50 points

    ; ###Axis Limits###
    M208 X495 Y485 Z500 ; set axis maxima
    M208 X-6 Y0 Z0 S1 ; Set axis minima (adjust to make X=0 and Y=0 the edges of the bed)

    ; ###Endstops###
    M574 X1 S1 P"!io0.in" ; configure active-low endstop for low end on X via pin io0.in with internal pull-up
    M574 Y1 S1 P"!io1.in" ; configure active-low endstop for low end on Y via pin io1.in with internal pull-up

    ; ###Z-Probe###
    M558 P8 C"io2.in" H5 A2 F120 T6000 ; Z probe is type 8 in RRF3
    ; G31: the P is the reported Z value when triggered. X,Y are offset coordinates. Z is trigger height, you can decrease value if nozzle is too close
    ; or increase if too far away.
    G31 P500 X0 Y-25 Z2.07 ; set Z probe trigger value, offset and trigger height 2.0

    ; ###Bed thermistor/heater###
    M308 S0 P"temp0" Y"thermistor" T100000 B4138 ; bed thermistor
    M950 H0 C"out0" Q100 T0 ; bed heater H = heater no. C = output Q = PWM frequencyT = temperature sensor no. defined above.
    M143 H0 S120 ; set temperature limit for bed heater 0 to 120C
    M140 H0 ; map heated bed to heater 0
    M143 H0 P0 S105 A2 ; switch off bed heater temporarily if it exceeds 105°C
    M143 H0 P1 S110 A0 ; raise a heater fault if it exceeds 110C

    ; ###Extruder thermister/heater###
    M308 S1 P"temp1" Y"thermistor" T100000 B4138 C7.06e-8 ; extruder thermistor
    M950 H1 C"out1" T1 ; ext heater H = heater no. C = output T = temperature sensor no. defined above.
    M143 H1 S280 ; set temperature limit for extruder heater 1 to 250C
    M143 H1 P0 S290 A2 ; switch off extruder heater temporarily if it exceeds 250°C
    M143 H1 P1 S285 A0 ; raise a heater fault if it exceeds 255C

    ;###CPU Temperature Calibration###
    M912 P0 S1

    ; ###Fans###
    M950 F0 C"out7" Q100 ; create fan 0 on pin out7 and set its frequency (parts fan)
    M106 P0 S0 H-1 C"Part Cooling" ; set fan 0 value. Thermostatic control is turned off
    M950 F1 C"out8" Q100 ; create fan 1 on pin out8 and set its frequency (ext fan)
    M106 P1 S0 H1 T45:65 C"Extruder" ; set fan 1 value. Turns on at 45 degrees and full speed at 65 or over
    M950 F4 C"out5" Q100 ; create fan 2 on pin out5 (bed cooling)
    M106 P4 S0 H-1 C"Bed Cooling" ; set fan 2 value. Thermostatic control is off

    ;###Hardware temperature control###
    ;CPU fan
    M950 F2 C"out9" ; create fan 2 (CPU fan)
    M308 S3 Y"mcutemp" A"MCU" ; set up a virtual sensor for cpu fan
    M106 P2 T35 H3 ; set fan 2 value. Fan comes on when cpu temp is above 35 degrees (Cool the pi as well!)
    M308 S4 P"drivers" Y"drivers" A"TMC" ; Create sensor for drivers

    ;###Led Lighting###
    M950 F3 C"out4" Q500 ; create a fan 3 output to use for led lighting control on pin out4
    M106 P3 S0 ; set output default to off

    ; ###Extruder setup###
    M563 P0 S"Extruder0" D0 H1 F0 ; define tool 0
    G10 P0 X0 Y0 ; set tool 0 axis offsets
    G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C

    ;### FW Retract ###
    M207 S0.5 F3000 Z0 ; max recommended retraction for V6 is 2mm (plus take in account lenght of bowden tube)

    ; ###Custom settings###
    ;M593 F50 ; anti-Ringing
    ;M572 D0 S0.800 ; Pressure advance = 0.8
    ;M42 P2 S255 ; Turn led lighting on full
    T0 ; select first tool
    M501 ; read parameters in config.overide
    M98 P"/macros/Bed Levelling/5.Multi_Levelling.g" ; perform bed levelling if ok'd on startup and then activate the mesh grid


    ; Called by slicer start.g

    G90 ; use absolute coordinates
    M83 ; use relative distances for extrusion
    M572 D0 S0.0 ; clear pressure advance if set
    M106 P3 S255 ; switch lighting on
    M220 S100 ; Set speed factor back to 100% in case it was changed
    M221 S100 ; Set extrusion factor back to 100% in case it was changed
    M290 R0 S0 ; Clear babystepping
    M106 S0 ; Turn part cooling blower off if it is on
    ; pre-heat extruder
    G10 P0 R0 S120 ; Set extruder to 80 and release
    ;G10 P1 R0 S80
    ;G10 P2 R0 S80
    ;G10 P3 R0 S80

    M291 P"Checking for homed axis!" S0 T2 ; Display on DWC
    ; If the printer hasn't been homed, home it
    if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed
    ;M106 P3 S1 ; turn led lighting on

    M98 P"current_filament.g" ; get filament settings

  • Moderator

    You could try adding a G4 delay before your macro is run to let whatever is happening during first startup to finish.

  • Ok sounds logical, will add it thanks.

Log in to reply