Go Down

Topic: Sniffing eeprom i2c for Omron BP742N blood pressure monitor (Read 71 times) previous topic - next topic


I recently purchased a Omron BP742N blood pressure monitor and want to sniff the i2c data so I can log it externally. I found the I2c lines and this is the i2c chip I think they are using:
Rohm I2C eeprom datasheet

I can listen to the data but can't make any sense of it. Here is the code i'm using to dump the data to the serial port:
Code: [Select]
#include <Wire.h>
void setup()
Wire.begin(190);                // join i2c bus with address #4
Wire.onReceive(receiveEvent); // register event
Serial.begin(9600);           // start serial for output

void loop()

// function that executes whenever data is received from master
// this function is registered as an event, see setup()
void receiveEvent(int howMany)
while(1 < Wire.available()) // loop through all but the last
char c = Wire.read(); // receive byte as a character
Serial.print(c);         // print the character

int x = Wire.read();    // receive byte as an integer
Serial.println(x);         // print the integer

I found that the same data is being sent to 2 different addresses, but I can only find 1 chip on the i2c bus...on the top side, can't easily flip the board over. I've noticed when I make some changes to the code such as remove the second Wire.read() in the receive event It will cause the meter to go into an error mode. I hooked the lines up to a scope and appears that the arduino at times will pull the i2c lines low causing the blood pressure monitor to not be able to communicate with the eeprom. adding pullups did not fix this issue.

Any suggestions on how I can decode the data?


Go Up