iorodeo / potentiostat

Rodeostat design files, software and firmware
https://blog.iorodeo.com/rodeostat-product-guide/
Creative Commons Attribution 4.0 International
32 stars 12 forks source link

The chart is flipped when using rodeostat teensy_shield_v0p1 #23

Closed chris369852147 closed 1 year ago

chris369852147 commented 1 year ago

Hello, we have encounter a problem while using rodeostat teensy_shield_v0p1.

We plot the Current-Voltage chart. Amplitude of Current in palmsens and rodeostat is different but there peak voltage location is more or less same, but the curve is flipped.

Screenshot 2023-07-04 12 44 01

In each case , you see current -x axis current is negative, but it should be positive. WhatsApp Image 2023-07-04 at 15 01 36 like this.

we've check the connection of the electrodes are correct. May I ask what cause this problem and how to solve it?

iorodeo commented 1 year ago

What firmware version are you using?

chris369852147 commented 1 year ago

image We directly flesh the code inside TEENSY provided at your github location

iorodeo commented 1 year ago

OK. The reason I ask is that between hardware versions 0.1 and 0.2 there was a polarity change on output of the transimpedance amplifier. This difference in sign between the two hardware versions is handled in firmware. However, in order for this to work properly the firmware needs to be built for the correct hardware version. The first thing to do is make sure you are building the firmware for the correct hardware version. This is set using a #define in the ps_hardware_def.h file found in /firmware/libraries/potentiostat sub-directory. There is a section at the top of this file where is says "Select your hardware version" followed by a number of #defines for selecting the specific hardware version you build for. If you are using hardware v0.1 with the teensy 3.2 you will probably want to select the HW0P1_TEENSY_10V_MICRO option. So that this section would look as follows

    // Select your hardware version
    // ---------------------------------------------------------------
    //#define HW0P2_ITSY_BITSY_10V_MICR0
    //#define HW0P2_ITSY_BITSY_10V_MILL10
    // #define HW0P2_TEENSY_10V_MICRO
    #define HW0P1_TEENSY_10V_MICRO
    // #define HW0P1_TEENSY_10V_MILL24
    // #define HW0P1_TEENSY_10V_NANO 
    // #define HW0P1_TEENSY_8V_MICRO
    // ---------------------------------------------------------------

After building and uploading the firmware the device can be queried for the hardware variant selected. When using the web app, after connecting to the device, a section appears on the "Device Connection" page with title "Device Information" and below that is a section displaying the hardware variant string returned by the device upon connection as shown below.

hardware_variant_info

With the Python API you can get this same information using the get_hardware_variant method.

In the example above the hardware variant string is "10V_microAmpV0.2". The V0.2 at the end indicates that the firmware I was using was built for hardware version V0.2. If you have built firmware for the V0.1 hardware this string will be something like "10V_microAmpV0.1".

sayansarkarnitdgp commented 1 year ago

Untitled Now we got a proper response. Thanks for your help.