# USB-PD Toolboard

**URL:** <https://klipper.discourse.group/t/usb-pd-toolboard/8647>\
**Category:** Developers\
**Created:** [May 28, 2023, 4:39pm UTC](https://klipper.discourse.group/t/usb-pd-toolboard/8647 "2023-05-28T16:39:55Z")\
**Posts on this page:** 18\
**Page:** 1

<div class="post-metadata">

**Author:** ![brotherdust](https://avatars.discourse-cdn.com/v4/letter/b/3bc359/32.png) [@brotherdust](https://klipper.discourse.group/u/brotherdust)\
**Post date:** [May 28, 2023, 4:39pm UTC](https://klipper.discourse.group/t/usb-pd-toolboard/8647/1 "2023-05-28T16:39:55Z")

</div>

I wasn’t sure where to put this post, as it pertains to developing hardware for Klipper. Please tell me if theres a better place.

Anyway, I’ve been thinking about what, for me, would constitute the “ultimate” toolboard, primarily based around the USB PD 3.0 or 3.1 spec. Why? PD offers between 120-240w, -and- high-speed data over a single cable; which I think more closely realizes the aspirations of CAN-based toolboards available today, while also reducing latency and complexity (think additional components related to supporting CAN),; increasing modularity, speed, and flexibility.

The flexibility of USB would also allow for embedding a hub on the toolboard to facilitate USB peripherals, such as the 3DO nozzle cam.

Okay, so we’ve got power and high speed data out of the way. The other objectives of this board would be to support -all- of Klipper’s features that are pertinent here:

- Input shaping: ADXL345
- Angle sensor: MA736
- Stepper driver: TMC2240 for 120w variant, TMC5160 Pro for 240w variant (which runs up to 60v!)
- Temperature, at least two inputs: MAX31855 or ADC
- PWM, at least four or five: hotend, two fans, servo, LED
- GPIO at least two: endstop, filament runout
- ADC, at least three: filament width sensor, filament movement sensor, hotend temperature, stepper temperature
- I2C, at least one: Dedicated LED drivers, environment sensors, etc
- SPI, additional bus with several CS pins: display, etc.

It’s a lot of functionality to pack into a single board! So, what if some of these functions were offered as a stackable addon?

I don’t know, I’m just throwing some ideas out and seeing what sticks with the fine folk on this forum.

What say you?

---

<div class="post-metadata">

**Author:** ![theophile](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/theophile/32/31_2.png) [@theophile](https://klipper.discourse.group/u/theophile)\
**Post date:** [June 1, 2023, 5:37pm UTC](https://klipper.discourse.group/t/usb-pd-toolboard/8647/2 "2023-06-01T17:37:05Z")

</div>

I’ve been thinking along similar lines. I started looking into CAN but decided that the benefits wouldn’t outweigh the hassle, especially if I still had to run separate power lines, etc.

I think your list is good. Only thing I can think of to add at this point is that I’d been looking into possibly using one of those gooseneck inspection cameras as a nozzle cam. Something like [this](https://www.harborfreight.com/automotive/diagnostic-testing-scanning/inspection-cameras/39-in-x-16mm-inspection-camera-cable-64085.html). I haven’t experimented yet but I _think_ they just output analog video. The connector even looks like an S-VIDEO connector. There’s even a controllable LED on the camera end to illuminate the subject if desired. So maybe an analog video-to-USB IC or something could make these things usable as cheap nozzle cams.

---

<div class="post-metadata">

**Author:** ![brotherdust](https://avatars.discourse-cdn.com/v4/letter/b/3bc359/32.png) [@brotherdust](https://klipper.discourse.group/u/brotherdust)\
**Post date:** [June 5, 2023, 9:55pm UTC](https://klipper.discourse.group/t/usb-pd-toolboard/8647/3 "2023-06-05T21:55:27Z")

</div>

The reason I included a USB hub was to enable the use of USB-type cameras. Analog video wouldn’t make a lot of sense to implement for reasons:

1. The cost difference between an analog camera and a codec IC, ancillary parts and a quality digital camera would be, I think, negligible
2. Analog would be more susceptible to EM noise, so would have to be shielded to prevent noise from degrading the video. Digital has error correction so the likeliness of losing or degrading the signal is much much lower
3. Analog would be inferior image quality anyway

It just doesn’t make a lot of sense to me. Maybe it does to you. So, doing a modular approach would let anyone design and produce one for whatever their use-case.

---

<div class="post-metadata">

**Author:** ![koconnor](https://avatars.discourse-cdn.com/v4/letter/k/aca169/32.png) [@koconnor](https://klipper.discourse.group/u/koconnor)\
**Post date:** [June 13, 2023, 2:12am UTC](https://klipper.discourse.group/t/usb-pd-toolboard/8647/4 "2023-06-13T02:12:58Z")

</div>

I’ve seen some prototype boards in the past using USB PD. Unfortunately, that approach has some challenges - it’s really hard to find good quality USB cables that are designed to be in constant motion as required by a toolhead, and the additional cost and complexity to deploy USB PD is notable. So, for what it is worth, to date it seems that making a custom cable with two power wires and two USB control wires (or two CANBUS wires) is simpler, more robust, and notably cheaper. YMMV.

Cheers,  
-Kevin

---

<div class="post-metadata">

**Author:** ![wuyotuech](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/wuyotuech/32/5419_2.png) [@wuyotuech](https://klipper.discourse.group/u/wuyotuech)\
**Post date:** [August 13, 2023, 3:20pm UTC](https://klipper.discourse.group/t/usb-pd-toolboard/8647/5 "2023-08-13T15:20:05Z")

</div>

![IMG_3196](https://global.discourse-cdn.com/free1/uploads/klipper/original/2X/d/d4da43586677e51db056bf5ce85988032c4b3a4e.jpeg)  
I’m doing something similar, power supply is +24v dc because raspberry pi does not contain a usb-c host with usb-pd.  
so we need an extra tool to combine usb signal and power supply.

PS: English is not my native language, please ignore any grammar issues, and I would be very pleased if you point out my issue.

---

<div class="post-metadata">

**Author:** ![brotherdust](https://avatars.discourse-cdn.com/v4/letter/b/3bc359/32.png) [@brotherdust](https://klipper.discourse.group/u/brotherdust)\
**Post date:** [August 13, 2023, 4:18pm UTC](https://klipper.discourse.group/t/usb-pd-toolboard/8647/6 "2023-08-13T16:18:45Z")

</div>

@wuyotuech wow! That’s amazing! Can you share the specs on the board?

---

<div class="post-metadata">

**Author:** ![mggevaer](https://avatars.discourse-cdn.com/v4/letter/m/b782af/32.png) [@mggevaer](https://klipper.discourse.group/u/mggevaer)\
**Post date:** [November 15, 2023, 2:19pm UTC](https://klipper.discourse.group/t/usb-pd-toolboard/8647/7 "2023-11-15T14:19:31Z")

</div>

We could actually get there using USB cables, but not using USB-PD.  
Unfortunately USB PD spec has a fixed set of voltages it supports, closest to 24V being 28V. This means you would need some step-down hardware on the board.

Instead, of doing all this, we could just create a board that puts 24V on the power lines, and data on the data lines. This would no longer fall within USB-PD spec, but would allow you to use a regular usb cable.

Unfortunately, you would need some sort of breakout board on the printer (not toolhead) side, to put the 24V on the power wires.

Essentially something like this:  
 ![image](https://global.discourse-cdn.com/free1/uploads/klipper/original/2X/b/bca15c84bebaffd09a958ae9292e69ed46660795.png)  
But with a USB cable running between the toolhead and USB adapter

---

<div class="post-metadata">

**Author:** ![mykepredko](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/mykepredko/32/2085_2.png) [@mykepredko](https://klipper.discourse.group/u/mykepredko)\
**Post date:** [November 15, 2023, 3:09pm UTC](https://klipper.discourse.group/t/usb-pd-toolboard/8647/8 "2023-11-15T15:09:40Z")

</div>

Can I ask why 28V is a problem? The driver, inductive sensor and power supply chips should be able to handle that comfortable (their max voltage is usally a bit higher than 28V). As for heaters, you’ll get a few more watts out at 100% duty cycle but they should be able to handle that as well.

---

<div class="post-metadata">

**Author:** ![mggevaer](https://avatars.discourse-cdn.com/v4/letter/m/b782af/32.png) [@mggevaer](https://klipper.discourse.group/u/mggevaer)\
**Post date:** [November 15, 2023, 3:22pm UTC](https://klipper.discourse.group/t/usb-pd-toolboard/8647/9 "2023-11-15T15:22:25Z")

</div>

I just assumed, but indeed it looks like a bunch of stuff can handle 28V. You’d still need some board/breakout on the Raspberry pi side though since that doesn’t support PD, in which case you are loosing out on any simplifications in the system.

---

<div class="post-metadata">

**Author:** ![dotorg](https://avatars.discourse-cdn.com/v4/letter/d/7bcc69/32.png) [@dotorg](https://klipper.discourse.group/u/dotorg)\
**Post date:** [December 7, 2023, 3:24pm UTC](https://klipper.discourse.group/t/usb-pd-toolboard/8647/10 "2023-12-07T15:24:20Z")

</div>

A couple of things related to this, since it seems not everyone is aware. The most common Klipper-compatible CAN boards (the BTT EBB36 and EBB42) are both USB/CAN – they can be used as a CAN toolboard, but can also be used directly via USB. You still have to run 12/24v power to them even if you’re using USB, but its vastly easier and cheaper to find continuous flex USB cables than it is to find affordable impedence-balanced continuous flex CAN wiring. (Proper CAN wiring can be $50-$100USD/m!)

A USB-PD version of those would be near perfect, but would require (as discussed above) a USB-PD injector board or microcontroller board with USB-C ports that support PD. (Even most desktop PCs don’t have that.)

I do think, however, using USB connectors with non-USB signals on them is a bad idea. Its a good way to have someone accidentally let the blue smoke out – and it could be from something expensive.

I’ve been working on a replacement toolboard for the Biqu Hermit Crab, because their CAN board has a bunch of dumb decisions made with it, and decided against USB-PD because USB-PD injectors are _really_ expensive.

---

<div class="post-metadata">

**Author:** ![mggevaer](https://avatars.discourse-cdn.com/v4/letter/m/b782af/32.png) [@mggevaer](https://klipper.discourse.group/u/mggevaer)\
**Post date:** [December 12, 2023, 9:09am UTC](https://klipper.discourse.group/t/usb-pd-toolboard/8647/11 "2023-12-12T09:09:18Z")

</div>

You’re right, and I have been running my EBB36’s using USB + 24V.

Regarding the CAN cables, something that I did come across was someone running the 4 cables through a PTFE tube, that’s a quick/easy way to create a wear resistant cable. I don’t know about the impedance-balanced aspect you mentioned.

Aside from that, @dotorg thanks for sharing your insights, I was not aware USB-PD components are that expensive, I thought it was just more complicated to design, but not such a cost issue.

---

<div class="post-metadata">

**Author:** ![LifeOfBrian](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/lifeofbrian/32/2380_2.png) [@LifeOfBrian](https://klipper.discourse.group/u/LifeOfBrian)\
**Post date:** [December 12, 2023, 9:19am UTC](https://klipper.discourse.group/t/usb-pd-toolboard/8647/12 "2023-12-12T09:19:13Z")

</div>

> [@mggevaer](#):
>
> You’re right, and I have been running my EBB36’s using USB + 24V.

Are you happy with that solution?  
You just have the EBB36 directly connected to your RasPi/SBC? This would save me the U2C board and its space.

---

<div class="post-metadata">

**Author:** ![dotorg](https://avatars.discourse-cdn.com/v4/letter/d/7bcc69/32.png) [@dotorg](https://klipper.discourse.group/u/dotorg)\
**Post date:** [December 12, 2023, 12:03pm UTC](https://klipper.discourse.group/t/usb-pd-toolboard/8647/13 "2023-12-12T12:03:03Z")

</div>

That’s how I run mine, too. Faster, less hardware, simultaneously cheaper and better made cables. There’s no reason to use CAN if you don’t explicitly have the need to run a single network topology to multiple devices _and_ you don’t want a star run. There’s really almost no reason on a 3D printer. There’s some benefits on large CNC machines, but spending $500 on wiring on a $20k CNC is not a big deal.

---

<div class="post-metadata">

**Author:** ![NexGen-3D](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/nexgen-3d/32/7509_2.png) [@NexGen-3D](https://klipper.discourse.group/u/NexGen-3D)\
**Post date:** [December 12, 2023, 12:17pm UTC](https://klipper.discourse.group/t/usb-pd-toolboard/8647/14 "2023-12-12T12:17:22Z")

</div>

I would love USB-C PD but I can garentee you someone will screw it up, below is what I do, and its a single USB cable solution for me.

On all of my machines I use the MKS THR36 via USB, and I inject 24v into the cable and pull it out at the toolboard end, the THR36 only needs the USB Data +/- cables connected for coms.

Been using this setup for most of this year, I use high quality USB-C 2.0 high power cables, I believe these are QC3.0 not PD as they have no “chips” in them, just a straight 4 or 5 wire setup, power wires are thick heavy conductors and the data wires are thin, they have FEP insulation, and a thick outer nylon braiding, as I have cut some open to inspect them, currently I’m using the Baseus ones, and I have not had a failure yet, infact I had PTFE and FEP cable snap in my drag chains, but these USB cables just keep going.

The THR36 has a jumper to isolate its power from the USB so I just use the CAN power screw terminals for the 24v and a USB-C connector for the data.

This is my latest creation using this system: [NXG Voron Zero](https://www.youtube.com/shorts/ux4FFqNphL4)

Below you can see I just mount a female socket and that breaks out to the control board, power and data, and at the other end I have another one, that breaks out to the USB-A for data and 24v power, so I can just use any USB-C 2.0 3A QC3.0 cable

 ![IMG_5815](https://global.discourse-cdn.com/free1/uploads/klipper/original/2X/a/a2e0ae7fccd96e73702ca206170cf92617c73cc7.jpeg)

These are the cables I use: [BASEUS USB-C](https://www.aliexpress.com/item/1005005210019168.html)

---

<div class="post-metadata">

**Author:** ![mggevaer](https://avatars.discourse-cdn.com/v4/letter/m/b782af/32.png) [@mggevaer](https://klipper.discourse.group/u/mggevaer)\
**Post date:** [December 12, 2023, 12:55pm UTC](https://klipper.discourse.group/t/usb-pd-toolboard/8647/15 "2023-12-12T12:55:47Z")

</div>

I’m happy with it, It’s a bit of a hassle getting the USB cable strain relieved, because most 3D printed parts only account for the single CAN cable on the toolhead. Having one of those cables with the USB-c port at 90 degrees helps.

Aside from that, I have an issue where most of the time. Restarting klipper, or restart firmware fails, but power-off/power-on ALWAYS works. So during printing etc… it’s very reliable for me.

I also use dragonburner with a modded mount that has the strain relief for the cables built into the mount. At the same time I flash all my EBB36 boards to have the same USB serial id. This means I can just unplug USB cable/24V cable, unscrew toolhead, screw on a new one (2 screws). Plug in the cables, and I’m good to go 🙂

I bet if I could fix the firmware restart issue, I could even do it without power off/on-ing the printer.

I also decided to use USB because it’s simpler both hardware and software wise.

Something to look out for for people that like running USB (not released yet):

> **[GitHub - FYSETC/M36\_HUB\_V1: A print head wiring hub board for NAME14(36mm)](https://github.com/FYSETC/M36_HUB_V1)**
>
> A print head wiring hub board for NAME14(36mm) . Contribute to FYSETC/M36\_HUB\_V1 development by creating an account on GitHub.

---

<div class="post-metadata">

**Author:** ![LifeOfBrian](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/lifeofbrian/32/2380_2.png) [@LifeOfBrian](https://klipper.discourse.group/u/LifeOfBrian)\
**Post date:** [December 12, 2023, 12:59pm UTC](https://klipper.discourse.group/t/usb-pd-toolboard/8647/16 "2023-12-12T12:59:55Z")

</div>

Therefor I have swappable hotend mounts with a connector for heater and fans… But looks like a good option to rethink CANbus, especially if I rework my CoreXY.

But as this is a thread about toolboard development we should stop off topic here and maybe continue in a separate thread. I’ll open one as I need further information on this.

EDIT:  
New thread to continue:

> [@EBB36 and other CANbus expansion boards used with USB connection](https://klipper.discourse.group/t/ebb36-and-other-canbus-expansion-boards-used-with-usb-connection/12237):
>
> For a general discussion about this topic coming from here: I opened this thread. CAN is often very controversial and prone to different errors so lets focus here on using USB connection for the EBBs and alike. Due to the power requirements it is quite obvious to have separate 24 V and GND wires. But how many of you are using a EBB via USB and what are your experiences or issues so far? For me it would save the U2C and its space and make the connection much simpler. And there are already g…

---

<div class="post-metadata">

**Author:** ![Horizon](https://avatars.discourse-cdn.com/v4/letter/h/5fc32e/32.png) [@Horizon](https://klipper.discourse.group/u/Horizon)\
**Post date:** [September 18, 2024, 5:32am UTC](https://klipper.discourse.group/t/usb-pd-toolboard/8647/17 "2024-09-18T05:32:24Z")

</div>

Wouldn’t something simple like this board

> **[GitHub - Jana-Marie/PD-Injector: USB-PD Power/Data Splitter](https://github.com/Jana-Marie/PD-Injector?tab=readme-ov-file)**
>
> USB-PD Power/Data Splitter

with a usb pd trigger would be pretty simple  
and would make it so if someone somehow connects a laptop to it would even charge it safetly - as it would carry just a usb signal

---

<div class="post-metadata">

**Author:** ![Mechano](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/mechano/32/16142_2.png) [@Mechano](https://klipper.discourse.group/u/Mechano)\
**Post date:** [April 21, 2025, 9:44am UTC](https://klipper.discourse.group/t/usb-pd-toolboard/8647/18 "2025-04-21T09:44:07Z")

</div>

It’s 7 month old the last reply to this thread, but now there’re some news about USB-C PD with 24v.  
Some board can inject 24v into USB-C connection with toolhead.

But it seems that Elegoo Centauri Carbon has a 24v USB-C connection with toolhead.  
Ad you can see in this pictures.

During this time also some producers of mainboard and THR board have some products with USB-C connection with 24v injection into USB-C.

 ![image](https://global.discourse-cdn.com/free1/uploads/klipper/original/3X/7/b/7b9fc5d8e29bb234f2427e619d3967c54d06b531.jpeg)  
 ![image](https://global.discourse-cdn.com/free1/uploads/klipper/original/3X/d/f/df92954838643a8de3c8d1ce8cebc3fd723518b5.jpeg)  
 ![image](https://global.discourse-cdn.com/free1/uploads/klipper/original/3X/8/f/8fd2a90a25fbea789c336297e661236d57eb4350.jpeg)
