SparkFun will be closed Nov 26th and 27th for the Thanksgiving holiday. Orders placed after 2:00pm MT on the 25th will ship out Monday the 30th.


Member Since: July 6, 2006

Country: United States

  • I found the COMedia C328 evaluation application at :
    http://www.rfdesign.co.za/files/5645456/Download-Library/Comedia/c328ap.zip .

  • Or does the filter look like this: http://www.beyondlogic.org/imaging/camera1.htm ?

  • The documents suggest that the IR filter is on the back of each lens. That should be easy to test. Remove the lens and illuminate the sensor with an IR remote. If the field washes out, the filter is probably on the lens, I think.
    I found the same family at Electronics123.com, BTW, where the mono IR versions are available.

  • Can the IR-block filter in this camera be removed?

  • Driving the heater with the suggested 5v/1.4v rectangular produces odd spikes in the sensor output, making the gas response signal hard to identify. I’ve found that a slow sine heater drive, via PWM, yields a much more sane output. Here is a 120-second heater cycle between 2v and 5v, and a very small Hydrogen release. 10k load.

  • Here is a better Hydrogen test, two small releases (no guess in PPM), which I then allowed to dissipate quickly. This is with a 10k load. http://rightime.com/images/Misc/CO_Sensor_Hydrogen_2.GIF

  • CO sensor response to rubber cement (apparently n-Heptane): http://rightime.com/images/Misc/CO_Sensor_RubberCement.gif

  • dim CycleHeaterTaskStack(1 to 40) as byte  
    const pinGas as byte = 13  
    const pinPWM2 as byte = 25  
    sub Main()  
     dim sV as single, sX as single  
     callTask "CycleHeaterTask", CycleHeaterTaskStack ' start heater cycling  
     call PutPin(pinGas, bxInputTriState) ' set pin for ADC  
      do until (register.rtctick mod 512) < 5 loop ' 1Hz sensor sample rate  
       sV = csng(register.OCR2) / 255.0 * 5.0 ' heater voltage  
       sX = csng(GetADC(pinGas)) / 1024.0 ' get sensor  
       debug.print fmt(sX, 3) &" "& fmt(sV, 2) ' display  
     end sub  
    sub CycleHeaterTask()  
     const iHighVolts as integer = 255 ' 100% PWM = 5v  
     const iLowVolts as integer = 71 ' ~0.28 * 5v = 1.4v  
     const Rate as byte = 1 ' PWM 14400Hz  
     call PutPin(pinPWM2, bxOutputLow) ' PWM pin to output  
     register.TCCR2 = Rate or bx0110_0000 ' init PWM  
     do register.OCR2 = cbyte(iHighVolts) ' heater 5v  
      register.rtctick = 0 ' for 60 seconds  
       do while Timer < 60.0  
      register.OCR2 = cbyte(iLowVolts) ' heater 1.4v  
      register.rtctick = 0 ' for 90 seconds  
       do while Timer < 90.0  
    end sub  
  • Not surprisingly, this device runs warm. The documentation specifies that the heater should be cycled between 1.4v (drawing ~30mA) for 90 seconds and 5v (140mA) for 60 seconds. The internal temperature is only slightly above room ambient at 1.4v but quickly climbs to 150F(66C), then settles at ~175F(80C), at 5v; the plastic body temperature reaches 117F(47C) in ~75F free air. This is not a low-power part.
    I’ve found that cycling the effective heater voltage is easy via 28% and 100% PWM and a VN2222 FET from 5v.

  • Yosserg:
    Working with it more I think it does need to be warm when it is running.

    Indeed. While running a CO sensor through the 5v, 48-hour break-in period, I measured 170F internally and 117F on the outer plastic body. The CO sensor temperature will be lower since its measurement cycle is 60sec@5v/90sec@1.4v but it too will still be warm, I suspect.

No public wish lists :(