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

    Z Endstop not used

    Scheduled Pinned Locked Moved
    Duet Hardware and wiring
    5
    19
    535
    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.
    • soreloserundefined
      soreloser
      last edited by

      I have a working optical endstop that is lighting the LED on the DuetWifi and shows the correct state in the web gui. I believe that it setup correctly in the config (shown below) but when i attempt a print i get this;

      efd01534-45eb-4410-9f4b-f64eaaa5267e-image.png

      and when I adjust the nozzle to the bed again it either dives into the bed or is way too far. shouldn't it use the X endstop that is setup?

      ; Configuration file for Duet WiFi (firmware version 3)
      ; executed by the firmware on start-up
      ;
      ; generated by RepRapFirmware Configuration Tool v2.1.5 on Sat Jan 11 2020 13:39:57 GMT-0800 (Pacific Standard Time)

      ; General preferences
      G90 ; send absolute coordinates...
      M83 ; ...but relative extruder moves
      M550 P"3dPrinter" ; set printer name

      ; Network
      M552 S1 ; enable network
      M586 P0 S1 ; enable HTTP
      M586 P1 S0 ; disable FTP
      M586 P2 S0 ; disable Telnet

      ; Drives
      M569 P0 S0 ; Drive 0 goes REVERSE THIS IS X
      M569 P1 S1 ; Drive 1 goes forwards THIS IS Y
      M569 P2 S1 ; Drive 2 goes forwards THIS IS Z
      M569 P3 S1 ; Drive 3 goes forwards THIS IS EXTRUDER
      M584 X0 Y1 Z2 E3 ; set drive mapping
      M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
      M92 X80.00 Y80.00 Z400.00 E466.00 ; set steps per mm z changed from 4000
      M566 X900.00 Y900.00 Z12.00 E120.00 ; set maximum instantaneous speed changes (mm/min)
      M203 X6000.00 Y6000.00 Z180.00 E1200.00 ; set maximum speeds (mm/min)
      M201 X500.00 Y500.00 Z20.00 E250.00 ; set accelerations (mm/s^2)
      M906 X1200 Y1200 Z1200 E1200 I30 ; set motor currents (mA) and motor idle factor in per cent
      M84 S30

      ; Axis Limits
      M208 X0 Y0 Z0 S1 ; set axis minima
      M208 X230 Y230 Z250 S0 ; set axis maxima

      ; Endstops
      M574 X1 Y1 Z1 S1
      M574 X1 S1 P"!xstop" ; configure active-low endstop for low end on X via pin xstop - UMMEL ADD THE ! TO INVERT THE CONDITION
      M574 Y1 S1 P"!ystop" ; configure active-low endstop for low end on Y via pin ystop
      M574 Z1 S1 P"zstop" ; configure active-low endstop for low end on Z via pin ystop
      ;M558 P5 H5 F500 T4000 X0 Y0 Z1 ; UMMEL set z probe type mode 5, not on x and y but on z
      ;G31 P25 X0 Y-25.3 Z0.0 ; Z probe trigger value, offset in relation to nozzle. And trigger height adjustment

      ; Z-Probe CANT GET THE DAMN THING TO WORK
      ;M950 S0 C"exp.heater3" ; create servo pin 0 for BLTouch
      ;M558 P9 C"zprobe.in+zprobe.mod" H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds
      ;M558 P1 C"zprobe.in+zprobe.mod" H5 F120 T6000 ; set Z probe type to unmodulated and the dive height + speeds - THIS LINE WAS MY ORIGINAL, ABOVE IS FROM THE CONFIGURATOR
      ;G31 P500 X0 Y0 Z0.5 ; set Z probe trigger value, offset and trigger height
      ;M557 X15:215 Y15:195 S20 ; define mesh grid
      ;M307 H7 A-1 C-1 D-1 ; Disable the 7th Heater to free up PWM channel 5 on the Duex board - UMMEL ADDED NEXT 3 LINES FOR BLTOUCH
      ;M574 X1 Y2 S1 ; X home to min. Y home to max. Normally Closed limit switches. THIS IS ENDSTOPS - SEND IT ABOVE - UMMEL
      ;M574 Z1 S2 ; Define Z to use Probe. Home to Min
      ;M558 P5 H5 F500 T4000 X0 Y0 Z1 ; Set Z probe type/mode 5. H=Dive Height. F=Speed the bed moves
      ;G31 P25 X0 Y-25.3 Z0.0 ; Z probe trigger value, offset in relation to nozzle. And trigger height adjustment

      ; Heaters
      M308 S0 P"bedtemp" Y"thermistor" T100000 B3950 ; configure sensor 0 as thermistor on pin bedtemp -
      M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0
      M143 H0 S120 ; set temperature limit for heater 0 to 120C
      M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit
      M307 H0 A106.7 C796.4 D2.6 V24.3 B0 ; Parameters set after the M303 tuning for the bed
      M308 S1 P"e0temp" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin e0temp
      M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1
      M143 H1 S280 ; set temperature limit for heater 1 to 280C
      M307 H1 B0 S1.00 ; disable bang-bang mode for the nozzle heater and set PWM limit
      M307 H1 A599.6 C218.6 D5.8 V24.3 B0 ; Parameters after nozzle tune
      ;M557 X5:205 Y5:165 S20 ; Define mesh grid * ALL THE CHANGES HERE CAME FROM https://betrue3d.dk/bltouch-on-duet-wifi-configuratio-and-usage/
      ;M307 H3 A-1 C-1 D-1 ; Disable the 3th Heater to free up on the Duex board for BLTOUCH - UMMEL ADDED

      ; Fans
      M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency - layer fan THIS NEEDS TO BE 100% HOW TO DO?
      M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
      M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency - hot end
      M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on

      ; Tools
      M563 P0 D0 H1 F0 ; 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
      M563 P1 S0 R0
      G10 P1 S0 R0
      ; Custom settings are not defined

      1 Reply Last reply Reply Quote 0
      • Danalundefined
        Danal
        last edited by

        Remove the endstop definition and define it as a probe instead. It will also act as an endstop.

        Delta / Kossel printer fanatic

        1 Reply Last reply Reply Quote 0
        • soreloserundefined
          soreloser
          last edited by

          @soreloser said in Z Endstop not used:

          M574 Z1 S1 P"zstop" ;

          so;
          M574 Z1 S0 P"zstop" ; ?

          Vetiundefined 1 Reply Last reply Reply Quote 0
          • soreloserundefined
            soreloser
            last edited by

            I read to make it like this;
            M574 Z0 S0 P"zstop" but that's not right

            1 Reply Last reply Reply Quote 0
            • soreloserundefined
              soreloser
              last edited by soreloser

              I reused the calibrator and it came up with; but now using the z probe input? the unit never dropped to sense the endpoint and gave me the same manual option in the gui.

              ; Endstops
              ;M574 X1 Y1 Z1 S1
              M574 X1 S1 P"!xstop" ; configure active-low endstop for low end on X via pin xstop
              M574 Y1 S1 P"!ystop" ; configure active-low endstop for low end on Y via pin ystop
              ;M574 Z1 S1 P"zstop" ; configure active-low endstop for low end on Z via pin ystop.

              ; Z-Probe
              M558 P5 H5 F120 T6000 ; set Z probe type to switch and the dive height + speeds
              G31 P500 X0 Y0 Z1.5 ; set Z probe trigger value, offset and trigger height
              M557 X20:200 Y20:200 S40 ; define mesh grid

              1 Reply Last reply Reply Quote 0
              • Vetiundefined
                Veti @soreloser
                last edited by

                @soreloser said in Z Endstop not used:

                M574 Z1 S0 P"zstop" ; ?

                no like
                M574 Z1 S2 ; configure Z-probe endstop for low end on Z

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

                  @Veti said in Z Endstop not used:

                  @soreloser said in Z Endstop not used:

                  M574 Z1 S0 P"zstop" ; ?

                  no like
                  M574 Z1 S2 ; configure Z-probe endstop for low end on Z

                  The S2 option of M574 is intended for use only when axes other than Z are using the Z probe for homing. The only printers I know of that do this are the RepRapPro Ormerod, Huxley Duo, and Mendel Tricolour machines that use Duet electronics.

                  When using the Z probe to home Z, M574 Z0 should be used.

                  @soreloser, you need to get the Z probe working. See https://duet3d.dozuki.com/Wiki/Connecting_a_Z_probe#Section_Software_setup_RepRapFirmware_Num_3.

                  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

                  1 Reply Last reply Reply Quote 0
                  • Vetiundefined
                    Veti
                    last edited by

                    @dc42 said in Z Endstop not used:

                    The S2 option of M574 is intended for use only when axes other than Z are using the Z probe for homing.

                    then this ought to be changed in the configurator as it is always generating
                    M574 Z1 S2
                    when a probe is selected

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

                      @Veti said in Z Endstop not used:

                      @dc42 said in Z Endstop not used:

                      The S2 option of M574 is intended for use only when axes other than Z are using the Z probe for homing.

                      then this ought to be changed in the configurator as it is always generating
                      M574 Z1 S2
                      when a probe is selected

                      Thanks for point this out. We'll get it changed.

                      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

                      1 Reply Last reply Reply Quote 0
                      • soreloserundefined
                        soreloser
                        last edited by

                        @dc42 said in Z Endstop not used:

                        https://duet3d.dozuki.com/Wiki/Connecting_a_Z_probe#Section_Software_setup_RepRapFirmware_Num_3

                        The same condition with these changes, it still asks what the probe hight is and will not lower to check;
                        M574 Z0
                        M574 Z0 S1 P"zstop"

                        1 Reply Last reply Reply Quote 0
                        • soreloserundefined
                          soreloser
                          last edited by

                          So I purchased an inductive probe as I believed that the unit might have failed because it was not deploying the probe.
                          I followed the tutorial from here and the unit is powered and senses aluminum if I get it close to the tip of it;
                          https://duet3d.dozuki.com/Wiki/Connecting_a_Z_probe#Section_Connecting_different_types_of_Z_probe
                          The tutorial starts discussing the BLtouch so I moved on to this tutorial for testing;
                          https://duet3d.dozuki.com/Wiki/Test_and_calibrate_the_Z_probe
                          which says to send the G30 command to begin the calibration. once I do that I am presented with the same web GUI to manually adjust the gap until it is just touching. What am I missing here?

                          ; Configuration file for Duet WiFi (firmware version 3)
                          ; executed by the firmware on start-up
                          ;
                          ; generated by RepRapFirmware Configuration Tool v2.1.5 on Sat Jan 11 2020 13:39:57 GMT-0800 (Pacific Standard Time)

                          ; General preferences
                          G90 ; send absolute coordinates...
                          M83 ; ...but relative extruder moves
                          M550 P"3dPrinter" ; set printer name

                          ; Network
                          M552 S1 ; enable network
                          M586 P0 S1 ; enable HTTP
                          M586 P1 S0 ; disable FTP
                          M586 P2 S0 ; disable Telnet

                          ; Drives
                          M569 P0 S0 ; Drive 0 goes REVERSE THIS IS X
                          M569 P1 S1 ; Drive 1 goes forwards THIS IS Y
                          M569 P2 S1 ; Drive 2 goes forwards THIS IS Z
                          M569 P3 S1 ; Drive 3 goes forwards THIS IS EXTRUDER
                          M584 X0 Y1 Z2 E3 ; set drive mapping
                          M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
                          M92 X80.00 Y80.00 Z400.00 E466.00 ; set steps per mm
                          M566 X900.00 Y900.00 Z12.00 E120.00 ; set maximum instantaneous speed changes (mm/min)
                          M203 X6000.00 Y6000.00 Z180.00 E1200.00 ; set maximum speeds (mm/min)
                          M201 X500.00 Y500.00 Z20.00 E250.00 ; set accelerations (mm/s^2)
                          M906 X1200 Y1200 Z1200 E1200 I30 ; set motor currents (mA) and motor idle factor in per cent
                          M84 S30

                          ; Axis Limits
                          M208 X0 Y0 Z0 S1 ; set axis minima
                          M208 X230 Y230 Z250 S0 ; set axis maxima

                          ; Endstops
                          ;M574 X1 Y1 Z1 S1
                          M574 X1 S1 P"!xstop" ; configure active-low endstop for low end on X via pin xstop
                          M574 Y1 S1 P"!ystop" ; configure active-low endstop for low end on Y via pin ystop
                          M558 P5 I1 ; Inductive sensor z

                          ; Z-Probe
                          ;M307 H3 A-1 C-1 D-1 ; FOR BLTOUCH? no change to the probing
                          ;M558 P9 H5 F100 T2000
                          ;G31 X0 Y0 Z0 P25

                          ; Heaters
                          M308 S0 P"bedtemp" Y"thermistor" T100000 B3950 ; configure sensor 0 as thermistor on pin bedtemp -
                          M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0
                          M143 H0 S120 ; set temperature limit for heater 0 to 120C
                          M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit
                          M307 H0 A106.7 C796.4 D2.6 V24.3 B0 ; Parameters set after the M303 tuning for the bed
                          M308 S1 P"e0temp" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin e0temp
                          M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1
                          M143 H1 S280 ; set temperature limit for heater 1 to 280C
                          M307 H1 B0 S1.00 ; disable bang-bang mode for the nozzle heater and set PWM limit
                          M307 H1 A304.5 C107.3 D3.3 V24.2 B0 ; Parameters after nozzle tune

                          ; Fans
                          M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency - commented out for gcode to control it
                          M106 P0 H-1 ; set fan 0 value. Thermostatic control is turned off
                          M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency - hot end
                          M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on

                          ; Tools
                          M563 P0 D0 H1 F2 ; 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
                          ;M563 P1 S0 R0
                          ;G10 P1 S0 R0
                          ; Custom settings are not defined

                          1 Reply Last reply Reply Quote 0
                          • Vetiundefined
                            Veti
                            last edited by

                            @soreloser said in Z Endstop not used:

                            M558 P5 I1 ; Inductive sensor z

                            you have not defined which pin to be used. this is required in rrf3

                            1 Reply Last reply Reply Quote 0
                            • soreloserundefined
                              soreloser
                              last edited by

                              In my endstop section it is listed there as P5. In the 'connecting z probe' doc it says;
                              5 Digital probe connected to Z Probe input HIGH during probing, LOW at other times
                              This is how it is connected to the board

                              1 Reply Last reply Reply Quote 0
                              • Vetiundefined
                                Veti
                                last edited by

                                you might want to adjust that. because i believe in 3.01 it will not work anymore, as the default config is changed.

                                also you are missing the
                                G31
                                command

                                1 Reply Last reply Reply Quote 0
                                • soreloserundefined
                                  soreloser
                                  last edited by

                                  ok,
                                  I searched out what may be the 'new' way and input the below with no difference;

                                  ; Configuration file for Duet WiFi (firmware version 3)
                                  ; executed by the firmware on start-up
                                  ;
                                  ; generated by RepRapFirmware Configuration Tool v2.1.5 on Sat Jan 11 2020 13:39:57 GMT-0800 (Pacific Standard Time)

                                  ; General preferences
                                  G90 ; send absolute coordinates...
                                  M83 ; ...but relative extruder moves
                                  M550 P"3dPrinter" ; set printer name

                                  ; Network
                                  M552 S1 ; enable network
                                  M586 P0 S1 ; enable HTTP
                                  M586 P1 S0 ; disable FTP
                                  M586 P2 S0 ; disable Telnet

                                  ; Drives
                                  M569 P0 S0 ; Drive 0 goes REVERSE THIS IS X
                                  M569 P1 S1 ; Drive 1 goes forwards THIS IS Y
                                  M569 P2 S1 ; Drive 2 goes forwards THIS IS Z
                                  M569 P3 S1 ; Drive 3 goes forwards THIS IS EXTRUDER
                                  M584 X0 Y1 Z2 E3 ; set drive mapping
                                  M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
                                  M92 X80.00 Y80.00 Z400.00 E466.00 ; set steps per mm
                                  M566 X900.00 Y900.00 Z12.00 E120.00 ; set maximum instantaneous speed changes (mm/min)
                                  M203 X6000.00 Y6000.00 Z180.00 E1200.00 ; set maximum speeds (mm/min)
                                  M201 X500.00 Y500.00 Z20.00 E250.00 ; set accelerations (mm/s^2)
                                  M906 X1200 Y1200 Z1200 E1200 I30 ; set motor currents (mA) and motor idle factor in per cent
                                  M84 S30

                                  ; Axis Limits
                                  M208 X0 Y0 Z0 S1 ; set axis minima
                                  M208 X230 Y230 Z250 S0 ; set axis maxima

                                  ; Endstops
                                  ;M574 X1 Y1 Z1 S1
                                  M574 X1 S1 P"!xstop" ; configure active-low endstop for low end on X via pin xstop
                                  M574 Y1 S1 P"!ystop" ; configure active-low endstop for low end on Y via pin ystop
                                  ;M558 P5 I1 ; Inductive sensor z

                                  ; Z-Probe
                                  M574 Z1 S2 ; Set endstops controlled by probe
                                  M558 P5 H5 F600 ; Set Z probe type to unmodulated and the dive height + speeds
                                  G31 P500 X-40 Y0 Z2 ; Set Z probe trigger value, offset and trigger height

                                  ; Heaters
                                  M308 S0 P"bedtemp" Y"thermistor" T100000 B3950 ; configure sensor 0 as thermistor on pin bedtemp -
                                  M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0
                                  M143 H0 S120 ; set temperature limit for heater 0 to 120C
                                  M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit
                                  M307 H0 A106.7 C796.4 D2.6 V24.3 B0 ; Parameters set after the M303 tuning for the bed
                                  M308 S1 P"e0temp" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin e0temp
                                  M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1
                                  M143 H1 S280 ; set temperature limit for heater 1 to 280C
                                  M307 H1 B0 S1.00 ; disable bang-bang mode for the nozzle heater and set PWM limit
                                  M307 H1 A304.5 C107.3 D3.3 V24.2 B0 ; Parameters after nozzle tune

                                  ; Fans
                                  M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency - commented out for gcode to control it
                                  M106 P0 H-1 ; set fan 0 value. Thermostatic control is turned off
                                  M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency - hot end
                                  M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on

                                  ; Tools
                                  M563 P0 D0 H1 F2 ; 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
                                  ;M563 P1 S0 R0
                                  ;G10 P1 S0 R0
                                  ; Custom settings are not defined

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

                                    @soreloser said in Z Endstop not used:

                                    ; Z-Probe
                                    M574 Z1 S2 ; Set endstops controlled by probe
                                    M558 P5 H5 F600 ; Set Z probe type to unmodulated and the dive height + speeds
                                    G31 P500 X-40 Y0 Z2 ; Set Z probe trigger value, offset and trigger height

                                    Change first line to M574 Z0
                                    From: https://duet3d.dozuki.com/Wiki/Gcode?revisionid=HEAD#Section_M574_RepRapFirmware_Num_3

                                    The S2 option of M574 is intended for use only when axes other than Z are using the Z probe for homing. The only printers known that do this using Duet electronics are the RepRapPro Ormerod, Huxley Duo, and Mendel Tricolour machines. When using the Z probe to home Z, M574 Z0 should be used.

                                    You're missing the probe input pin. Try:
                                    ; Z-Probe
                                    M558 P5 C"zprobe.in" H5 F120 T6000 ; set Z probe type to switch and the dive height + speeds
                                    G31 P500 X-40 Y0 Z2 ; set Z probe trigger value, offset and trigger height

                                    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
                                    • soreloserundefined
                                      soreloser
                                      last edited by

                                      Awesome, forward momentum!
                                      I no longer get the popup but the unit does not drop and returns with;
                                      The following axis is not homed: Z
                                      I will read more and continue. thank you for your help

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

                                        @soreloser You may have to change your Z homing script. To home Z with the probe, move to the XY position where you want the bed to home, and use G30: https://duet3d.dozuki.com/Wiki/Gcode?revisionid=HEAD#Section_G30_Single_Z_Probe

                                        This from @dc42 :

                                        The related thing that some users get wrong is using a G1 S1 move to home Z instead of a G30 move. This combination of these 2 mistakes [setting M574 Z1 S2] will allow Z homing after a fashion, but of course the Z height will get set to the M208 limit instead of the Z probe trigger height.

                                        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
                                        • soreloserundefined
                                          soreloser
                                          last edited by

                                          I think i have it now and have setup a very good starting height that i now send a file to the printer and have confidence in a good first layer (all after reading the calibration doc). I plan to setup a probing mesh next and would like to thank you again for your help here. I did learn quite a bit.

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