billybobjack
Newbie level 3
Hello,
I am trying to connect a pulse oximeter (see next post for data sheet) up to my computer, but I am having trouble reading the data in the correct format. I should be receiving 3 bytes per second when the sensor is plugged in. If there isn't a finger in the pulse ox it should read (in hex):
'BF 7F 7F'
I receive this output when I hook the sensor up to a bus pirate (see next post for data sheet) attached to my laptop in this UART configuration:
Set serial port speed: 9600
Data bits and parity: 8, none
Stop bits: 1
Receive polarity: idle 1 *
Select output type: Open drain (H=Hi-Z, L=GND)
* the receive polarity seems to be my issue. When I try to read from the sensor through a COM port on my desktop or the embedded computer that I eventually want to have it hooked up to, the readings I get are as follows (in hex):
'20 40 40'
which is (close to) the binary inverse of what I should be reading. Also, if I set my bus pirate 'Receive polarity' to idle 0 I also receive this (close to) binary inverse.
Does anyone have any idea why this is happening? I don't think I can simply get away with converting whatever value I read back to binary and inverting it because I'm going to lose an unknown number of leading ones, because whatever they are converted to originally will only see leading zeros and ignore them. Does one of the stock serial port settings allow me to reverse the polarity?
Thanks in advance for any help you can offer!
addendum: need one post to post links, I will respond to this post with the data sheets
---------- Post added at 14:17 ---------- Previous post was at 14:16 ----------
data sheets
pulse oximeter(pdf)
bus pirate
I am trying to connect a pulse oximeter (see next post for data sheet) up to my computer, but I am having trouble reading the data in the correct format. I should be receiving 3 bytes per second when the sensor is plugged in. If there isn't a finger in the pulse ox it should read (in hex):
'BF 7F 7F'
I receive this output when I hook the sensor up to a bus pirate (see next post for data sheet) attached to my laptop in this UART configuration:
Set serial port speed: 9600
Data bits and parity: 8, none
Stop bits: 1
Receive polarity: idle 1 *
Select output type: Open drain (H=Hi-Z, L=GND)
* the receive polarity seems to be my issue. When I try to read from the sensor through a COM port on my desktop or the embedded computer that I eventually want to have it hooked up to, the readings I get are as follows (in hex):
'20 40 40'
which is (close to) the binary inverse of what I should be reading. Also, if I set my bus pirate 'Receive polarity' to idle 0 I also receive this (close to) binary inverse.
Does anyone have any idea why this is happening? I don't think I can simply get away with converting whatever value I read back to binary and inverting it because I'm going to lose an unknown number of leading ones, because whatever they are converted to originally will only see leading zeros and ignore them. Does one of the stock serial port settings allow me to reverse the polarity?
Thanks in advance for any help you can offer!
addendum: need one post to post links, I will respond to this post with the data sheets
---------- Post added at 14:17 ---------- Previous post was at 14:16 ----------
data sheets
pulse oximeter(pdf)
bus pirate