I have been using the XBee3 to read a simple temperature, pressure, humidity sensor via I2C on the development board and everything works great. However, when I dock the XBee3 into our custom board, I cannot access the device. I don't believe the XBee3 is even detecting it via .scan(). I have noticed that while Vcc = SDA, the SCL voltage is much lower. If my Vcc is around 3.4V, the SCL line is barely 2.0V.
I did take a look at the schematic for the XBIB-U-Dev Rev B development board to see what else the SCL and SDA pins are connected to on the board. My thoughts were to mimic this condition on our board to get it to work, but I am still stuck. The SCL line (DIO1) is connected to one of the buttons. The SDA (DIO 11) is connected to a 10kOhm resistor and then connected to the base of a PNP transistor which is used for lighting and LED. The emitter side is connected to Vcc and the collector to the LED, then ground.
On our custom board, the SDA and SCL pins are connected directly to headers, then to the I2C device. The particular I2C device is actually an Adafruit BME280 sensor and has level shifting, a 3-5V input regulator and pull-up resistors already on board. Our board runs off of a battery pack with very simple solar recharging. The battery voltage ranges from 3.5-4.0V depending on charge level.
A few things I tried already...
1. Tinkering with the internal pull-up/pull-downs on the XBee3 (tried Up, Down, and disabled)
2. I changed power supply for our board from the battery, to a regulated power supply
3. Tried a 2.2kOhm and 1.0kOhm resistor across the SCL line and Vcc in an effort to further pull-up the SCL. It got the voltage up, but did not work. Unfortunately, I don't have a scope.
4. Tried different I2C units - had several laying around in addition to other similar knock-offs.
5. Changed length of wire between XBee3 and the I2C device. At one point, had it about 4 inches from the XBee.
6. Checked, double checked, and then tripled checked until I was going crazy, my pinouts, my connections, and all my wiring.
7. One strange thing to note, I had two of these working great for about 3 days, patted myself on the back, and then they just quit working and I can't figure out why. I was thinking there was some sort of "event" that blew something up, but I swapped boards, I checked the I2C devices on a separate board (Arduino), I inspected traces. I figured if I had blown something on the XBee3 (say too much voltage due to a bright sunny day when the battery was fully charged and the solar panel was pumping full) it would no longer work on the XBIB-U-Dev board. The I2C devices that were on there work fine too - on the XBIB dev board and on an arduino.
Bottom line, it seems that things are functioning as it should with one small issue. I cannot located what is causing me so much grief and my sanity. Any input will help salvage the last of sanity.