[HN Gopher] Apple Desktop Bus Protocol (2021)
___________________________________________________________________
Apple Desktop Bus Protocol (2021)
Author : dcminter
Score : 20 points
Date : 2025-11-30 13:39 UTC (9 hours ago)
(HTM) web link (www.lopaciuk.eu)
(TXT) w3m dump (www.lopaciuk.eu)
| addaon wrote:
| ADB was pretty solid. A shared-single-wire bus that allows
| multiple slaves by including an address in the message... but
| includes a protocol-level reset that's used regularly, so a
| missed single bit doesn't jam things up unrecoverably. When I
| think of how many fewer hours of my life I would have wasted had
| I2C learned this lesson...
| buildbot wrote:
| Oh is that why I2C seems to just hang/break whenever I use it
| for a DIY project? Does everyone just reset the bus all the
| time?
| addaon wrote:
| The I2C protocol is a distributed state machine. Each slave
| node needs to know what bit in the message sequence is being
| sent, to match it against its own address. As a result, a
| single missed bit results in a slave not recognizing its own
| address and going dark -- or, worse but rarer, potentially
| recognizing its address in the midst of data sent to another
| slave, and responding inappropriately. Observing this in a
| real system indicates either a signal integrity issue or a
| bug, but signal integrity issues do happen, and this non-
| recoverable behavior is somewhat unique to I2C, and somewhat
| cursed, turning what would be a transient error into a
| permanent one. In practice, most I2C devices have some
| mechanism for recovering (sufficiently long pulse on clock
| line, so many clock edges all low, a dedicated reset pin);
| and for the few that don't, forcing a reset of the device
| through a high-side drive or similar works fine; but the fact
| that these mechanisms are outside of the protocol, rather
| than inside it, is also cursed, and means that for an I2C bus
| of mixed devices there's not guaranteed to be a single method
| acceptable to all of them.
| korhojoa wrote:
| As the author mentions doing it, a note regarding retrobright: it
| seems to cause faster yellowing than not using it.
| https://youtu.be/_n_WpjseCXA
|
| Maybe just let your items show their age.
___________________________________________________________________
(page generated 2025-11-30 23:02 UTC)