To be clear -- for my part anyway, I've implied that hobbyists are frequently in the "inexperienced" camp, and that they might benefit some if they knew. That basically sums it up as an answer.
That is what I thought, too, but seeing the many answers that imply that any use of digital isolators is a sign of a bad design has made me question myself.
There is also the converse case: using isolators when no isolation is actually even used.
Yeah; I
am guilty of that with I²C level shifting, but only because the I²C isolators like
ISO1640 allow me to put my 3.3V logic level MCU on side 1, and interface to any logic levels between 2.25V and 5.5V on the other side. Compare to the standard PCA9306: with MCU at 3.3V, you can use PCA9306 for 1.2V/1.8V/2.5V, OR for 5V, but not both. And if you have close to 3.3V on both sides, you need to remove the PCA9306 from the picture altogether. With PCA9306, I'd need to make it a module I can insert and remove whenever needed; with ISO1640 I can spend about 2.5€ more and make it monolithic.
Mouser sells cheapest PCA9306 variants for about 0.57€ in singles, whereas ISO1640 is 3€. If I know the logic level beforehand, or can use I²C devices that work with 3.3V logic levels, then of course I will do that. But, when say testing various I²C sensors or sensor modules, that is not always possible; but I can still spend a couple of euros more to simplify my designs and misuse the ISO1640 isolator as a "more robust I²C level translator".
(I have looked, but have not found a comparable I²C level translator, one without requiring one supply to be lower than the other, or having very asymmetric logic level thresholds and outputs –– in particular, one side output low being higher than the low threshold on the other side.)
For the UART cable, I like TI ISO6721/7721 being able to handle both level translation (from 1.8V/2.25V-5.5V)
and isolation whenever I happen to need one or both. This way, I only need one cable for all my USB-to-UART needs.
It's tricky to comment, about your circuit(s)/schematic(s), which desperately need digital isolators, without seeing the schematics.
Is it? You already confidently implied my use of digital isolators is an indication of my lack of design skill, so how come it is now suddenly tricky to back up your claim?
Here. This is the core part of my USB-to-UART cable.
On the right side, you have either a cheap microcontroller with a native USB interface like CH554G or a cheap Cortex-M0, or a dedicated USB-serial chip like FT230X, CH340, etc. In my case, I've used various microcontrollers at 3.3V and 5V logic levels, but nowadays the right side VCC is always 3.3V.
On the left side, you have the serial console UART pins on various single-board computers, routers and switches, and even 3D printer mainboards. The logic levels vary, from 1.8V (many Linux SoCs) to 3.3V (common) to 5V (older things using 5V logic). The idea of this cable is to be able to safely power both my host computer and the target SBC/appliance, while accessing the Linux terminal console on the target. Note that such pins are often just through holes on the target board, only sometimes labeled in the silkscreen.
With this cable, all I need to worry about is the baud rate, bits, and stop bits. Even if the device uses a cheap wall wart that floats the negative side to peak negative mains voltage (being double-isolated with a class Y capacitor between the isolated side and the mains side), with a couple of hundred volts between its ground and the ground on my properly true-earth grounded PC, this cable is safe to use. I don't have to first use a multimeter to check if there is a potential difference, and check if I bridge their two grounds I see a ground current I need to worry about.
The digital isolator costs $1.21 at JCLPCB assembly, 1.46€ in singles at Mouser, and the two 0.1µF capacitors are bog-standard X7R 16V or higher ceramic caps in 0603. You can save something like $1.5 or 1.6€ if you bodge the level translation using transistors or whatever components you have at hand,
like most do when they need level translation with their USB-UART cable, but you likely won't get very high baud rates with such, and if the target has a particularly low (< 0.3V) logic low threshold voltage, bidirectional translators low-level glitch when they temporarily confuse the actual direction of the signaling can ruin your transmitted signal (TX to the SBC/SoC).
My suggestion is to avoid both voltage translation and ground loop/ground current issues by spending an additional $1.30/1.60€ here. My question is about why one can find dozens of hobbyist DIY USB-UART projects, but none using such a digital isolator. Is it because you and joeqsmith are right, and using a digital isolator is only papering over a bad design? Or for some other reason?
I am fully aware that price is a key factor in commercial designs, well exemplified in the Audio USB Isolator niche, where they don't even bother to describe the isolator characteristics, only the effects they claim audiofiles will benefit from. The lack of digital isolators in hobbyist and custom-purpose projects is surprising to me – as well as suspicious, because I am fully aware of the risk of falling into the Dunning-Kruger trap. As I often repeat, on the electronics side, I still am only a hobbyist.