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

    IDEX motor jitter

    Scheduled Pinned Locked Moved Solved
    Beta Firmware
    6
    35
    2.0k
    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.
    • MaxGyverundefined
      MaxGyver
      last edited by MaxGyver

      I keep having issues with my IDEX Printer with dual markforged (aka. HaqXY) Kinematics. The inactive extruder jitters on faster printing moves, as if the second axis is getting slightly out of sync. I can not tell if my bad print quality is due to the excessive vibration the inactive extruder, or if the active extruder is also getting out of sync. When I deactivate the U-Axis completely, the issue is gone and print quality is great.

      I thought the issue was solved in this thread. But either it was not solved at all, or it got reintroduced with a later update.

      I rediscovered the problem while investigating why I am having such a bad print quality lately. So I can not pinpoint the exact firmware version that might have reintroduced the problem. ๐Ÿ™„

      config.g

      jay_s_ukundefined 1 Reply Last reply Reply Quote 0
      • MaxGyverundefined MaxGyver marked this topic as a question
      • MaxGyverundefined
        MaxGyver @fcwilt
        last edited by

        So, after almost a week of trying and testing, I found the reason for the strange extruder jitter.

        It is due to how the belts are arranged. In short, the X and U belts start oscillating when the extruders are in their respective home positions.

        At the home position, the axis belt has one short and one long section from the extruder mounting point to the axis motor pulley. Although I have 9mm gates belts and an overall very sturdy construction, this extra length adds enough springiness to the system that the extruders start to oscillate during moves with strong acceleration. The vibration becomes less prominent the further the extruder is from its home position, since the belt section between extruder and motor-pulley become evenly balanced when the extruder is in the middle of the bed. Hence, I was able to print with one extruder in the middle of the bed while the other extruder was oscillating in its home position.

        @dc42 You were absolutely right to assume a mechanical issue. ๐Ÿ‘

        Thank you all for your suggestions and support. ๐Ÿค—

        martin7404undefined fcwiltundefined 2 Replies Last reply Reply Quote 1
        • jay_s_ukundefined
          jay_s_uk @MaxGyver
          last edited by

          @maxgyver what firmware are you currently running and on what board?

          Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

          MaxGyverundefined 1 Reply Last reply Reply Quote 0
          • MaxGyverundefined
            MaxGyver @jay_s_uk
            last edited by

            @jay_s_uk

            Whoops, totally forgot to mention that! ๐Ÿ˜…

            • RRF 3.4.1-rc1
            • Duet3 6HC+SBC
            • 1HCL on X,Y and U
            MaxGyverundefined 1 Reply Last reply Reply Quote 1
            • MaxGyverundefined
              MaxGyver @MaxGyver
              last edited by

              @maxgyver

              I ran a short diagnostic of the U-Axis 1HCL board during a print:

              M122 B124
              Diagnostics for board 124:
              Duet EXP1HCL firmware version 3.4.1rc1 (2022-05-03 09:32:27)
              Bootloader ID: SAME5x bootloader version 2.4 (2021-12-10)
              All averaging filters OK
              Never used RAM 52256, free system stack 161 words
              Tasks: Move(notifyWait,0.6%,108) HEAT(notifyWait,0.0%,88) CanAsync(notifyWait,0.0%,66) CanRecv(notifyWait,0.3%,75) CanClock(notifyWait,0.0%,70) TMC(notifyWait,42.8%,356) CLSend(notifyWait,0.0%,152) MAIN(running,54.4%,399) IDLE(ready,0.0%,30) AIN(notifyWait,2.0%,265), total 100.0%
              Last reset 00:30:05 ago, cause: software
              Last software reset data not available
              Closed loop enabled: yes, pre-error threshold: 0.00, error threshold: 0.00, encoder type rotaryQuadrature, reverse polarity: no, position 66610, raw count = 43298, tuning mode: 0, tuning error: 0, collecting data: no
              Control loop runtime (ms): min=0.008, max=0.036, frequency (Hz): min=8929, max=15625
              Driver 0: pos 38666, 160.0 steps/mm,ok, SG min n/a, mspos 644, reads 0, writes 62326 timeouts 0, steps req 2056135 done 2056189
              Moves scheduled 118300, completed 118294, in progress 1, hiccups 0, step errors 0, maxPrep 238, maxOverdue 1, maxInc 1, mcErrs 0, gcmErrs 0
              Peak sync jitter -1/17, peak Rx sync delay 200, resyncs 0/0, next step interrupt due in 8 ticks, enabled
              VIN voltage: min 32.0, current 32.3, max 32.3
              V12 voltage: min 12.1, current 12.1, max 12.1
              MCU temperature: min 28.3C, current 34.3C, max 34.3C
              Last sensors broadcast 0x00000000 found 0 172 ticks ago, 0 ordering errs, loop time 0
              CAN messages queued 2248, send timeouts 0, received 32732, lost 0, free buffers 37, min 36, error reg 0
              dup 0, oos 0/0/0/0, bm 0, wbm 0, rxMotionDelay 338, adv 35513/74661
              
              dc42undefined 1 Reply Last reply Reply Quote 0
              • dc42undefined
                dc42 administrators @MaxGyver
                last edited by

                @maxgyver it sounds to me that the PID values you are using on the U driver may need to be adjusted. What values are they? In the first instance you could try halving the P and D values to see if that makes the problem go away.

                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

                MaxGyverundefined 1 Reply Last reply Reply Quote 0
                • MaxGyverundefined
                  MaxGyver @dc42
                  last edited by

                  @dc42

                  For now, I am using the same values for all closed loop axes:

                  M569.1 P124.0 T2 C20 R125 I500 D0.1 H100
                  

                  The problem is also present in open loop mode. I have no issue running the printer with two Y motors on the gantry and a single X-Axis. As soon as I add the U-Axis, the jitter is back. It is most prominent when printing short lines at high speed. I was not able to replicate this behavior outside of a print.

                  fcwiltundefined 1 Reply Last reply Reply Quote 0
                  • fcwiltundefined
                    fcwilt @MaxGyver
                    last edited by

                    @maxgyver

                    Could you test running U off of a driver on the 6HC?

                    Frederick

                    Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                    MaxGyverundefined 1 Reply Last reply Reply Quote 0
                    • MaxGyverundefined
                      MaxGyver @fcwilt
                      last edited by MaxGyver

                      @fcwilt said in IDEX motor jitter:

                      @maxgyver

                      Could you test running U off of a driver on the 6HC?

                      Frederick

                      I just tested this without success. The issue is still present while running U from the main board. But I got the impression that U gets out of sync at the start of each move. On faster moves with high acceleration, it seems to be more severe.

                      EDIT: Also tested running both Y-Motors from the main board with the same result.

                      fcwiltundefined 1 Reply Last reply Reply Quote 1
                      • fcwiltundefined
                        fcwilt @MaxGyver
                        last edited by

                        @maxgyver said in IDEX motor jitter:

                        @fcwilt said in IDEX motor jitter:

                        @maxgyver

                        Could you test running U off of a driver on the 6HC?

                        Frederick

                        I just tested this without success. The issue is still present while running U from the main board. But I got the impression that U gets out of sync at the start of each move. On faster moves with high acceleration, it seems to be more severe.

                        EDIT: Also tested running both Y-Motors from the main board with the same result.

                        What happens if you swap the connections between X and U? The question being is it related to the U axis (firmware problem) or the U hardware.

                        What sort of speeds are you trying to print at? You mentioned short lines at high speed.

                        Frederick

                        Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                        MaxGyverundefined 1 Reply Last reply Reply Quote 0
                        • MaxGyverundefined
                          MaxGyver @fcwilt
                          last edited by MaxGyver

                          @fcwilt

                          I am fairly certain that this is a firmware issue, since the problem is also present when U is driven from the main board and the same jittering is present in X when the second extruder (U-axis) is printing and the first extruder (X-axis) is only moving in Y.

                          Right now, I am printing at 200mm/s with 5000mm/sยฒ accelerations on X, Y and U. Although the jittering is less severe at lower speeds, it is still noticeable.

                          EDIT:
                          It is really hard to tell by watching the print. But I got the strong impression that the jitter only courses when the Y-Axis moves! When Y is stationary, the jitter is gone ๐Ÿ˜ฎ

                          dc42undefined fcwiltundefined 2 Replies Last reply Reply Quote 1
                          • dc42undefined
                            dc42 administrators @MaxGyver
                            last edited by

                            @maxgyver do you have any toothed belts running over smooth idlers?

                            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

                            MaxGyverundefined 1 Reply Last reply Reply Quote 0
                            • MaxGyverundefined
                              MaxGyver @dc42
                              last edited by

                              @dc42 said in IDEX motor jitter:

                              @maxgyver do you have any toothed belts running over smooth idlers?

                              Nope. I am a little offended by that. ๐Ÿ˜† ๐Ÿ˜‰

                              This is what I have done so far:

                              • checked for loose pulleys
                              • checked belt and belt path
                              • checked if linear rails run smooth
                              • checked motor cables and connectors
                              • checked CAN cable (All from Kenable)
                              • deactivated bed leveling
                              • deactivated demon.g

                              I have also rewritten most of my config file without success.

                              dc42undefined 1 Reply Last reply Reply Quote 0
                              • fcwiltundefined
                                fcwilt @MaxGyver
                                last edited by

                                @maxgyver said in IDEX motor jitter:

                                @fcwilt

                                I am fairly certain that this is a firmware issue, since the problem is also present when U is driven from the main board and the same jittering is present in X when the second extruder (U-axis) is printing and the first extruder (X-axis) is only moving in Y.

                                Right now, I am printing at 200mm/s with 5000mm/sยฒ accelerations on X, Y and U. Although the jittering is less severe at lower speeds, it is still noticeable.

                                EDIT:
                                It is really hard to tell by watching the print. But I got the strong impression that the jitter only courses when the Y-Axis moves! When Y is stationary, the jitter is gone ๐Ÿ˜ฎ

                                I see you are using x32 micro-stepping for X, Y and U.

                                And the speeds you mentioned (200mm/s) are rather fast.

                                Perhaps the 6HC system cannot keep up?

                                Could you try x16 micro-stepping at 100mm/s?

                                I agree it may be the firmware. I am seeking to determine if there is a threshold condition that when crossed the problem appears.

                                Thanks.

                                Disclaimer: I am still on firmware 3.3.0 as I am letting others deal with the issues in 3.4.x.

                                Frederick

                                ; Configuration file for Duet 3 (firmware version 3)
                                ; executed by the firmware on start-up
                                ; generated by RepRapFirmware Configuration Tool v3.1.4 on Wed Aug 05 2020 11:42:30 GMT+0200 (Mitteleuropรคische Sommerzeit)
                                
                                ; General preferences
                                M550 P"Factory500"  ; set printer name
                                
                                ; Blower
                                M950 F0 C"!out4+out4.tach" C"Blower" Q25000 ; create fan 0 on pin out4 and set its frequency
                                M106 P0 X0.40 B0 H1:2 T80
                                
                                ; Chamer Fan
                                M950 F4 C"!out5+out5.tach" A"Filter Fan"
                                M106 P4 X0.30 B0 H0:1:2 T60
                                
                                ; Power ON
                                M81 C"pson"
                                M80 ; switch power on
                                G4 S4 ; wait for expansion boards to boot
                                
                                ; Drives
                                M569 P0 S0 ; Drive 0.0/Z1 motor (rear left)
                                M569 P1 S1 ; Drive 0.1/Z2 motor (rear right)
                                M569 P2 S1 ; Drive 0.2/Z3 motor (front right)
                                M569 P3 S0 ; Drive 0.3/Z4 motor (front left)
                                M569 P4 S1 ; Drive 0.4/E1 motor
                                M569 P5 S0 ; Drive 0.5/E2 motor
                                
                                ; Closed loop drives
                                M569 P123.0 S0 ; X-Motor
                                M569 P124.0 S0 ; U-Motor
                                M569 P125.0 S0 ; Y1-Motor
                                M569 P126.0 S1 ; Y2-Motor
                                M569.1 P123.0 T2 C20 R125 I500 D0.1 H50 ; Configure the 1HCL board at CAN address 123 with a quadrature encoder on the motor shaft that has 20 steps per motor full step.
                                M569.1 P124.0 T2 C20 R125 I500 D0.1 H50 ; Configure the 1HCL board at CAN address 124 with a quadrature encoder on the motor shaft that has 20 steps per motor full step.
                                M569.1 P125.0 T2 C20 R125 I500 D0.1 H50 ; Configure the 1HCL board at CAN address 125 with a quadrature encoder on the motor shaft that has 20 steps per motor full step.
                                M569.1 P126.0 T2 C20 R125 I500 D0.1 H50 ; Configure the 1HCL board at CAN address 126 with a quadrature encoder on the motor shaft that has 20 steps per motor full step.
                                
                                ; Motion System
                                M584 X123.0 Y125.0:126.0 Z0:1:2:3 U124.0 E4:5 ; set 4 Z drivers and add one U driver -> Must come earlier than M350,M906,M92, M201, M203, M208, M350, M566, M574, M667 and M669
                                M350 X32 Y32 Z16 U32 E16:16 I1 ; Configure microstepping with interpolation
                                M92  X160 Y160 Z640 U160 E400:400  ; Set steps per mm
                                M203 X42000 Y42000 Z1800 U42000 E10000:10000; A40000 B40000 ; Set maximum speeds (mm/min)
                                M566 X600 Y600 Z200 U600 E600:600 ; set maximum instantaneous speed changes (mm/min)
                                M201 X30000 Y30000 Z500 U30000 E30000:30000 ;A6000 B6000 ; Set maximum accelerations (mm/s^2)
                                M906 X2400 Y2400 Z1200 U2400 E900:900 I25 ;A300 B300 ; Set motor currents (mA) and motor idle factor in per cent
                                M84 S5 ; Set idle timeout
                                M917 X50 Y50 Z50 U50 ; Set holding current in percent
                                
                                ; Kinematics
                                M669 K11 Y1:-1:0:-1 ; Matrix mapping for Axis - X:Y:Z:U
                                ;M669 K11 X1:0:0:0 Y1:-1:0:-1 Z0:0:1:0 U0:0:0:1 ; Matrix mapping for Axis - X:Y:Z:U
                                ;M669 K1 X1:0:0:0 Y1:-1:0:-1 Z0:0:1:0 U0:0:0:1
                                
                                M671 X-41:495.5:495.5:-41 Y353:353:23:23 S10 ; lead screw positions and maximum allowed correction S in mm
                                G90 ; send absolute coordinates...
                                M83 ; ...but relative extruder moves
                                
                                ; Axis Limits
                                M208 X0 Y0 Z0 U0 S1 ; set axis minima
                                M208 X405 Y323 Z350 U405 S0 ; set axis maxima
                                 
                                ; Endstops
                                M574 X1 S1 P"123.io1.in" ; configure active-high endstop for low end on X via pin io1.in
                                M574 Y2 S1 P"126.io1.in" ; configure active-high endstop for low end on Y via pin io1.in
                                M574 U2 S1 P"124.io1.in" ; configure active-high endstop for high end on U via pin io1.in
                                M574 Z2 S1 P"io3.in" ; configure active-high endstop for high end on Z via pin io0.in
                                
                                ; Z-Probe
                                M558 P5 C"io5.in" H2 A10 S0.01 R0 F300:150 T60000       ; IR Z-Probe 1: set Z probe type and the dive height + speeds
                                M376 H10                                                ; Set height (mm) over which to taper off the bed compensation (should be 20x max mesh error)
                                G31 P500 X0 Y20 Z1.5                                    ; Set Z probe parameters, lower Z-value -> nozzle further down
                                                                        
                                ; Bed Heater
                                M308 S0 P"temp0" A"Bed" Y"thermistor" T100000 B3950 ; define bed temperature sensor
                                M950 H0 C"out8" Q10 T0 ; create bed heater output on bed output and map it to sensor 0
                                M143 H0 S125 ; set temperature limit for heater 0 to 120C
                                M307 H0 R0.383 K0.269:0.000 D2.81 E1.35 S1.00 B0 ; enable PWM mode for the bed heater and set PWM limit
                                M140 H0 ; map heated bed to heater 0
                                
                                ; Hotend1 Heater
                                M308 S1 P"temp1" A"Extruder1" Y"pt1000" R2200 ; configure sensor 1 as PT1000 on pin temp1
                                M950 H1 C"out1" T1 ; create nozzle heater output on out1 and map it to sensor 1
                                M143 H1 S300 ; set temperature limit for heater 1 to 280C
                                M307 H1 R2.872 K0.252:0.115 D1.45 E1.35 S1.00 B0 V23.8
                                
                                ; Hotend2 Heater
                                M308 S2 P"temp2" A"Extruder2" Y"pt1000" R2200 ; configure sensor 2 as PT1000 on pin temp2
                                M950 H2 C"out2" T2 ; create nozzle heater output on out2 and map it to sensor 2
                                M143 H2 S300 ; set temperature limit for heater 2 to 280C
                                M307 H2 R2.872 K0.252:0.115 D1.45 E1.35 S1.00 B0 V23.8 ; disable bang-bang mode for heater and set PWM limit
                                
                                ; Tools
                                ; tool 0, X-axis
                                M563 P0 D0 H1 X0 F1 ; tool 0 uses extruder1 and heater 1 with fan 1 as the print cooling fan
                                M568 P0 R0 S0 ; set standby and active temperatures for tool 0
                                G10 P0 X0 Y0 Z0 S0 R0 ; set tool 0 offsets and temperatures
                                M950 F1 C"out6" ; T0 Fan
                                
                                ; tool 1, U-axis 
                                M563 P1 D1 H2 X3 F2 ; tool 1 uses extruder2 and heater 2 with fan 2 as the print cooling fan and maps X to U
                                M568 P1 R0 S0 ; set standby and active temperatures for tool 1
                                G10 P1 X0 U1.6 Y0 Z0 S0 R0 ; set tool 1 offsets and temperatures. (increase U to move nozzle to the left)
                                M950 F2 C"out7" ; T1 Fan
                                
                                ; Create a tool that prints 2 copies of the object using both carriages'''
                                ;M563 P2 D0:1 H1:2 X0:3 F1:2 S"Duplication Mode" ; tool 2 uses both extruders, hot end heaters and fans, and maps X to both X and U
                                ;G10 P2 X0 Y0 U-205 S0 R0 ; set tool offsets and temperatures
                                ;M567 P2 E1:1 ; set mix ratio 100% on both extruders
                                
                                ; Create a tool that prints 2 mirrored copies of the object using both carriages'''
                                ;M563 P3 D0:1 H1:2 X0:3 F1:2 S"Mirror Mode" ;tool 3 uses both extruders, hot end heaters and fans, and maps X to both X and U
                                ;G10 P3 X0 Y0 U-465 S0 R0 ; set tool offsets and temperatures
                                ;M567 P3 E1:1 ; set mix ratio 100% on both extruders
                                
                                ; Temp sensors
                                M308 S7 Y"mcu-temp" A"MCU" ; configure sensor 5 as thermistor for MCU
                                M308 S3 P"124.temp0" Y"pt1000" R2180     A"Chamber Temp." ; Setup temp  0  on 1HCL at CAN address 50 as sensor 3  - sensing the chamber temperature
                                M308 S4 P"temp3" A"Blower Temp." Y"thermistor" T100000 B3950 ; define bed temperature sensor
                                 ; LED lights
                                M950 P3 C"out3"
                                M42 P3 S1
                                
                                ; Pressure Advance
                                M572 D0:1 S0.02 ; Extruder Drive Number, Pressure advance amount
                                
                                ; Accelerometer
                                ;M955 P0 C"io4.out+io4.in" I05
                                
                                ; input shaping
                                ;M593 P"none" F99
                                M501 ; set the active parameters to those stored in sys/config-override.g
                                
                                M291 P"The printer is not homed, home now?" R"Homing" S3
                                 G28```

                                Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

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

                                  @maxgyver if the vibration occurs when both U and Y motors are driven from the main board, then I don't see how it can be a firmware issue, because in that configuration I can't see any way that the steps would get out of sync.

                                  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

                                  MaxGyverundefined 1 Reply Last reply Reply Quote 1
                                  • martin7404undefined
                                    martin7404
                                    last edited by

                                    I had the same isue with duet wifi and duex5- double makfoged IDEx machine. In the end it was fualty driver on wifi board. New duet wifi solved the isue

                                    Muldex IDEX Duet2+Duex5
                                    Custom CoreXY 600x400 Hemera , Duet3+Toolboard+1HCL closed loop
                                    Sapphire Pro with Duet2, with closed-loop motors
                                    custom high temp E3D tool changer with Duet2+Duex

                                    fcwiltundefined 1 Reply Last reply Reply Quote 0
                                    • fcwiltundefined
                                      fcwilt @martin7404
                                      last edited by

                                      @martin7404 said in IDEX motor jitter:

                                      I had the same isue with duet wifi and duex5- double makfoged IDEx machine. In the end it was fualty driver on wifi board. New duet wifi solved the isue

                                      Since he was tried different drivers on the 6HC and on the three 1HCLs do you think a driver problem is likely?

                                      Thanks.

                                      Frederick

                                      Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                                      1 Reply Last reply Reply Quote 0
                                      • MaxGyverundefined
                                        MaxGyver @dc42
                                        last edited by

                                        @dc42 said in IDEX motor jitter:

                                        @maxgyver if the vibration occurs when both U and Y motors are driven from the main board, then I don't see how it can be a firmware issue, because in that configuration I can't see any way that the steps would get out of sync.

                                        The vibrations are still present when both U and Y motors are driven from the main board.

                                        @fcwilt x16 microstepping makes no difference

                                        What would be the theoretical maximum achievable speed for a system with dual mark forged belts?
                                        I am interested in the math behind this.

                                        I am using GT2 belts with 20teeth pulleys.

                                        MaxGyverundefined 1 Reply Last reply Reply Quote 0
                                        • MaxGyverundefined
                                          MaxGyver @MaxGyver
                                          last edited by MaxGyver

                                          @dc42

                                          I managed to get a slow motion shot of the U axis jitter. This was captured with U and Y driven from the main board.

                                          Video

                                          fcwiltundefined 1 Reply Last reply Reply Quote 1
                                          • fcwiltundefined
                                            fcwilt @MaxGyver
                                            last edited by

                                            @maxgyver said in IDEX motor jitter:

                                            @dc42

                                            I managed to get a slow motion shot of the U axis jitter. This was captured with U and Y driven from the main board.

                                            Video

                                            You are referring to the left/right motion?

                                            Yes, quite obvious.

                                            And if you connect the X driver to the U axis hardware and the U driver to the X axis hardware the problem moves to the X axis hardware?

                                            Frederick

                                            Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                                            MaxGyverundefined 1 Reply Last reply Reply Quote 0
                                            • MaxGyverundefined
                                              MaxGyver @fcwilt
                                              last edited by MaxGyver

                                              @fcwilt said in IDEX motor jitter:

                                              And if you connect the X driver to the U axis hardware and the U driver to the X axis hardware the problem moves to the X axis hardware?

                                              I can test this tomorrow, but when I print with the secondary extruder on the U axis, the same left/right motion is present in X. So I suppose it is not a problem with the U axis hardware.

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