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

    Duet3 config with limit on 7 temp inputs

    Scheduled Pinned Locked Moved Solved
    Beta Firmware
    4
    17
    706
    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.
    • RobMinkundefined
      RobMink
      last edited by RobMink

      I have a duet3 main 6HC and 3X exp 3HC

      I am sure this is a config error on my end, but if I do this:
      M308 S0 P"0.temp0" Y"thermistor" T100000 A"Bed"
      M308 S1 P"1.temp0" Y"thermistor" T100000 A"Head0"
      M308 S2 P"1.temp1" Y"thermistor" T100000 A"Head1"
      M308 S3 P"1.temp2" Y"thermistor" T100000 A"Head2"
      M308 S4 P"2.temp0" Y"thermistor" T100000 A"Head3"
      M308 S5 P"0.temp1" Y"thermistor" T100000 A"Head4"
      M308 S6 P"0.temp2" Y"thermistor" T100000 A"Head5"
      M308 S7 P"3.temp1" Y"thermistor" T100000 A"Test"

      I get an error on Test saying pin 3.temp1 is not free

      If I do the config the way I have the system wired

      M308 S0 P"0.temp0" Y"thermistor" T100000 A"Bed"
      M308 S1 P"1.temp0" Y"thermistor" T100000 A"Head0"
      M308 S2 P"1.temp1" Y"thermistor" T100000 A"Head1"
      M308 S3 P"1.temp2" Y"thermistor" T100000 A"Head2"
      M308 S4 P"2.temp0" Y"thermistor" T100000 A"Head3"
      M308 S5 P"2.temp1" Y"thermistor" T100000 A"Head4"
      M308 S6 P"2.temp2" Y"thermistor" T100000 A"Head5"
      ;M308 S7 P"3.temp1" Y"thermistor" T100000 A"Test"

      I get errors on errors on head 4 and head 5 saying that 2.temp1 and 2.temp2 are not free

      It seems that I can only address the first 7 temp inputs.
      Anyone else have this issue or see that I have a typo here?

      Thanks for taking the time to read this!

      Rob.

      EDIT: I have checked the firmware on all 4 boards using M122, running 3RC1

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

        You can run M308 with nothing but an S to determine the existing definition.

        Try commenting all of these out of your config.g, reboot, and see what M308 S5 (or whatever) tells you as you define each one.

        Example from my machine (that has two tools on it at the moment):

        12/25/2019, 9:49:20 PM	M308 S0
        Sensor 0 (Bed) type Thermistor using pin temp0, reading 23.2, last error: sensor not ready, T:100000.0 B:3950.0 C:0.00e+0 R:2200.0 L:0 H:0
        12/25/2019, 9:49:23 PM	M308 S1
        Sensor 1 type Thermistor using pin 1.temp0, last error: sensor not ready, T:100000.0 B:3950.0 C:0.00e+0 R:2200.0
        12/25/2019, 9:49:25 PM	M308 S2
        Sensor 2 type Thermistor using pin 1.temp1, last error: sensor not ready, T:100000.0 B:3950.0 C:0.00e+0 R:2200.0
        12/25/2019, 9:49:27 PM	M308 S3
        Error: Sensor 3 does not exist
        

        Delta / Kossel printer fanatic

        1 Reply Last reply Reply Quote 0
        • RobMinkundefined
          RobMink
          last edited by RobMink

          M308 S7 P"3.temp1" Y"thermistor" T100000 A"Test"
          Error: Pin 3.temp1 is not free Using the S308 after defining says that it does not exist.

          Hmm, I still get the error after I get past board 2 sensor 0. Also, sensor 0 on board 2 reports 2000C. I just wired it, but I tried swapping thermistors and that did not affect the output.

          good idea for troubleshooting though, thanks!

          Ok, so I did a little more playing around erm, testing. I found that the 7th sensor always reports 2000C. If I change the IDs of the expansion boards, the problem follows the board with id of 2, so this is not a hardware problem.

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

            Sounds like a bug, indeed. @dc42 what do you think?

            Delta / Kossel printer fanatic

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

              My memory is a bit hazy on this but I seem to remember a post from months ago where it was mentioned that there is a limit on the number of temperature channels which can be defined and David increased it. Unfortunately I can't remember what the limit was nor what David increased it to.

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

              1 Reply Last reply Reply Quote 0
              • RobMinkundefined
                RobMink
                last edited by RobMink

                I am no programmer, but I took a look at the firmware. (I know, famous last words!)
                this is in RepRapFirmware.h

                #if SUPPORT_CAN_EXPANSION
                typedef uint64_t SensorsBitmap;
                #else
                typedef uint32_t SensorsBitmap;
                #endif
                
                static_assert(MaxAxes <= sizeof(AxesBitmap) * CHAR_BIT);
                static_assert(MaxExtruders <= sizeof(ExtrudersBitmap) * CHAR_BIT);
                static_assert(MaxFans <= sizeof(FansBitmap) * CHAR_BIT);
                static_assert(MaxHeaters <= sizeof(HeatersBitmap) * CHAR_BIT);
                static_assert(NumDirectDrivers <= sizeof(DriversBitmap) * CHAR_BIT);
                static_assert(MaxSensors <= sizeof(SensorsBitmap) * CHAR_BIT);
                
                

                it seems that using can expansion only doubles the list from the base amount of sensors.

                typedef uint64_t SensorsBitmap;
                #else
                typedef uint32_t SensorsBitmap;
                #endif
                

                also, if I am not mistaken,

                static_assert(MaxSensors <= sizeof(SensorsBitmap) * CHAR_BIT);
                

                would be 8*CHAR_BIT

                I have not looked into the code enough to verify that my hunch is right, I could be totally off base, again, I am no professional programmer!

                EDIT: Nope, I think I am off base, never mind!

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

                  I suspect that problem is that you have previously configured sensors on the expansion boards, then rebooted just the main board. Currently, restarting the main board does not restart the expansion boards (this will be fixed in a subsequent 3.x firmware release). So when you change the pin usage in config.g, you may need to press the reset buttons on the expansion boards, or alternatively power the system down, wait until the blue LEDs have gone out, and then power it up again.

                  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

                  RobMinkundefined 1 Reply Last reply Reply Quote 0
                  • RobMinkundefined
                    RobMink @dc42
                    last edited by

                    @dc42 I wish it was the case. I have tried that, and just tried it again, and alas, when I run M308 SN where N is 4-7 I get errors, also, now I am getting two sensors on the 2nd expansion board to read 2000C

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

                      @RobMink said in Duet3 config with limit on 7 temp inputs:

                      M308 S0 P"0.temp0" Y"thermistor" T100000 A"Bed"
                      M308 S1 P"1.temp0" Y"thermistor" T100000 A"Head0"
                      M308 S2 P"1.temp1" Y"thermistor" T100000 A"Head1"
                      M308 S3 P"1.temp2" Y"thermistor" T100000 A"Head2"
                      M308 S4 P"2.temp0" Y"thermistor" T100000 A"Head3"
                      M308 S5 P"0.temp1" Y"thermistor" T100000 A"Head4"
                      M308 S6 P"0.temp2" Y"thermistor" T100000 A"Head5"
                      M308 S7 P"3.temp1" Y"thermistor" T100000 A"Test"

                      I don't get any errors when I run that sequence, but there is something not quite right:

                      26/12/2019, 14:37:52 	M308 S8
                      Error: Sensor 8 does not exist
                      26/12/2019, 14:37:48 	M308 S7
                      Sensor 7 type Thermistor using pin 3.temp1, last error: sensor open circuit, T:100000.0 B:4388.0 C:0.00e+0 R:2200.0
                      26/12/2019, 14:37:45 	M308 S6
                      Sensor 6 (Head5) type Thermistor using pin temp2, reading -273.1, last error: sensor open circuit, T:100000.0 B:4388.0 C:0.00e+0 R:2200.0 L:0 H:0
                      26/12/2019, 14:37:43 	M308 S5
                      Sensor 5 (Head4) type Thermistor using pin temp1, reading -273.1, last error: sensor open circuit, T:100000.0 B:4388.0 C:0.00e+0 R:2200.0 L:0 H:0
                      26/12/2019, 14:37:41 	M308 S4
                      Sensor 4 type Thermistor using pin 2.temp0, last error: sensor open circuit, T:100000.0 B:4388.0 C:0.00e+0 R:2200.0
                      26/12/2019, 14:37:40 	M308 S3
                      Sensor 3 type Thermistor using pin 1.temp2, last error: sensor open circuit, T:100000.0 B:4388.0 C:0.00e+0 R:2200.0
                      26/12/2019, 14:37:38 	M308 S2
                      Sensor 2 type Thermistor using pin 1.temp1, last error: sensor open circuit, T:100000.0 B:4388.0 C:0.00e+0 R:2200.0
                      26/12/2019, 14:37:36 	M308 S1
                      Sensor 1 type Thermistor using pin 1.temp0, last error: success, T:100000.0 B:4388.0 C:0.00e+0 R:2200.0
                      26/12/2019, 14:37:32 	M308 S0
                      Sensor 0 (Bed) type Thermistor using pin temp0, reading -273.1, last error: sensor open circuit, T:100000.0 B:4388.0 C:0.00e+0 R:2200.0 L:0 H:0
                      

                      When i query the sensors individually, it only prints the sensor name and current reading for sensors connected to the main board. I will look into it.

                      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

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

                        I also tried running the second sequence:

                        M308 S0 P"0.temp0" Y"thermistor" T100000 A"Bed"
                        M308 S1 P"1.temp0" Y"thermistor" T100000 A"Head0"
                        M308 S2 P"1.temp1" Y"thermistor" T100000 A"Head1"
                        M308 S3 P"1.temp2" Y"thermistor" T100000 A"Head2"
                        M308 S4 P"2.temp0" Y"thermistor" T100000 A"Head3"
                        M308 S5 P"2.temp1" Y"thermistor" T100000 A"Head4"
                        M308 S6 P"2.temp2" Y"thermistor" T100000 A"Head5"
                        M308 S7 P"3.temp1" Y"thermistor" T100000 A"Test"
                        

                        That works for me too.

                        Are you sure that you don't have any other M308 commands earlier in config.g?

                        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
                        • RobMinkundefined
                          RobMink
                          last edited by

                          Here is my entire config.g

                          ; Config for piper2v2 with tool changing - RAM - 13 heads
                          
                          ; General preferences
                          G90                             ; Send absolute coordinates...
                          M83                             ; ...but relative extruder moves
                          
                          ; Network
                          M550 P"Duet3"                   ; Set machine name
                          M552 S1                         ; Enable network
                          M586 P0 S1                      ; Enable HTTP
                          M586 P1 S0                      ; Disable FTP
                          M586 P2 S0                      ; Disable Telnet
                          
                          ; Drives
                          M584 X0.0 Y0.1 Z0.2:0.3:0.4:0.5 E1.0:1.1:1.2:2.0:2.1:2.2                ; Map Drives to Axis
                          M669 K1                         ; Select CoreXY mode
                          M564 H0				; Allow axis movement prior to homing
                          M569 P0 S0 V118                 ; Drive 0 goes backwards, Stealthchop2 till about 78 mm/sec
                          M569 P1 S1 V118                 ; Drive 1 goes forwards, Stealthchop2 till about 78 mm/sec
                          M569 P2 S1 V118                 ; Drive 2 goes forwards, Stealthchop2 till about 78 mm/sec	;xmax ymin Z
                          M569 P3 S0 V118                 ; Drive 3 goes backwards, Stealthchop2 till about 78 mm/sec   ;XMIN YMIN Z
                          M569 P4 S0 V118			;XMAX, YMAX Z
                          M569 P5 S0 V118			;X0,YMAX Z
                          M350 X16 Y16 Z16 E16 I1         ; Configure microstepping with interpolation
                          M92 X80 Y80 Z400 E784	        ; Set steps per mm
                          M566 X60 Y60 Z24 E1200          ; Set maximum jerk (mm/min)
                          M203 X30000 Y30000 Z1500 E800   ; Set maximum speeds (mm/min)
                          M201 X900 Y900 Z300 E1000 I1    ; Set accelerations (mm/s^2)
                          M906 X1000 Y1000 Z1800 E1500 I30 ; Set motor currents (mA) and motor idle factor in per cent
                          M84 S30                         ; Set idle timeout
                          
                          ; Tool
                          M563 P0 D0 H1 F0 S"Extruder0"    ; 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 D1 H2 F1 S"Extruder1"    ; Define tool 1
                          G10 P1 X0 Y0 Z0                 ; Set tool 1 axis offsets
                          G10 P1 R0 S0                    ; Set initial tool 1 active and standby temperatures to 0C
                          
                          M563 P2 D2 H3 F2 S"Extruder2"    ; Define tool 2
                          G10 P2 X0 Y0 Z0                 ; Set tool 2 axis offsets
                          G10 P2 R0 S0                    ; Set initial tool 2 active and standby temperatures to 0C
                          
                          M563 P3 D3 H4 F3 S"Extruder3"    ; Define tool 3
                          G10 P3 X0 Y0 Z0                 ; Set tool 2 axis offsets
                          G10 P3 R0 S0                    ; Set initial tool 2 active and standby temperatures to 0C
                          
                          M563 P4 D4 H5 F4 S"Extruder4"    ; Define tool 4
                          G10 P4 X0 Y0 Z0                 ; Set tool 2 axis offsets
                          G10 P4 R0 S0                    ; Set initial tool 2 active and standby temperatures to 0C
                          
                          M563 P5 D5 H6 F5 S"Extruder5"    ; Define tool 5
                          G10 P5 X0 Y0 Z0                 ; Set tool 2 axis offsets
                          G10 P5 R0 S0                    ; Set initial tool 2 active and standby temperatures to 0C
                          
                          
                          ; Fans
                          M950 F0 C"1.out6"
                          M106 P0 S1 H1 T45 C"Extruder0"       ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
                          M950 F1 C"1.out7"
                          M106 P1 S1 H2 T45 C"Extruder1"       ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on
                          M950 F2 C"1.out8"
                          M106 P2 S1 H3 T45 C"Extruder2"       ; Set fan 3 value, PWM signal inversion and frequency. Thermostatic control is turned on
                          M950 F3 C"2.out6"
                          M106 P3 S1 H4 T45 C"Extruder3"       ; Set fan 4 value, PWM signal inversion and frequency. Thermostatic control is turned on
                          M950 F4 C"2.out7"
                          M106 P4 S1 H5 T45 C"Extruder4"       ; Set fan 5 value, PWM signal inversion and frequency. Thermostatic control is turned on
                          M950 F5 C"2.out8"
                          M106 P5 S1 H6 T45 C"Extruder5"       ; Set fan 6 value, PWM signal inversion and frequency. Thermostatic control is turned on
                          
                          ; Heaters
                          M308 S0 P"temp0" Y"thermistor" T100000 A"Bed"
                          M308 S1 P"1.temp0" Y"thermistor" T100000 A"Head0"
                          M308 S2 P"1.temp1" Y"thermistor" T100000 A"Head1"
                          M308 S3 P"1.temp2" Y"thermistor" T100000 A"Head2"
                          M308 S4 P"2.temp0" Y"thermistor" T100000 A"Head3"
                          M308 S5 P"2.temp1" Y"thermistor" T100000 A"Head4"
                          M308 S6 P"2.temp2" Y"thermistor" T100000 A"Head5"
                          M308 S7 P"3.temp1" Y"thermistor" T100000 A"Test"
                          M950 H0 C"out0" T0                ; heater 0 
                          M950 H1 C"1.out0" T1              ; heater 1 
                          M950 H2 C"1.out1" T2              ; heater 2 
                          M950 H3 C"1.out2" T3              ; heater 3 
                          M950 H4 C"2.out0" T4              ; heater 4 
                          M950 H5 C"2.out1" T5              ; heater 5 
                          M950 H6 C"2.out2" T6              ; heater 6 
                          
                          
                          ; Pressure Advance
                          M572 D0 S0.074
                          
                          ; Axis Limits
                          M208 X0 Y0 Z0 S1                ; Set axis minima
                          M208 X950 Y950 Z600 S0          ; Set axis maxima
                          
                          ; Endstops
                          
                          M574 X1 P"!io1.in" S1                   
                          M574 Y1 P"!io2.in" S1   
                          

                          as you can see it is a work in progress.

                          Thanks again for looking at this!

                          1 Reply Last reply Reply Quote 0
                          • RobMinkundefined
                            RobMink
                            last edited by RobMink

                            Ok, so I did a little more troubleshooting. Bear with me here...

                            I cut the config to just the following.

                            ;Heaters
                            
                            M308 S0 P"temp0" Y"thermistor" T100000 A"Bed"
                            M308 S1 P"1.temp0" Y"thermistor" T100000 A"Head0"
                            M308 S2 P"1.temp1" Y"thermistor" T100000 A"Head1"
                            M308 S3 P"1.temp2" Y"thermistor" T100000 A"Head2"
                            M308 S4 P"2.temp0" Y"thermistor" T100000 A"Head3"
                            M308 S5 P"2.temp1" Y"thermistor" T100000 A"Head4"
                            M308 S6 P"2.temp2" Y"thermistor" T100000 A"Head5"
                            M308 S7 P"3.temp0" Y"thermistor" T100000 A"Test"
                            
                            M950 H0 C"0.out1" T0  ;Bed heater
                            M950 H1 C"1.out0" T1  ;Extruder0
                            M950 H2 C"1.out1" T2  ;Extruder1
                            M950 H3 C"1.out2" T3  ;Extruder2
                            ;M950 H4 C"2.out0" T4  ;Extruder3
                            ;M950 H5 C"2.out1" T5  ;Extruder4
                            ;M950 H6 C"2.out2" T6  :Extruder5
                            
                            
                            

                            creates no error, but when I un-comment out the last few lines....

                            
                            ;Heaters
                            
                            M308 S0 P"temp0" Y"thermistor" T100000 A"Bed"
                            M308 S1 P"1.temp0" Y"thermistor" T100000 A"Head0"
                            M308 S2 P"1.temp1" Y"thermistor" T100000 A"Head1"
                            M308 S3 P"1.temp2" Y"thermistor" T100000 A"Head2"
                            M308 S4 P"2.temp0" Y"thermistor" T100000 A"Head3"
                            M308 S5 P"2.temp1" Y"thermistor" T100000 A"Head4"
                            M308 S6 P"2.temp2" Y"thermistor" T100000 A"Head5"
                            M308 S7 P"3.temp0" Y"thermistor" T100000 A"Test"
                            
                            M950 H0 C"0.out1" T0  ;Bed heater
                            M950 H1 C"1.out0" T1  ;Extruder0
                            M950 H2 C"1.out1" T2  ;Extruder1
                            M950 H3 C"1.out2" T3  ;Extruder2
                            M950 H4 C"2.out0" T4  ;Extruder3
                            M950 H5 C"2.out1" T5  ;Extruder4
                            M950 H6 C"2.out2" T6  ;Extruder5
                            
                            

                            creates an error.

                            12/26/2019, 2:14:33 PM Warning: Sensor number 5 has not been defined
                            12/26/2019, 2:14:33 PM Error: M308: Pin 2.temp1 is not free
                            12/26/2019, 2:14:33 PM Error: M308: Pin 2.temp2 is not free
                            12/26/2019, 2:14:33 PM Warning: Sensor number 6 has not been defined

                            And every time I update the config I shut down the pi and cut all power for 20 seconds right now, just for grins.

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

                              Thanks, I have reproduced that.

                              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

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

                                I found the problem. For now, don't assign heater numbers greater than 5 to ports on expansion boards. Will be fixed in RC2.

                                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
                                • RobMinkundefined
                                  RobMink
                                  last edited by

                                  Nice work, thank you!

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

                                    There are new builds of Duet 3 main and expansion board firmware at https://www.dropbox.com/sh/3azy1njy3ayjsbp/AACquxr2m00eV568RZg5QG5wa?dl=0 with this fixed.

                                    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 1
                                    • RobMinkundefined
                                      RobMink
                                      last edited by

                                      Confirmed Fixed.

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