Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login

usb c? they're fragile as shit, they're a pain in the ass to solder compared to 3.5mm jacks or rj-11 jacks, the data protocol is a fucking nightmare, making a compliant psu is even worse, 90% of the market consists of noncompliant devices that are thoroughly tested to not work, you have to insert them at the right angle, and, worst of all, here in argentina they aren't even dirt cheap

basically in many ways usb c represents the opposite of what i want to achieve

however, it does have some real merits! the other 10% of the market has some really excellent devices which can reliably deliver many watts of power over relatively lightweight, flexible cables; the connectors are quite thin and lightweight, more so even than 3.5mm jacks; most usb-c devices can charge from usb-a chargers and talk to usb-a data ports, where the data protocol is still a fucking nightmare, but at least it's a widely implemented fucking nightmare that delivers multiple megabits; and even if you do have to insert the connector at the right angle, at least now you can do it without looking, unlike usb-a, mini-b, and micro-b



view as:

>they're fragile as shit.

Which part?

>data protocol is a fucking nightmare

How come? I’ve done many projects with type c and never felt that way. For basics (5v/1A) it’s just two resistors. For higher voltages I stick a pd controller that handles it.


the pins on the usb-c connector are tiny, which makes them individually fragile, but also the connector inside the device is short, and usb-c cables invariably have a long semi-rigid strain relief to protect the cable from breaking, so the cable has a large lever arm to torque the connector off your pcb. it's a huge problem with micro-b jacks, which are about the same size. usb-c fixes some of the micro-b mechanical problems, but not that one

one problem with the usb data protocol is that it won't work over a bus; it requires point-to-point links. but, more generally, my complaint about the data protocol is this. i want two devices with no usb hardware, clocked at 8 megahertz ±10%, with a kilobyte or less of code memory, to communicate with each other. there are multiple reasons that is just never going to happen over usb. usb requires timing precision of ±0.5%, so a crystal or at least a ceramic resonator is mandatory (not a reasonable option on an 8-pin micro), and v-usb requires over a kilobyte of code memory to run at all. and even v-usb only provides a slave device! even if all your devices are avrs with crystals, you can't run a wire between two devices running v-usb and have them communicate. and bitbanging a usb master requires, as i understand it, several times more code (i've never done it)

also, v-usb won't let you do anything else while you're communicating; it needs every clock cycle

so, i want something that's about 3% or less of the complexity of the usb protocol, with timing specs that are 40 times more relaxed

i agree that if you only want power and not communication, and your durability requirements are not high, usb-c is a very practical option. and, even with communication, it's an even more practical option for connections at a larger granularity than what i'm talking about, where the devices involved are big enough for one of them to be a usb master. but that's a different order of magnitude: tens of kilobytes of ram on each endpoint, not tens of bytes


Legal | privacy