Research Open-source potentiostat
for chronoamperometry

We have developed an open-source microcontroller unit (MCU)-based
potentiostat with funds from:
Reduction
of iron and humic substances as a dominant respiratory process in
arctic peat soils; NSF; Lipson [SDSU], Angenent, and Raab [Stanford]
Introduction
Here, we provide auxiliary information pertaining to the open-source
microcontroller (MCU)-based potentiostat built
in the Angenent Lab at Cornell University
and described in Friedman et al. [Link
to PDF]. All the information
necessary to build your own MCU-based potentiostat is
available here, including codes, board layouts, user manual, and part
numbers (free of use).
This information is freely available for use and modification.
When doing so, please retain all copyright information and reference
the associated paper:
Friedman E. S., Rosenbaum M. A., Lee A. W., Lipson D. A., Land B. R. and Largus T. Angenent L. T. (2012). A cost-effective and field-ready potentiostat that poises subsurface electrodes to monitor bacterial respiration. Biosensors
and Bioelectronics, Vol. 32, No. 1, pp. 309-313. [Link
to PDF]
Important caveat: When used in the laboratory environment
rather than in the field, it has become apparant that electronic noise
from outside sources must be minimized. For example, we found that
AC power sources (60 Hz; electromagnetic interferences) to power LED
lights generated a rather large electronic noise with our potentiostat.
Post-user data processing (30 datapoint moving average and substraction
of electronic background noise) is needed when used in the laboratory.
But, even then switching on/off power sources around the experiment
may result in inability to use electronic current data. Using Faraday
cages aound the potentiostat and experimental setup will remove some
of these electric noise problems.

a complete
three-channel MCU-based potentiostat housed
in an environmentally-secured enclosure for field deployment.
Costs
A detailed breakdown of costs, including the part numbers for ordering,
is available here. The cost of electronics for one (1) MCU potentiostat is $440.41; the costs of parts that can be used
for multiple potentiostats (i.e., LCD board,
solder, programming module) is $154.30; the additional cost to outfit
one (1) MCU potentiostat for field use (i.e.,
housing, electrical connections) is $104.43.
Pdf file
that shows the budget and ordering information in detail
Boards
For a complete three-channel potentiostat,
seven circuit boards are required: one (1) MCU board, one (1) SD board,
one (1) auxiliary board, one (1) LCD board, and three (3) electrode
boards. The LCD board is detachable and, as such, one LCD board can
be used with multiple MCU potentiostats. If less than three channels are desired, the
number of electrode boards can be decreased accordingly. However, this
will increase the price per channel, since the price of shared components
(MCU, SD, auxiliary boards) is currently distributed across three channels.
The boards are designed and ordered through ExpressPCB,
which is freely available for download.

MCU board contains the MCU, power supply, and controls
the other boards.

The electrode board contains the op amp circuitry that
is the core of the potentiostat.

The SD board contains the data storage (holds SD card).
Links to downloadable files with circuit diagrams and board layouts:
Download the entire folder with the 10 PCB and SCH files as a zip
file
Code
The microcontroller code was written in C using AVR
Studio (download
for free but registration is necessary), and includes source files:
- main.c – This
runs the timers, recording of current measurements, and calls other
functions. Written for this application.
- sd.c – This
is responsible for running the SD card and writing the data to the
card. Written for this application.
- LCD.c – This
file runs the LCD card, displaying parameters and taking user input
through the push buttons. Written for this application.
- lcd_lib.c – Library
of displays for the LCD screen. Open source.
- mmc.c – This
provides the library for the serial peripheral interface (SPI) operation.
Open source.
- ff.c – This
is the FatFS file system used for the SD
card. Open Source.
The sampling rate can be changed in main.c,
under the #define record_trigger function.
To record every second, the record trigger should be set to (msec==0).
To record every minute, ((msec==0)&(sec==0));
to record every fifteen minutes, ((msec==0)&(sec==0)&((min==0)|(min==15)|(min==30)|(min==45)));
to record every hour ((msec==0)&(sec==0)&(min==0)),
and so forth.
NOTE: The first time the code is opened on a new computer, settings
in AVR Studio must me adjusted to allow the program to write float
numbers. To do this, go to Project>>Configuration Options and
make sure that the device is “Atmega644” and the frequency
is set to “16000000” Hz. Then save the project, and this
option should be maintained during future uses.
Links to downloadable files in one downloadable folder:
Download
the entire folder with the complete codes as a zip file
After unzipping the folder, open the file potentiostat.aps in AVR
Studio to open the project (all files are linked together).
Utilized Codes:
- Keypad Debouncing – Cornell ECE
4760 Course–Available
Online
- FatFS File System – ChaN – Open Source
- LCD Library – Scienceprog.com – GNU Public License
- MMC/SDSC/SDHC Control Module – ChaN – Open
Source
- Low Level Disk Interface Module Include File – ChaN – Open Source
User Manual
A user manual, outlining the use of the MCU potentiostat for chronoamperometry,
was written and is available for download here. This includes instructions
on: LCD operation, adjusting the clock, setting potentials, using the
SD card, making proper electrical connections in the field, and programming
the microcontroller.
Pdf file
with the user manual