Arduino Interfaced With Nonin Pulse Oximeter ( OEM Module) to Produce Analog Output

18,940

11

27

Introduction: Arduino Interfaced With Nonin Pulse Oximeter ( OEM Module) to Produce Analog Output

This project was conceived to have a reliable Analog signal that can be interfaced directly with Labview for data collection in a research study that we were trying to do. Also most commercially available pulse oximeter do not have an analog output option

Be the First to Share

    Recommendations

    • Make it Glow Contest

      Make it Glow Contest
    • First Time Author Contest

      First Time Author Contest
    • PCB Challenge

      PCB Challenge

    27 Discussions

    0
    spsj21
    spsj21

    7 years ago on Introduction

    Yes Kunal ..... i connected OEM III directly to PC through MAX232 and it gives correct data on hyperterminal. but doesn't give anything to Silabs, Tx of controller was already connected to PC through MAX232 for OEM data reception on hyperterminal. I connected Rx of controller directly to Tx of OEM III, i think that should be fine.

    0
    kunal_djscoe
    kunal_djscoe

    Reply 7 years ago on Introduction

    The fact that OEM III starts spitting out data as soon as you power it means only one thing you not reading right (assuming that you have it wired right). I would say make like a serial pass thru... meaning make your silab controller do the job of max232... read of serial and show it on hyper-terminal... this is assuming that you have two serial ports on it. If not flash an led. This way we can rule out issues with your program.

    Let me know

    0
    Ali_Gamal
    Ali_Gamal

    Reply 3 years ago

    Please Share me the project, I really need this for my graduation project.

    I do not have any credit card to buy this project pdf, please help me !!
    ali.gamal999900@gmail.com

    0
    Hasan2015
    Hasan2015

    Reply 5 years ago on Introduction

    Can you kindly give me a Evaluation board circuit diagram for

    Nonin Pulse Oximeter ( OEM ModuleIII)?

    0
    SamuelS17
    SamuelS17

    5 years ago on Introduction

    Kunal,

    Very impressive, yet simple solution. I am currently working with a different pulse oximeter, but ultimately, I too would like to use a NONIN OEM III.

    I hate to bother you, but I just have a couple questions. I would be very appreciative of any help.

    1. What in the world is going on with your wiring of the OEM in this video? Surely we want a 3.3V in, but can you give me a more intricate idea as to which ports of the OEM you had to wire? Surely some go to the TLV chip, but which ones? I am a mechanical engineer, not an electrical, so the datasheet is a bit confusing.

    2. Which finger probe did you use?

    3. What was your Arduino code?

    0
    waleed8532
    waleed8532

    Reply 2 years ago

    can you help me . i need the project if you can help me. please can sherr pdf project

    0
    SumayyahH
    SumayyahH

    5 years ago

    hi kunal.

    i am looking for a solution for my project. I am using PIC32MX270F256B from Microchip,nonin oem III module and UART. When I checked the data transmission at the terminal, 3 bytes of data (status, HR, SPO2) were sent but in state of 00, 00, 00 which means the sensor could not read the user HR and SPO2. I have checked the UART line that is connected to PIC (U2RX) but nothing seems wrong with it.

    could you give any idea or solution to this problem?

    0
    spsj21
    spsj21

    7 years ago on Introduction

    hi kunal! Nice work ..... i am also trying to interface OEM III with Silabs C8051F340 controller .... this controller works at 3.3V.

    First, i developed a loopback program for controller UART at 9600 to make sure that serial port is working fine. it worked beautifully with a serial cable to the PC. Then i simply removed controller UART Rx connection from line driver IC (MAX232) and connected to OEM III Tx line .... here it fails :(

    Do you have any clue for my problem ..... plz help :)

    0
    kunal_djscoe
    kunal_djscoe

    Reply 7 years ago on Introduction

    Hey,

    did you try to connect the OEM III to the pc directly via an emulated serial port or other means and reading the data of it using hyper terminal or something similar?

    I would be curious to know if that worked. Maybe the Silab controller doesn't like the Tx line to be floating; you should connect it to Rx of OEM or maybe ground it.

    Good luck

    0
    sejman
    sejman

    9 years ago on Introduction

    Cool project. How much does the Nonin OEM III module cost?

    Kunal_djscoe: can you include more information on the TI module...I could not find it. I'm looking for a good module to build some Biomed curriculum around.

    0
    kunal_djscoe
    kunal_djscoe

    Reply 9 years ago on Introduction

    Thanks. The Nonin OEM III I think costs somewhere arnd 150-200$. I am sorry, I don't know the TI module that you are talking about.. if you were asking about the D to A chip... I am using TLV5618. Feel, free to ask more questions.

    Kunal

    0
    am3
    am3

    10 years ago on Introduction

    Hi, cool project! Can you send a copy of your Arduino sketch and any schematics you have? Any additional info would be greatly appreciated! Thanks, AM

    0
    gvelasquez85
    gvelasquez85

    10 years ago on Introduction

    Hello Kunal, I'm working in my undergraduate project, and I want to interface the Xpod module with Arduino. Maybe, you can help me with the interfacing, I'm working with the NewSoftSerial Library and can't get the correct data (don't know why), it's adding some bits in some way and I get four bytes instead of the three with the data format # 1. Please, help me, I'm totally lost, if you have some example sketch, or some suggestions.... I will be very very greateful.... Thannk you in advance!

    0
    kunal_djscoe
    kunal_djscoe

    Reply 10 years ago on Introduction

    Hi,

    Here are two things that I will recommend..
    1> Do not use the NewSoftSerial Library, use the hardware Serial i.e. Serial.begin and Serial.read, nonin xpod transmits data asynchronously i.e. continuously even if Arduino is not reading it and since software serial doesnot have an internal buffer you loose those bits, probably thats the reason for the incorrect data that you getting.

    2> Nonin works on 3.3v logic and Arduino works on 5V logic. Though since we are only reading from nonin, a level shifter is not necessarily needed, it worked for me only with the level shifter.... you can either buy the logic level converter from spakfun
    http://www.sparkfun.com/commerce/product_info.php?products_id=8745

    or use a logic ic like the 74AHC125N


    Let me know how it goes.

    Kunal

    0
    gvelasquez85
    gvelasquez85

    Reply 10 years ago on Introduction

    Update:

    Now I'm getting 3 bytes of info, but, wrong bytes.... don't know why, do you know something that I should know?.... some hack, some special function to show the received data?....Actually I'm only doing a passtrough, just to see if the received data are correct...I'm lost... but... not the same way that yesterday... Thank you... (by the way, now I'm using one of the Hardware UART's of the Arduino Mega)

    0
    kunal_djscoe
    kunal_djscoe

    Reply 10 years ago on Introduction

    lol...... some special function.. lol

    dude... try this.... since the data coming on the serial port is 1 byte at a time... initialize the variable reading it as a byte (not as a int because an int is 2 bytes long)

    Also how do you know that the data that you getting is wrong? Do you print it out on Serial port???

    Dont forget that.. if you will be trying to produce the analog waveform from the received data, you will have to make sure that Arduino is in sync with nonin, i.e. since a packet is say 3 bytes long, you read it in the right sequence, this is imp in asynchronous transmission ( your software has to take care of this)

    0
    gvelasquez85
    gvelasquez85

    Reply 10 years ago on Introduction

    mmmm..... I didn't tried with byte type, I'm going to try it, I know that the data that I'm getting is wrong because I'm printing the received data to the serial port... I don't want to make an analog waveform, I only want to monitor and activate an alarm if the pulse is getting low or high.... I'll tell you how is it going...

    0
    gvelasquez85
    gvelasquez85

    Reply 10 years ago on Introduction

    Thanks Kunal, I'm going to try it.... about the NSS lib, you're rigth... and I didn't see it... about the level converter, I have two of it, I'm going to look if it works without it (I'm only reading) if not, I'll work with the level converter.

    Thanks for your help, and I'll let you know how can I survive! (XD)