diff --git a/README.markdown b/README.markdown new file mode 100644 index 0000000000000000000000000000000000000000..387fa2863681a85bdfde4d0ffdf389d40b17154b --- /dev/null +++ b/README.markdown @@ -0,0 +1,158 @@ +# DStat Hardware +This is the documentation for the DStat hardware. + +### Table of Contents: + +* [Design Files](#design-files) +* [Materials](#materials) + * [Printed Circuit Board](#printed-circuit-board-pcb) + * [Components](#components) + * [Reference Key](#reference-key) + * [Tools](#tools) +* [PCB assembly](#pcb-assembly) +* [Enclosure](#enclosure) +* [Connections](#connections) + * [Voltammetry/Amperometry](#voltammetry-amperometry) +* [License Information](#license-information) + +## Design Files +The hardware design files were created and can be edited in [KiCAD](http://www.kicad-pcb.org). +PDF versions of the electrical schematic and PCB layout can be found in the root directory: `dstat-mainboard-sch.pdf` and `dstat-mainboard-pcb.pdf`. The git repository can be cloned, or [click here](http://microfluidics.utoronto.ca/gitlab/dstat/dstat-hardware/repository/archive.zip?ref=master) to download the latest version. + +## Materials +### Printed Circuit Board (PCB) +![full PCB](images/Full_PCB.jpg) + +One DStat mainboard PCB is required for each potentiostat. +The specifications of the PCB are tuned for the [Pentalogix](http://www.pentalogix.com) US Quickturn Prototype PCB service, but many other companies are capable of fabricating the board. +Fabrication files can be generated with KiCAD or can be found in the `gbr` directory as standard Gerber files. +All files use mm as base units. +### Components +The list of electronic components required to build the DStat can be found in the `dstat-mainboard.csv` file. +A combined parts list with suggested components can be found in the `dstat-mainboard-partslist.csv` file. +All components apart from pin headers are surface mount. +Take note of the package size in the `Footprint` column as most components come in multiples sizes. +The naming of the references in the file and notes regarding component selection follow: + +#### Reference Key +| Reference | Component Type| Selection Notes | +| --------- | --------- | --------- | +| C | Non-polarized capacitor | Unless otherwise specified, 47u, 10u, 1u, 100n, 10n, 4.7n values can be wide tolerance parts | +| CON | PDI connector | 2x3 2.54x2.54mm pin header for programming µC | +| COUNTER | Counter electrode connection | Single hole for soldering wire or connector | +| FB | Ferrite bead | At least 40 Ω @ 100 MHz. DC resistance < 100 mΩ | +| IC | Microcontroller | Make sure this is not the QFN package | +| L | Inductor | | +| P | Various connectors | 2.54x2.54 mm pin headers | +| R | Resistor | unless otherwise specified, 100 values can be wide tolerance parts (5%) all others should be 2% or better | +| REFERENCE | Reference electrode connection | Single hole for soldering wire or connector | +| RSHIELD | Reference electrode shield connection | Single hole for soldering wire or connector | +| U | Integrated circuit | | +| UR | Integrated voltage divider | Need 1:1 divider | +| USB | USB mini B connector | PCB has holes drilled for connectors with alignment pins, but connectors without them will also fit. | +| WORKING | Working electrode connection | Single hole for soldering wire or connector | +| WSHIELD | Working electrode shield connection | Single hole for soldering wire or connector | +| X | Quartz crystal resonator | Surface mount HC49 package | + +### Tools +![solder paste](images/paste.jpg) + +To assemble the PCB, a few tools are recommended: + * soldering iron + * inspection microscope or magnifier + * solder wick + * tweezers + * multimeter or continuity tester + * solder paste + * cotton or foam swabs + * solvent suitable for removing flux (depends on type of solder paste, usually water or isopropanol) + +## PCB assembly +A simple way to speed up assembly of the PCB is to use a small scale reflow technique in which solder paste is applied to the PCB, then heated with a hotplate to connect the components. +The mainboard can be soldered by hand but the fine pitch components make this difficult. + +![bare pcb](images/PCB-bare.jpg) + +1. Apply a small quantity of solder paste to each pad on the front of the PCB. +Pads for fine-pitch components can be covered with a continuous line of paste for each side—the surface tension of the melted solder will remove most solder bridges once heated. + + ![PCB with paste](images/PCB_paste1.jpg) + ![PCB with paste](images/PCB_paste2.jpg) + +1. Using tweezers, carefully populate the front of the PCB with surface mount components, making sure of the correct orientation of ICs. (Match the corner of the IC marked with a dot with the corresponding mark on the PCB) +The solder paste will help keep the components in place. +Perfect alignment isn't necessary as the surface tension of the solder will centre the components once melted. + + ![PCB with components](images/PCB_parts.jpg) + +1. Heat the PCB on a hotplate following the recommended temperature profile for your soldermask. +Remove once cooled. + + ![PCB on hotplate](images/PCB_hotplate.jpg) + +1. Inspect the front of the PCB for solder paste which has not completely melted, components that are not soldered to their pads, and pins on components that are bridged together with excess solder. (optical magnification is useful) +Defects can be corrected with a soldering iron by applying heat to single pins or removing excess solder with solder wick. + + ![IC with bridged pins](images/PCB_bridged_pins.jpg) + +1. Solder the remaining components to the PCB by hand. +These include surface mount components on the back of the PCB and components that sit in holes (pin headers). + + ![Pin headers](images/PCB_through_hole.jpg) + ![Back components](images/PCB_back.jpg) + +1. Clean flux off the PCB using a suitable solvent, rubbing the surface of the board with a swab. +Especially if using water, ensure the board is completely dry before proceeding. + + ![PCB cleaning](images/PCB_clean.jpg) + +1. Before attempting connection of the instrument, check for shorts from the power rails to ground using the multimeter. (The P8 connector provides both power rails and ground) +If any shorts are found, inspect components for solder bridges. + + ![Finished Board](images/PCB_finished.jpg) + +## Enclosure +![Enclosure](images/DStat1.jpg) + +AutoCAD drawings and stereolithography files for a simple 3D printed enclosure can be found in the [/enclosure](/gitlab/dstat/dstat-hardware/tree/master/enclosure) directory. Five Pomona 2854-0 banana plug connectors are required and can be wired to the connections needed. Print one box, one USB_end, and one banana_end. No screws are needed, the two end pieces snap into the box. + +## Connections +| Connector | Function | +| --------- | -------- | +| Counter | Output of potentiostatic amplifier. Drives counter electrode to control WE potential | +| Reference | Reference electrode input. Provides potential feedback near WE. | +| Working | Working electrode. Held on virtual ground by i-V converter—can sink or source current up to limit of op amp and current measurement is analytical signal. | +| Reference Shield | Follows Reference input. Can be connected to shield of Reference electrode coaxial cable or triaxial shield. | +| Working Shield | Follows virtual ground. Can be connected to shield of Working electrode coaxial cable or triaxial shield. | +| AVR-PDI | Programming connection for microcontroller. | +| 40-pin connector | Provides access to unused microcontroller ports for connecting with other instruments or building expansion boards | +| P7 connector | Provides ground and virtual gound connections for testing and measurements | +| P8 connector | Provides ground, +3.3V, and +5V connections for external devices | +| USB | Provides power and data connection with a computer | + +| Switches | Function (when closed) | +| -------- | -------- | +| U3A | Connects output of potentiostatic amplifier to Counter electrode connector. | +| U3B | Connects potentiostatic amplifier output to Reference electrode input. | +| U3C | Connects Working electrode input to transimpedance amplifier (i–V converter). | +| U3D | Connects Reference electrode buffer to potentiostatic amplifier input. | +| U12 (X0–7) | Selects between feedback components of transimpedance amplifier. | + +### Voltammetry/Amperometry + +*This information is for general reference and those interested in making changes to the firmware—the switches are automatically set by the firmware during normal operation* + +For a standard 3-electrode cell, Working, Counter, and Reference electrodes connect to the corresponding connection points. +Switches U3A, U3C, and U3D should be closed during measurements. + +For a 2-electrode cell, the Reference and Counter electrode connectors can be connected together externally or can be connected on the PCB by closing switch U3B. +For a standard 3-electrode cell, Working, Counter, and Reference electrodes connect to the corresponding connection points. +Switches U3A, U3C, and U3D should be closed during measurements. + +## License Information +This wiki, the hardware schematics and layouts, and all other documentation describing the DStat hardware are licensed under the [CERN OHL v. 1.2.](LICENSE/LICENSE.pdf) +©Michael D. M. Dryden 2014 + +You may redistribute and modify this documentation under the terms of the CERN OHL v.1.2. (http://ohwr.org/cernohl). +This documentation is distributed WITHOUT ANY EXPRESS OR IMPLIED WARRANTY, INCLUDING OF MERCHANTABILITY, SATISFACTORY QUALITY AND FITNESS FOR A PARTICULAR PURPOSE. +Please see the CERN OHL v.1.2 for applicable conditions. \ No newline at end of file diff --git a/images/Full_PCB.jpg b/images/Full_PCB.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ee45f1dac2da776fdf77063846c5af9dfd3e4bac Binary files /dev/null and b/images/Full_PCB.jpg differ diff --git a/images/PCB-bare.jpg b/images/PCB-bare.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f8b9a4c5cf4e9fe70fb19a9847630fcb3a2b19f6 Binary files /dev/null and b/images/PCB-bare.jpg differ diff --git a/images/PCB_back.jpg b/images/PCB_back.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fb74cbb021952eea9e410787e2229ff20c49fdb9 Binary files /dev/null and b/images/PCB_back.jpg differ diff --git a/images/PCB_bridged_pins.jpg b/images/PCB_bridged_pins.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ef5fe690cd2da0dbafce296827cf1488a1b8c349 Binary files /dev/null and b/images/PCB_bridged_pins.jpg differ diff --git a/images/PCB_clean.jpg b/images/PCB_clean.jpg new file mode 100644 index 0000000000000000000000000000000000000000..43b87faf9829ba2c7e50d74e2e3a63c09b14465b Binary files /dev/null and b/images/PCB_clean.jpg differ diff --git a/images/PCB_finished.jpg b/images/PCB_finished.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7d2a90d15c6c7a2ebe42bd40993796fc426adadb Binary files /dev/null and b/images/PCB_finished.jpg differ diff --git a/images/PCB_hotplate.jpg b/images/PCB_hotplate.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1a53e1639e46540c961d80564eb698c4685d8aee Binary files /dev/null and b/images/PCB_hotplate.jpg differ diff --git a/images/PCB_parts.jpg b/images/PCB_parts.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5976bec18a11a632d89e53b221297d1f7c6067c8 Binary files /dev/null and b/images/PCB_parts.jpg differ diff --git a/images/PCB_paste1.jpg b/images/PCB_paste1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3571744ea4498dd3a99c4c9628ac0207ac4051e7 Binary files /dev/null and b/images/PCB_paste1.jpg differ diff --git a/images/PCB_paste2.jpg b/images/PCB_paste2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6845dcdd41c2b5b804b1ac64a91ab59531c9c487 Binary files /dev/null and b/images/PCB_paste2.jpg differ diff --git a/images/PCB_through_hole.jpg b/images/PCB_through_hole.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e71603153e849c5ca78bf67c2ec005606ca2d994 Binary files /dev/null and b/images/PCB_through_hole.jpg differ diff --git a/images/dstat1.jpg b/images/dstat1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a0324792249cb40d91ff8a160f713dd0e32ae148 Binary files /dev/null and b/images/dstat1.jpg differ diff --git a/images/paste.jpg b/images/paste.jpg new file mode 100644 index 0000000000000000000000000000000000000000..04f95b667960d9891971a3252fb62d6f66d262db Binary files /dev/null and b/images/paste.jpg differ