@swetlandBrian Swetland
@whitequark✧✦Catherine✦✧ oooh i2c (and SMBus) are *way* more cursed than you realize. those two buses aren't 100% compatible. the data hold timing is different by 100ns, so it is possible to make a host that is i2c compliant but won't work with certain smbus devices. i've seen this in the wild. smbus has different logic levels. a lot of i2c/smbus devices cannot handle saturated accesses at the full 100/400KHz clock rate.
@swetlandBrian Swetland
@whitequark✧✦Catherine✦✧ my favorite is that i2c eeprom devices that put extra memory address bits in their i2c address behave differently depending on the brand. some devices latch those bits only when you write the internal address counter, others update them from the values at the start of every transfer...
If you have a fediverse account, you can quote this note from your own instance. Search https://mastodon.social/users/tubetime/statuses/114823951814134628 on your instance and quote it. (Note that quoting is not supported in Mastodon.)