I've been connecting sensors to the i2c line on the apm 2.5 and after a little while the i2c port stops working. This is the second APM this has happened to and I can't keep on spending money.
Here is what I did to trouble shoot. I uploaded the arducopter firmware onto the apm 2.5 and try to connect to mission planner, but it gives me an error that says no packets received. Then I pull up the arduino serial monitor. The first two errors that show up are that the barometer and compass can't be initialized and calibrated respectively.
I just checked the voltage out of the I2C port and it is 228mV, which is really low from the correct 3.3V that the I2C voltage should be at.
I need help soon! This control board is part of my thesis project and the copter needed to be flying yesterday!
Do you have an oscilloscope? It's pretty hard to tell what's going on on the I2C bus with just a tester.
I2C can be really hairy, I'm surprised it works as well as it does.
Can you detect a certain sequence of events? Devices have addresses, Is it always the same thing that you connect that causes problems (conflict of address), or does everything work for a time, and then quit after a time? How many I2C devices do you have connected?
Do you change anything around the time that the I2C stops?
It would be strange that more than one APM fries(that it is an APM problem). It would seem that there woud be a lot more people complaining.
I2C has 2 speeds, Timing is important. Do you have anything new or in development on the bus? Bus wire length can be imporant, interference, that kind of thing.
Just throwing some stuff out there. In development I've had my challenges with I2C. Once it's clean it's usually quite stable though.
There is a 3.3vdc regulator on the APM2.5 pwb that supplies the I2C port and other ICs that require 3.3vdcand it probably dead.
TCIII ArduRover2 Developer
I have two extea sensors on the board. The sensors are cameras, which are being powered by the I2C port. They draw 13mA each. The problem only happens when my cameras are connected to the board because the board worked fine before I starting using the camera sensors.
I just measured the power out of the VCC line on the 2560 chip and I got 4.97V, which is correct. My guess that the problem is with the voltage regulator that is built into the APM. Since the voltage out of the apm i2c port is 228mV.
To answer your question about talking with the sensors on the i2c port. Last night I was able to use the cameras fine through the I2C port on the apm.
I can still talk to the cameras correctly with a arduino mega using I2C.
Thank you! I think this is the problem. Do you have any idea the specs on the regulator? I'd like to replace it with a higher capacity one, so I can still run the sensors off the I2C port. Thanks!
I determined it was the regulator that is on the I2C line. I couldn't find the specs for the exact regulator, but I found a similar regulator and the max current on it is 40mA, which seems to be a tad low for a autonomous robot. Maybe for future versions of the APM there should be a slightly bigger regulator.
I had a spare APM sitting around, so I'm currently using that. I am powering the two cameras straight from the battery and I placed a 3.3V 1A regulator between the battery and the cameras, this way the voltages match up. So far so good and everything works well!
did you ever find a better 3.3v regulator and replace it? I think this is my problem also as I have 0.2v coming from the i2c port and 1.8v coming from the PM port next door. Thinking its shot… what you think.
Hope this helps.