Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    RepRapFirmware 3.0RC1 released

    Scheduled Pinned Locked Moved
    Beta Firmware
    19
    77
    5.6k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • 3dmntbighkerundefined
      3dmntbighker
      last edited by

      Next question...

      After I set M669 K1 and run the CoreXY tests the motors run as expected. But running a simple "G91", "G1 H2 X10" results in both axis moving in plus direction. And "G1 H2 Y10" moves X+ and Y-.

      Scratch built CoreXY with Maestro
      Heavily modified Ender 3 with Maestro
      MPCNC work in progress with Duet WiFi

      gtj0undefined dc42undefined 2 Replies Last reply Reply Quote 0
      • gtj0undefined
        gtj0 @3dmntbighker
        last edited by

        @3dmntbighker said in RepRapFirmware 3.0RC1 released:

        Next question...

        After I set M669 K1 and run the CoreXY tests the motors run as expected. But running a simple "G91", "G1 H2 X10" results in both axis moving in plus direction. And "G1 H2 Y10" moves X+ and Y-.

        Do you mean "both axis moving" or "both motors moving"?

        1 Reply Last reply Reply Quote 0
        • dc42undefined
          dc42 administrators @3dmntbighker
          last edited by

          @3dmntbighker said in RepRapFirmware 3.0RC1 released:

          Next question...

          After I set M669 K1 and run the CoreXY tests the motors run as expected. But running a simple "G91", "G1 H2 X10" results in both axis moving in plus direction. And "G1 H2 Y10" moves X+ and Y-.

          It's always been that way on CoreXY machines, because G1 H2 moves are individual motor moves.

          Duet WiFi hardware designer and firmware engineer
          Please do not ask me for Duet support via PM or email, use the forum
          http://www.escher3d.com, https://miscsolutions.wordpress.com

          3dmntbighkerundefined 1 Reply Last reply Reply Quote 0
          • 3dmntbighkerundefined
            3dmntbighker @dc42
            last edited by 3dmntbighker

            @dc42 said in RepRapFirmware 3.0RC1 released:

            @3dmntbighker said in RepRapFirmware 3.0RC1 released:

            Next question...

            After I set M669 K1 and run the CoreXY tests the motors run as expected. But running a simple "G91", "G1 H2 X10" results in both axis moving in plus direction. And "G1 H2 Y10" moves X+ and Y-.

            It's always been that way on CoreXY machines, because G1 H2 moves are individual motor moves.

            Well my homex no longer functions after changing S commands to H commands.

            M400 ; make sure everything has stopped before we make changes
            M913 X70 Y70 ; reduce motor current to 60% to prevent belt slipping
            G91 ; relative positioning
            G1 Z5 H2 F2000 ; drop bed relative to current position ; happens
            G4 P250 ; wait 250msec
            G1 X-300 H1 F3000 ; move quickly to X end stop and stop there (first pass) ; never happens
            G4 P250 ; wait 250msec
            G1 X30 F1000 ; Move Away 5mm X axis ; never happens
            G1 X-35 H1 F2000 ; doesn't happen
            M913 X100 Y100 ; motor current back to normal
            G1 Z-5 H2 F200 ; drop bed relative to current position ; doesn't happen
            G90 ; absolute positioning
            G1 X20 F1000
            M300 S600 P100

            If I run Home X a second time nothing happens and I get a spinner.

            Scratch built CoreXY with Maestro
            Heavily modified Ender 3 with Maestro
            MPCNC work in progress with Duet WiFi

            deckingmanundefined 1 Reply Last reply Reply Quote 0
            • deckingmanundefined
              deckingman @3dmntbighker
              last edited by deckingman

              @3dmntbighker That's odd. Homing works for me on my CoreXY using H1. Mine is a bit complicated because it's actually a CoreXYUVAB but the pure X moves are essentially the same as yours. The major difference I see in your file is the use of G4 which I don't bother with. Try taking those out. If that fixes it, you may have found a bug.

              Edit, There is one other difference in my homing files. I don't use H2 in the Z move - I have M564 H0 in my config.g to allow moves prior to homing. So if taking out the G4 commands doesn't fix it, try using M564 H0 instead of the H2 Z move and report back (in case you've unearthed a bug).

              Ian
              https://somei3deas.wordpress.com/
              https://www.youtube.com/@deckingman

              3dmntbighkerundefined 1 Reply Last reply Reply Quote 0
              • 3dmntbighkerundefined
                3dmntbighker @deckingman
                last edited by

                @deckingman said in RepRapFirmware 3.0RC1 released:

                @3dmntbighker That's odd. Homing works for me on my CoreXY using H1. Mine is a bit complicated because it's actually a CoreXYUVAB but the pure X moves are essentially the same as yours. The major difference I see in your file is the use of G4 which I don't bother with. Try taking those out. If that fixes it, you may have found a bug.

                Edit, There is one other difference in my homing files. I don't use H2 in the Z move - I have M564 H0 in my config.g to allow moves prior to homing. So if taking out the G4 commands doesn't fix it, try using M564 H0 instead of the H2 Z move and report back (in case you've unearthed a bug).

                Now X doesn't move at all after the Z move...

                M400 ; make sure everything has stopped before we make changes
                M913 X70 Y70 ; reduce motor current to 60% to prevent belt slipping
                G91 ; relative positioning
                G1 Z5 F2000 ; drop bed relative to current position
                G1 X-300 H1 F3000 ; move quickly to X end stop and stop there (first pass)
                G1 X30 F1000 ; Move Away 5mm X axis
                G1 X-35 H1 F2000
                M913 X100 Y100 ; motor current back to normal
                G1 Z-5 F200 ; drop bed relative to current position
                G90 ; absolute positioning
                G1 X20 F1000
                M300 S600 P100

                config.g

                M111 S0 ; Debug off

                ; Network
                M550 P"5Rails" ; Set machine name
                M552 P192.168.1.100 S1 ; Enable network set IP
                M553 P255.255.255.0 ; Netmask
                M554 P192.168.1.1 ; Gateway
                M586 P0 S1 ; Enable HTTP
                M586 P1 S0 ; Disable FTP
                M586 P2 S0 ; Disable Telnet

                M555 P2 ; Set output to look like Marlin

                ; *** Machine configuration
                M569 P0 S1 ; Drive 0 goes forwards (change to S0 to reverse it)
                M569 P1 S1 ; Drive 1 goes forwards
                M569 P2 S0 ; Drive 2 goes backwards
                M569 P3 S1 ; Drive 3 goes forwards
                M569 P4 S1 ; Drive 4 goes forwards

                ; Endstops
                M574 X1 S0 P"xstop" ; X min active low endstop switch
                M574 Y1 S0 P"ystop" ; Y min active low endstop switch
                M574 Z1 S0 P"zstop" ; Z min active low endstop switch
                M591 D0 P2 C"e0_stop" S1 ; E0 filament sensor active high

                M669 K1 ; set CoreXY mode
                M564 H0 ; Allow moves prior to homing
                M92 X100 Y100 Z1000 ; Set axis steps/mm
                M92 E415 ; Set extruder steps/mm
                M350 X16 Y16 Z16 E16 I1 ; Configure microstepping with interpolation
                M906 X1000 Y1000 Z800 E800 I50 ; Set motor currents (mA)
                M201 X1000 Y1000 Z100 E900 ; Accelerations (mm/s^2)
                M203 X40000 Y30000 Z800 E1800 ; Maximum speeds (mm/sec)
                M566 X800 Y800 Z50 E800 ; Maximum jerk speeds mm/sec

                M208 X300 Y275 Z330 ; set axis maxima (adjust to suit your machine)
                M208 X0 Y0 Z0 S1 ; set axis minima (adjust to make X=0 and Y=0 the edges of the bed)
                G21 ; Work in millimetres
                G90 ; Send absolute coordinates...
                M83 ; ...but relative extruder moves

                ; Z probe type
                M558 P8 I1 R2 A5 F400 T3000 H5 ; Peizo Z probe, also used for homing the Z axis

                G31 Z0.2 P600 ; Set the probe height and threshold (put your own values here)
                M557 X25:275 Y15:265 S50 ;
                M375 ; Load heightmap.csv
                M376 H10 ; Taper off bed compensation up to 10mm

                M308 S0 P"bed_temp" Y"thermistor" R2200 T100000 B3950 ; Put your own H and/or L values here to set the bed thermistor ADC correction
                M308 S1 Y"rtd-max31865" R400 P"spi.cs1" F60 ; Activate PT100 hotend temp sensor
                M950 H0 C"bed_heat" T0 ; heater 0 uses the bed_heat pin, sensor 0
                M950 H1 C"e0_heat" T1 ; heater 1 uses the e0_heat pin and sensor 1
                M501 ; Load config_override.g for 40W Auto tune
                ; M301 H2 P10 I0.10 D100 T0.50 S1.0 ; PID settings for extruder 1

                ; Tool definition
                M563 P0 D0 H1 ; Define tool 0
                G10 P0 S0 R0 ; Set tool 0 operating and standby temperatures

                ; *** If you are using axis compensation, put the figures in the following command
                M556 S78 X0 Y0 Z0 ; Axis compensation here

                T0 ; select first hot end

                Scratch built CoreXY with Maestro
                Heavily modified Ender 3 with Maestro
                MPCNC work in progress with Duet WiFi

                droftartsundefined 1 Reply Last reply Reply Quote 0
                • droftartsundefined
                  droftarts administrators @3dmntbighker
                  last edited by

                  @3dmntbighker Sounds like a similar issue to https://forum.duet3d.com/topic/13409/large-core-homing-issue

                  Ian

                  Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

                  1 Reply Last reply Reply Quote 0
                  • 3dmntbighkerundefined
                    3dmntbighker
                    last edited by

                    It doesn't matter if I set X end stop active high or active low. The axis won't home (move) unless I hold the switch on, and stops when I release.

                    Scratch built CoreXY with Maestro
                    Heavily modified Ender 3 with Maestro
                    MPCNC work in progress with Duet WiFi

                    deckingmanundefined 1 Reply Last reply Reply Quote 0
                    • deckingmanundefined
                      deckingman @3dmntbighker
                      last edited by

                      @3dmntbighker said in RepRapFirmware 3.0RC1 released:

                      It doesn't matter if I set X end stop active high or active low. The axis won't home (move) unless I hold the switch on, and stops when I release.

                      To clarify that, are you saying that you can change between S0 and S1 but the axis won't move unless you press the switch? What does M119 give you with and without the switch depressed?

                      Ian
                      https://somei3deas.wordpress.com/
                      https://www.youtube.com/@deckingman

                      3dmntbighkerundefined 1 Reply Last reply Reply Quote 0
                      • 3dmntbighkerundefined
                        3dmntbighker @deckingman
                        last edited by 3dmntbighker

                        @deckingman said in RepRapFirmware 3.0RC1 released:

                        @3dmntbighker said in RepRapFirmware 3.0RC1 released:

                        It doesn't matter if I set X end stop active high or active low. The axis won't home (move) unless I hold the switch on, and stops when I release.

                        To clarify that, are you saying that you can change between S0 and S1 but the axis won't move unless you press the switch? What does M119 give you with and without the switch depressed?

                        Correct

                        M119
                        Endstops - X: at min stop, Y: at min stop, Z: at min stop, Z probe: at min stop

                        Pressed:

                        M119
                        Endstops - X: not stopped, Y: at min stop, Z: at min stop, Z probe: at min stop

                        Also, after I attempt to home X nothing will move. None of the axis respond to the move buttons in the interface. Changing M574 from S0 to S1 gives the same result.

                        Scratch built CoreXY with Maestro
                        Heavily modified Ender 3 with Maestro
                        MPCNC work in progress with Duet WiFi

                        deckingmanundefined 1 Reply Last reply Reply Quote 0
                        • deckingmanundefined
                          deckingman @3dmntbighker
                          last edited by

                          @3dmntbighker So all the end stops are inverted. In which case changing from S0 to S1 should fix it. Unless you have unearthed a bug..........

                          Try using "!" to invert the end stops instead of the "S" parameter. i.e. M574 X1 S0 P"xstop" should give you one condition and M574 X1 S0 P"!xstop" should invert it. You want M119 to say "not stopped" normally and "at min stop" when the switch is pressed.

                          Ian
                          https://somei3deas.wordpress.com/
                          https://www.youtube.com/@deckingman

                          1 Reply Last reply Reply Quote 0
                          • deckingmanundefined
                            deckingman
                            last edited by

                            Another thought.......you haven't got any M574 commands in your config-overide file which might be overriding config.g have you?

                            Ian
                            https://somei3deas.wordpress.com/
                            https://www.youtube.com/@deckingman

                            3dmntbighkerundefined 1 Reply Last reply Reply Quote 0
                            • gtj0undefined
                              gtj0
                              last edited by gtj0

                              @3dmntbighker Assuming you get the endstops configured, here are my working corexy homing files if they'll help. Notice I don't use H2 at all.

                              ; homex.g
                              G91
                              G1 Z2 F200
                              G1 H1 X-500 F6000
                              G1 X4 F600
                              G1 H1 X-10
                              G1 Z-2 F200
                              
                              ; homey.g
                              G91
                              G1 Z2 F200
                              G1 H1 Y-500 F6000
                              G1 Y4 F600
                              G1 H1 Y-10
                              G1 Z-2 F200
                              
                              ; homexy.g
                              G91
                              G1 Z2 F200
                              G1 H1 X-500 Y-500 F6000
                              G1 H1 X-500 F6000
                              G1 H1 Y-500 F6000
                              G1 X4 Y4 F600
                              G1 H1 X-10
                              G1 H1 Y-10
                              G1 Z-2 F200
                              

                              homexy.g gets called from homeall.g

                              Oops, forgot to mention... If Z isn't already homed, you'll need to add H2 to the Z moves.

                              1 Reply Last reply Reply Quote 0
                              • 3dmntbighkerundefined
                                3dmntbighker @deckingman
                                last edited by

                                @deckingman said in RepRapFirmware 3.0RC1 released:

                                Another thought.......you haven't got any M574 commands in your config-overide file which might be overriding config.g have you?

                                No

                                Scratch built CoreXY with Maestro
                                Heavily modified Ender 3 with Maestro
                                MPCNC work in progress with Duet WiFi

                                1 Reply Last reply Reply Quote 0
                                • 3dmntbighkerundefined
                                  3dmntbighker
                                  last edited by

                                  So, my config.g is shown above. But if I "select all" in the editor and paste into a standard text editor I get the following (ignore the extra stuff I had clipped out):

                                  0:/sys/config.g
                                  ; *** CoreXY sample config file for dc42 Duet firmware
                                  
                                  M111 S0				; Debug off
                                  
                                  ; Network
                                  M550 P"5Rails"                     ; Set machine name
                                  M552 P192.168.1.100 S1             ; Enable network set IP
                                  M553 P255.255.255.0                ; Netmask
                                  M554 P192.168.1.1                  ; Gateway
                                  M586 P0 S1                         ; Enable HTTP
                                  M586 P1 S0                         ; Disable FTP
                                  M586 P2 S0                         ; Disable Telnet
                                  
                                  M555 P2				; Set output to look like Marlin
                                  ; M575 P1 B57600 S1		; Comms parameters for PanelDue
                                  
                                  ; *** Machine configuration
                                  M569 P0 S1				; Drive 0 goes forwards (change to S0 to reverse it)
                                  M569 P1 S1				; Drive 1 goes forwards
                                  M569 P2 S0				; Drive 2 goes backwards
                                  M569 P3 S1				; Drive 3 goes forwards
                                  M569 P4 S1				; Drive 4 goes forwards
                                  ; *** If you use an endstop switch for Z homing, change Z0 to Z1 in the following line, and see also M558 command later in this file
                                  
                                  ; Endstops
                                  M574 X1 S0 P"xstop"   ; X min active low endstop switch
                                  M574 Y1 S0 P"ystop"   ; Y min active low endstop switch
                                  M574 Z1 S0 P"zstop"   ; Z min active low endstop switch
                                  M591 D0 P2 C"e0_stop" S1	; E0 filament sensor active high 
                                  ; M915 X Y S5 R0 F0 	; set X and Y to sensitivity 5, do nothing when stall, unfiltered... NOT on Maestro :-(
                                  
                                  M669 K1					; set CoreXY mode
                                  M564 H0					; Allow moves prior to homing
                                  M92 X100 Y100 Z1000			; Set axis steps/mm
                                  M92 E415				; Set extruder steps/mm
                                  ; M203 X15000 Y15000 Z1500 E3600	; Maximum speeds (mm/sec)
                                  ; M566 X600 Y600 Z50 E900		; Maximum jerk speeds mm/sec
                                  M350 X16 Y16 Z16 E16 I1			; Configure microstepping with interpolation
                                  M906 X1000 Y1000 Z800 E800 I50	        ; Set motor currents (mA)
                                  M201 X1000 Y1000 Z100 E900		; Accelerations (mm/s^2)
                                  ; M203 X40000 Y30000 Z800 E1800		; Maximum speeds (mm/sec)
                                  M203 X4000 Y3000 Z800 E1800		; Maximum speeds (mm/sec)
                                  M566 X800 Y800 Z50 E800			; Maximum jerk speeds mm/sec
                                  
                                  M208 X300 Y275 Z330			; set axis maxima (adjust to suit your machine)
                                  M208 X0 Y0 Z0 S1			; set axis minima (adjust to make X=0 and Y=0 the edges of the bed)
                                  G21					; Work in millimetres
                                  G90					; Send absolute coordinates...
                                  M83					; ...but relative extruder moves
                                  
                                  ; Z probe type
                                  M558 P8 I1 R2 A5 F400 T3000 H5              ; Peizo Z probe, also used for homing the Z axis
                                  
                                  G31 Z0.2 P600                      ; Set the probe height and threshold (put your own values here)
                                  ; 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 X25:275 Y15:265 S50                      ;
                                  M375                                        ; Load heightmap.csv
                                  M376 H10                                    ; Taper off bed compensation up to 10mm
                                  
                                  ; Thermistors and heaters
                                  ; *** If you have a Duet board with 1K thermistor series resistors, change R4700 to R1000 to the following M305 commands
                                  ; You can also use S and B parameters to define the parameters of the thermistors you are using
                                  M308 S0 P"bed_temp" Y"thermistor" R2200 T100000 B3950	; Put your own H and/or L values here to set the bed thermistor ADC correction
                                  M308 S1 Y"rtd-max31865" R400 P"spi.cs1" F60			; Activate PT100 hotend temp sensor
                                  M950 H0 C"bed_heat" T0 ; heater 0 uses the bed_heat pin, sensor 0
                                  M950 H1 C"e0_heat" T1 ; heater 1 uses the e0_heat pin and sensor 1
                                  ; M305 P1 R4700 H0 L0			; Put your own H and/or L values here to set the first nozzle thermistor ADC correction
                                  ; M305 P2 R4700 H0 L0			; Put your own H and/or L values here to set the second nozzle thermistor ADC correction
                                  ; M301 H1 P10 I0.10 D100 T0.50 S1.0	; PID settings for extruder 0
                                  ; M307 H0 A90.0 C700.0 D10.0 S1.00 V0.0 B1 ; Old bed heater PID settings
                                  ; M307 H1 A497.3 C234.6 D3.7 B0		; ***Auto tune derived 30W preferred extruder 0 PID settings ***
                                  ; M308 P101 X1001 S"DuetDriversTemp"	; Virtual heater to display stepper driver over temp flags
                                  M501                                    ; Load config_override.g for 40W Auto tune
                                  ; M301 H2 P10 I0.10 D100 T0.50 S1.0	; PID settings for extruder 1
                                  
                                  ; Tool definition
                                  M563 P0 D0 H1				; Define tool 0
                                  G10 P0 S0 R0			; Set tool 0 operating and standby temperatures
                                  ; *** If you have a dual-nozzle build, un-comment the following 3 lines
                                  ; M563 P1 D1 H2				; Define tool 1
                                  ; G10 P1 S0 R0				; Set tool 1 operating and standby temperatures
                                  
                                  ; *** If you are using axis compensation, put the figures in the following command
                                  M556 S78 X0 Y0 Z0			; Axis compensation here
                                  
                                  ; M98 PStartup.g                  ; Play tune
                                  
                                  T0				; select first hot end
                                  5Rails
                                  Send code...
                                  Status
                                  Idle
                                  Mode: FFF
                                  Tool Position
                                  X
                                  20.0
                                  Y
                                  0.0
                                  Z
                                  0.01
                                  Extruder Drives
                                  Drive 0
                                  0.0
                                  Speeds
                                  Requested Speed
                                  0 mm/s
                                  Top Speed
                                  0 mm/s
                                  Sensors
                                  Vin
                                  24.2 V
                                  MCU Temperature
                                  40.5 C
                                   Tools
                                   Extra
                                   Control All
                                  Tool	Heater	Current	Active	Standby
                                  Tool 0
                                  T0 - PLA	Heater 1
                                  active	23.2 C	
                                  0
                                  0
                                  Bed	Heater 0
                                  off	22.5 C	
                                  0
                                  0
                                  Temperature Chart
                                  System Directory
                                  

                                  Is the extra stuff at the end normal?

                                  Scratch built CoreXY with Maestro
                                  Heavily modified Ender 3 with Maestro
                                  MPCNC work in progress with Duet WiFi

                                  1 Reply Last reply Reply Quote 0
                                  • gtj0undefined
                                    gtj0
                                    last edited by

                                    @3dmntbighker said in RepRapFirmware 3.0RC1 released:

                                    I think the stuff after the T0 is just from copying from the DWC web page.

                                    In any case, try putting the "M669 K1" at the top of the file. I don't think it'll make a difference but it may.

                                    3dmntbighkerundefined 1 Reply Last reply Reply Quote 0
                                    • dc42undefined
                                      dc42 administrators
                                      last edited by

                                      This is covered In the upgrade notes. S0 is no longer supported in M574. Use S1 and invert the pin using ! at the start of the pin name.

                                      Duet WiFi hardware designer and firmware engineer
                                      Please do not ask me for Duet support via PM or email, use the forum
                                      http://www.escher3d.com, https://miscsolutions.wordpress.com

                                      3dmntbighkerundefined 1 Reply Last reply Reply Quote 0
                                      • 3dmntbighkerundefined
                                        3dmntbighker @gtj0
                                        last edited by

                                        @gtj0 said in RepRapFirmware 3.0RC1 released:

                                        @3dmntbighker said in RepRapFirmware 3.0RC1 released:

                                        I think the stuff after the T0 is just from copying from the DWC web page.

                                        In any case, try putting the "M669 K1" at the top of the file. I don't think it'll make a difference but it may.

                                        Yeah, looking at the file directly on the SD card it looks normal. I can enter M669 K1 in the console and no difference. It really seems to be an issue with M574? There seems to be no way to change the end stop from active high to active low. Changing M574 it always acts the same.

                                        Scratch built CoreXY with Maestro
                                        Heavily modified Ender 3 with Maestro
                                        MPCNC work in progress with Duet WiFi

                                        1 Reply Last reply Reply Quote 0
                                        • 3dmntbighkerundefined
                                          3dmntbighker @dc42
                                          last edited by

                                          @dc42 said in RepRapFirmware 3.0RC1 released:

                                          This is covered In the upgrade notes. S0 is no longer supported in M574. Use S1 and invert the pin using ! at the start of the pin name.

                                          It's not noted in the M574 section of the RepRap changes document. Nor on the main G-code page. Which does have many notations about RRF3.

                                          Thanks, I'm operational now. I had some issues with the Piezo sensor but I resolved those.

                                          Scratch built CoreXY with Maestro
                                          Heavily modified Ender 3 with Maestro
                                          MPCNC work in progress with Duet WiFi

                                          deckingmanundefined 1 Reply Last reply Reply Quote 1
                                          • deckingmanundefined
                                            deckingman @3dmntbighker
                                            last edited by

                                            @3dmntbighker TBH, I didn't know that S0 had been withdrawn either. I was going by this thread https://forum.duet3d.com/topic/13136/m574-usage-on-rrf-3 where David said his intention was not to withdraw S0.

                                            Ian
                                            https://somei3deas.wordpress.com/
                                            https://www.youtube.com/@deckingman

                                            3dmntbighkerundefined 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Unless otherwise noted, all forum content is licensed under CC-BY-SA