Hello,
The suggestion is maybe also to test on another GPIO, to see if it's not burned.
But if you are sure of everything, why are you asking?
The first thing is to say "Thank you" and then ask if you don't understand the answer given

.
I am sure of several things:
Dallas has not changed anything for a very long time on their ds18b20.
B4R can change version, it never means that any library has changed.
The Chinese make very bad copies of Dallas or Siemens sensors or whatever you want. The cheap quality is not real, it is just a dream, or a Chinese fake

.
You say "the hardware is correct", maybe yes, but you talk also about a PCB. You didn't soldering the components on a PCB ? If yes like I'm sure, it's not the same components and not even a PCB i think, instead it's a breadboard with new components and cables. That already introduce many possibility of failure...
And to conclude your code is not really an example of that "is correct"...
Why an interrupt:
Sub Timer1_Tick
..../...
-> Too much done here for an interrupt, see my comment below
And :
onewire.Reset
onewire.Select(address)
onewire.Write(0x44, True)
'give it 1 second to read the temperature <- oh OK, but it's not done afterwards in the function, while the same commands are used again...
CallSubPlus("ReadTemparature", 1000, 0)
End
Then :
Private Sub ReadTemparature (u As Byte)
onewire.Reset
onewire.Select(address)
etc.
Another reset, another sensor selection??? why, and this time without any pause... it's a bit weird I'm not sure the Dallas sensor really appreciates that. But i didn't work with it since a while and not with this library.
IMPORTANT, on all µCs, interrupts are made to:
- Wake up the µC when it is in sleep mode;
- Keep information of a button pressed, or whatever you want.
So keep information to do things in the infinite loop after, even if this loop blocks everything!
Because it is a hardware interrupt before all. So it is strongly recommended to make the code as short as possible, i.e. set a boolean to true etc.
And especially not to write a book... which leads you to an erroneous code, which never works absolutely well!
So the first question is why an interrupt? A simple timer in the infinite loop does exactly the same thing.
interrupt every 2 seconds... during my working time I was also an expert in heating and cooling regulation, I have never used a poll as short as that, do you think you are alone on an ESP, WIFI does not exist?
There is a lot of work to be done before solving anything. So Derez is right to bring you first on a link to learn one of the good ways to achieve it
Have a good day everyone.