Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Temperature ports
#1
Hi Rob,

I have a DS18B20 that I plug into port 9, and it comes up on the display as 22° F (displays C but labeled F). I plug a different DS18B20 into that port and it does the same thing. I plug that second, known working sensor into ports 10, 11, 12, or 13 and it doesn't come up at all. Any suggestions where to start on either of these issues? I checked and do have 5v on the sensor..
Reply to top
#2
Hi Jared, the temps are probably showing wrong because some of the settings in the controller is different than the display, this probably happened when you had that eeprom issue, any settings changed then wouldn't have been saved in controller. To start go to settings, system and do the "sync system", this sends all settings on display to controller so they match. After that go to settings, customize, customize display and set the temp how you want it.

For those ports not working it could have been caused by the same thing, after you sync go to settings, hardware, port assignments and make sure port 6 and 7 is set to DS18B20 then they should work. Port 6 and 7 on display is port 12 and 13 on Gen3 board, that'll be fixed soon. Port 8 and 9 on this page isn't available on Gen3 without an add-on for more sensors.

On port 10 the DS18B20 won't work, it has to be a DHT22, I'll be making it adjustable in the next update. So that DS18B20 should work on 9, 11, 12 and 13.

EDIT: It can also take up to 12 seconds for the temp to appear.
Reply to top
#3
I got the F vs C part figured out.. The sync alone didn't do it, I had to go into the customize display menu and set it to C first, then do the sync, and then change it to F. Get everything on the same page first I think.

The other temp sensor still isn't showing up though, even after a couple sync's. I triple checked the 5v, swapped it with the one sensor that does show up to verify it still works, tried it on ports 11, 12, and 13 with no luck on any of them. The "water temp" on port 9 is the only one working. I haven't tried the DH22 yet, but that is what I had planned for port 10.

After replacing the I2C buffer IC, the display still locks up during boot. But like you said, if I let it sit for 5-10 minutes, it does eventually come up fine. Would that have anything to do with it?
Reply to top
#4
That's a surprise the I2C still locks up, even though the controller still turns on I don't believe any of the settings are being loaded, so it's still a problem. Another way we can solve that is remove the IC and I can send you a USB expander with 4 USB ports in a case, it'll have the buffers and plug into the USB port, does that work for you?

Those temp ports are a head scratcher, there is no circuit for them, just a pull-up resistor on the data line, the sensor is connected directly to the Arduino pins. The voltage of the data pins should be 3.3v, only the power pin is 5v. If you check port 9 - 13 pins they should all have 3.3v, if port 11, 12 and 13 has less that could be the issue. Are you testing the DS18B20 with 5m cable or using the transistor style? If you can test with short cable that would eliminate that possible cause.
Reply to top
#5
Do I even need the buffer then? The only things I plug into the USB ports are the pH probe and the I2C expander, neither cables of which are over 8 inches long? If I can remove the buffer and the port still works for a USB box, would it still work for those?

I get 1.8V for port 13, 0.97V for port 12, 3.1V for port 11, and 3.3V for port 10 (which I still haven't tried with the DH22). The length of the DS18B20 is less than a meter, maybe a foot and a half.. What's the pinout for the arduino to plug 7 terminals? I can check the continuity for starters. It looks like there's an 8 pin resistor network right about there?
Reply to top
#6
Since the cables are short to those devices you probably don't need the buffer, connect one at a time, if it's too much it'll just not work. Resetting the controller is the best way to know if it's ok, if it's not the display will stay locked as you experienced. 

At the top center of controller board you'll see a spare set of SCL/SDA header pins that might be easier to connect to and can handle more cable length than the USB port. The USB ports will still work but you have to bridge the 2 center pins on the board, I attached an image showing it.

[Image: PCA9507_Bridge.jpg]

Now that you mention the resistor array I'm thinking that's the issue. On that set of boards I switched to the arrays thinking it would be quicker for me to assemble but they are too small so I've gone back to the single 0805 package again. Maybe the pins are shorted out, my fault, as the water temp port has it's own 0805 resistor. On the left side of that array you should have 3.3v from the controller regulator, if those are shorted out its no problem, on the right side of the array is the data pins from Arduino so those shouldn't be shorted, can you see if they are?

Before playing with that check the voltage directly on the Arduino pins on the board, you'll see the pin numbers below. Sometimes the header pins don't make good contact, if you have 3.3v on all 5 pins then that's the issue.

Water temp port 9 - Arduino pin 51
Air temp port 10 - Arduino pin 53
Light temp port 11 - Arduino pin A6
Temp1 port 12 - Arduino pin A7
Temp2 port 13 - Arduino pin A8

If you have basically the same voltage as green plug then it'll probably be that resistor array. If you have some 4.7k resistors you can get it going without the array. To do this remove the array RN11, if you heat both sides it'll slide off. Then clean the pads so nothing is shorted and check voltages on those Arduino pins and they should all be 3.3v, if so that was the issue.

Then you can add the resistor to the plug going into the controller, put one side of resistor in data pin and the other side to 5v pin, do that to each port. A cleaner method is doing it on the board, if you solder one side of the resistor to the leg on the green connector and then connect other side of resistor to the 5v leg on green connector.

Sorry about all the trouble.
Reply to top
#7
In all the years I've done new product development and product updates and redesigns, there's never NOT been bugs and/or some kind of tweaking to get everything perfect. It's just part of the process. Not if, but how much. So no worries, thanks for your patience and help!

I removed the buffer IC and shorted the pads you showed, and it boots right up now. I haven't re-tested the I2C yet, but I'll get to that soon (I did change the addresses in the sketch but the port expander still doesn't do anything, I have to double check the address and make sure the expander is actually working).

So there was on open solder joint on the resistor array for the port 13 connection, but fixing that didn't make any difference. I checked continuities between the arduino header pins (with the Due removed) and the terminals, the terminals to the resistor array (right side), and checked the resistor array for shorts or opens, everything looks correct.
All the pads are shorted on the 3.3v (left) side, I get about 4.6-4.7kΩ from the 3.3v plane to the individual plug 7 terminals, so they're not shorted, and I get about 9.3kΩ from pad to pad on the input side (4.7k plus 4.7k) of the resistor array so they're not shorted. I followed every trace and every via and everything checks out physically.

The only thing I haven't checked is the continuity between the arduino itself and the board, I'll do that next.
Reply to top
#8
If the resistor array isn't shorted then the problem must be the Arduino or header pins as the voltage comes from them, the board is just wires making connections. Did you check the voltages on those Arduino pins with it removed? If they don't have 3.3v then the Arduino is faulty.
Reply to top
#9
It was the Due.. I swapped sketches on the display and controller dues's, swapped which boards they went on, and now I get temps! Got a replacement in my Amazon cart just in case.
Is there anything on the display board that uses those same pins?
Reply to top
#10
Glad to hear you figured it out, I've had very few faulty Due's, sorry you got one. Pin A8 is used for the photocell to dim the display based on ambient light, you can test that by turning the feature on by going to settings and system. Try covering the photocell to see if display dims or brightens as it should. If you need a new Due for it let me know and I'll send one.
Reply to top
#11
In all honesty I probably messed it up myself somehow. But it's working fine now, and I'm ordering a spare anyway (redundancy in a fish tank is always a good thing).
Reply to top
#12
Glad it working, one day soon I hope to have a nice face plate so the pinouts are clear, its not hard to mix them up. I'm thinking about using a PCB for the face plate, it'll be blank with just labels on it and cut to fit, I saw someone else doing this and it looked really good. I can probably alter the case so it snaps in place some how.
Reply to top


Forum Jump:

Current time: 04-19-2024, 12:12 PM