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

help with config.g

Scheduled Pinned Locked Moved
General Discussion
5
29
1.4k
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.
  • undefined
    patterson6 @jay_s_uk
    last edited by 12 Mar 2021, 13:23

    @jay_s_uk

    tried both 0 and 1 no go...

    ;****************************************** Hotend ********************************************************************
    M308 S1 P"spi.cs0" Y"rtd-max31865" ; configure sensor 0 as thermistor // Smart effector // pt 100 // on daugherboard
    M950 H0 C"out1" T0 ; create nozzle heater output on out1 and map it to sensor 0
    M307 H0 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
    M143 H0 S380 ; set temperature limit for heater 0 to 380C

    undefined 1 Reply Last reply 12 Mar 2021, 13:27 Reply Quote 0
    • undefined
      jay_s_uk @patterson6
      last edited by 12 Mar 2021, 13:27

      @patterson6 said in help with config.g:

      @jay_s_uk

      tried both 0 and 1 no go...

      ;****************************************** Hotend ********************************************************************
      M308 S1 P"spi.cs0" Y"rtd-max31865" ; configure sensor 0 as thermistor // Smart effector // pt 100 // on daugherboard
      M950 H0 C"out1" T0 ; create nozzle heater output on out1 and map it to sensor 0
      M307 H0 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
      M143 H0 S380 ; set temperature limit for heater 0 to 380C

      you should be using H1 rather H0 otherwise the heater won't be created correctly for the tool

      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

      undefined 1 Reply Last reply 12 Mar 2021, 16:33 Reply Quote 0
      • undefined
        patterson6 @Veti
        last edited by 12 Mar 2021, 13:34

        @Veti what do you mean its not a result of a delta calibration? what am i missing? Where would the M501 go? Yeah i didnt pid tune anything yet. Just trying to get it all working first. I am not great with Gcode.

        undefined 1 Reply Last reply 12 Mar 2021, 14:00 Reply Quote 0
        • undefined
          Veti @patterson6
          last edited by 12 Mar 2021, 14:00

          @patterson6
          please read https://duet3d.dozuki.com/Wiki/Calibrating_a_delta_printer#Section_Auto_calibration

          1 Reply Last reply Reply Quote 0
          • undefined
            patterson6 @jay_s_uk
            last edited by 12 Mar 2021, 16:33

            @jay_s_uk what does the S do in M308? reprap says sensor number but idk whats what. i was just matching the heater number. also still dont work. i tried both spi.cs1 and spi.cs0

            ;HEATERSHEATERSHEATERSHEATERSHEATERSHEATERSHEATERSHEATERSHEATERSHEATERSHEATERSHEATERS

            ;****************************************** Hotend ********************************************************************
            M308 S3 P"spi.cs1" Y" rtd-max31865" ; define temperature sensor number 3 as a PT100 on the first port of a temperature daughter board plugged into mainboard
            M950 H1 C"out1" T0 ; create nozzle heater output on out1 and map it to sensor 0
            M307 H1 A498.0 C324.4 D4.2 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
            M143 H1 S350 ; set temperature limit for heater 0 to 350C
            ;****************************************** Chamber/Radiator heater ****************************************************
            M308 S1 P"temp2" Y"thermistor" T50000 B3950 ; configure sensor 1 as thermistor on pin temp2 two sensors wired together
            M570 H0 P10000 T15 ; Set heater fault detection for out 3, 1,000 second anomaly, 10c excursion
            M950 H0 C"out3" T1 ; create chamber heater output on out3 and map it to sensor 1
            M307 H0 A72.0 C71.5 D1.4 B0 S1.00 ; disable bang-bang mode for the chamber heater and set PWM limit
            M141 H0 ; map chamber to heater 1
            M143 H0 S90 ; set temperature limit for heater 1 to 90C
            ;
            ***************************************** Bed Heater ****************************************************************
            M308 S2 P"temp0" Y"thermistor" T100000 B4138 ; configure sensor 2 as thermistor on pin temp0
            M950 H2 C"out0" T2 ; create bed heater output on out0 and map it to sensor 2
            M307 H2 A183.1 C1561.5 D.7 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit
            M140 H2 ; map heated bed to heater 2
            M143 H2 S120 ; set temperature limit for heater 2 to 120C

            1 Reply Last reply Reply Quote 0
            • undefined
              Phaedrux Moderator
              last edited by 12 Mar 2021, 20:33

              Here's what a sane setup for heaters looks like right out of the config tool.

              ; 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 B0 S1.00                             ; disable bang-bang mode for the bed heater and set PWM limit
              M140 H0                                      ; map heated bed to heater 0
              M143 H0 S120                                 ; set temperature limit for heater 0 to 120C
              M308 S1 P"spi.cs0" Y"rtd-max31865"           ; configure sensor 1 as thermocouple via CS pin spi.cs0
              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 S280                                 ; set temperature limit for heater 1 to 280C
              M308 S2 P"temp1" Y"thermistor" T100000 B3950 ; configure sensor 2 as thermistor on pin temp1
              M950 H2 C"out2" T2                           ; create chamber heater output on out2 and map it to sensor 2
              M307 H2 B0 S1.00                             ; disable bang-bang mode for the chamber heater and set PWM limit
              M141 H2                                      ; map chamber to heater 2
              M143 H2 S280                                 ; set temperature limit for heater 2 to 280C
              

              I didn't duplicate your fans or tools though.

              Z-Bot CoreXY Build | Thingiverse Profile

              undefined 1 Reply Last reply 13 Mar 2021, 22:56 Reply Quote 1
              • undefined
                patterson6 @Phaedrux
                last edited by 13 Mar 2021, 22:56

                @Phaedrux I found that at the bottom H1 was not declared under tools. So now my hotend pops up on dwc but under current for temp i am reading 2000.0c before it was just n/a. so then i changed the spi.cs0 to spi.cs1 even spi.cs2 even spi.cs3. nothing worked and all said 2000c. I checked all my connections and everything seems right.

                The bright side my expansion board came today and i wired up the rgb led and found the extension on the out.6 pin just need an 1.out.6. So those work and i also added some more thermistors in extra. Pretty cool. I wish the trend chart was bigger.

                ; Configuration file for Duet 3 (firmware version 3)

                ;NETWORKNETWORKNETWORKNETWORKNETWORKNETWORKNETWORKNETWORKNETWORKNETWORKNETWORKNETWORK***NETWORK
                M552 P0.0.0.0 S1 ; enable network and acquire dynamic address via DHCP
                M586 P0 S1 ; enable HTTP
                M586 P1 S0 ; disable FTP
                M586 P2 S0 ; disable Telnet

                ;GENERAL PREFERENCESGENERAL PREFERENCESGENERAL PREFERENCESGENERAL PREFERENCESGENERAL PREFERENCESGENERAL PREFERENCES
                G90 ; send absolute coordinates...
                M83 ; ...but relative extruder moves
                M550 P"Duet 3" ; set printer name
                M665 R316 L616.42 B215 H989.4 ; Set delta radius, diagonal rod length, printable radius and homed height
                M666 X0 Y0 Z0 ; put your endstop adjustments here, or let auto calibration find them

                ;DRIVESDRIVESDRIVESDRIVESDRIVESDRIVESDRIVESDRIVESDRIVESDRIVESDRIVESDRIVESDRIVES
                ;X,Y,Z stepper motors 23HM22-2804S https://www.omc-stepperonline.com/nema-23-bipolar-0-9deg-1-26nm-178-4oz-in-2-8a-2-5v-57x57x56mm-4-wires.html
                ;E steper motor 42BYGHW811 on Nimble 2
                M569 P0.0 S1 ; physical drive 0.0 goes forwards
                M569 P0.1 S1 ; physical drive 0.1 goes forwards
                M569 P0.2 S1 ; physical drive 0.2 goes forwards
                M569 P0.3 S0 ; physical drive 0.3 goes backwards
                M584 X0.0 Y0.1 Z0.2 E0.3 ; set drive mapping
                M350 X64 Y64 Z64 E16 I1 ; configure microstepping with interpolation
                M92 X640.00 Y640.00 Z640.00 E1775.00 ; set steps per mm
                M566 X72000.00 Y72000.00 Z72000.00 E2400.00 ; set maximum instantaneous speed changes (mm/min)
                M203 X330000.00 Y330000.00 Z330000.00 E216000.00 ; set maximum speeds (mm/min)
                M201 X5400.00 Y5400.00 Z5400.00 E120.00 ; set accelerations (mm/s^2)
                M906 X2800 Y2800 Z2800 E1800 I40 ; set motor currents (mA) and motor idle factor in per cent
                M84 S30 ; Set idle timeout

                ;AXIS LIMITSAXIS LIMITSAXIS LIMITSAXIS LIMITSAXIS LIMITSAXIS LIMITSAXIS LIMITSAXIS LIMITS***AXIS LIMITS
                M208 Z0 S1 ; set minimum Z

                ;ENDSTOPSENDSTOPSENDSTOPSENDSTOPSENDSTOPSENDSTOPSENDSTOPSENDSTOPSENDSTOPSENDSTOPS***ENDSTOPS
                M574 X2 S1 P"io0.in" ; configure active-high endstop for high end on X via pin io0.in
                M574 Y2 S1 P"io1.in" ; configure active-high endstop for high end on Y via pin io1.in
                M574 Z2 S1 P"io2.in" ; configure active-high endstop for high end on Z via pin io2.in

                ;Z-PROBEZ-PROBEZ-PROBEZ-PROBEZ-PROBEZ-PROBEZ-PROBEZ-PROBEZ-PROBEZ-PROBEZ-PROBEZ-PROBE
                M558 P5 R0.4 C"io3.in+io3.out" H5 F500 T1500 ; set Z probe type to effector and the dive height + speeds
                G31 P100 X0 Y0 Z4 ; set Z probe trigger value, offset and trigger height
                M557 R215 S25 ; define mesh grid

                ;****************************************** Hotend ********************************************************************
                M308 S1 P"spi.cs0" Y"rtd-max31865" A"Hotend" ; define temperature sensor number 1 as a PT100 on the first port of a temperature daughter board plugged into mainboard
                M950 H1 C"out1" T1 ; create nozzle heater output on out1 and map it to sensor 1
                M307 H1 A498.0 C324.4 D4.2 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
                M143 H1 S280 ; set temperature limit for heater 0 to 280C
                ;****************************************** Chamber/Radiator heater ****************************************************
                M308 S2 P"temp2" Y"thermistor" A"Radiator" T50000 B3950 R2300 ; configure sensor 2 as thermistor on pin temp2 two sensors wired parallel
                M570 H2 P10000 T15 ; Set heater fault detection for out 3, 1,000 second anomaly, 10c excursion
                M950 H2 C"out3" T2 ; create chamber heater output on out3 and map it to sensor 2
                M307 H2 A72.0 C71.5 D1.4 B0 S1.00 ; disable bang-bang mode for the chamber heater and set PWM limit
                M141 H2 ; map chamber to heater 2
                M143 H2 S90 ; set temperature limit for heater 2 to 90C
                ;
                ***************************************** Bed Heater ****************************************************************
                M308 S0 P"temp0" Y"thermistor" A"Bed" 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 A183.1 C1561.5 D.7 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit
                M140 H0 ; map heated bed to heater 0
                M143 H0 S120 ; set temperature limit for heater 2 to 120C

                ;EXTRASEXTRASEXTRASEXTRASEXTRASEXTRASEXTRASEXTRASEXTRASEXTRASEXTRASEXTRASEXTRASEXTRAS
                ;****************************************** Recirc air temp from hepa ****************************************************
                M308 S5 P"temp3" Y"thermistor" A"Filter air temp" T100000 B3950 R2500 ; configure sensor 5 as thermistor on pin temp3
                ;****************************************** MCU Temp *****************************************************************
                M308 S6 Y"mcu-temp" A"MCU" ; configure sensor 6 as mcu temp on motherboard
                ;****************************************** Air temp above effector ****************************************************
                M308 S7 P"temp1" Y"thermistor" A"Effector air temp" T100000 B3950 ; configure sensor 6 as thermistor on pin temp3

                ;COOLINGCOOLINGCOOLINGCOOLINGCOOLINGCOOLINGCOOLINGCOOLINGCOOLINGCOOLINGCOOLINGCOOLING
                ;****************************************** Water pump for hotend ****************************************************
                M950 F0 C"out5" Q500 ; create fan 0 on pin out5 and set its frequency
                M106 P0 C"water pump " S1 H1:1 T35 ; set fan 0 name and value. Thermostatic control is turned on
                ;****************************************** Chamber fan blowing on radiator*******************************************
                M950 F1 C"out8" Q500 ; create fan 1 on pin out8 and set its frequency
                M106 P1 C"radiator fan" S1 H1:1 T35 ; set fan 1 name and value. Thermostatic control is turned on
                ;****************************************** Recirc/hepa filter fan ****************************************************
                M950 F2 C"out7" Q500 ; create fan 2 on pin out7 and set its frequency
                M106 P2 C"recirc/hepa fan" S1 H1:1 T35 ; set fan 2 value. Thermostatic control is turned on
                ;****************************************** Berd air ******************************************************************
                M950 F3 C"out4" Q500 ; create fan 3 on pin out4 and set its frequency
                ;M106 P3 C"berd air" S1 H3 T35 ; set fan 3 value. Thermostatic control is turned on // Not needed at this time

                ;LEDLEDLEDLEDLEDLEDLEDLEDLEDLEDLEDLEDLEDLEDLEDLEDLEDLEDLEDLED
                ;***************************************** RGBW led strip on build area **********************************************
                M950 F4 C"out9" ; create white led on mainboard pin out9
                M950 F5 C"1.out6" ; create red led on expansion pin out 6
                M950 F6 C"1.out7" ; create green led on expansion pin out 7
                M950 F7 C"1.out8" ; create blue led on expansion pin out 8

                ;TOOLSTOOLSTOOLSTOOLSTOOLSTOOLSTOOLSTOOLSTOOLSTOOLSTOOLSTOOLSTOOLSTOOLS***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

                ;MiscellaneousMiscellaneousMiscellaneousMiscellaneousMiscellaneousMiscellaneousMiscellaneousMiscellaneous
                M501 ; load saved parameters from non-volatile memory

                undefined 1 Reply Last reply 13 Mar 2021, 23:48 Reply Quote 0
                • undefined
                  Phaedrux Moderator @patterson6
                  last edited by 13 Mar 2021, 23:48

                  @patterson6 said in help with config.g:

                  i changed the spi.cs0 to spi.cs1 even spi.cs2 even spi.cs3. nothing worked and all said 2000c.

                  Photo of your wiring at the daughterboard?

                  Z-Bot CoreXY Build | Thingiverse Profile

                  undefined 1 Reply Last reply 14 Mar 2021, 00:18 Reply Quote 0
                  • undefined
                    patterson6 @Phaedrux
                    last edited by 14 Mar 2021, 00:18

                    @Phaedrux image1.jpeg image0.jpeg

                    from the duet 2 to duet 3 the rest of the hardware has been untouched. Its been a year but i think the pt100 was working at that time.

                    1 Reply Last reply Reply Quote 0
                    • undefined
                      Phaedrux Moderator
                      last edited by 14 Mar 2021, 00:20

                      Can you get a closer show of the daughterboard itself? Can you remove it and reseat it?

                      Z-Bot CoreXY Build | Thingiverse Profile

                      undefined 1 Reply Last reply 14 Mar 2021, 00:24 Reply Quote 0
                      • undefined
                        patterson6 @Phaedrux
                        last edited by 14 Mar 2021, 00:24

                        @Phaedrux i removed it and checked the pins. seems to be seated properly. i have an extra smart effector i can try that i guess. if not i can buy another pt100. seems more like software.

                        1 Reply Last reply Reply Quote 0
                        • undefined
                          Phaedrux Moderator
                          last edited by 14 Mar 2021, 00:26

                          Can you do this test on the daughterboard?

                          https://duet3d.dozuki.com/Wiki/Connecting_PT100_temperature_sensors#Section_To_test_the_functionality_of_one_of_the_PT100_channels

                          Z-Bot CoreXY Build | Thingiverse Profile

                          undefined 2 Replies Last reply 14 Mar 2021, 00:28 Reply Quote 0
                          • undefined
                            patterson6 @Phaedrux
                            last edited by 14 Mar 2021, 00:28

                            @Phaedrux pretty sure i can. give me a little bit

                            1 Reply Last reply Reply Quote 0
                            • undefined
                              patterson6 @Phaedrux
                              last edited by 14 Mar 2021, 15:21

                              @Phaedrux so i found a 100ohm in my bin and wired it up. On channel P"spi.cs0". I am now getting 4.3c on the hotend. So i am going to put in the new smart effector when i can and order a new pt100 to be safe. thanks

                              1 Reply Last reply Reply Quote 0
                              • undefined
                                Phaedrux Moderator
                                last edited by 14 Mar 2021, 15:54

                                The daughter board comes with a 100Ω resistor that you can wire in place of a two wire sensor to check the board is working correctly. With the resistor in place, the reading should be 0°C.

                                If the reading at room temperature is higher than it should be, then you probably have a bad connection between the RTD interface board and the sensor, or the wires to the sensor are too long or too thin. Each additional ohm of wiring resistance will increase the temperature reading by 2.5C. Using a 4 wire solution PT100 sensor will improve this. If you only have a 2 wire P100 sensor you can still improve the accuracy by using 4 wires for the majority of the distance

                                Z-Bot CoreXY Build | Thingiverse Profile

                                undefined 1 Reply Last reply 24 Mar 2021, 14:21 Reply Quote 0
                                • undefined
                                  patterson6 @Phaedrux
                                  last edited by 24 Mar 2021, 14:21

                                  @Phaedrux You mind checking my starting and ending scripts? The starting script seems to work like it should. let me know if you see anything out of place or odd. The ending script does not work like it really should. One of the main problems was the color Teal would not even show in the cool down period. It would just go to green as showing finished.

                                  starting script

                                  ;*********************************** RED HEATING UP ********************************************
                                  M106 P4 S0.0 ; Turn off white led
                                  M106 P5 S1.0 ; Turn on red led
                                  M106 P6 S0.0 ; Turn off green led
                                  M106 P7 S0.0 ; Turn off blue led
                                  ;*************************************************************************************************

                                  G21 ; Set Units to Millimeters
                                  G90 ; Set to Absolute Positioning
                                  M82 ; Set extruder to absolute mode
                                  G28 ; Home
                                  M400 ; Finish all moves above first

                                  M104 S140 ; Set extruder temperature
                                  M141 H2 S70 ; Set chamber radiator temperature
                                  ;M141 H2 S35 ; Set chamber recirc temperature *not in use at this time
                                  M191 P70 ; Wait for chamber temperature to reach target temp
                                  M109 S140 ; Wait for extruder temperature to reatch target temp
                                  M400 ; Finish all moves above firrst

                                  ;********************************** PURPLE * PRE HEATED and START CALI * **************************
                                  M106 P7 S1.0 ; Turn on blue to make purple
                                  ;**************************************************************************************************

                                  G32 ; Auto Calibration
                                  M400 ; Finish all moves above first

                                  ;********************************** ORANGE Achieve final temps * ***********************************
                                  M106 P6 S0.06 ; Turn on green led 6% to make orange
                                  M106 P7 S0.0 ; Turn off blue
                                  ;
                                  *************************************************************************************************

                                  M104 S[extruder0_temperature] T0 ; Set extruder temperature
                                  M109 S[extruder0_temperature] T0 ; Set extruder temperature to first layer temp
                                  M400 ; Finish all moves above first

                                  ;*********************************** WHITE * START PRINT* *****************************************
                                  M106 P4 S1.0 ; Turn on white led
                                  M106 P5 S0.0 ; Turn off red led
                                  M106 P6 S0.0 ; Turn off green led
                                  M106 P7 S0.0 ; Turn off blue led
                                  ;**************************************************************************************************

                                  ending script

                                  G28 ; Move home
                                  M104 S0 ; Cool the extruder
                                  M106 P3 S0.0 ; Turn off berd-air

                                  ;*********************************** TEAL COOLING OFF *********************************************
                                  M106 P4 S0.0 ; Turn off white led
                                  M106 P5 S0.0 ; Turn off red led
                                  M106 P6 S1.0 ; Turn on green led
                                  M106 P7 S1.0 ; Turn on blue led
                                  ;****************************************************************************************************

                                  M191 S35 ; Wait for chamber temperature to reach target temp
                                  M190 S35 ; Wait for bed temperature to reach target temp
                                  M400 ; Finish all moves above first

                                  M140 S0 ; Turn off bed
                                  M141 H2 S0 ; Turn off chamber radiator
                                  ;M141 H2 S0 ; Turn off chamber recirc heater *not in use at this time
                                  M400 ; Finish all moves above first

                                  ;*********************************** GREEN FINISHED **********************************************
                                  M106 P4 S0.0 ; Turn off white led
                                  M106 P5 S0.0 ; Turn off red led
                                  M106 P6 S1.0 ; Turn on green led
                                  M106 P7 S0.0 ; Turn off blue led
                                  ;***************************************************************************************************

                                  M84 ; Disable motors
                                  ;end

                                  undefined 1 Reply Last reply 24 Mar 2021, 21:35 Reply Quote 0
                                  • undefined
                                    Phaedrux Moderator @patterson6
                                    last edited by 24 Mar 2021, 21:35

                                    @patterson6 said in help with config.g:

                                    M191 S35 ; Wait for chamber temperature to reach target temp
                                    M190 S35 ; Wait for bed temperature to reach target temp

                                    It's probably ignoring these commands because the target temp is too low.

                                    Note: M190 will not wait for temperatures below 40c because in many cases they may never be reached due to ambient temps. So if you want to wait for a bed to cool, use 41c or higher.

                                    This goes for all the other heater commands as well.

                                    Z-Bot CoreXY Build | Thingiverse Profile

                                    undefined 1 Reply Last reply 2 Apr 2021, 15:15 Reply Quote 0
                                    • undefined
                                      patterson6 @Phaedrux
                                      last edited by 2 Apr 2021, 15:15

                                      @phaedrux

                                      ok so i really haven't been able to print anything yet. The problem i am having is the nozzle is pushing down on the bed at the start of the print. Added 2mm to Z-axis in S3D and im still getting the same effect. I tried just using auto cali, mesh and then both and same results in starting script. When i G32 i M500 and saved the info to config override. The height map is mostly green with a touch of blue after G29. Im not great at this part. What would you need to see to help me?

                                      Back on the duet 2 i had this bad boy printing anywhere with no prob using mesh. I dont have a mesh.g. Do i need one? Thanks

                                      1 Reply Last reply Reply Quote 0
                                      • undefined
                                        Phaedrux Moderator
                                        last edited by 2 Apr 2021, 15:33

                                        Let's see your bed.g, homedelta.g for starters.

                                        Z-Bot CoreXY Build | Thingiverse Profile

                                        undefined 2 Replies Last reply 2 Apr 2021, 15:57 Reply Quote 0
                                        • undefined
                                          patterson6 @Phaedrux
                                          last edited by 2 Apr 2021, 15:57

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