Introduction: PCB Gain Circuit for SGX-VOX Electrochemical Oxygen Sensor 0-100% FiO2

This instructable shows you how to build a breakout board for amplifying the output signal from the SGX-VOX oxygen sensor with 50x gain to allow the sensor to be easily used with an Arduino or similar microcontroller, or even just using a standard volt-meter. The voltage output from the SGX-VOX is very low, around 9mV - 62mV across the whole range from 21% oxygen to 100% oxygen. The voltage scales linearly with oxygen concentration.

You will find attached:

  • our schematic
  • a screenshot of our calculated estimated voltage readings for different oxygen levels
  • some datasheets for the SGX-VOX

Oxygen sensors come in 2 types; electrodes (electrochemical sensors) and optodes (optical sensors).

The SGX-VOX sensor used here is an electrochemical type which means they house an electrolyte which creates a potential difference depending on the concentration of oxygen in the air. An advantage is that they usually cover the full range 0 - 100% oxygen but with the downside that the electrolyte gets consumed at a rate proportional to it's exposure to oxygen (time and concentration). After several months of just background level oxygen exposure the readings will likely be quite incorrect, this can be counteracted by field calibration but eventually the sensor will need to be replaced (common practise in medical ventilators for example). As soon as the white cap is removed, the sensor is exposed to air and the clock starts ticking.

Optical type oxygen sensors usually can't sense a full range, 0 - 25% is common but they don't suffer from degridation over time. The sensor in this instructable has NOT been designed for this type of sensor. An example optical oxygen sensor can be viewed in this link: https://www.winsen-sensor.com/d/files/PDF/Electrochemical%20Gas%20Sensor/Electrochemical%20Oxygen/ME2-O2-D20%200-25%25%20Manual%20(ver1.2).pdf

Supplies

Step 1: PCB Production

Get some boards made. The PCB manufacture files can be found in the GitHub repo here: https://github.com/Darren-Lewis/SGX-VOX_amplifier_...

There are many PCB manufacturers (often in China) that can make boards at a good price with a pretty good lead time, JLCPCB is one of them. You can get a price and place your order online by just uploading your files. The downside with JLC is they can't use components from DigiKey or other similar stores, they will only assemble using components from their own stores. To be honest I don't remember if we made our design compatible with JLC's stocks because we assembled it by hand. https://jlcpcb.com/capabilities/Capabilities

JLC will manufacture 5 of these boards for $2 + shipping.

You can find the component BoM in the GitHub repo linked above.

Step 2: Make Connections

  1. Strip the wires
  2. Add the molex crimps. It's best to use the proper molex crimp tool for this, but if you don't have one (and why would you, they are expensive) you can do like I did in the photos and add a little solder then fold in the wings in using neadle-nose pliers. The 2 more central smaller wings need to fold onto the bare pre-soldered wire and the 2 larger outer wings need to hold onto the wire insulation.
  3. Push the molex crimps into the 3 way housing leaving the centre position empty. Strangely enough the datasheets don't tell you which pin is ground and +V on the sensor, but make sure you connect it up in the opposite way to how I have done in the photos (the red ribbon cable wire from my photos goes to the S+ on the board).
  4. Solder the other ends of your wires to the S+ and S- on the breakout board
  5. Plug the molex connector into the oxygen sensor
  6. Refer to the board schematic and add a connection from GND to the Arduino GND and another connection from the sensor output to pin A0 of the Ardunio. You don't actually need to connect power to the board because the electrolyte in the sensor produces it's own voltage

Step 3: Code

Upload my example code from the GitHub repo: https://github.com/Darren-Lewis/SGX-VOX_amplifier_...

You will need to calibrate the background level for your sensor as there is a tollerance for this value from the factory. To do this, upload the code and open serial monitor. The values on the left will be a voltage level reading in mV and the values on the right will be the oxygen concentration percentage (these will be wrong before you calibrate). To calibrate the background level take a reading of the sensor voltage in mV in normal background conditions (which you can assume to be 21% oxygen in normal air) and update the "#define backgroundReading" with your new background voltage reading. Then re-upload the code.

I have attached a look-up-table with the theoritical voltages you should get at different oxygen concentrations for reference.

Then you should be reading some oxygen levels!! Hurray, that wasn't too hard was it!

Caveat: I didn't have access to pure oxygen so wasn't able to test it to anything higher than 21%. The best I could do was breathe some CO2 onto the sensor and it looked like it was behaving as expected.

Let me know in the comments how you get on! :)

Step 4: Mounting the Sensor

The white plastic cap covers a M16 x1mm mounting thread with a compression O-ring which can be used to mounting the sensor.

I 3D printed a shape to mount the oxygen sensor to and bought an M16 x 1mm tap to create a thread in the plastic part. https://abtoolsonline.com/m16-x-1mm-metric-tap-set...

The 3D printed hole we used was 15mm diameter and 10mm deep.

PCB Challenge

Participated in the
PCB Challenge