Ok let me get this correct, as I messed up original message. Too long at this. I am using a 16f877 to control 6 16f876. All within 14inches This is Ports on 16f877 (Master) | C.0 -------- Triggers PicBoard #1 | B.0 -------- Busy Line from PicBoard #1 | C.1 -------- Triggers PicBoard #2 | B.1 -------- Busy Line from PicBoard #2 | C.2 -------- Triggers PicBoard #3 | B.2 -------- Busy Line from PicBoard #3 | C.3 -------- Triggers PicBoard #4 | B.3 -------- Busy Line from PicBoard #4 | C.4 -------- Triggers PicBoard #5 | B.4 -------- Busy Line from PicBoard #5 | C.5 -------- Triggers PicBoard #6 | B.5 -------- Busy Line from PicBoard #6 Now lets look at just the connection to PicBoard #1 (master)16f877 C.0 triggers (slave) B.0 16f876 (this activates slave board #1 when it goes low) then for the slave to let master know if its busy or not (slave) C.0 16f876 signals (master)16f877 B.0 (B.0=low means slaveboard#1 is busy) (B.0=high means slave board#1 is ready) I wrote a programs in Master to Turn On PicBoard #1 Turn On PicBoard #2 Turn On PicBoard #3 Turn On PicBoard #4 Turn On PicBoard #5 Turn On PicBoard #6 Turn Off PicBoard #1 Turn Off PicBoard #2 Turn Off PicBoard #3 Turn Off PicBoard #4 Turn Off PicBoard #5 Turn Off PicBoard #6 using routines like TV2 = 0 While TV2_done = 0 Wend All the slaves are triggered by the Master but the Master does not wait for the Slave busy line to go high. I swapped slave boards between #1 and #2 and still get the same results. So I made a button and led setup to plug in each board to substitute Master. Everything on board seems to work fine. When I trigger the slave it works and the busy line turns on and off when it should. So now it seams to be my MASTER picboard. So I hooked Master back up and watched all the busy/ready lines and all lines goes low and high. Here is the readings I get on the busy/ready line from the slave talking to the master. It goes low showing busy and then goes back high when ready. The connections between the pics are about 14inches. The line between the slave to the master for busy/ready has a 220 ohm resistor at the slave end (I said 2k2 last message...opps). This is just for zapp protection. 16f877(Master) <------------------------[ 220 ohm ]----< 16f876(Slave) Is there something that might be making PortB (Input) from seeing the slaves correct (except slave #1) I thought using a 10k pulldown resistor might help the master see the low. 16f877(Master) <------------------------[ 220 ohm ]----< 16f876(Slave) | 10k | GND It seems the problem is in my master program. Somehow it does not see or react to the _done lines going low. It does stop the second time it gets to the same slave that did not send the ready (high) signal. Here is more of my program +++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++ @ DEVICE pic16F877, hs_osc, wdt_off, pwrt_off, bod_off, lvp_off, cpd_off,wrt_off, protect_off DEFINE OSC 20 '20 MHz crystal ' - - - -SETUP PORTA for OUTPUT- - - - - - - ' used to control LEDs ' 6 bit bi-directional port, cmos output drivers (except pin4) ADCON1 = 7 ' Set PORTA and PORTE to digital TRISA = %00000000 ' set PortA for all output PortA = %00000000 ' turn all lines on PortA OFF Reverser_led var PORTA.0 ' Reverse LED GrinderA_led var PORTA.1 ' Grinder A LED GrinderB_led var PORTA.2 ' Grinder B LED Pump_led var PORTA.3 ' Pump LED ' var PORTA.4 ' Not used < Open Drain Output ' var PORTA.5 ' Not used ' - - - -SETUP PORTB for INPUT- - - - ' used to read valve controllers ' 8 bit bi-directional port, TTL input TRISB = %01111111 ' sparein, trig, emer on PORTB to input Main_done var PORTB.0 ' Main Air Supply done line Clamp_done var PORTB.1 ' Clamp done line Index_done var PORTB.2 ' Index done line Tilt_done var PORTB.3 ' Tilt done line TV1_done var PORTB.4 ' Transverse1 done line TV2_done var PORTB.5 ' Transverse2 done line Counter_done var PORTB.6 ' Counter done line ' var PORTB.7 ' not used ' - - - -SETUP PORTC for OUTPUT- - - - ' used to trigger valve controllers ' 8 bit bi-directional port, TTL output TRISC = %00000000 ' set PortC for all output PortC = %00000000 ' turn off all portC Main var PORTC.0 ' Main Air Supply Valve Clamp var PORTC.1 ' Clamp Valve Index var PORTC.2 ' Index Valve Tilt var PORTC.3 ' Tilt Valve TV1 var PORTC.4 ' Transverse1 Valve TV2 var PORTC.5 ' Transverse2 Valve Counter var PORTC.6 ' Subract from Mechanical Counter ' var PORTC.7 ' not used ' - - - -SETUP PORTD for OUTPUT - - - - ' used to control grinders and pump ' 8 bit bi-directional port, TTL output ' TRISD = %11110000 ' set PortD for 4 output & 4 input TRISD = %00000000 'set all to output <---Remove Later ----<<<< PortD = %00000000 ' turn off all portD Reverser var PORTD.0 ' Reverse for grinderA GrinderA var PORTD.1 ' Grinder A SSR GrinderB var PORTD.2 ' Grinder B SSR Pump var PORTD.3 ' Pump SSR Program_button var PORTD.4 ' Program Button (start) TV1_button var PORTD.5 ' GrinderA Motor Button TV2_button var PORTD.6 ' GrinderB Motor Button Pump_button var PORTD.7 ' Pump Button ' - - - -SETUP PORTE for OUTPUT- - - - ' 3 bit bi-directional port, TTL input ' set to digital with above ADCON1 = 7 TRISE = %00000111 ' set PortE for all input PortE = %00000000 ' turn off all portE chip_button1 var PORTE.0 ' not used chip_button2 var PORTE.1 ' not used auto_button var PORTE.2 ' not used ' - - - -SETUP VARIABLES- - - - lasttilt var word ' Tracks where Tilt is '-------------------------------------------------------- start: pause 2000 ' pause for AVC circuits to see master is there ' = = = = = = = = = ' = TEST Program = ' = = = = = = = = = test: pause 3000 Main = 1 While Main_done = 0 Wend pause 2000 Clamp = 1 While Clamp_done = 0 Wend pause 2000 Index = 1 While Index_done = 0 Wend pause 2000 Main = 0 While Main_done = 0 Wend pause 2000 Clamp = 0 While Clamp_done = 0 Wend pause 2000 Index = 0 While Index_done = 0 Wend pause 2000 Tilt = 1 While Tilt_done = 0 Wend pause 2000 TV1 = 1 While TV1_done = 0 Wend pause 2000 TV2 = 1 While TV2_done = 0 Wend pause 2000 Tilt = 0 While Tilt_done = 0 Wend pause 2000 TV1 = 0 While TV1_done = 0 Wend pause 2000 TV2 = 0 While TV2_done = 0 Wend pause 2000 goto test ' = = = = = = = = = = = = = = = = = = = = = = = = = See anything that I may have missed or what. I have been working on this problem for 2 days now. Help. -- http://www.piclist.com hint: The list server can filter out subtopics (like ads or off topics) for you. See http://www.piclist.com/#topics