[SOLVED] URGENT: Honeywell ASDX i2c Wire.h pressure sensor problem!!!

Dear all,

I've been having problems with interfacing the ASDX I2C pressure sensor from Honeywell with the arduino. I connected the VDD, GND, SDA, and SCL to their respective pins on the arduino. I pulled the SDA and SCL lines up to +5v using 10k resistors.

I used the Wire.h library like this:

setup:
Wire.begin()

loop:
print('a');
Wire.requestFrom(0x78, 2);
print('b');
delay(10);
byte buffer1 = Wire.receive()
print('c');
delay(10);
byte buffer2 = Wire.receive()

the code most of the time does not reach the "print('b')" line, ie, it gets stuck at Wire.requestfrom(). but sometimes it randomly does reach checkpoint b, but does not raech checkpoint c.

I also tried both address 0x78 and 0x78>>1 (which i read from this forum that it might help).

What do i do!!! what did i do wrong!! this seems like a simple problem.

Thanks a lot,
Ben

ps. im using the part ASDXAV030PG7A5, and their i2c address is 0x78
Datasheet: Safety and Productivity Solutions | Honeywell
I2C Communications with Honeywell Digital Output Pressure
Sensors: Safety and Productivity Solutions | Honeywell
Installation instructions: Safety and Productivity Solutions | Honeywell

Read this - Wire - Arduino Reference - ???

You try to receive but don't know if there is anything available.

For the address check the I2Cscanner - I2CScanner: Arduino as I2C bus scanner – todbot blog

Wouldnt Wire.available be irrelevant in my case because the arduino gets stuck at requestfrom()...

I'll try the i2c scanner, thanks!

Wouldnt Wire.available be irrelevant in my case because the arduino gets stuck at requestfrom()...

YES because the code is not reached,
NO because the missing of Wire.available would be your next bug ...

Well I just tried the i2c scanner. Not a good result.

When I plug the asdx sensor in, the program hangs before scanning. However, when I unplug the sensor, the scan continues.

???? And it can't be a broken arduino. I thought it might have been so I opened my brand new spare one and that doesn't work either.

Oh. This is anti-climatic.

The problem was I got the wrong VDD pin... the ASDX sensor's pin layout is so weird, not the conventional counter-clockwise numbering.

It's ordered like this:
1 5
2 6
3 7
4 8

I swapped the pins and it was okay. [solved]
but this is curiously odd. firstly, why did the wire library hang? shouldn't there be a timeout of some sort? secondly, why is the sensor ordered like this? why did honeywell go out of its way to go against convention?