I had 9 ds18b20 on my network ,, 4 on outside AC 5 in shop ..using LOGTEMP
I removed 4 in shop and attached the quad ...
Ibutton viewer sees 9 with occasional error
Onwireviewer sees 9 wirh occasional error
LOGTEMP only sees the quad .... any ideas


tried to modify wait_for_ip to use tmr0 ,,, but only see 1 device...
I'm using serial port with 2 zeners/2 shottly and 1.5k pullup
I just order 2 elcheapo from china that was mentioned in another post
modified code
;WAIT_FOR_IP
; BCF GPIO,2 ; make sure GP2 is still outputting a 0
; MOVLW TRISIO ; \_ point INDF at TRISIO to allow slave
; MOVWF FSR ; / to pull DQ low as quickly as poss
; clrf TMR0 ;*****
; BSF INDF,2 ; 1 240 drive DG hi (make GP2 i/p)
; ; cs cc (cycles, cycle count)
;r1: BTFSC DQ ; 1 0 \_ Wait in tight loop for DQ to
; GOTO r1 ; 1 1 / go low;
;
;--- line is low now
;
;
;r2: btfsc DQ ;
; goto WAIT_FOR_IP ; less than 480
; movfw TMR0 ;
; sublw d'59' ;
; btfsc CARRY ;
; goto r2 ; loop
;END_OF_IP: clrf TMR0
;r3: btfsc DQ ;
; goto r4 ; goto presense
; movfw TMR0 ;
; sublw d'59' ; less than 480+480 960
; btfsc CARRY ;
; goto r3 ;
; goto WAIT_FOR_IP ; loop
;
;r4:
;
; MOVLW D'19' ; 1 2 Wait for tPDH of 30us
; MOVWF DELCTR ; 1 3 => 3 + (3x19 - 1) = 59
;
;DELPP1 DECFSZ DELCTR,1 ; 56 59 \_ cycles = 3n - 1
; GOTO DELPP1 ; /
;
; BCF INDF,2 ; 1 60 drive DG low (make GP2 o/p)
;
; ; cs cc
; MOVLW d'120' ; 3*120/2=180 D'79' ; 1 2 \_ Make PP 120us long
; MOVWF DELCTR ; 1 3 /
;
;DELPP2 DECFSZ DELCTR,1 ; 236 239 \_ cycles = 3n - 1
; GOTO DELPP2 ; /
;
; BSF INDF,2 ; 1 240 drive DG hi (make GP2 i/p)
;
;END_OF_PP
; BTFSS DQ ; \_ Wait for DQ to go high at end of
; GOTO END_OF_PP ; / the presence pulse
;
; CLRF ROMIDX ; Reset all ROM IDs eXclusion status