Navigation

    IO Rodeo Forum

    • Register
    • Login
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    1. Home
    2. BlairH
    B
    • Chat with BlairH
    • Profile
    • Following
    • Followers
    • Topics
    • Posts
    • Best
    • Groups

    BlairH

    @BlairH

    0
    Reputation
    3
    Posts
    139
    Profile views
    0
    Followers
    0
    Following
    Joined Last Online

    BlairH Follow

    Posts made by BlairH

    • RE: Impedance Spectroscopy and Manual Control Sampling Rate

      I'm attempting to implement something similar to perform AC voltammetry at higher sample rates and frequency but am struggling with my understanding of Arduino code. Where exactly in serviceDataBuffer (in ps_system_state.cpp) does the If statement go?
      I've tried inserting if (run_complete) into a few places that seeem logical to me but either it has no effect or everything breaks.

      Could anyone enlighten me as to how to implement these changes in greater details?

      posted in Rodeostat
      B
      BlairH
    • RE: AC Voltammetry and sample rate

      Hi Will,

      Thanks for your feeback. You're right about my system specific differences, even for param dt =0.05 I get a median of 0.058.

      I've attempted to implent the firmware changes outlined as I only need a sample rate of 115Hz however I haven't noticed any difference. I'm not very familar with arduino programming and I suspect I haven't implmented the changes in ps_system_state.cpp correctly. I've attached my changes in hopes that you might notice some sort of obvious error.

      Regards

      Blair

      void SystemState::serviceDataBuffer()
          {
              // Check for last sample flag to see if done
              bool run_complete = false;
              if (lastSampleFlag_)
              {
                  if ((run_complete = true));
              }
      
             		 // Empty data buffer
              	size_t buffer_size;
              	ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
              	{
                  	buffer_size = dataBuffer_.size();
              	}
      
              	while (buffer_size > 0)
              	{
                  	Sample sample;
                  	ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
                  	{
                    	  	sample = dataBuffer_.front();
                      	dataBuffer_.pop_front();
                      	buffer_size = dataBuffer_.size();
                  	}
                  		messageSender_.sendSample(sample);
              	}
      
              	// Send indication that the run is complete 
              	if (run_complete)
              	{
                  	messageSender_.sendSampleEnd();
                  	lastSampleFlag_ = false;
              	}
          	}
      
      posted in Rodeostat
      B
      BlairH
    • AC Voltammetry and sample rate

      I've been attempting to use the rodeostat to perform AC voltammetry as per the example and using the 50k dummy cell which gives a nice output at very low sample rates however at higher sample rates (though still quite low) of 115 Hz I've found the output is heavily affected by the sample rate.
      I also implement the firmware changes as mentioned in this post however noticed no effect.

      Any advice on how to overcome this would be greatly appreciated

      2 Hz
      2 Hz

      115 Hz
      115 Hz

      I've used the following parameters

      Run parameters

          t0 = 0.0  # Transition start time (s)
          t1 = 8.0  # Transition stop time (s)
      
          v0 = -0.1  # Initial voltage (V)
          v1 =  -0.9  # Final voltage (V)
      
          amp = 0.1  # Sinusoid ampliude (V)
          per = 0.5  # Sinusoid period (s)
      
          dt = 0.005  # Time step for setting voltage and measurements
          t_total = t0 + t1 # Total experiment duration 
      
          volt_func = create_sin_linear_func(t0,t1,v0,v1,amp,per)
      
          # Create device object, set voltage/current ranges and run test
          pstat = Potentiostat('COM5')
          pstat.set_volt_range('2V')
          pstat.set_curr_range('100uA')
          t, volt, curr = run_manual_test(pstat, volt_func, dt, t_total)
      posted in Rodeostat
      B
      BlairH