Coder Social home page Coder Social logo

greatwallisme / ardustat Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dansteingart/ardustat

0.0 1.0 0.0 66.22 MB

Code for a very cheap, pretty darn good potentiostat/galvanostat

Home Page: http://steingart.princeton.edu/ardustat

License: BSD 2-Clause "Simplified" License

Python 0.39% Arduino 3.24% Eagle 96.37%

ardustat's Introduction

#Ardustat ###What?

The Ardustat is my (in progress) open source successor to Jonny Galvo. It uses a standard USB-Arduino unit with a custom designed daughterboard to provide:

  • A galvanostat with a current range from .1 microA to 10 mA
  • A potentiostat with a potential range from 0 to 5V with 5 mV resolution or -2.5 to 2.5 V Range

The Ardustat is a three electrode system, but can be used in two electrode mode as well.

These features are provided from a single USB port on a testing computer. A node.js program interaces the ardustat with the computer, but you can use anything that speaks serial.

Each Ardustat costs ~$60 in parts and involves minimal, simple soldering (no surface mount parts, etc). The software runs on just about any modern platform (tested on Windows XP, 2000, Mac OS X, Ubuntu Linux, Fedora Linux).

###Why?

Email any major manufacturer of battery testing equipment for a quote, wait three days, and see that a basic galvanostat/potentiostat costs at least $1,000 a channel, without software. The Ardustat does not replace these units (completely, at least). The Ardustat does enable easy, accurate and cheap long term cycling and pulse testing far more easily than most commercial solutions, and again, at a fraction of the price.

###Theory of Operation

The potentiostat / galvanostat takes advantage of the relatively slow electrode kinetics of most electrochemical energy cells, using a modified voltage divider and a digital to analog (DAC) / digitally variable resistor (DVR) / analog to digital (ADC) feedback loop (Figure 1). Through the use of a high speed microcontroller (Atmel168), the feedback loop polls at a rate over 1 kHz.

The potentiostatic feedback is triggered by a user's request for a given potential across the cell. The relay closes, and the ADC measures the actual potential across the cell, and the microcontroller increments the DAC in the direction that will adjust the cell to the desired potential. The DVR set between the ADC and DAC determines the current via Ohm's law:

Which relates to:

If the DAC is adjusted to its maximum or minimum, the microcontroller will reduce the resistance of the DVR to allow more current to pass according to Equation 2. Alternatively, if the difference between the DAC and the ADC is insubstantial the microcontroller will increment the DVR to increase the resistance, thereby reducing the current through the cell. The speed at which this feedback loop occurs is only limited by the microcontroller, and most modern microcontrollers can complete this loop in fewer than 500 microS. After each loop the microcontroller may report the setting of the DAC and the DVR, and the reading of the ADC from which a computer program can compute the current instantaneously via Equation 2.

In the case of the galvanostatic loop, the user enters a desired current, and the feedback loop optimizes around a difference between the ADC and the DAC rather than the ADC alone. To read an open circuit potential, the microcontroller opens the relay and the ADC measures the potential. ###Why should I build this?

  1. The Arduino board is a great way to learn about microcontroller programming and design
  2. The Ardustat daughterboard/software provides an excellent tutorial on how to create flexible, useful scientific testing and data-logging devices. ##Connect to your Ardustat

###Using it

  1. download this thing: https://github.com/dansteingart/nodeforwarder
  2. start a nodeforwarder to connect to your ardustat with the following command

node nodeforwader.js [HTTP PORT] [SERIAL PORT] 57600 1000

##Control your Ardustat

See the code in the examples directory.

Authors:

Past Contributors:

  • Eddie Nolan
  • Rigers Qeraj
  • Susan Tan

ardustat's People

Contributors

dansteingart avatar ednolan avatar rigers avatar balaanantharaman avatar yakbarber avatar danielmdavies avatar rsamueli avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.