Pages: [1]   Go Down
Author Topic: i2cdevlib + MS561101BA + due  (Read 2153 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi I try to talk to an MS561101BA on the due.

The newest version of i2devlib works well on the due with HMC5883L MPU6050 and BMP085.
https://github.com/jrowberg/i2cdevlib

For the MS561101BA  I use the library made by Manuel J Guisado using i2devlib, which works just fine on the arduino uno.
https://github.com/mjguisado/i2cdevlib/tree/master/Arduino/MS561101BA

There is no example but this is an minimal one which works on the uno (sensor powered with 3.3V and pullups disabled):
Code:
#include "Wire.h"
#include "I2Cdev.h"
#include "MS561101BA.h"
MS561101BA baro(0x77); // address of the sensor on freeimu 0.4
float pressurem;
float temperaturem;

void setup() {
    Wire.begin();
    Serial.begin(57600);
    baro.initialize();
    Serial.println(baro.testConnection() ? "baro connection successful" : "baro connection failed");
    // this gives false positive value on the due I think due to the problems with wire ?
}

void loop() {
baro.setOverSampleRate(256);
baro.readValues(&pressurem, &temperaturem);
Serial.print(pressurem); Serial.print("\t");
Serial.print(temperaturem); Serial.println("\t");
}

I get no error message while uploading to the due, but it only prints 0 values for temperature and pressure.

Any idea is appreciated.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok, I still have no success with the i2cdevlib but i manged to use the MS5611 using Flavio Varesano freeimu libary.
After some minor changes the raw reading function of the libary works well on the due.

Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 28
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello,
I have exactly the same setup and facing the same problems. Can you please post a link to the library you have used? What have you changed?

Best regards,
Dan.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

You can find the original libary here:
http://www.varesano.net/files/FreeIMU-20121122_1126.zip
It is not form me. I am not at home now, so I can not send you the changed one, but it is mainly replacing the int with int16_t.

Thomas
Logged

0
Offline Offline
God Member
*****
Karma: 25
Posts: 606
Always making something...
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Here is a copy of FreeIMU with the last updates Fabio made.

http://www.pjrc.com/teensy/beta/freeimu_trunk-r49.tgz

This was ported and tested on Teensy 3.0, which has a similar 32 bit ARM CPU as Arduino Due.  The 16 bit integer problems are fixed in this version.  AVR-only hacks like TWBR are surrounded by #ifdef checks.  A difficult problem with the inverse square root function when compiling on ARM was also fixed.

It hasn't been tested on Arduino Due, but those fixes for Teensy 3.0 will probably save you a lot of trouble, hopefully leaving only relatively easy stuff to support Due.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 28
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thx,
I'll give it a try and keep you posted on the results.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Did anyone manage to get the MS561101BA working with the Due?

I've spent 10 hours, trying absolutely everything but to no avail  smiley-sad
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

On some boards, you have to put a blob of solder on the board in order to select i2c.  So make sure that you can see the device with i2cscanner.

Also, the due has problems with i2c. If you can't see it with i2cscanner, then you have to use a modified Wire.h file - https://raw.githubusercontent.com/bluesign2k/Arduino/d8d6d62853a5308c21b95dad4bdd64e358e857cc/hardware/arduino/sam/libraries/Wire/Wire.cpp

Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 2
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Please somebody provide help in detail. I have the same issue with MS5611A2 (GY-63 breakout board). I2C scanner does not detect the device but it works fine on Uno board. Your help will be really appreciated as my project deadline is near. And also please mention if i should use any circuitry with the baro or i can connect it directly. Thank you
« Last Edit: June 12, 2014, 02:03:28 am by Hammad32 » Logged

0
Offline Offline
God Member
*****
Karma: 25
Posts: 606
Always making something...
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Here's a copy of FreeIMU where I've applied fixes for bugs people have discovered when used on Teensy 3.0 and 3.1.

https://github.com/PaulStoffregen/FreeIMU

I have no idea if this will solve your problems on Arduino Due, but since Teensy 3.1 & Due use similar ARM Cortex-M chips, it might be worth a try?
Logged

Pages: [1]   Go Up
Jump to: