# Canable (clone) with Duet 3 Toolboard 1LC

**URL:** <https://klipper.discourse.group/t/canable-clone-with-duet-3-toolboard-1lc/18441>\
**Category:** General Discussion\
**Created:** [August 23, 2024, 11:55pm UTC](https://klipper.discourse.group/t/canable-clone-with-duet-3-toolboard-1lc/18441 "2024-08-23T23:55:07Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![mike](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@mike](https://klipper.discourse.group/u/mike)\
**Post date:** [August 23, 2024, 11:55pm UTC](https://klipper.discourse.group/t/canable-clone-with-duet-3-toolboard-1lc/18441/1 "2024-08-23T23:55:07Z")

</div>

### Basic Information:

Printer Model: TAZ 6  
 MCU / Printerboard: Duet 3 6HC, Canable (clone) and Toolboard 1LC  
 Host / SBC: RPi 5  
 [klippy.log](https://klipper.discourse.group/uploads/short-url/53bqGLVG2Ac6zQOx2bZLLUPkD6b.log) (21.1 KB)

I’m trying to setup a Canable (clone) with Duet 3 Toolboard 1LC. I have read through docs, forum and blog posts and I can’t figure out if I’m doing something wrong/stupid or if it’s a compatibility issue or a bug. The closeted I have come to getting it working leaves me with conflicting pins between the two on PB9. Thanks for your help.

Klipper error

```auto
Configured MCU 'mcu' (1024 moves)
Config error
Traceback (most recent call last):
  File "/home/mike/klipper/klippy/klippy.py", line 135, in _connect
    cb()
  File "/home/mike/klipper/klippy/mcu.py", line 748, in _connect
    self._send_config(None)
  File "/home/mike/klipper/klippy/mcu.py", line 687, in _send_config
    cmdlist[i] = pin_resolver.update_command(cmd)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/mike/klipper/klippy/pins.py", line 53, in update_command
    return re_pin.sub(pin_fixup, cmd)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/mike/klipper/klippy/pins.py", line 50, in pin_fixup
    raise error("pin %s is reserved for %s" % (
pins.error: pin PB9 is reserved for CAN

```

Canable

- On candleLight\_fw - canbus\_query.py can0 - Total 0 uuids found
- On klipper - canbus\_query.py can0 - Total 1 uuids found
- **CAN bus interface has only two options PB8/PB9 or PD0/PD1. Choosing PD0/PD1 seems to softbrick the board.**

```auto
[*] Enable extra low-level configuration options
    Micro-controller Architecture (STMicroelectronics STM32) --->
    Processor model (STM32F072) --->
    Bootloader offset (No bootloader) --->
    Clock Reference (24 MHz crystal) --->
    Communication interface (USB to CAN bus bridge (USB on PA11/PA12)) --->
    CAN bus interface (CAN bus (on PB8/PB9)) --->
    USB ids --->
(1000000) CAN bus speed
() GPIO pins to set at micro-controller startup

```

Toolboard 1LC

- Flashed with klipper firmware
- CAN Pins: CAN0\_TX:PA24 CAN0\_RX:PA25
- Thermistor Pins: TEMP0:PB9 TEMP1:PA2

```auto
[*] Enable extra low-level configuration options
    Micro-controller Architecture (SAMC21/SAMD21/SAMD51/SAME5x) --->
    Processor model (SAMC21G18 (Duet 3 Toolboard 1LC)) --->
    Bootloader offset (16KiB bootloader (Arduino M0, Duet 3 Bootloader)) --->
    Clock Reference (12Mhz crystal) --->
    Communication interface (CAN bus (on PA25/PA24)) --->
(1000000) CAN bus speed
() GPIO pins to set at micro-controller startup

```

Wiring

- Both ends are terminated with 120 ohm resistors, I did double check with a mulimeter. =)
- CAN high to CAN high and CAN low to CAN low

/etc/network/interfaces.d/can0 with the following contents: (from [CANBUS - Klipper documentation](https://www.klipper3d.org/CANBUS.html))

```auto
allow-hotplug can0
iface can0 can static
    bitrate 1000000
    up ip link set $IFACE txqueuelen 128

```

ifconfig

```auto
can0: flags=193<UP,RUNNING,NOARP> mtu 16
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 128 (UNSPEC)
        RX packets 9029 bytes 64860 (63.3 KiB)
        RX errors 0 dropped 0 overruns 0 frame 0
        TX packets 2564 bytes 14949 (14.5 KiB)
        TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

```

Thank you again for reading my post and your help

---

<div class="post-metadata">

**Author:** ![docgalaxyblock](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/docgalaxyblock/32/4892_2.png) [@docgalaxyblock](https://klipper.discourse.group/u/docgalaxyblock)\
**Post date:** [August 24, 2024, 5:38pm UTC](https://klipper.discourse.group/t/canable-clone-with-duet-3-toolboard-1lc/18441/2 "2024-08-24T17:38:47Z")

</div>

~~I am guessing your error is in your `[extruder]` config block:~~  
~~`sensor_pin = toolboard_vref_scaled:PB9`~~  
~~that would be your main mcu - I guess you typoed a `_` vs a `:`~~

~~What is `vref_scaled`?! - I did not read that one until today~~

_EDIT: This was the wrong assumption._

---

<div class="post-metadata">

**Author:** ![mike](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@mike](https://klipper.discourse.group/u/mike)\
**Post date:** [August 24, 2024, 6:52pm UTC](https://klipper.discourse.group/t/canable-clone-with-duet-3-toolboard-1lc/18441/3 "2024-08-24T18:52:30Z")

</div>

Thank you for your reply. I’m new to klipper and basing my config off of someone else’s config ([generic Duet 3 6HC](https://github.com/Klipper3d/klipper/blob/master/config/generic-duet3-6hc.cfg), [sample duet3 1lc](https://github.com/Klipper3d/klipper/blob/master/config/sample-duet3-1lc.cfg) and printer-lulzbot-taz6-2017) which is a blessing and a curse, but as far as I understand `toolboard_vref_scaled` is aliased to the code below and `vref_scaled` has to do with scaling of the of the temp sensor readings.

```auto
[adc_scaled toolboard_vref_scaled]
vref_pin: toolboard:PA7
vssa_pin: toolboard:PA6

```

Unfortunately `toolboard_vref_scaled:toolboard:PB9` isn’t syntactically correct, “Invalid pin description ‘toolboard\_vref\_scaled:toolboard:PB9’ Format is: [chip\_name:] pin\_name”. If I omit the scaling / alias and change the line to `sensor_pin: toolboard:PB9` I still end up with a pin collision error “pin PB9 is reserved for CAN”.

---

<div class="post-metadata">

**Author:** ![docgalaxyblock](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/docgalaxyblock/32/4892_2.png) [@docgalaxyblock](https://klipper.discourse.group/u/docgalaxyblock)\
**Post date:** [August 24, 2024, 7:12pm UTC](https://klipper.discourse.group/t/canable-clone-with-duet-3-toolboard-1lc/18441/4 "2024-08-24T19:12:06Z")

</div>

Ah ok looks like that is something used on Duet hardware.  
After reading the 6Hc and 1LC sample configs I guess `[adc_scaled vref_scaled]` is for your 6HC and `[adc_scaled toolboard_vref_scaled]` is for the 1LC  
Out of the [schematics](https://github.com/Duet3D/Duet3-Toolboard-1LC/blob/master/Toolboard_1LC_v1.3/Duet3_TB_1LC_Schematic_v1.3.pdf) PB9 looks right  
Sry

_I will edit my comment with some strikethroughs_ 😂

---

<div class="post-metadata">

**Author:** ![mike](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@mike](https://klipper.discourse.group/u/mike)\
**Post date:** [August 24, 2024, 7:33pm UTC](https://klipper.discourse.group/t/canable-clone-with-duet-3-toolboard-1lc/18441/5 "2024-08-24T19:33:42Z")

</div>

It’s all good. =)

I feel like the issue is trying to uses the Canable as a USB-to-CAN bus bridge, but I haven’t figured out the klipper setup to use the Canable with candlelight\_fw (which seems to be possible if I’m reading things correctly). `sudo ~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0` returns `Total 0 uuids found` so I’m not sure how to address the hardware.

---

<div class="post-metadata">

**Author:** ![docgalaxyblock](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/docgalaxyblock/32/4892_2.png) [@docgalaxyblock](https://klipper.discourse.group/u/docgalaxyblock)\
**Post date:** [August 24, 2024, 7:37pm UTC](https://klipper.discourse.group/t/canable-clone-with-duet-3-toolboard-1lc/18441/6 "2024-08-24T19:37:58Z")

</div>

Just use the Canable with candleLight.  
The only thing you need to configure is the can0 linux interface config.  
The Canable does not get mentioned in your printer.cfg this way - only your toolhead gets.

If the candleLight Canable is connected, your can0 is as your initail post and klipper is stopped you should be able to discover uuids

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/free1/uploads/klipper/original/1X/64419bf2aac6639e6ef5cef200dcd456b0a01ac3.png) [@system](https://klipper.discourse.group/u/system)\
**Post date:** [October 23, 2024, 7:38pm UTC](https://klipper.discourse.group/t/canable-clone-with-duet-3-toolboard-1lc/18441/7 "2024-10-23T19:38:32Z")

</div>

Closed on October 23, 2024, 7:38pm UTC

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.
