Page 2 of 2

Re: DragonOSD+ - ArduIMU+ V2 firmware modification

Posted: Fri 17 Jun 17 2011 11:05 pm
by TooSlow2Care
Daniel,
Can you show me the Pull-ups on the ARDUIMU? i see a direct trace from the Atmel chip to the SDA & SCL pins.
https://store.diydrones.com/PhotoDetail ... ARDUIMU-20

cheers,
Brian

Re: DragonOSD+ - ArduIMU+ V2 firmware modification

Posted: Sat 18 Jun 18 2011 12:00 am
by Daniel Wee
Hi Brian,

I don't have my stuff with me and cannot remember the exact resistor positions. You will probably have better luck checking with the RCG thread. Most likely someone there knows.

Daniel

Re: DragonOSD+ - ArduIMU+ V2 firmware modification

Posted: Sat 18 Jun 18 2011 11:53 am
by TooSlow2Care
Ihave found some data regarding the Barometric sensor I am using, Here: http://hobbywireless.com/cart/index.php ... cts_id=633

they provide two fixes to what my problem might be, but i'm not sure if you have already written the code they refer to.
"A warning to ArduIMU users that are using other 3.3v sensors on the I2C bus (e.g. BMP085-based baro/altimeter). We have seen baros getting fried in this configuration and with the help of KrisW we have traced down the culprit. But first some background to get everyone up to speed.

I2C is a very popular communication bus. It has two signal lines: clock (SCL) and data (SDA). In a normal I2C circuit, each of these lines is connected to each I2C component on the bus as well a pull-up resistor (usually somewhere between 4k and 10k). I2C doesn't to my knowlege stricly define what voltage that pull-up value is but each component has limits on what it can handle. For example, the BMP085 barometer maxes out at 3.6v.

The ATMega328 the ArduIMU uses has on-board pull-up resistors that can be be enabled through software. But if you power the ArduIMU via its power supply input (6v+) or by putting 5V on the servo line, the I2C bus is pulled up to 5v. THIS WILL DAMAGE I2C DEVICES THAT DO ARE NOT 5v TOLLERANT, EVEN IF THE I2C POWER LINE HAS ONLY 3.3V ON IT. (Ask KrisW--there's a package of two new baros in the mail to him today). If you put a voltmeter on it you won't see 5V because the digital data on the line will average out to somewhere closer to 4V on voltmeter.

So there are a few possible fixes:

The one what we have been discussing in the last few posts: run ArduIMU on 3.3v throughout. You still get extra pull-ups but at least the pull-up is to a safe 3.3v. To do this, put 3.3v on 5V pin on the FTDI connector and on the 3.3V I2C bus connector.

The other way to fix this is that an ArduIMU updated firmware could be developed that modifies these lines in twi.c to turn off the pull-ups:
// activate internal pull-ups for twi
// as per note from atmega128 manual pg204
sbi(PORTD, 0);
sbi(PORTD, 1);
But it's a messy fix because it would require forking off the Wire libraries in Arduino.

So ArduIMU users: before you add 3.3v sensors to your bus, check their tollerances and make this update if they can't handle 5V."

cheers,
Brian

Re: DragonOSD+ - ArduIMU+ V2 firmware modification

Posted: Sat 18 Jun 18 2011 11:12 pm
by Daniel Wee
Hi Brian,

In my opinion, theirs is a situation involving some other error. Lots of people have used the ArduIMU and baro sensor combination without problems. Their case may have been due to their powering the ArduIMU off the 3.3V line or something similar. Also, if they had removed the resistors as recommended, there would have been no leakage issue either.

Daniel

Re: DragonOSD+ - ArduIMU+ V2 firmware modification

Posted: Sun 19 Jun 19 2011 6:15 am
by magnetman
Regarding the ARDIMU processor pull ups,(SDA and SCL), are we sure they don't internally pull up to 3.3V and not VCC?? (5V). No other pullups are fitted to the board :
6DOFArduIMUv20sch.pdf__6DOF-ArduIMU-v20-sch.pdf
(121.78 KiB) Downloaded 2220 times
I have full house with airspeed (homebrew, no pullup) and baro sensor from FPV Japan(no pullup).

Richard