I'm building an LED lighting system that requires around 16 connections to an Arduino (15 LED power supplies plus a common ground line), and I want to clean up the cabling. It's important for my application that the connector at the ends of any cabling be small and neat.

Essentially I would love to use a USB C cable – without any of the internal chips/resistors – simply to carry 19 identical general purpose wires. Then I could use standard USB C breakout boards at each end of the cable, and use the USB C cable as a simple wire conduit with nice connectors.

For all my searching, I can't find anything like this...

Does something like this exist? Is there an obvious solution to this problem that I am failing to see? Perhaps a different type of common connector that I'm not thinking of?

  • \$\begingroup\$ There is no such thing, because USB-C has only a maximum of 13 wires plus power and shielding. \$\endgroup\$
    – asdfex
    Aug 4 '18 at 11:31
  • \$\begingroup\$ I thought 19 wires... No? Does power take up the remaining 6? \$\endgroup\$
    – chroma
    Aug 4 '18 at 11:54
  • 2
    \$\begingroup\$ @Maple There is no guarantee that the 8 power pins actually are separated in the cable. They could as well be connected together on only 2 wires. That's why I wrote 13 plus wires for power. There is no 19 in USB-C - I don't know how you count. \$\endgroup\$
    – asdfex
    Aug 4 '18 at 13:12
  • 1
    \$\begingroup\$ If these are "lighting" LEDs and not indicator LEDs you need to consider the power and resulting current. That single shared ground return sounds problematic... And do you really want to bunch all off the lights into one connector? In many cases a better solution would be one connector per light and to build the Arduino's functionality into a board with 15 downstream connectors, or sit it behind a panel with that many bulkhead connectors. Or potentially join them into smaller groups, say 5 of 3. \$\endgroup\$ Aug 4 '18 at 15:03
  • 1
    \$\begingroup\$ Do you folks ever read any specifications? cambrionix.com/wp-content/uploads/2017/09/… \$\endgroup\$ Aug 4 '18 at 16:08

19 you say?

By coincidence, HDMI does have exactly nineteen conductors.

But: three of them are shields, some are differential pairs, which are optimized for high-frequency signals instead of low-frequency current transport… I doubt a single one of them was designed to carry current for a 20 mA LED, leave alone a "power LED" (whatever that is).

In short: all these modern computer cables are specialty devices and you can't expect them to just be "a bunch of wires".

So, stick with something else. SUB-D connectors are pretty standard, and they are easy to deal with with hand tools; of course, they are a lot larger. But you might need that anyway, because "power LED" kind of says each conductor might carry 1 A or more, and that's not going to be fun with smaller connectors...

If you asked me, this sounds like an architectural thing: Instead of buying (expensively) copper to bridge a large distance with a lot of current (losing power to wire resistance), you should probably have your (or another) Arduino where you'd have the other end of that cable you're wishing for, and just run a data line and power there.

In fact, there's really easy ways to switch a lot of outputs with few cables:

For example, there's linear shift registers with a latch input; there's even some that come with integrated linear LED drivers with adjustable current. With these, you'd only have to run 5 signals

  • power
  • Ground
  • Data
  • CLK
  • Latch (optional)

That sounds a lot easier and less error-prone then having 19 conductors! Also, you're not limited to 15 LEDs that way. You can have as many as you want.

  • \$\begingroup\$ Thank you very much for these insights! I'm reading about shift registers now and I may come back with a follow up once I'm on top of that :) \$\endgroup\$
    – chroma
    Aug 4 '18 at 15:39
  • \$\begingroup\$ Ask a new question instead as you will be changing the topic. \$\endgroup\$
    – Transistor
    Aug 4 '18 at 21:33
  • \$\begingroup\$ Using shift registers looks to be a great idea in general, and I may implement this. But my primary use case it's to switch each LED on/off one at a time, and I want to be able to do this core strobing function quite quickly (strobing each LED on/off at say 1kHz). I'm worried that most shift registers would introduce too much latency for this to be achievable, so building that into the core lighting system seems dangerous. That leaves me still needing to route conductors to each LED independently :( \$\endgroup\$
    – chroma
    Aug 5 '18 at 2:24
  • \$\begingroup\$ Are you strobing them to dim them? Because there's dedicated ICs that can do that, for exactly this use case! \$\endgroup\$ Aug 5 '18 at 8:35
  • \$\begingroup\$ (Switching rapidly off and on can be quite a bad idea over long cable, anyway!) \$\endgroup\$ Aug 5 '18 at 8:35

The standard "full-featured" USB 3.0 cable has 18 conductors 15 conductors, optionally 3 more, and one shield. It is defined in Type-C Specification, see Table 3-6

enter image description here

See also the footnote. The wires are not "identical general purpose wires", some are either coaxial, or twisted in pairs.

Also it is important to remember that if the cable is implemented as twisted pairs (the majority are), simple use of wires for digital signaling purposes might result in huge cross-talk.

More, some signal in cables might be using skinny AWG34 wires, see Table 3-8, so one needs to consider substantial wire impedance and limited ampacity.

Even more, expect that CC wire will have some IC attached (called "electronic marker"), and powered via Vconn wire. According to Type-C specifications, ALL full-featured cables must have electronic markers.

  • \$\begingroup\$ Thanks Ali, this is great. It's all adding up to a conclusion that I should probably move to a Micro D-Sub general purpose connector, and just accept the larger size. I really appreciate your answer— thanks :) \$\endgroup\$
    – chroma
    Aug 4 '18 at 16:12
  • 1
    \$\begingroup\$ not "18 conductors and one shield", but "15 conductors, optionally 3 more and one shield" \$\endgroup\$
    – asdfex
    Aug 4 '18 at 16:49

Led driver (e.g. TLC59116 for 16 x 120 mA channels, IS31FL3236 for 36 x 38 mA channels) + 4-conductor cable is all you need.

Ironically, if your combined LED current is under 1A then good ol' USB 2.0 cable can work for you. Just don't use high speed clock, twisted pair has a lot of crosstalk.

For higher current simply use any suitable cable and just about any of thousands available connectors, like DIN for example.


The latency issue is because I might want to cycle each LED independently on/off at 1kHz (e.g. LED #1 on for 5ms, off, repeat at 1kHz)

As it happens, you misunderstand how these chips work. You don't need to generate PWM by yourself, you simply send commands that set individual LED brightness, and the chip generates PWM for you (at 97 kHz, or about 100 times faster than you were planning).

The whole point of this answer is that you don't have to control LEDs yourself, you use digital communication over few wires and tell the chip what to do. At 100 kHz clock speed you can change the brightness of all 15 LEDs about 700 times per second, or about 20 times faster than human can perceive.

I have a Osram specs that indicate 3.1V forward voltage and a range (?) of 100-1000mA

Don't you think this info belongs to the question? And how were you going to use Type C cable (as in the title) if most of the wires in it are AWG34, with maximum rated current only 180 mA? Do you realize that with 1A per LED your ground wire will carry over 15A!

Anyway, in this case you still have multiple options available.

  • You can use driver with open drain output, like 18 channel LV5235V and control external switch while limiting maximum current with a resistor (as I suggested in the comment to your question from the beginning).
  • Or you can control constant-current driver with PWM input and suitable rating, like CAT4101. This should be more efficient than using resistors.

enter image description here

  • You can also use automotive shunt-type dimming chip, like TPS92661 with external buck regulator e.g. TPS92515x. This option is probably most power efficient, although it requires separate wire with about 40V to power 12 LEDs in series (or 2 wires for your 15 LEDs). The cool thing about this setup is that it trades high current for high voltage, so you can use much thinner wires.

The bottom line is: send control signal and provide power to your LED system, do the actual PWM switching by small circuit in the system itself.

BTW, with only 4-5 wires you probably don't even need "small and neat" connector on LED side, you can solder that end of the cable directly to PCB.

  • \$\begingroup\$ More great advice, thank you! I would be worried about two things here: 1) latency introduced by the drivers, and 2) maximum current. The latency issue is because I might want to cycle each LED independently on/off at 1kHz (e.g. LED #1 on for 5ms, off, repeat at 1kHz). The maximum current issue is because even with just one LED, I have a Osram specs that indicate 3.1V forward voltage and a range (?) of 100-1000mA (au.rs-online.com/mobile/p/visible-leds/1751875). So I'm worried about building in a driver that may limit my options away from the device... \$\endgroup\$
    – chroma
    Aug 5 '18 at 3:15
  • \$\begingroup\$ See update in the answer. \$\endgroup\$
    – Maple
    Aug 5 '18 at 11:40
  • \$\begingroup\$ @Iams how are you even delivering 1000 mA from an arduino? You already have built some kind of driver, haven't you? \$\endgroup\$ Aug 5 '18 at 13:57
  • \$\begingroup\$ Lots more useful insights here, thanks again for taking the time! To be clear, the strobing isn't intended to effect dimming— it is for syncing with other equipment. For dimming I've been using simple PWM and have considered an analogue alternative to produce "true" dimming. \$\endgroup\$
    – chroma
    Aug 5 '18 at 14:26
  • \$\begingroup\$ @MarcusMüller I've already run some bulb-type 5mm LEDs in my application, but they take up too much space and I wanted to get a bit more brightness, so I'm considering a variety of different SMT options. Part of my problem is that when I look at e.g. those Osram specs, I see a current range (100-1000mA) and I don't have enough experience to know what would likely be required to get a decent LED intensity. RE: wire gauge, I originally assumed my requirements were fairly modest, but from this forum I'm getting the idea that these are considered fairly high powered SMT LEDs. Thanks again! \$\endgroup\$
    – chroma
    Aug 5 '18 at 14:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.