FTDI (the company practically synonymous with TTL serial adapters) uses 3.5mm tip-ring-sleeve connectors for this. In other words, a common headphone jack.
I added one to my single-board computer enclosure, following FTDI's wiring. Now I can easily connect whenever I need to use the serial console, and a standard 3.5mm audio extension cable will let me reach across the room without moving my main computer. Replacement parts, if I ever need them, are cheap and easy to find.
That really sucks for hotplugging since TRS connectors sliding in basically make random connections before seating properly.
Granted, you shouldn't hotplug TTL serial, but everyone™ does it anyway. (In some situations you're even forced to, to avoid reverse powering something.)
foder 5 hours ago [-]
I've been using this ftdi cable too for the last 15 years or so and, while trs isn't a great connector, I haven't had any issues in practice.
It works well for capturing serial logs, a console or software updates in development. The advantage i saw was that I could order 50 cables from a distributor and give one to everyone that works on the device.
If someone needs one on the other side of the world, they can get one from a local suppliers.
Hot plugging hasn't been a problem in my designs, I add a series resistors to the uart net and ESD protection if software developers will use it.
When I use it for other devices, like routers, SBCs and IP cameras I avoid hot plugging and leaving it connected when the device isn't powered.
foresto 8 hours ago [-]
They're not random connections; they're predictable. I'm not worried about Tx briefly touching Rx or ground in these devices.
eqvinox 7 hours ago [-]
Random in the time sense. You'll get junk on your serial line, depending on the scenario that can matter a lot.
foresto 7 hours ago [-]
My scenario is connecting terminal emulators to getty or u-boot, which I think is a common one. A blip of line noise when plugging in would be barely considered an annoyance, easily cleared by pressing Backspace.
But yes, if someone happens to be using their serial line for some kind of sensitive signaling, then I would agree that choosing a more isolated connector (or just avoiding hotplug) would make sense.
numpad0 4 hours ago [-]
There's a small risk of CPUs and I/O pins getting fried if GND levels aren't equalized first and instead that equalizing force would go through those pins. One could argue that it's hardware designer's responsibility to save users from such things, but then again, using a better connector than TRS can be one of them.
eqvinox 7 hours ago [-]
Thing is, for a serial TTL connector to become ubiquitous, it needs to cover at least something like 99% of scenarios. Or maybe 95%. 3.5mm TRS ain't that, and thus just increases general diversity in connectors.
exmadscientist 6 hours ago [-]
In my experience noise on hot-plugging the serial adapter is a complete nonissue. I'm sure it matters for you, sometimes. But for this kind of embedded work, I'd say it's important far, far less than 1% of the time.
eqvinox 5 hours ago [-]
In my experience with... it's maybe 20? ... embedded boards, junk during boot breaks the boot flow for about half of them. And attaching quickly after target powerup is very often the crux of the exercise, to get to the bootloader fast enough before it moves on, but also you don't have the shifters (or Vref pin) in place to be able to attach beforehand...
jaeckel 38 minutes ago [-]
Since I once had the case where junk on the line (from a wiggly connection) caused Magic Sysrq requests I'm fully on your side. No junk tolerated for potential hot plug connections.
ycui7 3 hours ago [-]
Every vendor defines their audio jack connector serial port differently. It is very dangerous to use 3.5mm jack. There is no pinout standard of using 3.5mm.
Even as pure audio jack, the 3.5mm connector has two standards, with the difference on ground and mic.
amstan 5 hours ago [-]
One thing that i see often: just because both your debug cable and your target runs at the same voltage (eg: 3.3V), doesn't mean it's safe to plug them together. You could easily have a situation where your target or your debugger is off, so at that point you're powering the off thing through the uart pins (the esd diode on the pin).
The safest thing is to have a 4th vref/vccio pin, then the debugger should power its tx signal from that pin, at whatever voltage it's at. Same for the RX pin, it's not nice to have a pullup to a certain voltage when the target is off.
eqvinox 5 hours ago [-]
> The safest thing is to have a 4th vref/vccio pin, then the debugger should power its tx signal from that pin, at whatever voltage it's at. Same for the RX pin, it's not nice to have a pullup to a certain voltage when the target is off.
I totally agree. And yet, the 4th pin is, from personal experience, dying out. Because people have been, er, let's say "undereducated", in how to use it correctly, and with cheap USB-TTL-serial, the circuitry to use it correctly isn't included on either side.
And then people reverse-power their boards and fry things, so the board designers remove the 4th pin.
We can't have nice things. :'(
P.S.: the "undereducation": if neither side has a Vref INPUT(!) you leave the connection open. And unless your USB-TTL-serial is very explicit about it, it does NOT have a Vref input.
exmadscientist 6 hours ago [-]
> I assume that all connections use 3.3V signal levels. Should I ever come across 5V signals, I would probably use a larger Julet M8 for differentiation. OpenWrt writes that some routers already ship with incompatible 1.8V or 2.5V logic. Should the time arrive that I need to work with those, I would probably use this little fella called Micro Q ....
At that point please, please, please just switch to the 4-wire configuration exposing V_IO (aka V_target aka ...). So many problems go away when you have that available. It's nice to have at 3.3V as well, but a lot of OTS 3.3V adapters aren't configured to make use of it.
notthetup 8 hours ago [-]
Nice but it’s huge! I’d prefer something smaller like these 3 pin magnetic connectors from Aliexpress.
https://a.aliexpress.com/_c4CtK0gj
quantummagic 56 minutes ago [-]
One side could be flush with an enclosure, but it's not clear how you attach the other side to a cable. There doesn't appear to be any housing to cover soldered wires, for instance.
eqvinox 7 hours ago [-]
And where do I put Vref, RTS, CTS, and plug detect? That's 7 pins ;)
</jk>
Less of a joke though: those aren't polarized, how do you not accidentally 180° them? Are they magnetically polarized or what?
[ed.: I didn't initially see it, they're mechanically polarized, one "short end" is flat, the other rounded.]
And yes, they're magnetically polarized according to the datasheet. To answer the sibling comment, they're through-hole soldered but frustratingly are 2.7mm not 2.54 so you'd be squeezing a little into an existing header (ignoring clearance on the side anyway). I'm not sure why the 7-pin is obsolete, they make up to 5-way active.
It would be amazing though to make it a hermaphroditic 4 or 6pin connector. With a pinout like this:
GND TX [VrefTX VrefRX] RX GND
So it always plugs at a 180° rotation, connecting RX to TX. And any cable also rotates 180°. Since you always have an odd total of (connections + cables), you always get the right connection...
throwaway219450 6 hours ago [-]
If you have money to burn, get some LEMO push-pull connectors. They'll run you about $80 for a pair of each gender, but when you use them, you understand why trendy audio gear and instrumentation/optical OEMs use them. Occasionally when I make a project I treat myself and use them. Cheaper options are Mini XLR and Hirose HR10. Molex make a lot of wire-wire, but they're typically not rated for more than 25-50 cycles.
Those magnet couplings are nice. EDAC make a non-Aliexpress version, about $25 a pair.
amelius 7 hours ago [-]
Do you solder them to a PCB directly?
notthetup 3 hours ago [-]
They have PCB mount versions also I think.
Aloha 7 hours ago [-]
I would tell anyone who is doing a new traditional serial connector/cable to add the following -
1. Automatic DCE-DTE detection and an interface which will rewire itself as needed to be the correct way, or you automatically know DCE vs DTE by connector gender.
2. Automatic Voltage Detection - 232 levels, TTL 5v, TTL 3v - and interfaces that are isolated enough to deal with the wrong voltage (clamping diodes or whatever), or different cable sizes for each.
3. Automatic type detection - TTL/RS-232, RS-422, RS-485, or different connector types by each.
Ideally I'd do this on a 8p8c or 10p10c connector, because of ease of making cables, with various resistance values across pins 1-8, or 1-10 to tell you what kind of interface it was.
eqvinox 7 hours ago [-]
At that point it's not a debug connector anymore. Note there's a pseudo-standard for V.24/RS232 on RJ45 already, and nobody uses it for debug connectors since (a) you'd need a RS232 transceiver and (b) RJ45 connectors are honking huge.
The point is to shave off the last cent, which is why you get a possibly-unpopulated 1×4 or 1×3 2.54mm header. Bonus points if the manufacturer designed series resistors into the board (let's say 0402 or even 0201) and left those out too to save the last 0.01 cent.
pocksuppet 3 hours ago [-]
I think they mean the debug adapter should auto-detect all these things, not the debug port. You'd have one adapter you could plug in to anything and it would usually magically work.
Aloha 5 seconds ago [-]
yes, largely - even if its just pin headers adding a detect line which shows a resistance between it and ground would be an improvement.
In my working life I've seen -
at least 3 different ways to do RS-232 on 8p8c
DTE-DCE is always an issue on standard 232, otherwise I wouldn't have so many null modem cables
232 and 3.3v TTL on the same board or assembly
3.3v and 5v TTL on the same board or assembly
Inconsistent labelling.
I'm in my mid 40's and I think there is a reasonable chance something with RS-232 serial timings will outlast me, it'd be nice to make it more foolproof, as its one of a very few interfaces that will work without drivers.
I do think as a matter of standard good design practice we should be putting clamping diodes on debug ports to prevent blowing things up if hit with the wrong voltage,
Aloha 6 hours ago [-]
I'm open to other options, the biggest things is DTE-DCE auto detection
eqvinox 5 hours ago [-]
> I'm open to other options,
Err… if you're trying to approach the problem, the onus is on you to come up with options?
I'm not going to preclude you from being creative and coming up with a zero-cost solution that somehow magically does all this, but personally speaking I'd say the chances are minute and it's not worth my time.
I'm also not gonna try to stop you from building that thing you originally suggested, with the 8P8C or 10P10C connector and strapping pins and autodetection and whatnot, I'm just pointing out to you the issues I think it will run into. You're free to ignore my concerns. I'm a random commenter on the internet.
P.S.: calling it DTE-DCE auto detection signals to me that you haven't done a lot of work in this field; those terms are not in common use for TTL serial. People in the field would probably call it something like "TX/RX swap". (Hard to say, since it doesn't really exist.) Maybe you're an engineer for field buses or something like that though…
theamk 5 hours ago [-]
That sounds completely useless. Who needs a standard that is not actually standardizing anything?
If you are willing to design a board with with 8p8c connector, identification resistor, and protection parts, then you might as well put RS-232/RS-422 transceiver. Those are very cheap nowadays, might even be cheaper than the connector itself. And you standardize on crossover cables, there will be no need DCE-DTE detection.
(Not that anyone would need this today. If you are connecting to existing serial port, there is USB, and USB-serial adapters are very cheap. And if you are designing a serial-based communication system, say for the robot, then CAN or RS485 are much better choices)
mrheosuper 1 hours ago [-]
you are over-engineering it. At the end of the day, it's a debug connector, when you use it, you should know what you are doing. The more thing you add to debug connector, the more thing you have to debug when the debug connector not working.
Geof25 7 hours ago [-]
What you are describing is going to be nightmare to work with - i.e. when you will have automatic detection of levels and it will decide to push RS232 into 3V3 MCU then you will have dead, maybe one of the kind prototype or dead expensive production device
The only things with a chance at succeeding in this space are putting USB-serial directly on the board + USB-C, or alternatively bluetooth classic RFCOMM profile. (The latter is a very long shot.)
Apart from that, this doesn't even touch upon the various voltage levels for logic-level serial ports, or the question of whether to Vref or not to Vref. (Or RTS/CTS.)
russdill 6 hours ago [-]
Microcontrollers that support BLE are getting so cheap this really is becoming an option. Hopefully with some button that activates it.
markrages 5 hours ago [-]
RFCOMM is old Bluetooth, not BLE.
Nordic has a serial-over-ble profile, but it is not standard like RFCOMM.
eqvinox 4 hours ago [-]
Indeed… a fact making me really sad about BLE :(. The Nordic profile might become widespread enough to become de-facto standard, but AFAIK isn't quite widespread enough yet, i.e. people are still homebrewing almost the same thing(?)
russdill 3 hours ago [-]
I mean, sure there are still rough edges, but it's not like rs232 over Juliet is some widely supported standard.
There are Android apps that support serial over ble
dzhiurgis 3 hours ago [-]
Home Assistant and it’s relative esphome just added serial-proxy support. Basically you can use any esp32 board to add smart capabilities for old devices via serial port.
wildzzz 7 hours ago [-]
Ideally you wouldn't need to expose a TTL serial debug port to begin with. Maybe on a prototype you would want this but I'd rather just have a single connector that can expose everything (jtag or swd). Bonus points if the interface chip is on the board so it's just a USB port
eqvinox 7 hours ago [-]
FUSB307B is amazing for this, it has a hardware DBG output pin indicating that a USB-C debug accessory mode connection has been made. Perfect for connecting a mux and putting SWD & serial on some USB-C pins.
Too bad there's no standard for debug accessory connections. Also, at that point (putting a USB-C TCPC on your board) you might as well do full usbserial…
NB: there's no orientation detection in debug accessory mode.
Geof25 7 hours ago [-]
Well the first problem you will hit I'd that very likely you will need to protect or isolate those lines from ESD. This will raise price of device and it will get denied just in these grounds.
exmadscientist 6 hours ago [-]
ESD diode costs are nothing compared to the connector headers or even dealing with the mechanical complications of exposing Just One More Thing. Seriously, they're cheap.
theamk 6 hours ago [-]
on Aliexpress, Julet M6 pigtail pair is $2.99, while USB-TTL breakout (with female USB-C connector) is $1.40 - even for nice CP2102 with unique serial number.
If you have a portable device which needs serial connector, don't bother with weird connector and bespoke adapters which will get lost. Go for USB-C directly. As an extra bonus, USB-C is significantly more electrically rugged than raw UART input.
(this does not apply if you have some sort of multi-port serial port server, but those are pretty rare, and most likely use real RS232 voltages anyway)
amelius 7 hours ago [-]
I always wonder why Molex makes only black and white connectors. This makes it needlessly difficult to use different connectors for different purposes. Same with phoenix contact but there it's mostly green terminal blocks. Is it so difficult to just offer some more colors?
Aurornis 7 hours ago [-]
They’ll make them in any color you want if you order enough.
Adding more colors would multiply their logistic and inventory requirements, which are already hard with so many different connectors multiplied by number of pin options. Multiplying that even further by number of colors that most people would never buy isn’t a win.
hlieberman 7 hours ago [-]
TagConnect or EdgeConnect ftw.
eqvinox 7 hours ago [-]
Is there a standard for TTL-serial pinout on those? I'm not aware of one, only for SWD…
bsder 7 hours ago [-]
.100 headers tend to be smaller than most TagConnect/EdgeConnect footprints and you don't have to use expensive custom cables.
The alignment mechanisms on TagConnect/EdgeConnect negate any space advantage.
dazhbog 8 hours ago [-]
I cannot count how many PCBs I did with various quick connect ideas to have a fast way to debug..
- Chop a PCI connector and have edge fingers on the PCB
- Skedd connectors
- Micro usb with a toggle switch or solder blob to switch between SWD/UART or USB
- Low profile usb-c and have D+/- as normal, and RX/TX over the accessory pins (like audio)
- Pogo pin clips
- GH1.25 connectors
- Tag-connect meh
- If thickness of pcb allows, your PCB can plug directly into a USB-A port (Thicc pcb) or if its too thin, it can plug into a male usb-c connector from a charger cable(might bend some pins though)
etc. etc.
So just like the author, anything but Dupont connectors ;)
skybrian 6 hours ago [-]
Ideally I'd like to standardize on something that disconnects easily rather than breaking a different part.
andrewshadura 8 hours ago [-]
I found Julet connectors incredibly hard to disconnect once plugged in. I can’t get a good grip on anything.
MrBuddyCasino 7 hours ago [-]
They’re good for eBikes because they’re sturdy and don’t disconnect easily, but I dread un-/plugging them.
Rendered at 07:32:26 GMT+0000 (Coordinated Universal Time) with Vercel.
I added one to my single-board computer enclosure, following FTDI's wiring. Now I can easily connect whenever I need to use the serial console, and a standard 3.5mm audio extension cable will let me reach across the room without moving my main computer. Replacement parts, if I ever need them, are cheap and easy to find.
Here's the pinout:
https://www.ftdichip.com/Support/Documents/DataSheets/Cables...
Granted, you shouldn't hotplug TTL serial, but everyone™ does it anyway. (In some situations you're even forced to, to avoid reverse powering something.)
It works well for capturing serial logs, a console or software updates in development. The advantage i saw was that I could order 50 cables from a distributor and give one to everyone that works on the device.
If someone needs one on the other side of the world, they can get one from a local suppliers.
Hot plugging hasn't been a problem in my designs, I add a series resistors to the uart net and ESD protection if software developers will use it.
When I use it for other devices, like routers, SBCs and IP cameras I avoid hot plugging and leaving it connected when the device isn't powered.
But yes, if someone happens to be using their serial line for some kind of sensitive signaling, then I would agree that choosing a more isolated connector (or just avoiding hotplug) would make sense.
Even as pure audio jack, the 3.5mm connector has two standards, with the difference on ground and mic.
The safest thing is to have a 4th vref/vccio pin, then the debugger should power its tx signal from that pin, at whatever voltage it's at. Same for the RX pin, it's not nice to have a pullup to a certain voltage when the target is off.
I totally agree. And yet, the 4th pin is, from personal experience, dying out. Because people have been, er, let's say "undereducated", in how to use it correctly, and with cheap USB-TTL-serial, the circuitry to use it correctly isn't included on either side.
And then people reverse-power their boards and fry things, so the board designers remove the 4th pin.
We can't have nice things. :'(
P.S.: the "undereducation": if neither side has a Vref INPUT(!) you leave the connection open. And unless your USB-TTL-serial is very explicit about it, it does NOT have a Vref input.
At that point please, please, please just switch to the 4-wire configuration exposing V_IO (aka V_target aka ...). So many problems go away when you have that available. It's nice to have at 3.3V as well, but a lot of OTS 3.3V adapters aren't configured to make use of it.
</jk>
Less of a joke though: those aren't polarized, how do you not accidentally 180° them? Are they magnetically polarized or what?
[ed.: I didn't initially see it, they're mechanically polarized, one "short end" is flat, the other rounded.]
And yes, they're magnetically polarized according to the datasheet. To answer the sibling comment, they're through-hole soldered but frustratingly are 2.7mm not 2.54 so you'd be squeezing a little into an existing header (ignoring clearance on the side anyway). I'm not sure why the 7-pin is obsolete, they make up to 5-way active.
Or Adafruit? https://www.adafruit.com/product/5468
It would be amazing though to make it a hermaphroditic 4 or 6pin connector. With a pinout like this:
So it always plugs at a 180° rotation, connecting RX to TX. And any cable also rotates 180°. Since you always have an odd total of (connections + cables), you always get the right connection...Those magnet couplings are nice. EDAC make a non-Aliexpress version, about $25 a pair.
1. Automatic DCE-DTE detection and an interface which will rewire itself as needed to be the correct way, or you automatically know DCE vs DTE by connector gender.
2. Automatic Voltage Detection - 232 levels, TTL 5v, TTL 3v - and interfaces that are isolated enough to deal with the wrong voltage (clamping diodes or whatever), or different cable sizes for each.
3. Automatic type detection - TTL/RS-232, RS-422, RS-485, or different connector types by each.
Ideally I'd do this on a 8p8c or 10p10c connector, because of ease of making cables, with various resistance values across pins 1-8, or 1-10 to tell you what kind of interface it was.
The point is to shave off the last cent, which is why you get a possibly-unpopulated 1×4 or 1×3 2.54mm header. Bonus points if the manufacturer designed series resistors into the board (let's say 0402 or even 0201) and left those out too to save the last 0.01 cent.
In my working life I've seen -
at least 3 different ways to do RS-232 on 8p8c
DTE-DCE is always an issue on standard 232, otherwise I wouldn't have so many null modem cables
232 and 3.3v TTL on the same board or assembly
3.3v and 5v TTL on the same board or assembly
Inconsistent labelling.
I'm in my mid 40's and I think there is a reasonable chance something with RS-232 serial timings will outlast me, it'd be nice to make it more foolproof, as its one of a very few interfaces that will work without drivers.
I do think as a matter of standard good design practice we should be putting clamping diodes on debug ports to prevent blowing things up if hit with the wrong voltage,
Err… if you're trying to approach the problem, the onus is on you to come up with options?
I'm not going to preclude you from being creative and coming up with a zero-cost solution that somehow magically does all this, but personally speaking I'd say the chances are minute and it's not worth my time.
I'm also not gonna try to stop you from building that thing you originally suggested, with the 8P8C or 10P10C connector and strapping pins and autodetection and whatnot, I'm just pointing out to you the issues I think it will run into. You're free to ignore my concerns. I'm a random commenter on the internet.
P.S.: calling it DTE-DCE auto detection signals to me that you haven't done a lot of work in this field; those terms are not in common use for TTL serial. People in the field would probably call it something like "TX/RX swap". (Hard to say, since it doesn't really exist.) Maybe you're an engineer for field buses or something like that though…
If you are willing to design a board with with 8p8c connector, identification resistor, and protection parts, then you might as well put RS-232/RS-422 transceiver. Those are very cheap nowadays, might even be cheaper than the connector itself. And you standardize on crossover cables, there will be no need DCE-DTE detection.
(Not that anyone would need this today. If you are connecting to existing serial port, there is USB, and USB-serial adapters are very cheap. And if you are designing a serial-based communication system, say for the robot, then CAN or RS485 are much better choices)
Apart from that, this doesn't even touch upon the various voltage levels for logic-level serial ports, or the question of whether to Vref or not to Vref. (Or RTS/CTS.)
Nordic has a serial-over-ble profile, but it is not standard like RFCOMM.
There are Android apps that support serial over ble
Too bad there's no standard for debug accessory connections. Also, at that point (putting a USB-C TCPC on your board) you might as well do full usbserial…
NB: there's no orientation detection in debug accessory mode.
If you have a portable device which needs serial connector, don't bother with weird connector and bespoke adapters which will get lost. Go for USB-C directly. As an extra bonus, USB-C is significantly more electrically rugged than raw UART input.
(this does not apply if you have some sort of multi-port serial port server, but those are pretty rare, and most likely use real RS232 voltages anyway)
Adding more colors would multiply their logistic and inventory requirements, which are already hard with so many different connectors multiplied by number of pin options. Multiplying that even further by number of colors that most people would never buy isn’t a win.
The alignment mechanisms on TagConnect/EdgeConnect negate any space advantage.
- Chop a PCI connector and have edge fingers on the PCB
- Skedd connectors
- Micro usb with a toggle switch or solder blob to switch between SWD/UART or USB
- Low profile usb-c and have D+/- as normal, and RX/TX over the accessory pins (like audio)
- Pogo pin clips
- GH1.25 connectors
- Tag-connect meh
- If thickness of pcb allows, your PCB can plug directly into a USB-A port (Thicc pcb) or if its too thin, it can plug into a male usb-c connector from a charger cable(might bend some pins though)
etc. etc.
So just like the author, anything but Dupont connectors ;)