In my quest to try to save my oilpan while I await a new mega 2 shipment, I have run into a strange issue..
I replaced the mag (compass) on the oilpan as it somehow went up in smoke during another strange incident involving a bad XBee carrier board I purchased from a 3DR distributor just over the boarder.. At the time, the compass was giving crazy readings (always spinning) so I replaced it - all is well with the compass, but now the baro isn't working at all.. CLI shows max pressure, 0cm height, and max temp..
I looked up the datasheet and have the schematics for not only the IMU but also the baro/temp breakout board 3DR sells, and after tracing and testing the pins for continuity to the rest of the board (and they are good..) I can't figure out what could be the issue..
1. Bad carrier board for XBee did something to screw up mega 1 board and IMU shield
- no longer doing anything...
2. Kickstarted a reload of bootloader and firmware using Arduino IDE and FTDI cable.. It's alive!
3. Figure out through CLI testing that everything works great (with 2nd new XBee board) except compass..
4. Order new compass, and solder to board - happy new compass..
5. Test flew, noticed crazy behavior after getting ~15 feet up (out of sonar range)
6. Tested baro in CLI, max scale readings for pressure and temp, nothing for altitude.
As it died when I put the new compass on, I don't want to de-solder the compass to test (more important to have compass than baro at the moment) as many people burn up the solder pads, and I don't want to chance it.. I can't figure out what could have happened, as the board looks good, no issues with solder, etc.. Heat from a second of soldering the compass shouldn't have done anything, and continuity test looks good for each pin - although I notice on the imu schematic xclr isn't connected to anything on the bosch baro, but it has a hole for wire on the breakout board that 3dr sells.. so don't know if it's just not used on the IMU, or it's a mistake on the schematic labeling..
Any other ideas would be greatly appreciated..
PS - This is the output I currently get in CLI when I'm in the altitude test:
alt: 0cm, pres: 319213mbar, temp: 2054/100degC, raw pres: 0, raw temp: 65535
Do you have 5V on the compass, 5V on the baro?The i2C bus (which both sensors are on) is pretty sensitive to voltage. You need at least 4.98V.
Make sure the compass has no EMI around it--it's location is too sensitive to EMI IMO.
Also make sure the Xbee is far away from the oil pan.
Also IF you know how, you can tap the SDA/SCL pins on the red board (under the compass basically) and put the signal on a scope to see if it's truly flatlined/dead.
Also if you're willing--buy a baro-explorer type board with the same sensor, plug it into the I2C port (will need to move compass?) and modify the code to ignore the onboard baro (hard).
Greetings Cliff :)
Thank you for your detailed reply.. I currently have 5.08v on the compass.. 3.31v on the baro..
As far as EMI (I agree bad placement of compass..) everything generating large radio signals is on the direct opposite side farthest away from the compass on my hexa.. While on the bench connected via USB and testing this issue, I don't have the radio receiver powered, and have accessories (XBee & Sonar) unplugged. - Only items powered are the Mega1 and oilpan..
As far as the SDA/SCL pins - The SDA2/SCL2 pins coming off the I2C chip are ok, as the compass is functioning normally.. (I had an issue with a trace being bad from SDA1 on i2c chip, and soldered a small wire from the chip pin, to the compass pin, and it fixed the issue) I am confused as to SDA1/SDA2 and SCL1/SCL2..
As I look at the schematic, I see that from the i2c chip, pins 5/6 (SDA2/SCL2) go to the compass, then to the i2c connector that looks like the GPS connector on the mega..I then see that SDA1/SCL1 look like they would go to the baro, but when you look at the baro portion of the schematic above the i2c chip, it has both of the baro pins going to resistors, then 3.3v supply.. While they both are labeled SDA1/SCL1, I don't see how they make the connection in the schematic to the i2c chip.. I do see that baro pin 2 goes directly to the mega via PC7 on JP12.. But yeah, a little confused with how the schematic looks..
Perhaps you could shed some light on that for me? I could be just missing something simple, as it's after midnight over here :)
As for a scope, would love to, but don't have one :(
Scratch the part about the SDA1/SCL1 pins - I see the traces from the i2c chip going to the baro before getting to the 10k resistors then v+.. I just checked them with the meter, and they aren't shorted/broken either.. hmm..
After doing some research, and following up with testing, this is what I have thus far, without access to a scope (and likely will not gain access to one..)
1. The i2c chip, being that it has two bus masters, SDA/SCL1 (5 volt side) and SDA/SCL2 (3.3v side) appears to be physically ok, and has proper connections to all items next down the path from each pin, and has proper voltage when powered.
2. The baro looks to be perfectly fine from a close inspection, using one heck of a mounted magnifying glass. The baro having 8 pins, 6 connected to downstream items, has a proper connection to each. It gets proper voltage when powered (3.31v) - The resistors connected to the i2c bus data and clock pins to high are exactly 10k as they should be.. The 3v3 connection on pin 3 (VDDA) is connected properly, and the cap on that pin going to ground is good.. Pin 2 (going to PC7 on connector 12) makes continuity contact when oilpan is placed on the Mega1..
This really does seem like I've got a bad baro on the 3 week old oilpan.. I don't believe I've ever gotten a "good" reading from it from day one, although I was thinking things just weren't as accurate as I wanted it to be while flying, so I got the sonar for lower flying.. It may just be that it never worked properly, or gave out after giving sporadic readings, and I didn't know enough about the board yet to see the ghost in the machine before it died..