This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

FDC1004: Random change of system characteristics with unidentifiable root cause

Part Number: FDC1004

Dear Team & dear community,

we are evaluating the FDC1004 for a liquid level sensing application for a medical device. The setup follows the reference design as proposed in this design guideline (https://www.ti.com/lit/ug/tidu736a/tidu736a.pdf?ts=1690711312623).

Mostly this works great, meaning we are seeing measurements of the level electrode with the empty container starting at around 6pf and proportionally rising until 12pf when the container is full. The measurements are accurate and repeatable.

Sometimes however, without any apparent cause, the entire system characteristics spontaneously change: The level electrode with the container being empty now measures 10pf and rises to 12pf when the container is full. Liquid reference and environment reference electrode values change as well.

A restart of the system does not fix the problem. However, after waiting several hours the system will eventually revert back to its usual characteristic.

Despite of a lot effort (searching the forum, all app notes, improving the test stand etc.) we have been unable to find the cause or even to formulate assumptions of what my cause this problem.

Therefore I am kindly requesting your assistance since this problem could lead to an exclusion of the TI FDC1004 from our product development should we not be able to properly address this problem.

Thank you very much!

Best regards,

Mario

  • Hello Mario, 

    Sorry you are having this issue. I have a few questions about your application that can help start the debug process:

    • When you say the measurements are repeatable, do you have any timing between when you drain the liquid and when you start the next measurement? 
    • What liquid are you using in your measurements? Water or some kind of solvent? 
    • Does the liquid ever cover the environment reference sensor in your application? 
    • If you readback your register settings after the issue occurs, are they still the same? 
    • If you probe one of the sensors with an oscilloscope, do you see the same waveform before and after the issue occurs? 

    Best Regards, 

    Justin Beigel

  • Good Morning Justin,

    Thank you very much for your fast response and your support on this matter! I'll reply below your questions!

    • When you say the measurements are repeatable, do you have any timing between when you drain the liquid and when you start the next measurement?
      -> It varies. Some measurements we started right after the previous one, some the next day. However the time delay in-between measurement runs does not seem to influence the occurrence of the error.
    • What liquid are you using in your measurements? Water or some kind of solvent?
      -> We tested with tap water and urine. Both works fine in general. But the error occurred also with both liquids. Last time it occurred I did a test run with urine and all was normal. During the next test run 5 minutes later without any changes in the environment the error occurred and the system behaved completely different (as described in my initial post).
    • Does the liquid ever cover the environment reference sensor in your application?
      -> No, the environment sensor is always kept clear. 
    • If you readback your register settings after the issue occurs, are they still the same?
      -> Great idea to check this. I did not do this yet. Which registers should I check? I will try to provoke the error but I don't know when it happens again.
    • If you probe one of the sensors with an oscilloscope, do you see the same waveform before and after the issue occurs?
      -> Also a great idea. I will do this as well but don't know yet when the error will occur again, so it may take a while until I can post results.

    Thank you very much again!

    Best regards,

    Mario

  • Hello Mario, 

    Which registers should I check?

    The reset in your testing makes me think this won't be the issue but it is worth checking your config registers and offset/gain registers to make sure they aren't changing due to some software bug. 

    Let me know when you are able to provide the oscilloscope data and I will let you know if I think of any other debug steps you could take in the meantime. 

    Best Regards, 

    Justin Beigel

  • What we are seeing here are liquid(x) vs capacitance(volume) graphs of the level electrode with 4 different samples (1x water, 3x urine) while each sample was tested 3 times in a row. So we are seeing 4 x 3 = 12 curves. The first two samples (water, first urine sample) showed normal system behaviour, the 6 curves are closely together. Afterwards the error occurred. The 6 curves of the other 2 urine samples are shifted towards a higher capacitance level and differ within the same sample as well as between the two samples.

  • The problem can clearly be seen in the the environment reference electrode'S liquid(x) vs capacitance (y) graph. While the values of the electrode during normal operation remain unchanged (lower 6 curves at 2pf) they start to change there level when the error occurs (upper 6 curves)

  • It seems to me that the we are dealing with randomly changing baseline values (when the container is empty) across all electrodes while the system is approaching a similar target capacitance levels when the container is filled (as can be seen by converging lines of the level electrodes). Could it be that we have a software bug related to this setting? 

  • Hello Mario, 

    Thank you for the additional information. I have a few more questions for you:

    • Do you run any post-processing on the data from the FDC1004 before it gets put in these graphs?
      • If so, it could be related to software, but I wouldn't expect the FDC settings to impact this unless the offset or gain registers are changing. 
    • Would you be willing to share your layout file of your sensors? 
    • Is it always the same samples that show the issue? If you see the error occur, what happens if you switched the liquid? 

    Best Regards, 

    Justin Beigel

  • Good Morning Justin,

    Thank you very much for your fast reply and your support. Regarding your questions:

    • No post processing was run on the data I posted
    • Sensor layout posted below (based on reference design but with wire terminal moved from bottom to top)
    • Error occurs with multiple samples (I haven't tried switching after the error occurred but will try that out!)

    Apart from this the FDC1004 configuration follows the recommendation in the liquid level sensing app note:

    • MEAS 1: CIN1 - CIN4 -> Differential measurement with level electrode connected to CIN 1, CIN4 floating
    • MEAS 2: CIN2 - CIN4 -> Differential measurement with liquid reference electrode connected to CIN 2, CIN4 floating
    • MEAS 3: CIN3 - CIN4-> Differential measurement with environment reference electrode connected to CIN 3, CIN4 floating
    • No other specific settings configured (no gain set, no offset calibration set etc.)

    Thank you very much again!

    Best regards,

    Mario

  • Hello Mario, 

    Your measurement configurations are that of using the out of phase technique but the layout says GND. Are the GND labels in the layout actually connected to GND or Shield 2 of the FDC1004? I wouldn't expect this to cause the issue you are seeing, but having the connections to shield instead of GND will help ensure better performance against noise and external impacts. 

    I have a couple more follow up questions for you:

    • When you take these measurements, what is the procedure you follow?
      • Are you filling or emptying the tank (or both) during the cycle?
        • Is there any discrepancy in output between filling vs emptying? 
    • Is there any temperature variance in the liquids you are using? 
    • How is your sensor connected to the tank, is it directly attached to the outside or is there some gap between the tank wall and the sensor? 

    Best Regards, 

    Justin Beigel

  • Hello Justin,

    the GND labels in the layout are connected to Shield 2 as you suggested and as defined in the application note. Shielding and OoP seems to work well: When touching the backside of the PCB it will not influence the measurement at all. Presence of hands or other external factors also don't seem to influence the measurements easily. Regarding your questions:

    • When taking measurements we are filling the empty container using a peristaltic pump connected to a stepper motor. The pump injects 5ml into the container, a measurement is taken and this process repeats 300x until the container is full at 1500ml.
    • The container is emptied using a drain valve, so the entire volume flows out in seconds, no measurements are taken during this.
    • The temperature of the liquid was identical to room temperature and neither did fluctuate.
    • The sensor is connected to the tank with a 3d printed bracket. The bracket is glued to the container using 3M transfer tape (as suggested in the application note). The bracket itself has a thickness of 1,6mm between the container wall and the sensor surface. The bracket is not printed with solid infill, meaning that the volume with 1,6mm thickness between tank and sensor internally hexagonal structure with air trapped in it (as it is common with 3d printed parts). The construction is pretty solid and does not allow for movement so that container and sensor are positioned towards each other in an accurate and repeatable manner.

    Thank you very much!

    Best regards,

    Mario

  • Mario,

    Justin is out-of-office today and will be back Monday.

    I have a few questions:

    1. Is the tank always completely dry when you start the filling process, with no residual fluid from a previous fill-up?
    2. Referencing the plots earlier in the thread, if you re-run the same experiments with some time delay between them, do you always get the same result?

    Regards,
    John

  • HI John, 

    Thank you very much for jumping in! Regarding your questions:

    1. The tank only has a very small opening for filling it and the release valve for emptying it, so it is almost a sealed container. It will probably be never really completely dry inside but a humid atmosphere. The plastic wall of the container seems to repell the water well, at least there is no visible residual building up on the container's walls.

    2. That depends: In the normal system state you could just rerun the experiment next morning and get exactly the same result as the day before. When the error occurs the system behavior seems to be entirely unpredictable. Results vary widely and independently form the time between the measurements.

    Best regards,

    Mario

  • Hello Mario, 

    Thanks for the additional information. I think the next steps in debugging would be to try the following: 

    • Determine if the issue ever occurs with a new tank. 
      • If you have new tanks you can test with, it would be good to find out if the issue can ever occur with the fresh tank or only after use for a certain amount of time. 
    • Once the issue occurs again, can you get it to go away by washing and thoroughly rinsing the tank? 
      • If you have some wash solvent you use already, that would be a fine way to test this. The main thing here would be to make sure the tank is thoroughly rinsed so there is no residue left on the walls of the tank from the cleaning solution. 

    Best Regards,

    Justin Beigel

  • Good Morning Justin,

    Thank you very much! I will run a couple of tests this week as suggested by you and will probably back with results by the end of this week or early next week!

    Best regards,

    Mario

  • Hello Mario, 

    Sounds good. Let us know when you are ready to share results. 

    Best, 
    Justin