Post Go back to editing

CN0503 duty cycle and improving signal-to-noise

Category: Hardware
Product Number: CN0503

We are running into signal-to noise issues and as I started to look into the code (which I only partially understand), I noticed that it is operating at a non 100% or 50% duty cycle.   I understand that <100% allows for active DC offset corrections on the photodiodes due to room light, which is good. 

I then put the LEDs onto a photodiode and I see that the duty cycle is quite low.  I can can see how this may be useful for a true fluorescence decay where one wants to use a time gate to differentiate between the LED light and a delayed fluorescence signal. However, when I tried Turbidity and Absorption modes (using the GUI.exe), the LED operates in the same duty cycle mode.   I can see where pulsing an LED allows more light (thermal/current limits), but the LEDs being used (365 and 470 nm) have absolute pulsed/CW ratings of 1000/700 mA with nominal max currents or 500mA.   The code shows that the current is already max limited to 338 mA (PCB-LEDn YY.Y XXX.X, XXX.X = maximum LED current. If left not specified will default at 338 mA.\n")

For our purposes, we would be fine/desire with the LED being on for almost 99% (and use  1% for the room light DC correction).  Although we are doing fluorescence, between a blank and the combination of excitation and emission filters on the orthogonal detector, we don't need to measure the florescence signal as a decay and can measure it actively while the LED is on.

Can someone advise how to best increase the SNR for our need (increasing duty cycle of the LED ON state for more photons  to integrate on the FL detector).
I'm quite fine with a solution using one of the built in CLI commands (I just don't understand it well enough to know the right way to approach this), but can also, with guidance, edit the cn0503.c code and re-compile and flash a new *.hex via DAPLINK.


  • Hi there,

    The CN0503 platform has the multimodal analog front end (AFE) ADPD4101. The ADPD4101 can operate with very short pulses (typically 2us or 3us) in conjunction with the integrated band-pass filter for ambient light (such as room light) rejection. Please check the ADPD4100-4101 datasheet for details:

    To improve the SNR, you can either increase your LED current for photocurrent with high SNR or increase the number of pulses. 

    With regard to the LED current, it works fine for most LEDs since the pulse is very short (again 2us or 3us).


    Glen B.

  • Hello Glen.  

    I did another measurement with a properly terminated photodiode and each "pulse" in the above image is composed on 32 ~2 us pulses with ~ 2 us between pulses.  So, the LED is on for ~32*2 us/21,000 us (between pulse clusters) or ~ 0.3% duty cycle. 

    1)  I've tried increasing the LED current using  the CLI command PCB-LEDn YY.Y XXX.X and I have hit the current limit (eg, I send PCB-LED1 75.0 and I get a return of saturation at 65%, so 65% saturation means I am at the 338 mA limit)

    2)  Can you tell me how to increase the number of pulses up from 32?  I can't figure out  how using the CLI with the pre-built commands. If It needs to be dome in the CN0503.c file and re-built to a new *.hex, I can do that, but I'm not sure where and what exactly to change (is there a limit to the number of pulses I can increase up to?

    3) I do see on the ADPD4101 spec sheet that there are various programmable gains on the TIA  (Table 4) from 12kohm up to 200 kohm.   Is this automatically adjusted on the ADPD4101 for each photodiode?  Another "knob" to turn to increase S/N is increasing the gain on the fluorescent PD.  if gain is not independently and automatically set in the program, can you advise how I might check what the current gain is and how to adjust it (we are seeing quantized data). 

    Thanks again,


  • Hi Tony,

    Please check below for comments to your questions:

    1) The 338mA is the the up limit for calibration. You can adjust it per your application. Please note that the percentage of ADC saturation also depends on the TIA gain setting. You can find your TIA gain by read register 0x0104 for timeslot A (0x0124 for timeslot B, ...).

    2) Number of pulses is set by register 0x0107 for timeslot A (0x0127 for timeslot B, ...). It can be done using the register write command.

    3). TIA gain is set by register 0x0104 for timeslot A (0x0124 for timeslot B, ...)


    Glen B.

  • Fantastic. thanks!  I'll use this info and report back when I am able.

  • This thread has been taken offline.


    Glen B.