Increasing current ranges to detect mA



  • @rfndzc

    The transimpedance amplifier feedback resistors are R5, R6, R7 and R8. Each one corresponds to one of the selectable current ranges. Some info on setting the feedback resistor can be found here https://en.wikipedia.org/wiki/Transimpedance_amplifier



  • @Will-Dickson

    I swapped out R8 with 50 Ohm resistor to create a +/-12mA current range. I've attached a figure showing a fullscale range test with a 220 Ohm dummy cell. It looks good over the whole range.

    +/- 12mA range



  • @Will-Dickson

    I swapped out R7 with a 15 Ohm resistor to create a +/-40 mA range. This appears to work well between about -20mA and 20mA. However, below or above that is starts to fail.

    Figure showing the -20 mA to 20 mA range where things look OK.
    +/-40 mA range OK

    Figure showing the failure below -20mA and above 20mA.
    +/-40 mA range fail



  • @Will-Dickson

    I've swapped out the 15 Ohm resistor in R7 with two of the 50 Ohms in parallel ( 25 Ohms) to create a +/- 24 mA range. This allows us make use of almost the full range of the ADC. As before it looks good over +/-20 mA range.
    24000uA_current_range_partial

    It almost works over the full +/-24 mA range. It fails at the negative end right around -22mA.
    24000uA_current_range_full



  • @Will-Dickson Made the resistor change on R8 to 51-Ohm (50Ohm +/- 5%) and then went to the ps_constants.h firmware file and recompiled and uploaded with TEENSY to the Rodeostat. Then went in to the CV.PY sample file and changed the current limit to (12mA) and received a KeyError : u'milliAmpV0.1' ... made a change back to (12000uA) and received the same error. Need to find where the changes need to be made for the mA usage. Any thoughts?



  • @williamzerx

    You need to download the latest version of the Python potentiostat library from the repository here https://bitbucket.org/iorodeo/potentiostat The changes required to the Python library aren't yet in the version on PyPI (installed via pip). You will need to install from source from the repository. The python library is in the software/python/potentiostat sub-directory. You can install from source using "python setup.py install".



  • @Will-Dickson Hi, trying to do the same thing. Replaced the R8 with a 22 Ohm resistor. Having difficulty finding the changes necessary in the firmware files though. Recon you point me to lines which need changing?



  • @tellis

    In the "firmware/libraries/potentiostat" sub-directory there is file named ps_constants.h there is a #define near the top which is commented out

    //#define HARDWARE_VARIANT_MILL_AMP
    

    remove the comments - so it like like this

    #define HARDWARE_VARIANT_MILL_AMP
    

    Notes, this assumes that you are changing two resistors - R8 with 50 Ohm and R7 with 25 Ohm. If want to just change one you may need modify lines 92-99 in ps_constants.cpp where the parameters for the current range are set.



  • @Will-Dickson

    Also, when re-programming the firmware make sure the "tools -> optimize" is set to FAST. Right now if it is set to FASTER, which is the default, there will be an issue with the ArduinoJson library.

    This is something I'm going to fix soon - just need to upgrade to the latest version of the ArduionJson library and the problem goes away. Then the optimize setting won't matter. There is a little bit of an API change between the new and old version of the library - so I want to test a bit first.



  • Worked like a charm. You're a gem, thanks so much.



  • This post is deleted!


  • @Will-Dickson
    Hi Dickson, I am also interested in the Increasing current ranges. Please tell me how to swap out R8 ? I found the R8 resistor has been fixed in the board. Would I add another external trans impedance amplifier feed back path to increase the current range ?


Log in to reply