Rodeostat: open source potentiostat

The Rodeostat is a fully functional open source (hardware and software) potentiostat which is designed as an expansion board for the popular Teensy 3.2 development platform. Rodeostat includes ready-to-use firmware which implements many standard voltammetric methods. Additionally, a software library is available in the Python programming language which provides users with a simple high-level interface for configuring/controlling the potentiostat and for streaming back data to the host PC during measurements.

One of the main goals when developing Rodeostat was to make it easy for users to make custom modifications. For this reason we developed the potentiostat as a shield for the Teensy 3.2 micro-controller development platform which is part of the Arduino ecosytem. This enables the potentiostat to be programmed using the Arduino IDE (Teensyduino). In fact the firmware we provide for the Rodeostat is an Arduino sketch coupled with an Arduino library.

The hardware design files and the source for firmware and all libraries are available to serve as starting points for users who wish to customize their devices:

A brief overview of the Rodeostat hardware, firmware and the functionality provided by the python library are given below.


  1. 12-bit programmable voltage output ranges: +/- 1V, 2V, 5V and 10V
  2. 16-bit current measurement w/ programmable ranges: +/- 1uA, 10uA, 100uA, 1000uA (hardware defaults)
  3. Programmable over USB using the Arduino IDE
  4. UEXT expansion header w/ UART, I2C, SPI buses for communication with external hardware
  5. Expansion header with additional DIO and analog inputs


  1. Currently implemented methods:
    • Cyclic voltammetry
    • Linear sweep voltammetry
    • Sinusoidal voltammetry
    • Constant voltage voltammety
    • Chronoamperometry
    • Multistep voltammetry
  2. Allows direct/manual control of electrode potential from host PC
  3. Provides serial API for controlling device over USB/Serial using messages in JSON format

Python Software 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)
  3. Set/get the ranges 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