SOLVED 3HC Documenation



  • Hello

    I have a Duet 3 MB6hc and I need to add one more drive to it for a second extruder. I have the 3HC expansion board but can't seem to figure out how to config it. I also need help hooking it up.

    I installed it with the Can bus cable but just get a continuous flashing red light. I have looked and can't seem to find documentation on how to use this board.

    Can someone that has this setup help me or point me in the right direction for help.

    Thank you
    Darrin


  • Moderator

    https://duet3d.dozuki.com/Wiki/Duet_3_Expansion_Hardware_Overview
    https://duet3d.dozuki.com/Wiki/Duet_3_Expansion_3HC_Wiring_Diagram
    https://duet3d.dozuki.com/Wiki/CAN_connection
    https://duet3d.dozuki.com/Wiki/Getting_Started_With_Duet_3

    Most information you are looking for isn't specific to the 3HC. The main Duet 3 docs and the canbus docs should get you started.

    Using the config tool allows you to add expansion boards and map drives and heaters etc.

    https://configtool.reprapfirmware.org/Start



  • Phaedrux thank you

    I have been looking over that information and was hoping I was missing something.

    I don't understand how to get the 3HC board working. I am running 3.1.1 version on the MB6HC. I just pulled the 3HC out of the box and plugged it into the can bus cord and hooked power to it. All I see is a flashing red led with no pause. Both jumpers are installed. Pin one is on and I get no response from the 3HC board.

    I have used the online reprap config to aid in the setup so I have that part I think.

    Thank you
    Darrin


  • Moderator

    Post your config.g and the results of sending M122, M122 B1, and M98 P"config.g" please.



  • Please see the following, and thank you.

    M122
    === Diagnostics ===
    RepRapFirmware for Duet 3 MB6HC version 3.1.1 running on Duet 3 MB6HC v1.01 or later (SBC mode)
    Board ID: 08DJM-956BA-NA3TJ-6JTD0-3SN6S-1BALV
    Used output buffers: 1 of 40 (13 max)
    === RTOS ===
    Static ram: 154604
    Dynamic ram: 163208 of which 72 recycled
    Exception stack ram used: 272
    Never used ram: 75060
    Tasks: NETWORK(ready,1968) HEAT(blocked,1188) CanReceiv(suspended,3820) CanSender(suspended,1488) CanClock(blocked,1436) TMC(blocked,192) MAIN(running,4552) IDLE(ready,76)
    Owned mutexes:
    === Platform ===
    Last reset 00:06:00 ago, cause: power up
    Last software reset at 2021-02-09 21:40, reason: User, spinning module LinuxInterface, available RAM 75060 bytes (slot 3)
    Software reset code 0x0010 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0444a000 BFAR 0x00000000 SP 0xffffffff Task MAIN
    Error status: 0
    MCU temperature: min 29.3, current 29.4, max 29.6
    Supply voltage: min 24.0, current 24.0, max 24.1, under voltage events: 0, over voltage events: 0, power good: yes
    12V rail voltage: min 12.2, current 12.2, max 12.3, under voltage events: 0
    Driver 0: standstill, reads 63683, writes 0 timeouts 0, SG min/max not available
    Driver 1: standstill, reads 63682, writes 0 timeouts 0, SG min/max not available
    Driver 2: standstill, reads 63683, writes 0 timeouts 0, SG min/max not available
    Driver 3: standstill, reads 63682, writes 0 timeouts 0, SG min/max not available
    Driver 4: standstill, reads 63683, writes 0 timeouts 0, SG min/max not available
    Driver 5: standstill, reads 63682, writes 0 timeouts 0, SG min/max not available
    Date/time: 2021-02-10 16:22:27
    Slowest loop: 3.85ms; fastest: 0.24ms
    === Storage ===
    Free file entries: 10
    SD card 0 not detected, interface speed: 37.5MBytes/sec
    SD card longest read time 0.0ms, write time 0.0ms, max retries 0
    === Move ===
    Hiccups: 0(0), FreeDm: 375, MinFreeDm: 375, MaxWait: 0ms
    Bed compensation in use: none, comp offset 0.000
    === MainDDARing ===
    Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 CDDA state: -1
    === AuxDDARing ===
    Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 CDDA state: -1
    === Heat ===
    Bed heaters = 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamberHeaters = -1 -1 -1 -1
    Heater 1 is on, I-accum = 0.0
    === GCodes ===
    Segments left: 0
    Movement lock held by null
    HTTP* is ready with "M122" in state(s) 0
    Telnet is idle in state(s) 0
    File is idle in state(s) 0
    USB is idle in state(s) 0
    Aux is idle in state(s) 0
    Trigger* is idle in state(s) 0
    Queue is idle in state(s) 0
    LCD is idle in state(s) 0
    SBC is idle in state(s) 0
    Daemon* is idle in state(s) 0
    Aux2 is idle in state(s) 0
    Autopause is idle in state(s) 0
    Code queue is empty.
    === Network ===
    Slowest loop: 0.47ms; fastest: 0.01ms
    Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions Telnet(0), 0 sessions
    HTTP sessions: 0 of 8

    • Ethernet -
      State: disabled
      Error counts: 0 0 0 0 0
      Socket states: 0 0 0 0 0 0 0 0
      === Filament sensors ===
      Extruder 0 sensor: no filament
      === CAN ===
      Messages sent 52, longest wait 0ms for type 0
      === Linux interface ===
      State: 0, failed transfers: 4
      Last transfer: 19ms ago
      RX/TX seq numbers: 10757/10758
      SPI underruns 4, overruns 4
      Number of disconnects: 0
      Buffer RX/TX: 0/0-0
      === Duet Control Server ===
      Duet Control Server v3.1.1
      Code buffer space: 4096
      Configured SPI speed: 8000000 Hz
      Full transfers per second: 31.94

    M122 B1
    Error: M122: Response timeout: CAN addr 1, req type 6024, RID=10

    M98 P"config.g"
    Error: M569: Response timeout: CAN addr 1, req type 6018, RID=11
    Error: M569: Response timeout: CAN addr 1, req type 6018, RID=12
    Warning: M307: Heater 0 appears to be over-powered. If left on at full power, its temperature is predicted to reach 277C
    Warning: M307: Heater 1 appears to be over-powered. If left on at full power, its temperature is predicted to reach 602C
    Error: M308: Response timeout: CAN addr 1, req type 6011, RID=13
    Error: M950: Response timeout: CAN addr 1, req type 6026, RID=14
    Error: M307: Heater 2 not found
    Error: M143: Heater 2 does not exist
    Error: M950: Response timeout: CAN addr 1, req type 6027, RID=16
    Error: M106: Fan number 2 not found
    Error: M950: Response timeout: CAN addr 1, req type 6027, RID=18
    Error: M106: Fan number 3 not found
    Warning: M307: Heater 0 appears to be over-powered. If left on at full power, its temperature is predicted to reach 277C

    Simple filament sensor on pin io8.in, enabled, output high when no filament, filament present: no

    ; 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 Nov 04 2020 17:27:13 GMT-0600 (Central Standard 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 forwards
    M569 P0.2 S1 ; physical drive 0.2 goes forwards
    M569 P0.3 S0 ; physical drive 0.3 goes backwards
    M569 P0.5 S0 ; physical drive 0.5 goes forwards
    M569 P0.4 S0 ; physical drive 0.4 goes backwards
    M569 P0.1 S0 ; physical drive 0.1 goes forwards
    M569 P1.0 S1 ; physical drive 1.0 goes forwards
    M569 P1.0 S1 ; physical drive 1.0 goes forwards
    M584 X0:1 Y2 Z3:4 E5:0.1:0.4:0.1 ; assign stepper motor channels
    M350 X16 Y16 Z16 E16:16:16:16 I1 ; configure microstepping with interpolation
    M92 X64.05 Y64.05 Z800.00 E425.00:800.00:65.00:425.00 ; set steps per mm
    M566 X300.00 Y300.00 Z24.00 E300.00:24.00:300.00:300.00 ; set maximum instantaneous speed changes (mm/min)
    M203 X18000.00 Y18000.00 Z300.00 E1200.00:300.00:18000.00:1200.00 ; set maximum speeds (mm/min)
    M201 X700.00 Y700.00 Z100.00 E250.00:100.00:700.00:250.00 ; set accelerations (mm/s^2)
    M906 X2800 Y2800 Z2800 E800:2800:2800:800 I50 ; 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 X625 Y711 Z515 S0 ; set axis maxima

    ; Endstops
    M574 X1 S1 P"io1.in+io2.in" ; configure active-high endstop for low end on X via pin io1.in
    M574 Y1 S1 P"io3.in" ; configure active-high endstop for low end on Y via pin io2.in
    M574 Z1 S1 P"io4.in+io5.in" ; configure active-high endstop for low end on Z via pin io4.in

    ; Z-Probe
    M558 P5 C"!^io7.in" H5 F520 T7200 ; set Z probe type to switch and the dive height + speeds
    G31 P1000 X-2 Y50.94 Z0.790 ; set Z probe trigger value, offset and trigger height
    M557 X78:550 Y70:600 S40 ; define mesh grid

    ; Heaters
    M308 S0 P"temp0" Y"thermistor" T100000 B4700 ; 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
    ;M301 H0 S1.00 P10 I0.1 D200 T0.4 W180 B30 Use PID on bed heater
    M307 H0 A252.2 C635.5 D7.0 S1.0 V0.0 B0 ; enable bang-bang mode for the bed heater and set PWM limit
    M140 H0 ; map heated bed to heater 0
    M143 H0 S150 ; set temperature limit for heater 0 to 150C
    M308 S1 P"temp1" Y"thermistor" T500000 B5100 C1.19622e-7 ; configure sensor 1 as thermistor on pin temp1
    M950 H1 C"out1" T1 ; create nozzle heater output on out1 and map it to sensor 1
    M307 H1 A577.4 C221.2 D5.8 S1.0 V23.9 B0 ; disable bang-bang mode for heater and set PWM limit
    M143 H1 S450 ; set temperature limit for heater 1 to 450C
    M308 S2 P"1.temp1" Y"thermistor" T500000 B4723 C1.19622e-7 ; configure sensor 2 as thermistor on pin 1.temp1
    M950 H2 C"1.out0" T2 ; create nozzle heater output on 1.out0 and map it to sensor 2
    M307 H2 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
    M143 H2 S500 ; set temperature limit for heater 2 to 500C

    ; Fans
    M950 F0 C"out7" Q500 ; create fan 0 on pin out7 and set its frequency
    M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
    M950 F1 C"out8" Q500 ; create fan 1 on pin out8 and set its frequency
    M106 P1 S1 H1 T50 ; set fan 1 value. Thermostatic control is turned on
    M950 F2 C"1.out6" Q500 ; create fan 2 on pin 1.out6 and set its frequency
    M106 P2 S1 H1:2 T45 ; set fan 2 value. Thermostatic control is turned on
    M950 F3 C"1.out7" Q500 ; create fan 3 on pin 1.out7 and set its frequency
    M106 P3 S1 H1:2 T45 ; set fan 3 value. Thermostatic control is turned on

    ; Tools
    M563 P0 S"Left " D0 H1 F0 ; define tool 0
    G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets
    G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C
    M563 P1 S"Right" D1 H2 F0 ; define tool 1
    G10 P1 X0 Y27.94 Z0 ; set tool 1 axis offsets
    G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C

    ; Custom settings

    M376 H10

    ; Miscellaneous
    M575 P1 S1 B57600 ; enable support for PanelDue
    M501 ; load saved parameters from non-volatile memory
    M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss
    M591 D0 P2 C" io8.in" S1 ; filament switch High when filament present
    M591 D0 ; display filament sensor parameters for extruder drive 0
    T0 ; select first tool


  • Moderator

    https://duet3d.dozuki.com/Wiki/CAN_connection#Section_Setting_CAN_addresses

    You'll need to configure the dip switches on the 3HC to define the address of the board. By default it's 126, but it makes more sense to configure it to 1 if it's your first and only expansion board.

    Then in your config.g you need to modify any config commands that target that board.

    For example, in M584 to setup a driver as X on the expansion board you would use M584 X1.0

    This is automatically done by the config tool if you've chosen to add it and assign things to it. And this seems to be the case because your config already has similar things:

    M950 F3 C"1.out7" Q500 ; create fan 3 on pin 1.out7 and set its frequency

    1.out7 for instance.

    Once you set the dip switches to set the can address to 1 your config shouldn't give so many errors when you send M98 P"config.g"

    Hope that makes sense.



  • @Phaedrux

    I have it set that way I think? Pin one is on and pin 2,3,4 are off. Is that not correct?



  • IMG-3608.jpg



  • @Work-Horse-XL also the Diag LED just flashes rapidly and never pauses.


  • Moderator

    You're using SBC mode, can you please try updating?

    sudo apt update && sudo apt full-upgrade

    That looks correct in the photo.



  • Is that where you hook a keyboard,mouse and monitor to the pi and use the tremial window after you put the files on the sd card with DWC? I'm powering the pi with the duet3. Will that work for power? I do not really understand the PI process. I just use it for WIFI on the board.

    Thank you for the help.


  • Moderator

    You don't have to connect a keyboard, mouse, monitor to the Pi. You can also use remote terminal software (SSH) to connect to the command line terminal and update it that way.

    Powering the Pi from the Duet may work for a Pi3, but is not recommended for a Pi4, or if you have any USB peripherals attached to the Pi.

    I suggest you review the getting started guides
    https://duet3d.dozuki.com/Wiki/Getting_Started_With_Duet_3
    https://duet3d.dozuki.com/Wiki/SBC_Setup_for_Duet_3



  • @Phaedrux I have update the main board to 3.2 and put all the 3HC files in the system folder. There is still no can bus communication to the 3HC board.


  • Moderator

    Did the can bus cable come with the Duet or was it procured separately?



  • @Phaedrux The cable did not come with it but that was the problem. It was bad. I found a 15' cable and hooked it up and it is working now. Wow! what a mess. Thank you for helping me.


  • Moderator

    Glad you got it working.


Log in to reply