A Duet 3, Distribution Board, and a 1LC walk into a bar...



  • I have a Duet 3 6HC, Distribution Board, and Toolboard 1LC. They are running with a rPi host and everything on the network end of things seems great. The printer is a DIY i3 style frame, trap screws for the y- and z-axes, x-axis belt drive, and Hemera hotend. It is mechanically sound and the electrical connections to motors and limit switches have been confirmed as correct.

    I can home the machine successfully. Manual control of the machine is spot on. Limit switches function properly. The bed heater seems to work, however it heats up at a rate slower than the expected 1.7C per second, and it throws a flag. The thermistor values change, but their accuracy is unclear.

    I can not run the extruder motor. Neither fan nor the thermistor on the hotend return values, but it should be because the CAN bus communication fails when the Mainboard tries to find the 1LC. Error messages galore (how do you get those incessant balloons to calm down or at least minimize?).

    The heating element was only on for about 20 seconds, but it got extremely hot and I don't know if that caused any damage resulting in the lack of communication between boards.

    I also don't fully understand the terminal jumpers on the distribution board, what they're for, when to use them, how to add some external resistor, etc. It's a bit confusing. I have the 0th tool jumpers un-terminated, and tools 1-3 are terminated with the provided jumpers, and the CAN out is also terminated with a jumper.

    I kept reading bits about the CAN connection needing to be twisted into pairs and matched to the correct pins...but it's written too unclearly for me to trust or understand what it says. I used a telephone cable to connect the Mainboard to the Distribution Board, and I used the provided 4-wire cables to connect the Distribution Board to the 1LC. I went pin-to-pin on the CAN connection between them, unsure whether this was where the variation occurred, or if the twisting and rearranging was meant only for connecting the Mainboard to the Distribution Board...or if the phone cable used from the Mainboard to Distribution board was supposed to be the twisted .... it's just so unclear.

    I kept getting firmware incompatibility errors, and after a Netflix season's worth of detective work, the firmware for the Mainboard was finally updated (BOSSA, Windows host). Unfortunately, I could only figure out how to update the firmware on the Mainboard, and I can only assume the 1LC firmware is outdated, but I have no idea how to communicate with the board.

    I also have questions about updating the DWC, because in every bit of documentation I read, the images do not show the same version of the GUI I'm using. Since the update method via rPi or uploading via DWC for the Mainboard firmware, I don't have much faith that anything needing to be updated got updated.

    The CAN address problem is hopefully a simple fix, or maybe just a firmware issue, but if it's anything like what it's taken to get to this point, I may have to find a chicken to sacrifice or something. The other fear is that the CAN wiring is wrong and the chip is smoked or that the heating element in the hotend caused some sort of damage.

    I don't know if there are other components that need special updates - if using the DWC or SSH doesn't work to update and upgrade the packages on the pi, BOSSA must be used via USB connection to a host. If there is a way to flash the firmware to the 1LC using a similar method used to update the Mainboard firmware I haven't discovered, please advise.

    Other than that, I'm actually having a pretty good time learning the ropes. It's just maddening knowing how close I (hopefully) am to getting my first bit of filament laid down.

    Thanks in advance for any advice, and I hope to talk to some of you later on today.

    -Hobbs



  • Configs is always a good thing; please add

    and please review https://duet3d.dozuki.com/Wiki/Duet_3_firmware_configuration_limitations

    @choblet said in A Duet 3, Distribution Board, and a 1LC walk into a bar...:

    I also don't fully understand the terminal jumpers on the distribution board, what they're for, when to use them, how to add some external resistor, etc. It's a bit confusing. I have the 0th tool jumpers un-terminated, and tools 1-3 are terminated with the provided jumpers, and the CAN out is also terminated with a jumper.

    The row of 2x4 jumpers are there to bypass individual tool outputs, and the last single jumper is there to terminate the CAN bus if the tool board is the last on the chain. (the bypass jumpers effectively ensures the bus continues towards the termination jumper, or the next board.)

    edit:

    @choblet said in A Duet 3, Distribution Board, and a 1LC walk into a bar...:

    I kept reading bits about the CAN connection needing to be twisted into pairs and matched to the correct pins.......

    the pins are 1:1 for the connection, so pin 3 to pin 3 and pin 4 to pin 4 - this is a must. ideally the pair that make up the connection between 3:3 and 4:4 are a twisted pair but this is less important for short lenghts (edit this was for the 6HC to the Distribution board, for Dist to 1LC see https://duet3d.dozuki.com/Wiki/Duet_3_Tool_Board tl;dr it needs two pairs)



  • @bearer
    I didn't find any information pertaining to my problem on the link you suggested. The closest it came was in mentioning how settings are lost after upgrading the expansion board firmware. I'm using a Toolboard 1LC, not an Expansion 3HC board, and it mentions what to do after the firmware has been updated. I still need to accomplish that step.

    Thanks for the info on the terminal jumpers.

    And thank you for telling me exactly what I wanted to hear in that I didn't wire the 1LC CAN bus incorrectly. That is a big relief.



  • @choblet said in A Duet 3, Distribution Board, and a 1LC walk into a bar...:

    I didn't find any information pertaining to my problem on the link you suggested.

    it was mainly the stuff like A heater on an expansion board can only be controlled by a temperature sensor on the same expansion board. etc as we don't know how you've configured it and are having issues with heaters f.ex.

    even if not relevant now, it might save you a headache moving forward.

    anways, will address more of it later if no-one beat me to it.



  • @bearer
    Well, if the Toolboard isn't being detected by the Mainboard and is unable to be found at any of the CAN addresses I tried, it doesn't seem like it's possible to tell whether or not it's a config issue before solving the communication issue between boards. I'm still too unfamiliar to know how they relate, so I'll show you what I have for my initial configuration file:

    
    3DP
    Send code...
    Status
    Idle
    Mode: FFF
    Tool Position
    X
    0.0
    Y
    0.0
    Z
    0.00
    Extruder Drives
    Drive 0
    0.0
    Speeds
    Requested Speed
    0 mm/s
    Top Speed
    0 mm/s
    Sensors
    Vin
    24.2 V
    V12
    12.0 V
    MCU Temperature
    33.2 C
     Tools
     Extra
     Control All
    Tool	Heater	Current	Active	Standby
    T1LC
    T0 - Load Filament	n/a	n/a	
    Bed	Heater 1
    fault	26.4 C	
    0
    0
    Temperature Chart
    System Directory
    0:/sys/config.g
    ; Configuration file for Duet 3 (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.3 on Wed Jun 17 2020 02:29:25 GMT-0700 (Pacific Daylight Time)
    
    ; General preferences
    G90                                            ; send absolute coordinates...
    M83                                            ; ...but relative extruder moves
    M550 P"Duet 3"                                 ; set printer name
    
    ; Drives
    M569 P0.0 S0                                   ; physical drive 0.0 goes backwards
    M569 P0.1 S1                                   ; physical drive 0.1 goes forwards
    M569 P0.2 S1                                   ; physical drive 0.2 goes forwards
    M569 P1.0 S1                                   ; physical drive 1.0 goes forwards
    M584 X0.0 Y0.1 Z0.2 E1.0                       ; set drive mapping
    M350 X32 Y32 Z32 E4 I1                         ; configure microstepping with interpolation
    M92 X157.64 Y800.00 Z800.00 E611.15            ; 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 Z900.00 E1200.00        ; set maximum speeds (mm/min)
    M201 X100.00 Y100.00 Z100.00 E250.00           ; set accelerations (mm/s^2)
    M906 X850 Y850 Z900 E800 I30                   ; set motor currents (mA) and motor idle factor in per cent
    M84 S30                                        ; Set idle timeout
    
    ; Axis Limits
    M208 X0 Y0 Z0 S1                               ; set axis minima
    M208 X100 Y100 Z100 S0                         ; set axis maxima
    
    ; Endstops
    M574 X2 S1 P"!^io0.in"                         ; configure active-high endstop for high end on X via pin !^io0.in
    M574 Y1 S1 P"!^io1.in"                         ; configure active-high endstop for low end on Y via pin !^io1.in
    M574 Z1 S1 P"!^io2.in"                         ; configure active-high endstop for low end on Z via pin !^io2.in
    
    ; Z-Probe
    M558 P0 H15 F120 T1500                         ; disable Z probe but set dive height, probe speed and travel speed
    M557 X15:85 Y15:85 S5                          ; define mesh grid
    
    ; Heaters
    M308 S0 P"1.temp0" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin 1.temp0
    M950 H0 C"1.out0" T0                           ; create nozzle heater output on 1.out0 and map it to sensor 0
    M307 H0 B0 S0.00                               ; disable bang-bang mode for heater  and set PWM limit
    M308 S1 P"temp0" Y"thermistor" T100000 B4138   ; configure sensor 1 as thermistor on pin temp0
    M950 H1 C"out0" T1                             ; create bed heater output on out0 and map it to sensor 1
    M307 H1 B1 S1.00                               ; enable bang-bang mode for the bed heater and set PWM limit
    M140 H1                                        ; map heated bed to heater 1
    M143 H1 S0                                     ; set temperature limit for heater 1 to 0C
    
    ; Fans
    M950 F0 C"1.out1" Q500                         ; create fan 0 on pin 1.out1 and set its frequency
    M106 P0 S1 H-1                                 ; set fan 0 value. Thermostatic control is turned off
    M950 F1 C"1.out2" Q500                         ; create fan 1 on pin 1.out2 and set its frequency
    M106 P1 S1 H-1                                 ; set fan 1 value. Thermostatic control is turned off
    
    ; Tools
    M563 P0 S"T1LC" D0 F0:1                        ; 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
    
    ; Custom settings are not defined
    
    ; Miscellaneous
    M501                                           ; load saved parameters from non-volatile memory
    
    

    Hopefully it's a silly, obvious error in something I overlooked.



  • The bed heater getting a heater fault is because in RRF3 it's not known to the system to be a bed heater so the longer heatup times aren't automatically taken into account. This can be fixed by PID tuning the bed.

    I can not run the extruder motor. Neither fan nor the thermistor on the hotend return values, but it should be because the CAN bus communication fails when the Mainboard tries to find the 1LC. Error messages galore (how do you get those incessant balloons to calm down or at least minimize?).

    If the CAN bus communication fails, how should control of elements on the toolboard work? The many errors are because CAN-FD is a fast protocol. Maybe error squelching would be a good idea ... but that's for another post.

    The CAN connectors on the distribution board and the tool board should be free of any strain from movement, or the board connection can fail. That can lead to undefined behavior like uncontrolled heating. The included connectors have some free floating wires which you should -- unlike me -- leave free so you can freely place the cable and then use a cable strain relief a bit away from the board.



  • @oliof
    So instead of the Bang-Bang method, I'll look at the PID controller option.

    Is there a way to scan the CAN ports/channels to see if anything shows up as connected and change the CAN address of the 1LC to match where the system thinks it is? Because the connection never even gets established, but I wonder if it's just at the wrong address.

    I went back and inspected my wiring, double-checked the continuity and pin positions to confirm everything checks out. The movement of the cables is minimal, no stress that I can tell.



  • There is no way to scan the CAN ports that I know of. According to https://duet3d.dozuki.com/Wiki/Duet_3_Tool_Board#Section_Commissioning_a_new_Tool_Board the default address is 121 or 10, and according to https://duet3d.dozuki.com/Wiki/Duet_3_Tool_Board#Section_Testing_communication the easiest way to test whether things work is to run M115 B<address>.

    Also, there is a red LED on the Duet3 board that blinks at about 1 second on / 1 second off. There also is one on the toolboard. If they are not blinking in sync, CAN communication has not been established.


  • administrators

    If the LEDs on the tool boards and expansion boards are flashing in sync with the LED on the main board, then CAN communication has been established, although it may be less than 100% reliable if you haven't set the CAN jumpers correctly. See the first reply from @bearer for how to set the jumpers.

    Once all boards are running current firmware (3.1.1 for the main boards, 3.1.0 for tool and expansion boards), you can enumerate the CAN boards using M409 K"boards". Until then, you can use M115 B# for various values of # to search for a board that you know is connected (because it LED is flashing in sync). Depending on when the tool board went through testing, its address should be either 10 or 121.

    Once you know the address of the tool board, you can send M997 B# (where # is the address) to tell it to fetch the latest firmware binary (Duet3Firmware_TOOL1LC.bin) from /sys on the main board. See https://duet3d.dozuki.com/Wiki/Duet_3_Tool_Board#Section_Commissioning_a_new_Tool_Board.



  • @dc42 @oliof
    Thank you both.
    The LED is not flashing at all - it doesn't illuminate. It never did, actually, which I found odd, but when power was at all the terminals on the board where it was expected, I had to move on because I couldn't find a place to start troubleshooting (I'm too new yet).

    So, @dc42, the question I would love to have a solution for is how to make sure the firmware is current on all the boards, and if not, how can I update my Toolboard 1LC given my setup? I'll go find the command that returns the current firmware if one exists and continue on until I hear back.

    Thanks again.


  • administrators

    @choblet said in A Duet 3, Distribution Board, and a 1LC walk into a bar...:

    The LED is not flashing at all - it doesn't illuminate.

    I presume you mean the red LED on the tool board doesn't illuminate. Does the blue VIN LED on the tool board illuminate?



  • @dc42
    Oh no...there was never a blue LED that lit up. I thought there were no LEDs to keep it from, well, glowing with LEDs. I read about the red flashing LED that was supposed to be in sync with the Mainboard, and assumed the lack of connection was the result of no flashing.

    It seems I have been troubleshooting a hardware defect with software solutions.

    Is this something that the company would likely replace, or anyone you recommend I get in contact with?

    Either way, I tried to find the firmware version for the 1LC, but it doesn't seem like it will help if the problem is related to a defective board.

    m115
    FIRMWARE_NAME: RepRapFirmware for Duet 3 MB6HC FIRMWARE_VERSION: 3.1.1 ELECTRONICS: Duet 3 MB6HC v0.6 or 1.0 FIRMWARE_DATE: 2020-05-19b2
    

    Well, I still learned a lot. I'll migrate things over to the mainboard and try my luck with that. Please continue to offer any suggestions or advice you may have. It is greatly appreciated.


  • administrators

    If the blue VIN LED isn't lit on your tool board, that implies that it is not receiving VIN power. Check that you are supplying VIN power to the tool distribution board with the correct polarity, that you have a straight-through cable (pin 1 to pin 1) between the distribution board and the tool board, and that the fuse for that power output on the distribution board is intact.



  • @dc42
    I thank you, and everyone else who stopped by to chat, for taking the time out of your day to give me a hand. But mostly to @dc42, who made me go back and check a fuse I would have never checked. I've never blown a fuse outside of a car audio mistake, so it was never on my radar.

    Aside from learning a little about the CAN connections and other confusions I had, I again failed to complete a pretty basic check that would have prevented a great deal of frustration. "There's no way a brand new fuse is defective, it must be the ______"

    That one's on me. I know better.

    Thanks again. I'll be sure to stop back after I spend another handful of hours with whatever the next challenge is.


Log in to reply