Rodeostat Introduction

Rodeostat Introduction

The Rodeostat is an open source (hardware and software) potentiostat which is ready-to-use with firmware/software implementing many standard voltammetric methods. One of the main development goals was to make it easy for users to make custom modifications. It is designed to work with either the Teensy 3.2 development board or the Adafruit ItsyBitsy M4 Express Board.

The Rodeostat can be programmed using the popular Arduino IDE and the firmware we provide for the Rodeostat is available as an Arduino sketch + library. In addition, there are two main ways in which user can communicate with their Rodeostat.

  • Web App software: for users who would like to get started collecting data right away we provide the Rodeostat Web App software, which runs entirely in the web browser. It has a friendly graphical user interface which allows you to set parameters, visualize test results and save data without requiring any programming.
  • Python library: for users who wish to integrate the Rodeostat into their own custom data acquisition software we provide an open source library, iorodeo-potentiostat, using the popular Python programming language. This library implements a high-level interface for configuring the potentiostat, setting test parameters and acquiring data.

A brief overview of the Rodeostat hardware and the functionality provided by the software is given below.


Development board

Hardware

  1. Firmware programmable over USB using the Arduino IDE
  2. Four 12-bit programmable voltage output ranges: ± 1V, 2V, 5V and 10V
  3. Four 16-bit programmable current ranges: ± 1uA, 10uA, 100uA, 1000uA
  4. Adjustable reference electrode measurement ranges: ± 1, 2, 5, 10
  5. Digital switches for software control of electrode connections
  6. Expansion headers w/ DIO, I2C, SPI and additinal analog inputs
  7. 3D printed enclosure

Image of the Rodeostat in its 3D printed enclosure

Image of the Rodeostat printed circuit board

Image shows the electrode connections, Teensy 3.2, USB connector and expansion headers. 

The design files for the Rodeostat PCB and the 3D printed enclosure can be found in the projects's Github repository.

GitHub - iorodeo/potentiostat
Contribute to iorodeo/potentiostat development by creating an account on GitHub.
  • The latest design for the Rodeostat PCB can be found in the "hardware / pcbs / teensy_shield_v0p2" sub-directory.  
  • The design for the 3D printed enclosure can be found in the "hardware / enclosures / 3d_printer / rodeostat_enclosure" sub-directory.

Software

The software available for the Rodeostat consists of three distinct components.

  1. The device firmware which is written in C++ and runs on the Teensy 3.2 development board.  The device firmware is distributed in the form of an Arduino sketch in combination with an Arduino library.  
  2. A  software library called iorodeo-potenteostat developed for the Python programming language. This library enables users to integrate the Rodeostat into their own data acquisition programs. It implements an interface for controlling the Rodeostat through USB/Serial communications.  
  3. The Rodeostat Web App software. This software runs entirely in the web browser and is written in Javascript. It provides an intuitive graphical user interface with enables users to set test parameters and acquire, visualize and save data.

We will describe the three software components in more detail below. In general, users will need to have a Rodeostat which is programmed with firmware. If you purchased your Rodeostat from IO Rodeo then it should be pre-programmed and ready to go. Regarding the Python library and the Web App software, users will typically either use one or the other at any given time depending on their needs and their preference. They are completely independent pieces of software and you don't need one to use the other.

Teensy 3.2 firmware

The device firmware for the Rodeostat is written in C++ for the Teensy 3.2 development board. It provides low-level control of the device hardware, e.g., setting amplifier gains, controlling the output voltage, reading analog inputs. It also communicates with the host computer sending JSON data over USB. In addition, for efficiency purposes, many of the voltammetric tests provided by the Rodeostat are implemented directly by the firmware. These tests include:

  • Constant voltage voltammetry
  • Cyclic voltammetry
  • Linear sweep voltammetry
  • Chronoamperometry
  • Squarewave voltammetry
  • Sinusoidal voltammetry
  • Multistep voltammetry

As mentioned earlier, the Teensy 3.2 on every Rodeostat must be programmed with the device firmware in order to function properly. All Rodeostats sold by IO Rodeo are pre-programmed with the latest device firmware. So, if you purchased one from us, you do not need to program the firmware onto your device in order to get started. However, at some point in the future you may wish to upgrade the firmware to a newer version or you may want to customize your device by adding a new type of voltammetric test. The good news is that programming the firmware on the Rodeostat is easy to do using the Arduino IDE.  

A page with detailed instructions on how to program the Rodeostat with the device firmware can be found here:

Rodeostat firmware guide
In this set of notes we describe how to download, build and install the latest version of the firmware for your Rodeostat. Note, that all Rodeostats purchased from IO Rodeo are pre-programmed with the latest firmware - so if you have just purchased you don’t have to download and install

The firmware for the Rodeostat is open source and is available under the MIT open source software license. The source code is available from the project's Github repository and can be found in the "firmware" sub-directory.

potentiostat/firmware at master · iorodeo/potentiostat
Contribute to iorodeo/potentiostat development by creating an account on GitHub.

The iorodeo-potentiostat Python library

This software library provides a high-level interface for configuring/controlling the potentiostat and for streaming back data to the host PC during measurements. It is developed in the Python programming language and is available on the Python Package Index (PyPI). It can be installed using Python's package installer pip.

The iorodeo-potentiostat library provides methods to:

  1. Set/get the parameters used for the voltammetric tests
  2. Select and run voltammetric tests and collect data from the device  - time, voltage, current, etc.  
  3. Set/get the ranges used for the output voltage and current measurement
  4. Set/get the sample rate used for acquiring data during measurements
  5. Allows direct/manual control of electrode potential and current measurement from host PC

In order to use the library you will need to have a working installation of Python 3.7 or later. A short example program using the library to run a cyclic voltammetric test is shown below.

from potentiostat import Potentiostat

dev = Potentiostat('/dev/ttyACM0')
dev.set_curr_range('100uA')
dev.set_sample_period(10)

name = 'cyclic'
param = {
        'quietValue' : 0.0,
        'quietTime'  : 1000,
        'amplitude'  : 2.0,
        'offset'     : 0.0,
        'period'     : 1000,
        'numCycles'  : 5,
        'shift'      : 0.0,
        }

dev.set_param(name,param)
t,volt,curr = dev.run_test(name,display='pbar')

A quick start guide for installing python and using the iorodeo-potentiostat libray can be found here (coming soon: link to new getting started guide).

The complete documentation for using this library can be found at the link below.

iorodeo-potentiostat — iorodeo-potentiostat 0.0.1 documentation

The iorodeo-potentiostat library is open source and is available under the MIT software license. The source code for this library can be found on the project's Github repository and can be found in the "software / python / potentiostat /" sub-directory.

potentiostat/software/python/potentiostat at master · iorodeo/potentiostat
Contribute to iorodeo/potentiostat development by creating an account on GitHub.

The Rodeostat Web App Software  

The Web App software provides an intuitive graphical user interface for controlling the Rodeostat which runs entirely in the web browser. This application allows users to configure test parameters, visualize test results and save data without any programming.  

The Web App software has convenient tabs for major device functions:

  • Device Connection: used for setting the connection to the Rodeostat.
  • Test & Parameters: used for selecting the test and setting the parameter values.  
  • Data Acquisition: used for running tests, visualizing and saving data.

Detailed instructions for installing and using the Rodeostat Web App software can be found at the link below.  

Rodeostat Web App Software
Software for IO Rodeo’s open source potentionstat is now available. The software provides a user friendly graphical interface. The software, written in javascript, runs in a web browser and allows the user to configure test parameters, visualize test results and save data. Requirements * Seria…

The Rodeostat Web App software is open source and is available under the MIT open source license. The software can be found in the project's Github repository in the "software / javascript / app /" sub-directory.

potentiostat/software/javascript/app at master · iorodeo/potentiostat
Contribute to iorodeo/potentiostat development by creating an account on GitHub.