DragonOSD+ - ArduIMU+ V2 firmware modification

Support related stuff, for various products
TooSlow2Care
Posts: 4
Joined: Wed 09 Mar 09 2011 1:24 pm

Re: DragonOSD+ - ArduIMU+ V2 firmware modification

Post 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
Daniel Wee
Site Admin
Posts: 2449
Joined: Wed 25 Feb 25 2009 8:00 pm

Re: DragonOSD+ - ArduIMU+ V2 firmware modification

Post 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
TooSlow2Care
Posts: 4
Joined: Wed 09 Mar 09 2011 1:24 pm

Re: DragonOSD+ - ArduIMU+ V2 firmware modification

Post 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
Daniel Wee
Site Admin
Posts: 2449
Joined: Wed 25 Feb 25 2009 8:00 pm

Re: DragonOSD+ - ArduIMU+ V2 firmware modification

Post 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
magnetman
Posts: 1
Joined: Fri 26 Mar 26 2010 12:02 am

Re: DragonOSD+ - ArduIMU+ V2 firmware modification

Post 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 8588 times
I have full house with airspeed (homebrew, no pullup) and baro sensor from FPV Japan(no pullup).

Richard
Post Reply