Peter Todd wrote: > How would the slave detect that the LED is what is shorting the input? > > Are you just assuming that the second the data line goes low, the start > that sequence? > > You could potentially have the situation where all the leds are off, and > therefore the data line stays high, so the sequence would need to be: > > > Master switches to soft pull-up and pulls line low > Master notes line is low, attempts to bring it high > Line doesn't go high, so master retries until it does > > Meanwhile: > > Slaves detect this > Slaves turn off LEDs > Slaves and master wait until comms line rises again > Communication begins > True, I missed that particular case - I somehow assumed that communications would begin when the data line goes high (rising edge), but that would never happen if the line never goes low due to LED load. All this reminds me of I2C clock stretching, by the way. It's a similar algorithm. Your new sequence should do the trick. -- Hector Martin (hector@marcansoft.com) Public Key: http://www.marcansoft.com/marcan.asc -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist