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

    Z-drives not moving, new Duet3

    Scheduled Pinned Locked Moved Solved
    General Discussion
    4
    48
    2.1k
    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.
    • droftartsundefined
      droftarts administrators @Heide
      last edited by

      @heide Hmm. I think that as that works, it's got to be a configuration issue. Can you post your current config.g, homez.g and homeall.g, preferably in code tags </> on the editing bar. Also post response to M122 and M98 P"config.g"

      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

      Heideundefined 1 Reply Last reply Reply Quote 0
      • Heideundefined
        Heide @droftarts
        last edited by Heide

        @droftarts Here is it. I hope that I have done it correctly with the </>, have never used it, but I will gladly learn it.

        ; Configuration file for Duet 3 (firmware version 3.3)
        ; executed by the firmware on start-up
        ;
        ; generated by RepRapFirmware Configuration Tool v3.3.10 on Tue Mar 22 2022 17:37:43 GMT+0100 (Centraleuropæisk normaltid)
        
        ; General preferences
        M575 P1 S1 B57600                                          ; enable support for PanelDue
        G90                                                        ; send absolute coordinates...
        M83                                                        ; ...but relative extruder moves
        M550 P"Heides Printer"                                     ; set printer name
        M669 K1                                                    ; select CoreXY mode
        
        
        ; Wait a moment for the CAN expansion boards to start
        G4 S2
        
        ; Network
        M552 P192.168.0.110 S1                                     ; enable network and acquire dynamic address via DHCP
        M586 P0 S1                                                 ; enable HTTP
        M586 P1 S0                                                 ; disable FTP
        M586 P2 S0                                                 ; disable Telnet
        
        ; Drives
        M569 P0.0 S1                                               ; physical drive 0.0 goes forwards, drive E
        M569 P1.0 S1                                               ; physical drive 1.0 goes forwards, drive A
        M569 P0.1 S1                                               ; physical drive 0.1 goes forwards, drive Z1
        M569 P1.1 S1                                               ; physical drive 1.1 goes forwards, drive B
        M569 P0.2 S0                                               ; physical drive 0.1 goes backwards, drive Z2
        M569 P0.3 S1                                               ; physical drive 0.1 goes forwards, drive Z3
        M569 P0.4 S0                                               ; physical drive 0.1 goes backwards, drive Z4
        M584 X1.0 Y1.1 Z0.1:0.2:0.3:0.4 E0.0                       ; set drive mapping
        M350 X16 Y16 Z16 I0                                        ; configure microstepping without interpolation
        M350 E16 I1                                                ; configure microstepping with interpolation
        M92 X53.333 Y53.333 Z53.333 E397.00                        ; set steps per mm
        M566 X720.00 Y720.00 Z150.00 E600.00                       ; set maximum instantaneous speed changes (mm/min)
        M203 X18000.00 Y18000.00 Z2400.00 E6000.00                 ; set maximum speeds (mm/min)
        M201 X2000.00 Y2000.00 Z250.00 E1800.00                    ; set accelerations (mm/s^2)
        M906 X900 Y900 Z900 E1000 I30                              ; set motor currents (mA) and motor idle factor in per cent
        M84 S30                                                    ; Set idle timeout
        
        ; Axis Limits
        M208 X0 Y0 Z0 S1                                           ; set axis minima
        M208 X300 Y300 Z300 S0                                     ; set axis maxima
        
        ; Endstops
        M574 X1 S1 P"!io1.in"                                      ; configure switch-type (e.g. microswitch) endstop for low end on X via pin !io0.in
        M574 Y1 S1 P"!io2.in"                                      ; configure switch-type (e.g. microswitch) endstop Y1 = low-end on Y via pin !io1.in
        M574 Z1 S1 P"io3.in"                                       ; configure switch-type (e.g. microswitch) endstop U1 = low-end, S1 = active-high (NC) on Z via pin io3.in
        
        ; Z-Probe
        M558 P5 A5 S0.01 B0 R0.2 C"^io4.in" H5 F1000:400 T4500 I0  ; set Z probe type to switch and the dive height + speeds
        M558 H30                                                   ;*** Remove this line after delta calibration has been done and new delta parameters have been saved
        G31 P500 X0 Y0 Z2.5                                        ; set Z probe trigger value, offset and trigger height
        M557 X50:250 Y50:250 S20                                   ; define mesh grid
        
        ; Bed leveling
        M671 X-65:-65:365:365 Y-20:380:380:-20 S20                 ; Define Z belts location (Front_Left, Back_Left, Back_Right, Front_Right)
        M557 X25:275 Y25:275 S25                                   ; Define bed mesh grid (inductive probe, positions include the Z offset!)
        
        ; Heaters
        M308 S0 P"temp0" Y"thermistor" T100000 B3950               ; configure sensor 0 as thermistor on pin temp0
        M950 H0 C"out0" T0                                         ; create bed heater output on out0 and map it to sensor 0
        M307 H0 B1 S1.00                                           ; 100% PWM, bang-bang mode for the bed heater
        M140 H0                                                    ; map heated bed to heater 0
        M143 H0 S120                                               ; set temperature limit for heater 0 to 120C
        M308 S1 P"temp1" Y"thermistor" T100000 B4725 C7.06e-8      ; configure sensor 1 as thermistor on pin temp1
        M950 H1 C"out1" T1                                         ; create nozzle heater output on out1 and map it to sensor 1
        M307 H1 B0 S1.00                                           ; disable bang-bang mode for heater and set PWM limit
        M143 H1 S300                                               ; set temperature limit for heater 1 to 300C
        
        ; Fans
        M950 F0 C"out4" Q500                                       ; create fan 0 on pin out4 and set its frequency
        M106 P0 S0 H-1                                             ; set fan 0 value. Thermostatic control is turned off
        M950 F1 C"out5" Q500                                       ; create fan 1 on pin out5 and set its frequency
        M106 P1 S1 I0 H1 T50                                       ; set fan 1 value. Thermostatic control is turned on when temp reaches 50 °C
        M950 F2 C"out7" Q500                                       ; create fan 2 on pin out7 and set its frequency. Electronics bay fan, turn on gradually if MCU is over 45 °C or any TMC driver is over temp
        M106 P2 T45:65 F50 H-1                                     ; set fan 2 value. Thermostatic control is turned off
        M950 F3 C"out8" Q500                                       ; create fan 3 on pin out8 and set its frequency. Electronics bay fan, turn on gradually if MCU is over 45 °C or any TMC driver is over temp
        M106 P3 T45:65 F50 H-1                                     ; set fan 3 value. Thermostatic control is turned off
        
        ; Tools
        M563 P0 D0 H1 F1                                           ; define tool 0
        G10 P0 X0 Y0 Z0                                            ; set tool 0 axis offsets
        G10 P0 R0 S0                                               ; set initial tool 0 active and standby temperatures to 0C
        
        T0
        ; Custom settings are not defined
        
        
        ; homeall.g
        ; called to home all axes
        ;
        ; generated by RepRapFirmware Configuration Tool v3.3.10 on Tue Mar 22 2022 17:37:43 GMT+0100 (Centraleuropæisk normaltid)
        
        G91                     ; relative mode
        G1 H1 X-240 Y-240 F3000 ; coarse home X or Y
        G1 H1 X400             ; coarse home X
        G1 H1 Y400             ; coarse home Y
        G1 X4 Y4 F600           ; move away from the endstops
        G1 H1 X-100              ; fine home X
        G1 H1 Y-5              ; fine home Y
        G1 H2 Z4 F200           ; raise head 4mm to ensure it is above the switch trigger height
        G90                     ; back to absolute mode
        G1 X0 Y0 F2000          ; put the head wherever you want it to be when you home Z (omit this line if it doesn't matter)
        G91                     ; relative mode
        G1 H1 Z-400 F100        ; move Z down until the switch triggers
        G90                     ; back to absolute mode
        G92 Z0.3                ; tell the firmware that we are at Z=0.3mm
        
        ; Uncomment the following lines to lift Z after probing
        ;G91                    ; relative positioning
        ;G1 Z5 F100             ; lift Z relative to current position
        ;G90                    ; absolute positioning
        
        
        ; homez.g
        ; called to home the Z axis
        ;
        ; generated by RepRapFirmware Configuration Tool v3.3.10 on Tue Mar 22 2022 17:37:43 GMT+0100 (Centraleuropæisk normaltid)
        G91              ; relative mode
        G1 H2 Z4 F200    ; raise head 4mm to ensure it is above the switch trigger height
        G90              ; back to absolute mode
        G1 X-5 Y-100 F2000   ; put the head wherever you want it to be when you home Z (omit this line if it doesn't matter)
        G91              ; relative mode
        G1 H1 Z-400 F100 ; move Z down until the switch triggers
        G90              ; back to absolute mode
        G92 Z0.3         ; tell the firmware that we are at Z=0.3mm
        
        ; Uncomment the following lines to lift Z after probing
        ;G91                  ; relative positioning
        ;G1 H2 Z5 F100        ; lift Z relative to current position
        ;G90                  ; absolute positioning
        
        25.3.2022 16.54.32	M122
        === Diagnostics ===
        RepRapFirmware for Duet 3 MB6HC version 3.4.0 (2022-03-15 18:57:24) running on Duet 3 MB6HC v1.01 or later (standalone mode)
        Board ID: 08DJM-956BA-NA3TN-6J9FL-3S86R-9TB6T
        Used output buffers: 3 of 40 (13 max)
        === RTOS ===
        Static ram: 151000
        Dynamic ram: 96452 of which 128 recycled
        Never used RAM 103092, free system stack 200 words
        Tasks: NETWORK(ready,26.4%,209) ETHERNET(notifyWait,0.0%,173) HEAT(notifyWait,0.0%,321) Move(notifyWait,0.0%,352) CanReceiv(notifyWait,0.0%,797) CanSender(notifyWait,0.0%,374) CanClock(delaying,0.0%,339) TMC(notifyWait,8.0%,92) MAIN(running,65.6%,925) IDLE(ready,0.0%,30), total 100.0%
        Owned mutexes:
        === Platform ===
        Last reset 00:31:53 ago, cause: software
        Last software reset at 2022-03-25 16:22, reason: User, GCodes spinning, available RAM 103052, slot 2
        Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task MAIN Freestk 0 n/a
        Error status: 0x00
        Aux0 errors 0,0,0
        Step timer max interval 132
        MCU temperature: min 45.0, current 45.6, max 45.9
        Supply voltage: min 23.8, current 23.8, max 23.9, under voltage events: 0, over voltage events: 0, power good: yes
        12V rail voltage: min 11.9, current 12.0, max 12.1, under voltage events: 0
        Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0
        Events: 0 queued, 0 completed
        Driver 0: standstill, SG min 0, mspos 8, reads 48246, writes 14 timeouts 0
        Driver 1: standstill, SG min 0, mspos 312, reads 48246, writes 14 timeouts 0
        Driver 2: standstill, SG min 0, mspos 728, reads 48246, writes 14 timeouts 0
        Driver 3: standstill, SG min 0, mspos 312, reads 48246, writes 14 timeouts 0
        Driver 4: standstill, SG min 0, mspos 728, reads 48246, writes 14 timeouts 0
        Driver 5: standstill, SG min 0, mspos 8, reads 48250, writes 11 timeouts 0
        Date/time: 2022-03-25 16:54:31
        Slowest loop: 17.39ms; fastest: 0.05ms
        === Storage ===
        Free file entries: 10
        SD card 0 detected, interface speed: 25.0MBytes/sec
        SD card longest read time 3.2ms, write time 2.4ms, max retries 0
        === Move ===
        DMs created 125, segments created 0, maxWait 0ms, bed compensation in use: none, comp offset 0.000
        === MainDDARing ===
        Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
        === AuxDDARing ===
        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 ===
        Segments left: 0
        Movement lock held by 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
        Code queue is empty
        === CAN ===
        Messages queued 17221, received 15313, lost 0, boc 0
        Longest wait 1ms for reply type 6042, peak Tx sync delay 372, free buffers 50 (min 49), ts 9568/9567/0
        Tx timeouts 0,0,0,0,0,0
        === Network ===
        Slowest loop: 63.78ms; fastest: 0.02ms
        Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions Telnet(0), 0 sessions
        HTTP sessions: 1 of 8
        - Ethernet -
        State: active
        Error counts: 0 0 0 0 0
        Socket states: 5 2 2 2 2 0 0 0
        
        
        25.3.2022 16.56.11	M98 P"config.g"
        HTTP is enabled on port 80
        FTP is disabled
        TELNET is disabled
        Error: Bad command: **Put G/M Codes in here to run when Tool 0 is about to be activated**
        Error: G0/G1: insufficient axes homed

        Voron CoreXY with Duet 3 + expansion + PanelDue 7i - 300 * 300 * 300 and Hemera Revo

        droftartsundefined JoergS5undefined 4 Replies Last reply Reply Quote 0
        • droftartsundefined
          droftarts administrators @Heide
          last edited by

          @heide It's the </> icon on the editing bar above, puts in these:

          code_text
          

          1f41a268-7057-4f4e-98fc-0dda0ae6ef95-image.png

          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
          • JoergS5undefined
            JoergS5 @Heide
            last edited by JoergS5

            @heide said in Z-drives not moving, new Duet3:
            G1 H1 X-240 Y-240 F3000 ; coarse home X or Y

            G1 H1 X400 ; coarse home X

            G1 H1 Y400 ; coarse home Y

            G1 X4 Y4 F600 ; move away from the endstops

            G1 H1 X-100 ; fine home X

            G1 H1 Y-5 ; fine home Y

            there's a glitch in your homeall: X400 Y400 should be -400 and -400, please see example at https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCoreXYPrinter#Section_Homing_files
            After homing movement of X and Y together, X and Y shall be moved into the same direction (negative X and Y) again some distance. This shall ensure that both X and Y are homed. Then a litte backwards (which is positive value here) and slowly with - again to the endstops.

            Heideundefined 1 Reply Last reply Reply Quote 1
            • Heideundefined
              Heide @JoergS5
              last edited by Heide

              @joergs5 I will change this tomorrow. But I'm sure that I have already tried it. (I have tried so many things today)

              Voron CoreXY with Duet 3 + expansion + PanelDue 7i - 300 * 300 * 300 and Hemera Revo

              JoergS5undefined 1 Reply Last reply Reply Quote 0
              • JoergS5undefined
                JoergS5 @Heide
                last edited by JoergS5

                @heide said in Z-drives not moving, new Duet3:

                tried it. (I have tried so many things today)

                The risk is high that you mixed something up by trying different things.

                First thing to check is that G1 H1 X-100 and Y-100 move your hotend into the correct direction toward the endstops. Then please try my proposal.

                What I do if I am not sure about correct codes, I run them line by line directly in the DWC command line and check that in this case the first, second, third endstops are triggered as expected. There are a few G-Code commands which can be run only in a specific order (drive additions and their mappings), but most commands can be tested this way.

                Heideundefined 1 Reply Last reply Reply Quote 0
                • Heideundefined
                  Heide @JoergS5
                  last edited by

                  @joergs5 I will, and I am aware that it is posible to mix up code. But every time I change it to something else, I whipe the code and saves it i Word. Then I can retur to it later. Then I try a New code. But the ideer about taking a step at a time is brilliant. Did'nt think in that direction

                  Voron CoreXY with Duet 3 + expansion + PanelDue 7i - 300 * 300 * 300 and Hemera Revo

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

                    @heide said in Z-drives not moving, new Duet3:

                    Error: Bad command: Put G/M Codes in here to run when Tool 0 is about to be activated

                    Just to explain this error; you have T0 in your config.g, so the tool change macros get run. As no tool is selected, only tpre.g and tpost.g are being run. It looks like the text at the beginning of one of these files is not commented out correctly, with a semicolon ; as the first character.

                    I've had a good look at your files, but I can't see what's stopping the homing working. I think try @JoergS5 suggestion of stepping through the GCode of homeall.g and homez.g, and see what works correctly and what doesn't.

                    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

                    Heideundefined 1 Reply Last reply Reply Quote 0
                    • Heideundefined
                      Heide @droftarts
                      last edited by

                      @droftarts thanks for the time you have used. And I am really sad that there are no errors, because I then maybe have a problem. I just can get it. It can run with no errors, with the code I postes earlyer today, when I tested. I will do as @JoergS5 proposed.

                      Voron CoreXY with Duet 3 + expansion + PanelDue 7i - 300 * 300 * 300 and Hemera Revo

                      droftartsundefined 1 Reply Last reply Reply Quote 0
                      • JoergS5undefined
                        JoergS5 @Heide
                        last edited by JoergS5

                        @heide said in Z-drives not moving, new Duet3:

                        G1 H1 X-240 Y-240 F3000

                        I have two additional ideas for your tests. The -240 will probably not be sufficient, because your M208 says the axes are 300 long, so I would take higher values. The goal of this line is that one of the endstops is triggered.

                        The second idea is, when I run G1 commands in the DWC command line, I prefix G90 or G91, so I am sure the command runs in the correct mode. E.g.:
                        G91 G1 X100
                        This is important in the homeall, because there are several changes of G90 G91 inside. (NB: I don't mean that homeall is wrong: the G91 G90 sets mode for the following lines. I mean, to be sure you're in the right mode when executing it line by line)

                        Heideundefined 1 Reply Last reply Reply Quote 0
                        • Heideundefined
                          Heide @JoergS5
                          last edited by

                          Okey, what I know for now, is that it seems that the endstops X and Y prohibit the gantry to move after they are activated, it is like they hold on to it (locks it). I tried to force (not my intension, but needed to see if I could move the gantry when I did) the gantry away form the endstops (X and Y), and then I can move it. I will need to test some more, but that must be later. (Need to be somewhere else) But I will be back 🙂 I'm so happy for this community, and your help, I hope I can contribute some day 🙂

                          Voron CoreXY with Duet 3 + expansion + PanelDue 7i - 300 * 300 * 300 and Hemera Revo

                          Heideundefined JoergS5undefined 2 Replies Last reply Reply Quote 0
                          • Heideundefined
                            Heide @Heide
                            last edited by

                            Another Thing I forgot to mension. The endstop is a Hall Effect type

                            Voron CoreXY with Duet 3 + expansion + PanelDue 7i - 300 * 300 * 300 and Hemera Revo

                            1 Reply Last reply Reply Quote 0
                            • JoergS5undefined
                              JoergS5 @Heide
                              last edited by

                              @heide if you post a picture of the endstops, someone may tell you from experience what can be the reason for the locking.
                              I am pleased to hear that you are approaching a solution.

                              Heideundefined 1 Reply Last reply Reply Quote 0
                              • droftartsundefined
                                droftarts administrators @Heide
                                last edited by

                                @heide said in Z-drives not moving, new Duet3:

                                @droftarts And I am really sad that there are no errors, because I then maybe have a problem.

                                Don’t be sad! There is probably an error, just I didn’t see it. Use this as a learning experience!

                                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
                                • Heideundefined
                                  Heide @JoergS5
                                  last edited by

                                  @joergs5 this is the endstop

                                  https://docs.vorondesign.com/community/electronics/120decibell/hall_effect_endstop_setup.html

                                  Voron CoreXY with Duet 3 + expansion + PanelDue 7i - 300 * 300 * 300 and Hemera Revo

                                  JoergS5undefined 1 Reply Last reply Reply Quote 0
                                  • JoergS5undefined
                                    JoergS5 @Heide
                                    last edited by

                                    @heide the only information I found is in https://docs.duet3d.com/en/User_manual/Connecting_hardware/Sensors_endstops that the 5V wire should be connected to 5V of the IO connector, but you've probably done that already.

                                    Heideundefined 1 Reply Last reply Reply Quote 0
                                    • Heideundefined
                                      Heide @JoergS5
                                      last edited by Heide

                                      @joergs5 happy to have pictures on my Phone when I'm not at home. This is the connection for the Hall sensor. And I think it is corrct connected

                                      89339d7d-193c-4ffb-a1c0-f8acbbd4e95e-image.png

                                      Voron CoreXY with Duet 3 + expansion + PanelDue 7i - 300 * 300 * 300 and Hemera Revo

                                      Heideundefined JoergS5undefined 2 Replies Last reply Reply Quote 0
                                      • Heideundefined
                                        Heide @Heide
                                        last edited by

                                        The yello Wire has common GND from the other connnection

                                        Voron CoreXY with Duet 3 + expansion + PanelDue 7i - 300 * 300 * 300 and Hemera Revo

                                        JoergS5undefined Gixxerfastundefined 2 Replies Last reply Reply Quote 0
                                        • JoergS5undefined
                                          JoergS5 @Heide
                                          last edited by JoergS5

                                          @heide if the blue wire is 5V, than it's correct. (the colors differ from the Voron page, you should check it. Often, red is voltage, black is ground, other colors are signals. But if you DIY wiring, you can choose colors as you like. Your wires black-red-yellow-blue)

                                          1 Reply Last reply Reply Quote 0
                                          • Gixxerfastundefined
                                            Gixxerfast @Heide
                                            last edited by Gixxerfast

                                            @heide Hi, if you're using the hall effect sensor in its default location, may I ask why you define your X and Y endstops to be low end?

                                            Normally on a Voron, the X0 and Y0 is front left corner of the bed. And you home at max X and Y.

                                            Here's my endstop configuration:

                                            ; Endstops
                                            M574 X2 S1 P"121.io0.in"                       ; configure active-high endstop for high end on X via pin 121.io0.in
                                            M574 Y2 S1 P"0.io1.in"                         ; configure active-high endstop for high end on Y via pin io1.in
                                            

                                            However, I do not use the hall effect, but that's just an inverse away.

                                            Also, a simple M119 will tell you all you need to know, one where they should be activated and one where they should not be.

                                            Voron V2.4 (#1317) with Duet 3 Mini5+ Wifi and 1LC v1.1 Toolboard
                                            Voron V0.1 (#637) with Duet 3 Mini 5+ Wifi and 1LC v1.2 Toolboard
                                            Ender 3 Pro with BTT SKR-2 + RRF

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