[HN Gopher] Apple Desktop Bus Protocol (2021)
___________________________________________________________________
Apple Desktop Bus Protocol (2021)
Author : dcminter
Score : 45 points
Date : 2025-11-30 13:39 UTC (3 days 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.
| eternityforest wrote:
| Yes, but every device is slightly different and sometimes you
| need obnoxious hacks to even detect that there is a problem
| at all...
| 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.
| inferiorhuman wrote:
| Honestly it'd be really cool to see some repro parts for these
| like an upper case (even without the Apple logo).
|
| I junked my old AE2 ages ago and finally got a replacement
| today. If I knew then what I know now I would've salvaged a
| bunch of stuff off of it. Oh well.
| zdw wrote:
| Has anyone calculated or measured the input lag of ADB vs other
| protocols such as PS/2 or USB? This is unfortunately hard to
| search because most references on the web to ADB are for the
| Android Debug Bridge.
|
| From the numbers given, it seems like ~2ms to send a packet (my
| math may be off), which is quite good when compared with other
| contemporary/modern protocols (see: https://danluu.com/input-lag/
| for examples)
| justin66 wrote:
| It's okay. It's not as good as the SIO that came with the Atari
| 8-bit computers, but it's alright.
___________________________________________________________________
(page generated 2025-12-03 23:00 UTC)