I've been having trouble finding a satisfactory answer to this through the forums so I'm posting this question. I'm trying to send data from one Arduino Uno R3 to another in the same cable/cord as DC power (up to 100W). The first Arduino controls a main unit that operates independently whereas the second controls an auxiliary not-always-used peripheral unit containing a Peltier element (thus the high power). I want to send start/stop/PID settings signals from the main unit/Arduino to the secondary unit/Arduino and have the main unit receive temperature data from the secondary unit.
My idea is to use USB-C as an all-in-one power and data cable to simplify the connection between these two. I want to send ~100W of power at 12V through the cable while also passing this data back and forth. Could I use a USB-C board like this or this and use the RX/TX ports on my two Arduinos to communicate serially while also supplying the power through the USB-C cable via the Vcc and ground lines? Is this the right strategy or is there a more proper way to do this?
What is the length of the cable between the 2 Arduinos?
Superposing data on a power cable looks unnecessary complicated. I would use one power cable and one signal.
Please read the first topics telling how to use this forum, or how to get the best from this forum.
Word sallad descriptions never get any precise answers, only consume Yours and our time to make Your question clear.
Easy! Use two old modems that convert data to tones which are AC and superimpose the AC on the DC wires. Use capacitors to keep the DC from going to the modems. At one time, many years ago, there were common limited distance modems. Perfect for your application.
Paul
@Railroader I updated with a schematic to be more clear (the ambiguity of the solution prevents me from being more precise in the diagram, so I apologize that it is Fritzing-y), please let me know if there is anything else out of spec with best practices! The length of cable we're talking about is on the order of 1-2ft/30-60cm.
I would use two wires for power (12V 9A) and three for serial communication (Rx/Tx/Gnd). Find a wire gage lookup table to see what gage wire you need to pass 9A on the power wires.
If you only need heating OR cooling, use a logic-level MOSFET to turn the Peltier device on and off. If you need both heating AND cooling, use 12V 9A DC motor controller (H-Bridge) to pick the polarity of DC.
Good tip about the H-bridge, @johnwasser. As of now, I had been using a relay (part of this thermostat, actually) to drive/control the Peltiers. Will be switching to a simple MOSFET or H-bridge system when I use strictly the Arduino to control the Peltiers.
The main question then is why an appropriately spec'd USB-C cable wouldn't work. I understand having separate lines would be easier, and I see how your suggestion a trio of wires for serial would work. On the other hand, I see that USB-C is capable of 100W of power delivery now and that a new standard will soon have it be capable of 240W! This would seem like a more elegant solution, but is it perhaps more complicated to achieve this than it looks?
Most Arduinos can't talk to another Arduino over USB. One end would need something like a USB Host Shield to allow it to act as a USB Host for the other Arduino.
No Arduino or USB Host Shield I know of supports USB-C. You would need USB-C to USB 2.0/3.0 adapters at each end.
You would need USB-C to USB 2.0/3.0 adapters that are capable of sourcing and sinking 100 Watts. I have not seen any such adapters and I expect they will be quite expensive.
Cables and connectors should be looked at regarding amperes. "A few volt" more or less is not the difficult parameter. I have 2 3 Amp USB chargers but how on earth those tiny fingers will manage, I can't understand.
Your reading about 100 Watt sounds strange. What would the maximum current be? 12, 24, 48 volts makes no problem, but Amps....
USB-PD currently supports 100W (240W in the future) transmission, but it uses up to 5A current of any power.
Basic Principle Watt = Voltage * Ampere
Therefore, when transmitting 100W power in PD, 20V / 5A is used.
Also, as you can see in your linked USB-IF article, the future support is 28V, 36V, 48V "voltages" and the current remains at 5A.
So this will support 140W, 180W, and 240W power transmission.
It is not possible to send 100W using true 12V with USB-PD.
It must be converted to a higher voltage to transmit high power and then converted back to any voltage with the receiving side.
Using a USB-C cable is fine. But the sparkfun connectors you find will be fried before you even try to pass 50W thru them.
You will want something more hardware like this
But the problem with USB-C is that it is reversible. But TX/RX is not reversible. And voltage is not reversible (you can get away with a diode bridge)
Either find pins that are not reversed when the USB-C is plugged in in the opposite orientation or use dedicated connectors for the job (i.e. Anderson Power Poles and USB-male-to-male) (or, how about telephone cords for that serial data)
You could use CAT5, with one pair for data, and send power in parallel over the other 3 pairs.
The current handling is not great so you'll need 48V or so and 2A split between the wires.
This is basically like PoE but keeping things simple by using different pairs for data and power.
For 8A at 12V you'll need thick copper - no standard data cabling will be suitable.
However you might be able to use ribbon cable and thus have many individual wires in parallel for the power connection - a 26-way ribbon could be 2 wires for data, 12 for +12V and 12 for power ground
Good tips, everyone! I don't technically need to transmit the power at 12V (though it'd be the most convenient that way) - in principle, I can step the voltage up and step it back down before and after the cable to reduce the current needed and therefore not fry it.
@MarkT, I had looked into PoE at some point, and what you're suggesting seems like a good option too! Just would need a more heavy duty step up converter to get to 48V
If you don't like the idea of multiple connectors, you can use the 5557 connector (found on desktop PC) with 0.5mm² cables. Then spread the 10A current over a few pins.
You can have up to 20 pins on the connector, so, reserving 10 for power, you still have 10 pins.
You can even draw custom PCBs and solder those connectors on the board, directly. Or connect power straight from a aftermarket PC power brick
One note:
I know you want to USB-C for "compatiable-ness", but remember that USB-C is for consumer use and is not very sturdy (e.g. breaks easily), and it does not have a locking mechanism to keep it on.
Also, 100W USB-C cables can get rather stiff and is fairly expensive.
I don't see why it is difficult in crimping custom 7775 Molex connectors to connect the two devices. He can even use the "one connector" approach.
RS232 is too big and unwieldy.
I use the USB-C SparkFun Power Delivery Board (your second link) to get power from a USB-C charger which works nicely. The board also has GND / 5V / D+ / D- on the pin header which can be used for USB data transmission through the same cable. You would need to either solder some cables to connect your controller board or connect a female USB stub to the Power delivery board.
HOWEVER: While there are a lot of 100W USB-C power supplies on the market you won't find much 100W USB-Hubs (found none) or 100W USB-PCI cards (found only two). So, you can get it going with USB-C but it currently will not be a viable solution for a product.
He is making a host and a peripheral that are connected with a (pending choice of wire)
and he want to run it over USB-C, which, for me, seems unpractical.