potentiostat development - ece.louisville.edu€¦ · web viewthe primary purpose of this project...

36
UNIVERSITY OF LOUISVILLE Potentiostat Development Final Report Ben Williams Project Manager: Dr. Andrew Dozier Project Customer: Dr. Cindy Harnett Rev. 0 Spring 2011

Upload: dinhanh

Post on 19-Jul-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

UNIVERSITY OF LOUISVILLE

Potentiostat DevelopmentFinal Report

Ben WilliamsProject Manager: Dr. Andrew Dozier

Project Customer: Dr. Cindy Harnett

Rev. 0

Spring 2011

Potentiostat Development Williams, Ben

Table of Contents

Table of Contents........................................................................................................................................1

1. Introduction/Executive Summary........................................................................................................4

2. System Description..............................................................................................................................6

2.1 System Diagrams and Interfaces..................................................................................................7

2.1.1 External Interfaces......................................................................................................................7

2.1.1.1 Electrode..............................................................................................................................7

2.1.1.2 Graphical User Interface (GUI).............................................................................................7

2.1.1.3 Power Connection................................................................................................................7

2.1.2 Internal Interfaces......................................................................................................................7

2.1.2.1 Digital to Analog Convertor (DAC).......................................................................................7

2.1.2.2 Digital Potentiometer (POT).................................................................................................7

2.1.2.3 Digital Relay Control Module...............................................................................................7

2.2 System Requirements..................................................................................................................8

2.2.1 Develop an inexpensive Potentiostat for use in a lab setting.....................................................8

2.2.2 Document firmware for ease of use and later modification.......................................................8

2.2.3 Document Potentiostat so it can be produced by unskilled users..............................................8

2.2.4 Log Data for later analysis...........................................................................................................8

2.2.5 Make recommendations for expanding potentiostat to three electrode version.......................8

2.3 Hardware Overview.....................................................................................................................9

2.3.1 Control Board.............................................................................................................................9

2

Potentiostat Development Williams, Ben

2.3.2 Digital to Analog Convertor Output Amplifier.............................................................................9

2.3.3 Digital Potentiometer.................................................................................................................9

2.3.4 Digital Relay Control Module......................................................................................................9

2.3.5 Personal Computer.....................................................................................................................9

2.4 Software Overview....................................................................................................................10

2.4.1 Control Board Firmware...........................................................................................................10

2.4.2 Graphical User Interface...........................................................................................................10

3. Detailed Design..................................................................................................................................11

3.1 Hardware Detailed Design.........................................................................................................11

3.1.1 Control Board...........................................................................................................................11

3.1.2 Digital to Analog Convertor......................................................................................................12

3.1.3 Digital Potentiometer...............................................................................................................13

3.1.4 Digital Relay Control Module....................................................................................................14

3.1.5 Personal Computer...................................................................................................................15

3.2 Software Detailed Design...........................................................................................................16

3.2.1 Control Board Firmware...........................................................................................................16

3.2.1.1 Digital to Analog Convertor (DAC) – write_dac()...............................................................18

3.2.1.2 Digital Potentiometer (POT) – write_pot().........................................................................18

3.2.1.3 Decide................................................................................................................................19

3.2.1.3 Potentiostat.......................................................................................................................21

3.2.1.3 Galvanostat........................................................................................................................22

3.2.1.3 DataOut.............................................................................................................................23

3.2.1.3 SPI Transfer........................................................................................................................23

3.2.1.3 Ramp Functions.................................................................................................................23

3.2.1 Graphical User Interface (GUI)..................................................................................................24

4. Conclusions........................................................................................................................................25

3

Potentiostat Development Williams, Ben

5. Recommendations for Future Work..................................................................................................26

6. Material Documentation and Reconciliation.....................................................................................27

6.1 References.......................................................................................................................................27

1. Introduction/Executive Summary

The primary purpose of this project is to implement a computer-controlled device to help characterize various power sources in an instructional lab, and to provide complete documentation of the device. Since this item is for an instructional lab, it requires a low cost, i.e. less than $100 per channel. This device will be used in an instructional lab to characterize various types of power sources. The fact that this is going to be an instructional lab item, is the main reason for requiring such a low cost. Commercial devices are available, but their prices approach $5,000 per channel. Since conventional power sources act differently as the load changes, it is necessary to automatically vary the load in a predefined manner in order to obtain reproducible and meaningful data. This device will actually be a combination of two different devices, a potentiostat and a galvanostat.

A Potentiostat is a control and measuring device capable of keeping the potential of a working electrode constant with respect to a reference electrode. It accomplishes this by adaptively adjusting the voltage output from the Voltage Output Digital to Analog Convertor and the resistance of the Digital Potentiometer to control the voltage across the CELL.

A Galvanostat is a control and measuring device capable of keeping the current of a working electrode constant. It does this by adaptively adjusting the voltage output from the Voltage Output Digital to Analog Convertor to balance the voltage drop across the CELL.

An Open-Source potentiostat/galvanostat, the Ardustat, was previously developed by Dan Steintgart at the City College of New York (CCNY). This system is currently only a two electrode configuration, but has the potential for expansion. The main downfall of this project is the poor to non-existent documentation. If this device is to be used and modified by students, it needs to have a decent amount of documentation to allow for the students to learn, not to try and figure the system out.

Since very little documentation is provided with the Ardustat, it will be necessary to reverse engineer the design to draw accurate circuit diagrams and modify the design for the third electrode. It will also be necessary to review the software, the Arduino firmware and the PC's GUI, in order to provide Dr. Harnett with the documentation necessary for installation, troubleshooting, and use in the lab.

This project will use an Arduino Development Board, which is an AVR development board itself. It is programmed using a C-like language, and is extensively documented. This board will be the main interface between the Graphical User Interface for users and the device under test. The firmware will actually implement the control for the potentiostat and galvanostat using the components on the attached daughtercard.

4

Potentiostat Development Williams, Ben

This project also has a Graphical User Interface, written in Java using the NetBeans IDE. Java is an appropriate language for this program, as it is OS Independent. Java runs in a virtual world, called the Java Virtual Machine. As long as your system has the JVM installed, the software will work. The only requirement is that a 32-bit OS be used, as the communication protocol will not work on 64-bit systems.

5

Potentiostat Development Williams, Ben

2. System Description

Figure 1 – System Diagram

The system will be used to characterize various power sources over a range of voltages, loads, and currents. The system is comprised of 3 major components, (1) a PC on which the Graphical User Interface (GUI) is run, (2) an Arduino Development Board on which the firmware is run, and (3) a daughtercard, which houses the electrical control components. The Arduino will use its onboard Analog Inputs to measure the voltage of the power source and the voltage across the Digital Potentiometer (POT) and the Digital to Analog Power Output (DAC). This will allow the Arduino to adjust the resistance of the POT and the voltage output of the DAC, thus adjusting the output of the power source. The GUI serves as a means of user interaction with the Arduino and daughtercard, as there is no direct way to interact with them. The GUI also gives the user data logging capability for later analysis and storage.

6

Potentiostat Development Williams, Ben

2.1 System Diagrams and Interfaces

2.1.1 External Interfaces

2.1.1.1 Electrode

This board is designed to have one set of leads, a (+) and a (-), connected to an Analog Input on the Control Board. This connection plugs into the 2.5mm headphone jack on the daughtercard.

2.1.1.2 Graphical User Interface (GUI)

The Control Board and the GUI communicate via the USB connection on the Control Board and the PC. Different routines can be configured in the GUI, as well as setup for data logging. Data is passed in both directions, as explained in section XX.XX.XX.

2.1.1.3 Power Connection

Power for the Control Board comes from the USB cable connected to the PC. The daughtercard gets its power from Control Board, through +5V pins.

2.1.2 Internal Interfaces

2.1.2.1 Digital to Analog Convertor (DAC)

The Control Board communicates to the DAC via a SPI bus, and a control digital output pin. The DAC can output 0V – 5V, depending on the requests of the control board.

2.1.2.2 Digital Potentiometer (POT)

The Control Board communicates to the POT via a SPI bus, and a control digital output pin. The POT can set the resistance between a pin and wiper between 0Ω and 50kΩ, depending on the request of the control board.

2.1.2.3 Digital Relay Control Module

The Control Board communicates to the Relay Control Module via a digital output pin, allowing the Control Board to connect and disconnect the DAC.

7

Potentiostat Development Williams, Ben

2.2 System Requirements

2.2.1 Develop an inexpensive Potentiostat for use in a lab setting

A commercial potentiostat can cost in the price range of $5,000 to $10,000 per channel, which is prohibitively expensive for widespread laboratory use. For example, an instructional lab environment requires a low-cost potentiostat that can be produced for individual use.

2.2.2 Document firmware for ease of use and later modification

All firmware must be documented at a level that a new user can come in and modify parameters or add new functionality without having to go through detailed circuit analysis, or program analysis.

2.2.3 Document Potentiostat so it can be produced by unskilled users

The potentiostat boards must be able to be easily assembled by unskilled users, such as first or second year electrical engineering students. This will allow for many boards to be built for laboratory use, while allowing such students to gain circuit experience.

2.2.4 Log Data for later analysis

As the potentiostat will be used in a laboratory environment, data logging is needed for later analysis and comparison.

2.2.5 Make recommendations for expanding potentiostat to three electrode version

A high level recommendation for expanding the potentiostat from a single electrode to a multi electrode model should be included for future projects.

8

Potentiostat Development Williams, Ben

2.3 Hardware Overview

2.3.1 Control Board

The control board used for the potentiostat is a base level Arduino. (An Arduino Uno, Duemilanove, or Diecimila will work). This board has 14 digital input/output pins (of which 6 can be used as PWM outputs), 6 analog inputs, a 16 MHz crystal oscillator, a USB connection, a power jack, an ICSP header, and a reset button.

The Control Board uses the SPI bus on the daughtercard to communicate to the Digital to Analog Convertor Output Amplifier (DAC), as well as the Digital Potentiometer. It uses a Digital Output to open and close the Relay, and has an FTDI chip for USB communications to the GUI.

The Control Board uses the on-board A/D converter to measure the cell voltage, which is then used by the Control Board to adjust the DAC or POT as needed.

2.3.2 Digital to Analog Convertor Output Amplifier

The DAC is able to output 0V – 5V on 4 channels, only one of which is wired on this board. This is the primary control for maintaining a constant voltage across the cell. The output is controlled by the Control Board via the SPI bus.

2.3.3 Digital Potentiometer

The Digital Potentiometer (POT) is able to vary the resistance between a terminal and the wiper. The installed POT can vary the resistance between 0Ω and 50kΩ programmatically via the SPI bus.

2.3.4 Digital Relay Control Module

The Digital Relay Control Module (RELAY) is wired in series with the POT and DAC, allowing them to be removed from the circuit and the CELL read without any external influence.

2.3.5 Personal Computer

The Personal Computer (PC) can be any x86 architecture, running a 32-bit Operating System, with the Java Virtual Machine installed. The latest version of 32-bit Ubuntu is suggested, as it is both free and easy to use for modifying or running the GUI.

9

Potentiostat Development Williams, Ben

2.4 Software Overview

2.4.1 Control Board Firmware

The Control Board Firmware (Firmware) takes input from the Graphical User Interface (GUI) as well as readings from the CELL to make adjustments to the DAC and the POT. Depending on the mode set by the GUI, and the set-point given by the GUI, the Firmware will either try to hold the voltage across the CELL constant, or the current through the CELL constant.

The Firmware will then send all the readings out the USB port for logging by the GUI, allowing the next round of calculations to begin.

2.4.2 Graphical User Interface

The Graphical User Interface (GUI) is not only a way for the user to view the data generated by the Control Board, but is also the only way to define settings for the Control Board to use. The GUI can define 4 different modes:

Mode 0 => Constant current (mA) until a cutoff Potential (V)

Mode 1 => Constant current (mA) for a given time (s)

Mode 2 => Constant potential (V) until a cutoff current (mA)

Mode 3 => Constant potential (V) for a given time (s)

These modes can be defined and performed in any order, for any values needed. This allows for experiments to be designed where all groups’ data should be similar.

The GUI can also set up data logging, so that all information can be saved and analyzed at a late time. There are three different logging modes currently in the software:

Log Everything => Log every data point

Adaptive Logging => Log when a certain predefined change takes place

Timed Logging => Log at a predefined interval

10

Potentiostat Development Williams, Ben

3. Detailed Design

3.1 Hardware Detailed Design

3.1.1 Control Board

The control board selected for this system is an Arduino development board, an open source board based on the Atmel ATMega328 microcontroller.

Figure 2 – The Arduino Diecimila Control Board

The control board provides an interface between the GUI and the daughtercard, which houses all of the Control Components. The Arduino board is a diverse and open platform, with many more features than we will be using. The features utilized in this system are: USB Jack, FTDI USB chip, Digital Pins, Power Pins, Analog Pins, and the Microcontroller. This board is sufficient not only for the development of this system, but will also allow for future expansion without changing platforms.

As the interface between the GUI and the daughtercard, the Control Board will first read values sent from the GUI to determine the voltage or current set-point for the cell. It will then read the voltage on the cell through an Analog Input pin and adjust the values of the DAC and POT via the SPI bus to obtain the requested set-point.

11

Potentiostat Development Williams, Ben

3.1.2 Digital to Analog Convertor

The +5V MAX5250 combines four low-power, voltage output, 10-bit digital-to-analog converters (DACs) and four precision output amplifiers in a space-saving, 20-pin package. This facilitates specific gain configurations, remote sensing, and high output drive capacity. Other features include software shutdown (not currently implemented), an active-low reset that clears all registers and DACs to zero, a user-programmable logic output (not currently implemented), and a serial-data output. Each DAC has a double-buffered input organized as an input register followed by a DAC register. A 16-bit serial word loads data into each input/DAC register. The 3-wire serial interface is compatible with SPI™/QSPI™ and Microwire™. It allows the input and DAC registers to be updated independently or simultaneously with a single software command. All logic inputs are TTL/CMOS logic compatible.

The DAC does not currently use the input buffers, as only one output is being utilized. If multiple electrodes were to be added to this board, the input buffers would be very useful in ensuring that the timing of both units is the same.

The MAX5250 requires two sets of resistors for proper operation, one set for feedback and one set for a voltage reference. Shown in Figure 4, R1 and R2 are 10Kohm resistors for the feedback circuit, and R3 and R4 are 100kohm resistors forming a voltage divider to put 2.5V on the Vref pin.

Figure 3 – Digital to Analog Convertor Block Diagram

12

Potentiostat Development Williams, Ben

Figure 4 – MAX 5250 Pinout

3.1.3 Digital Potentiometer

The MCP4261 is an 8-bit Dual SPI Digital Potentiometer with Non-Volatile Memory. The 503e is the model that is used on this potentiostat, which makes the POT 0Ω – 50kΩ adjustable. The resistor ladder is a series of equal value resistors (RS) with a connection point (tap) between the two resistors. The total number of resistors in the series (ladder) determines the total resistance achievable. The end points of the resistor ladder are connected to analog switches which are connected to the device Terminal A and Terminal B pins. For an 8-bit device, there are 256 resistors in a string between Terminal A and Terminal B. The wiper can be set to tap onto any of these 256 resistors, thus providing 257 possible settings (including terminal A and terminal B).

The Control Board uses the SPI bus to adjust the resistance between a single terminal, in this instance, B and the wiper.

The POT can not only accept values to change to, but can also report its current value to the Master Device on the SPI but. While this feature is not currently implemented, it could be useful if a self-calibrating unit were implemented.

13

Potentiostat Development Williams, Ben

3.1.4 Digital Relay Control Module

The R56-1D.5-6 is a SPST-NO relay. This allows the DAC and the POT to be removed from the CELL circuit for unimpeded measurement. The relay is controlled by a Digital Output pin on the Control Board.

Figure 6 – Relay Control Module

14

Figure 5 – Digital Potentiometer Block Diagram

Potentiostat Development Williams, Ben

3.1.5 Personal Computer

The PC provides a host for the GUI to run on, and facilitates the communication between the Control Board and the GUI. The main requirement of this PC is its ability to run Java Applications using the Java Virtual Machine, and it must run a 32-bit OS, a requirement of the RXTX library used by the GUI for communication.

15

Potentiostat Development Williams, Ben

3.2 Software Detailed Design

3.2.1 Control Board Firmware

The Control Board Firmware will start-up the serial connection that will use the USB port to communicate with the GUI. It will then initialize the Digital POT and the DAC by setting them to safe and known values. The control loop then starts by checking to see if a data packet, as shown in Figure 7, from the GUI is available. If it is, it will modify control parameters to meet the requested values. The parameters are then checked to see which control function must be run, and the selected function is run. This loop will run a set number of times, and a data packet will be sent to the GUI for logging, and display, as shown in Figure 8.

Figure 7 – GUI Data Packet (Received)

Figure 8 – Control Board GUI Update Packet (Transmitted)

16

Potentiostat Development Williams, Ben

Figure 9 – Control Board Software State Diagram

17

Potentiostat Development Williams, Ben

3.2.1.1 Digital to Analog Convertor (DAC) – write_dac()

The Control Board will set the value of the DAC via the SPI bus. The Data Packet in Figure 17 shows the packet that is sent to the DAC. This function is written so that the address of the DAC and the data to be sent are passed in. This allows for future expansion and use of the other three DAC’s on the chip.

Figure 10 - write_dac Function Packet

3.2.1.2 Digital Potentiometer (POT) – write_pot()

The Control Board will set the value of the POT via the SPI bus. The Data Packet in Figure 18 shows the packet that is sent to the POT. This function is written so that the address of the POT and the data to be sent are passed in. This allows for future expansion and use of the other POT on the chip.

Figure 11 – write_pot Function Packet

18

Potentiostat Development Williams, Ben

3.2.1.3 Decide

The Decide function takes input from the GUI and modifies the control parameters to perform the requested functions. Figure 12 shows the values that are passed from the GUI, and their resulting parameter changes.

Figure 12 – Decide State Diagram

‘+’ Update DAC Close RELAY Loopspeed = 5 Countto = 10

‘-‘ Ocv = TRUE Open RELAY Loopspeed = 5 Countto = 10

‘P’ DACTest = TRUE Testcount = 0 Testlimit = 1023

‘R’ Rtest = TRUE Testcount = 0 Testlimit = 255

‘r’ Update POT‘g’ Gstat = TRUE

19

Potentiostat Development Williams, Ben

Update DAC to Vcell Determine if current is charging or

discharging Update DAC with corrected

setpoint Close RELAY

‘p’ Pstat = TRUE Update setpoint Close RELAY

‘c’ Pstat = TRUE Update setpoint Close RELAY

20

Potentiostat Development Williams, Ben

3.2.1.3 Potentiostat

The potentiostat function is based on the equations in Figure13, and the flow shown in Figure 14. The major equation this function is based on is:

V CELL=V POT+V DAC

V CELL=( IPOT× RPOT )+V DAC

Figure 13 – Potentiostat Function Equations

If the potential is too high and the DAC is not at 0V, it lowers the output of the DAC. If the potential is too low and the DAC is not maxed out, it increases the output of the DAC. Second, it tries to roughly increase or decrease the resistance of the POT, depending on how much the DAC is outputting. The third major function is a fine adjustment of the POT, for when the CELL and the DAC are very close together.

21

Potentiostat Development Williams, Ben

Figure 14 – Potentiostat Function Flow Diagram

3.2.1.3 Galvanostat

The Galvanostat is based on the equations derived in Figure 15. It will increase or decrease the output of the DAC depending on 2 factors, (1) which way the current is going, and (2) the value of the current.

ICELL=IPOT

V CELL=V POT+V DAC

V POT=V CELL−V DAC

IPOT=V POT

RPOT

I POT=V CELL−V DAC

RPOT

22

Potentiostat Development Williams, Ben

ICELL=V CELL−V DAC

RPOT

Figure 15 – Galvanostat Function Equations

Figure 16 – Galvanostat Function Flow Diagram

3.2.1.3 DataOut

DataOut is a function that will send data to the GUI every time countto loops are performed, as shown in Figure 14 above. It has a start string and a stop string. There is no acknowledgement of a packet being received or not received.

3.2.1.3 SPI Transfer

The spi_transfer function is used to talk with any device on the SPI bus. This function will send the value passed to is out on the MOSI port. The correct Slave Select pins must be set before this function is called in order for the correct slave to receive the data. It will also return a byte from the MISO pin, but this is not used in the application.

23

Potentiostat Development Williams, Ben

3.2.1.3 Ramp Functions

A function has been added for smoothing the changes in voltage values for the DAC or resistance values for the POT. The voltage values are limited to changing by ~10%, and the resistance values are limited to changing a max of 10 at a time. This will help with overshoot, and will ease transitions between large swings.

24

Potentiostat Development Williams, Ben

3.2.1 Graphical User Interface (GUI)

The Graphical User Interface runs on a PC and communicates to the control board via an USB interface. The GUI is written in Java and implements the RXTX package to communicate with the Control Board. The RXTX package requires that a 32-bit Operating System is used.

Figure 17 shows how the software is organized and how the different pieces of the software communicate.

Figure 17 – Software system diagram

25

Potentiostat Development Williams, Ben

4. Conclusions

At the beginning of this project, the scope was to expand the working potentiostat to work as a three-electrode design. It didn’t take long to see that this was a very unrealistic goal, as the circuit that was passed on did not function as expected, and the documentation was vague, unreliable, or in the case of the firmware, nonexistent. As this was to be a project used and expanded by other students, the scope was modified to be a rework and documentation project. At the conclusion, the firmware has been rewritten to be more readable, editable, and has been commented. The circuit has documentation and explanation, and relates back to the firmware.

The project sponsor will be given the following: a working potentiostat with full documentation, a GUI with data logging capability, and recommendations for expanding the potentiostat for further work. The potentiostat has the ability to maintain a constant voltage, or current from the power source, within its parameters. There will also be a TA manual for software installation, and a brief guide of how to modify the code.

There were two major problems encountered while working on this project. The first and largest problem was the lack of documentation of code. Between the firmware and the GUI, there are approximately 3000 lines of code, with sparse and brief comments. A majority of the project was spent reverse-engineering the code, adding insightful comments, and rewriting the firmware to be more general and expanded without the major functions being rewritten. The firmware is now divided into 8 general categories, and all the functions have been commented with what they do, and what the inputs and outputs are. Variables were also given meaningful names and comments of what they do, constants were added for expansion of the POT and the DAC, and many unused variables were removed. Many global variables were removed and transferred into local variables for better management.

The second problem came with the lack of documentation of the daughtercard. The circuit that was passed on to me was not functioning, and there was no explanation of why connections were made, or the purposes of different components. I have attempted to consolidate all necessary information from the proper datasheets into one place for easy troubleshooting and understanding. The final piece of the project will be to pass on what I have done to the next team for further work, and to ensure they do not have to spend as much time reverse-engineering and digging through the code as I did.

26

Potentiostat Development Williams, Ben

5. Recommendations for Future Work

After extensive work with this project, there are a few ideas that warrant recommending for future implementation, of which I believe two are of major consideration. First, the Graphical User Interface needs a complete overhaul. This GUI does the job of interfacing with the Control Board, but not in a very effective, intuitive, efficient, or visually pleasing manner. If this is going to be used by students, it needs to be easy to use. Entering control information as a series of 3 numbers and then Parsing into text seems to be a solution that makes the control easier, but at the expense of User understanding. In my opinion, this is not a justifiable tradeoff. If this recommendation were to take place, I believe it should be done in conjunction with the second recommendation, or at least with the recommendation in mind.

Next, a second CELL could be monitored with little trouble. The POT chip and the DAC chip already have the ability to duplicate everything done with the current board. The only chip that would need to be changed is the Relay to allow for disconnecting the second source. All of the firmware has already been written in such a way to allow the major functions to operate more than one device, so the firmware modifications would be minor. The GUI would need to be updated to differentiate between the two sources, both in the controlling and the monitoring and logging.

Lastly, I believe a visualization section of the GUI would be a huge benefit. Currently, the data is logged to a .csv file and the user is left to manipulate it. If this is to be used in a student lab class, the integrated ability to view the data would allow the student to focus on what the data is showing them, not figuring out how to display the data. This would also help TA’s or instructors be given a standard format for which reports would be turned in. If this could include a live data scope like graph, it would allow students to see how the changes are actually affecting the CELL.

27

Potentiostat Development Williams, Ben

6. Material Documentation and Reconciliation

6.1 References

[1] Ardustat, Department of Chemical Engineering, CCNY. [Online]http://steingart.ccny.cuny.edu/ardustat

[2] Arduino. Arduino IDE Download. [Online]http://arduino.cc/en/Main/Software

[3] Arduino. Arduino Programming Reference. [Online]http://arduino.cc/en/Reference/HomePage

[4] Atmel. AtMEGA328 Datasheet. [Online]http://atmel.com/dyn/resources/prod_documents/8271S.pdf

[5] MAXIM. MAX5250 Digital to Analog Converter Datasheet. [Online]http://www.maxim-ic.com/datasheet/index.mvp/id/1650

[6] Microchip. MCP4261 Digital Potentiometer Datasheet [Online]http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en531252

[7] NTE Inc. NTER56 Relay Datasheet. [Online]www.nteinc.com/relay_web/pdf/R56_57.pdf

[8] Oracle. Java Virtual Machine Download. [Online]http://www.java.com/en/download/index.jsp

[9] NetBeans. Java Programming IDE Download. [Online]http://www.netbeans.com/

[10] CadSoft. Eagle PCB Design Software. [Online]http://www.cadsoftusa.com/

[11] Gamry. Commercial Potentiostat. [Online]http://www.gamry.com/

[12] Princeton Applied Research. Commercial Potentiostat. [Online]http://www.princetonappliedresearch.com/

[13] Uniscan Instruments. Commercial Potentiostat. [Online]http://www.uniscan.com/

28

Potentiostat Development Williams, Ben

29