The MM525x I mentioned could use the scheme below and would allow 31 or 33 relays (depending on version used) with a single IC. It would still require pullup resistors and the instantaneous current would be a wee bit high but possibly tolerable (I'd have to check the data sheet to see for sure). The MM545x drives all its outputs on/off essentially simultaneously and switching times are much faster than relay response time. Russell McMahon _____________________________ >Greg: > >Now I see what you're saying. In order to turn on a given relay you output >a string of zeros and ones such that the desired relay is the only one which >has different values on its two inputs. You need to keep the ends open, >because otherwise there would always be two relays that saw different >values. > >You should plan on always sending the entire byte at one time to the >hardware, then you will only have the skew between bits to deal with, >certainly much too short an interval to falsely trigger a relay. I guess I >would use an 8-bit port as a data bus. Three additional bits could select >one out of eight '373's via a '138 decoder. A final output bit could act as >the enable through the '138. This would allow for 8*7 = 56 relays. > >So, as I understand it, the values to turn the relays on and off would be: > >00000000 Idle state >11111111 Alternate idle state > >00000001 Turn on relay 1 >00000011 Turn on relay 2 >00000111 Turn on relay 3 etc