Unable to read serial data from my Blood Pressure sensor on my Arduino Yun

I am trying to get the readings from Blood Pressure Sensor Serial Out ,Sunrom Part 1437.

I have connected the Tx-out pin to Rx of Arduino. 5V and GND have also been connected appropriately. Following are example output readings from sensor. Each reading consist of 15 bytes at 9600 baud rate. The reading packet’s last byte is always enter key character(0x0A in hex and 10 in decimal).The output reading is 8bit value in ASCII format fixed digits, from 000 to 255.

Typical reading will be like below where the three values seperated by comma and space.

129, 107, 095

I have tries using the Serial.Read but it does not seem to be working. Here is my code for the same.

char sbuffer[14], ch;
unsigned char pos;
unsigned char read1, read2, read3;
boolean newData=false;

void setup() {
 Serial.println("<Arduino is ready>");

void loop() {

void recvChar() {
 if (Serial.available() > 0) 
        ch = Serial.read(); //loop till character received
        if(ch==0x0A) // if received character is <LF>, 0x0A, 10 then process buffer
          pos = 0; // buffer position reset for next reading
          // extract data from serial buffer to 8 bit integer value
          // convert data from ASCII to decimal
                    read1 = ((sbuffer[1]-'0')*100) + ((sbuffer[2]-'0')*10) +(sbuffer[3]-'0');
                    read2 = ((sbuffer[6]-'0')*100) + ((sbuffer[7]-'0')*10) +(sbuffer[8]-'0');
                    read3 = ((sbuffer[11]-'0')*100) + ((sbuffer[12]-'0')*10) +(sbuffer[13]-'0');
        { //store serial data to buffer
          sbuffer[pos] = ch;

void showNewData() {
 if (newData == true) 
 Serial.print("This just in ... ");
 newData = false;

and the output is like:

This just in… 48

I am a novice to Arduino programming. Help would be really appreciated.

You have forgotten that array indexes in c++ start at 0. You should be reading indexes 0,1 and 2 for the contents of read1.

That is because in the 14 bytes of data 1st byte is 0D and last byte is 0A. They are start and end markers. Also each subsequent 3 bytes of data are seperated by comma [2C 20] which is why for read2 I am starting from 6.

In that case I suggest you null terminate your array when you have the whole thing and serial.print it to help debug.

I suggest that you print each byte/character as it arrives. The sensor may not be outputting data in the format that you expect.