Literature DB >> 35518277

Open source fraction collector/MALDI spotter for proteomics.

Scott B Ficarro1, William Max Alexander1, Isidoro Tavares1, Jarrod A Marto1.   

Abstract

We describe a complete open-source hardware/software solution for high performance thermostatted peptide fraction collection to support mass spectrometry experiments with complex proteomes. The instrument is easy to assemble using parts readily available through retail channels at a fraction of the cost compared to typical commercial systems. Control software is written in Python allowing for rapid customization. We demonstrate several useful applications, including the automated deposition of LC separated peptides for matrix-assisted laser desorption ionization mass spectrometry (MALDI-MS) as well as collection and concatenation of peptide fractions from nanoflow HPLC separations.
© 2022 The Author(s).

Entities:  

Keywords:  Fraction collection; HPLC, high pressure liquid chromatography; LC, liquid chromatography; LC-MALDI; LC-MS, Liquid Chromatography/Mass spectrometry; MALDI-MS, matrix-assisted laser desorption ionization mass spectrometry; MS, mass spectrometer/mass spectrometry; OEM, Original Equipment Manufacturer; Open source; Proteomics; Python

Year:  2022        PMID: 35518277      PMCID: PMC9062586          DOI: 10.1016/j.ohx.2022.e00305

Source DB:  PubMed          Journal:  HardwareX        ISSN: 2468-0672


Specifications table Chemistry and biochemistry Proteomics Biological sample handling and preparation

Hardware in context

Despite improvements in mass spectrometer (MS) detection and acquisition speed, in-depth analysis of complex proteomes very often requires one or more dimensions of peptide chromatographic separation prior to MS analysis. Multiple, orthogonal chromatographic separation stages can be integrated directly with the mass spectrometer [1], [2], [3]. These configurations provide high efficiency in terms of peptide separation and detection [4], [5], [6], [7], but require careful selection and calibration of buffers and flow rates across the entire system. While robust in a ‘production mode’ of operation, these systems are not well suited to rapid testing of different combinations of LC solvents, packing resins, or column geometries. An alternative is to perform peptide separations on a dedicated ‘offline’ platform, collecting discrete peptide fractions in individual tubes for further manipulation or transfer to a traditional autosampler liquid chromatography (LC) system integrated with the mass spectrometer for single-dimension (1D) LC-MS analysis. The offline configuration provides flexibility with respect to buffer exchange between separation stages as well as concatenation of peptides across regularly-spaced fractions to achieve separation orthogonality in a smaller number of fractions for LC-MS analysis. The offline approach has been successfully utilized across a range of applications [8], and continues to play an important role in proteomics [9], [10], [11], [12]. Major manufacturers offer turn-key instruments to support offline fractionation. However, these systems are often built around OEM components and closed data systems which limits users’ ability to customize, upgrade, or repair outside of costly manufacturer service contracts. Fortuitously, recent innovations in open-source hardware/software [13], [14] now make it possible for researchers to build their own analytical solutions. For example, researchers have developed open source syringe pumps [15], laser induced fluorescence detectors [16], and microscopes [17]. Many of these projects take advantage of the proliferation of 3D printing technology [18], allowing rapid prototyping of custom components. Such open-source solutions have many advantages over commercial instrumentation: components offering similar performance compared to commercial solutions can be sourced through retail outlets, providing an immediate and economical path for replacements or future upgrades. Similarly, the advent of versatile mini-computers built around processors like the ARMv8 (Raspberry Pi model 3) or microcontroller boards based on the ATMega328P provide an extensible, highly-customizable platform to assemble a robust embedded control environment [14]. Moreover, use of Python or other high-level scripting language enables rapid development of rich graphical user interfaces to speed prototyping and deployment of full function instruments to support sophisticated experiments [19], [20]. Open-source solutions have been described for analytical- or preparative-scale fractionation [21], [22], but modern proteomic experiments typically require microcapillary-based separations performed in the low- to sub-microliter/min flow regime to enhance peptide recovery in the offline stage and hence improved detection in the final dimension LC-MS experiment. Similarly, instruments for MALDI sample deposition have been reported [23], [24], [25], [26], but these are single-purpose designs with little guidance for hardware assembly or software control. Here we report a complete open-source, simple to build fraction collector/MALDI spotter system designed around microcapillary-scale HPLC separation. We demonstrate its use in collection of LC fractions into 96 well plates as well as accurate spotting of microliter volumes onto 384-well MALDI plates, enabling both multidimensional LC/electrospray- and LC/MALDI-based proteomic experiments.

Hardware description

Versatile fraction collector for nano- to micro- scale liquid chromatography (1–100 µL/min) Direct spotting of LC-separated peptides for MALDI-MS analysis Supports fraction concatenation for optimal proteomic profiling Thermostatted aluminum block for chilling collected fractions Motor mounts, limit switch holders, end stops, brackets, and other assorted components were 3D printed with PLA filament on a Lulzbot Mini (Aleph Objects, Loveland, CO), with the extruder set to 210 °C and a bed temperature of 60 °C. Parts were designed in OpenSCAD (version 2019.05) and exported to STL for printing. All OpenSCAD files are provided as Supplementary Materials (see Mendeley Data Repository), allowing researchers to easily modify components. The instrument frame consisted of OpenBuilds (https://openbuildspartstore.com/) aluminum V-slot assembled using T-nuts and 3D-printed corner connectors (Fig. 1). A DW713 10″ compound miter saw was used to cut aluminum extrusion (Diablo 84 tooth 10″ blade for non-ferrous metal) and stainless steel 8 mm lead screw (LENOX 10″ 52 Tooth Titanium/Carbide Steel Cutting Blade). Large acrylic sheets were cut into smaller panels using a Dewalt DWE7491 Table Saw using the general purpose blade supplied by the manufacturer. Smaller cuts were made with a Black&Decker BDCJS20 Jigsaw. Components for motion control (8 mm lead screw, GT2 timing pulley/belt, bearing, NEMA-17 stepper motors) were obtained from OpenBuilds. Linear motion along X and Y axes was achieved with belt and pinion actuators, while Z-axis motion was driven by a lead screw actuator; all axes were driven by NEMA-17 stepper motors (2 motors on the y-axis, 1 each on X and Z axes). A gShield (synthetos, V5) and Arduino (flashed with GRBL 0.8.3c) were used to drive the stepper motors from g-code commands sent by a Raspberry Pi (model 3B) running Raspian Linux (Fig. 2). To drive the motors and position the collection capillary, the Python script sends G-code to the Arduino through a serial link. Homing is achieved using micro limit switches which connect to the Arduino and are managed by GRBL. The Raspberry Pi also controls an external valve (divert to waste/collect) and the instrument receives an input contact closure to synchronize collection with external instruments or a simple toggle switch. Collected fractions can be chilled with a Peltier thermo-electric cooling module. All parts required for the build are listed in the bill of materials (Table 2).
Fig. 1

Rendering of instrument from Sketchup modeling software, alongside photographs of assembled instrument. Tape measure units are inches.

Fig. 2

Overview of instrument control and wiring. System is coordinated with software written in Python. Python software sends g-code commands to Arduino with g-shield, which drive stepper motors that position the collection capillary. Peltier cooler allows chilling fractions.

Table 2

Bill of Materials (prices as of 1/1/2022).

QTYDescriptionVendorPNCostUnitUnits RqdSubtotal
67M5 t-nutsOpenBuilds536-pack$2.9910-pack7$20.93
11M5 drop in t-nutsOpenBuilds#230$0.99EA11$10.89
58M5×6 low profile screwsOpenBuilds#110-pack$0.8910-pack6$5.34
16M5×8 low profile screwsOpenBuilds#946-pack$0.9910-pack2$1.98
420×20 aluminum extrusion V-slot, 4 m neededOpenBuilds#190-LP$10.691 m4$42.76
340 cm segments GT2 timing beltOpenBuilds#470-By-the-Foot$2.491 foot4$9.96
12Delrin mini V wheel kits (#495)OpenBuilds#495$4.49EA12$53.88
4Open Builds Nema 17 stepper motorOpenBuilds#623$17.99EA4$71.96
3GT2 timing pulley, 20 tooth (#210)OpenBuilds#210$5.99EA3$17.97
126.3 mm (1/4″) spacersOpenBuilds#15-pack$3.3910-pack2$6.78
2150 mm × 4 mm brass rodMcMaster Carr1452N13$10.031 m1$10.03
1P882 Upchurch 1/16″ to capillary fittingUpchurch ScientificP-882$42.06EA1$42.06
1Mini V gantry kitOpenBuilds1185-Set$34.99EA1$34.99
1Ball Bearing 688Z 8×16×5 (#780)OpenBuilds#780$0.99EA1$0.99
1Nut Block for 8 mm Metric Acme Lead Screw (#740)OpenBuilds#740$7.49EA1$7.49
1219 mm 8 mm threaded rodOpenBuilds#25-LP$10.99290 mm1$10.99
18 mm lock collar (#840)OpenBuilds#840$0.99EA1$0.99
1Shim − 12 × 8 × 1 mm (#835)OpenBuilds#835$0.29EA1$0.29
3SWITCH SNAP ACTION SPDT 5A 125 VDigikeySW143-ND$2.49EA3$7.47
1Peltier Thermo-Electric Cooler Module + Heatsink Assembly − 12 V 5A (Adafruit #1335).Adafruit1335$34.95EA1$34.95
1Heat Sink Thermal Tape − 3 M 8810–80 mm × 80 mm (Adafruit #1468)Adafruit1468$4.50EA1$4.50
1Touch-Safe Terminal Block, 600 V AC/600 V DC, Two 20A Circuits (McMaster Carr #7618K611)McMaster Carr7618K611$0.77EA1$0.77
2FAN AXIAL 40 × 20 MM 12VDCDigikey1570–1083-ND$9.61EA2$19.22
1Machinable Multipurpose MIC6 Cast Aluminum, Precision-Ground Sheet, 1/4″ Thick, 6″ × 6″ (McMaster Carr #86825K721)McMaster Carr86825K721$19.46EA1$19.46
1BLACK Cast Acrylic Sheet, 12″ × 24″ × 1/4″ (McMaster Carr #8505K755)McMaster Carr8505K755$21.13EA1$21.13
1Precision Programmable Temperature Controller with Relay Output, Water-Resistant, 1/32 DIN (McMaster Carr # 7981K81)McMaster Carr7981K81$183.16EA1$183.16
1Quick-Connect Thermocouple Probe for Surfaces, Bolt-on, Type J (McMaster Carr #3648 K22)McMaster Carr3648 K22$30.71EA1$30.71
1corner block (Black Angle Corner Connector, Openbuilds #540)OpenBuilds#540$2.99EA1$2.99
1Arduino Uno R3 (Digikey 1050–1024-ND)Digikey1050–1024-ND$23.00EA1$23.00
1G Shield (Synthetos gShield (grblShield) V5, Adafruit #1750)Adafruit1750$63.00EA1$63.00
1small breadboard (Tiny breadboard,Adafruit #65)Adafruit65$4.00EA1$4.00
1Raspberry Pi (Raspberry Pi 3 – Model B – ARMv8 with 1G RAM, Adafruit #3055)Adafruit3055$35.00EA1$35.00
1memory card with NOOBS 3.1Adafruit4266$14.95EA1$14.95
1USB cable (A to B) (USB Cable – Standard A-B − 3 ft/1m, Adafruit #62)Adafruit62$2.95EA1$2.95
6Terminals 110 FASTON IS (Mouser 571–160626-1)Mouser571–160626-1$0.62EA6$3.72
4female crimp pins for 0.1″ housings (Pololu #1930)Pololu#1930$7.95100-pack1$7.95
4male crimp pins for 0.1″ housings (Pololu #1931)Pololu#1931$11.95100-pack1$11.95
80.1″ Crimp connector 1×1 pin (Pololu #1900)Pololu#1900$1.29EA8$10.32
16″ cm jumper wires, male to male (Premium Male/Male Jumper Wires − 40 × 6″ (150 mm), Adafruit #758)Adafruit758$3.9540-pack1$3.95
16″ cm jumper wires, male to female (Premium Female/Male 'Extension' Jumper Wires − 20 × 6″)Adafruit826$3.9540-pack1$3.95
1NPN transistor MJE3055TG 60 V 10A TO220AB (Digikey MJE3055TGOS-ND)DigikeyMJE3055TGOS-ND$0.94EA1$0.94
1Touch-Safe Terminal Block, 600 V AC/600 V DC, Four 20A Circuits (McMaster-Carr #7618 K613)McMaster Carr7618 K613$1.37EA1$1.37
1Carling Switch Rocker switch (LTIGK51-6S-BL-RC-NBL/250 N)GraingerLTIGK51-6S-BL-RC-NBL/250 N$12.90EA1$12.90
1power supply wire (open builds #2560)OpenBuilds#2560$0.811 foot1$0.81
1600pcs black Standard Self-Locking Nylon Cable Zip Ties Assorted Sizes 4/6/8/10/12 Inch with cable mountAmazonUse description$10.99600 pcs1$10.99
1ALITOVE AC 110 V/220 V to DC 12 V 30A 360 W Universal Regulated Switching Power Supply Transformer Adapter LED Driver for LED Strip, CCTV Camera System, Radio*AmazonUse description$24.99EA1$24.99
2Single L-brackets (#LBracket, Openbuilds)OpenBuilds#Lbracket$1.29EA2$2.58
26 mm spacersOpenBuilds#90-Pack$3.3910-pack1$3.39
435 mm spacersOpenBuilds#1040-Pack$5.9910-pack1$5.99
6M3 nutsMcMaster Carr90592A085$1.17100-pack1$1.17
4M3 washersMcMaster Carr98689A112$2.71100-pack1$2.71
2M5 nutsMcMaster Carr90592A095$1.76100-pack1$1.76
12M3×10 socket head cap screwsMcMaster Carr91290A115$9.08100-pack1$9.08
8M3×12 socket head cap screws.McMaster Carr91290A117$10.34100-pack1$10.34
2M3×20 socket head cap screwMcMaster Carr91290A125$15.91100-pack1$15.91
7M3×5 socket head cap screwMcMaster Carr91290A110$10.64100-pack1$10.64
4M3×45 socket head cap screwsMcMaster Carr91290A079$4.5725-pack1$4.57
4M3×6 socket head cap screwsMcMaster Carr91290A111$10.39100-pack1$10.39
2M4×6 cap head socket screwsMcMaster Carr91290A139$10.49100-pack1$10.49
4M5×10 low profile screwsOpenBuilds#878-pack$1.0910-pack1$1.09
2M5×15 low profile screwsOpenBuilds#922-pack$1.1910-pack1$1.19
12M5×25 low profile screwsOpenBuilds#20-pack$1.3910-pack2$2.78
2self-tapping M5 screwsOpenBuilds#720$0.29EA2$0.58
2M4×30 hex head screwsMcMaster Carr91290A172$3.715-pack1$3.71
1Hook-up Wire 22AWG SOLID PVC 100ft SPOOL BLACKMouser602–3051/1–100-02$29.69100 foot1$29.69
1Hook-up Wire 22AWG SOLID PVC 100ft SPOOL REDMouser602–3051/1–100-03$29.69100 foot1$29.69
1Hook-up Wire 22AWG SOLID PVC 100ft SPOOL WHITEMouser602–3051/1–100-01$29.69100 foot1$29.69
1Hook-up Wire 22AWG SOLID PVC 100ft SPOOL BLUEMouser602–3051/1–100-06$29.69100 foot1$29.69
1Hook-up Wire 22AWG SOLID PVC 100ft SPOOL GREENMouser602–3051/1–100-04$29.69100 foot1$29.69
1Official Raspberry Pi USB Optical Mouse – Black and GrayAdafruit4113$8.95EA1$8.95
15 V 2.5A Switching Power Supply with 20AWG MicroUSB CableAdafruit1995$8.95EA1$8.95
1Official Raspberry Pi Keyboard – Black and GrayAdafruit4112$18.95EA1$18.95
1HMTECH Raspberry Pi Screen 10.1 Inch Touchscreen Monitor 1024×600 Portable HDMI Monitor 16:9 IPS Screen Display for Raspberry Pi 4/3/2/Zero/B/B + Win10/8/7, Free-DriverAmazonUse description$99.99EA1$99.99
1MXT715-000EbayUse description$125–$500$500.00
Rendering of instrument from Sketchup modeling software, alongside photographs of assembled instrument. Tape measure units are inches. Overview of instrument control and wiring. System is coordinated with software written in Python. Python software sends g-code commands to Arduino with g-shield, which drive stepper motors that position the collection capillary. Peltier cooler allows chilling fractions. The overall system was coordinated with software written in Python (OpenCollector.py) running on a Raspberry Pi. The GUI is implemented with wxPython and provides an intuitive user interface supporting two broad functions – 1. Calibration (homing, setting collection device, and jog functions to locate and calibrate plate positions), and 2. Instrument Operation (valve position and fraction collector settings like start time and time per fraction). Python code is provided as Supplementary Material (see Open Science Framework Repository). Design files Table 1 contains links to design files for 3D printed parts (OpenSCAD), code for the python control software, and the sketchup design file. All are available under the CC BY 4.0 license.
Table 1

Design Files.

QtyDescriptionFilenameLocation of the fileFile type
4top corner connectorsTop corner connector.scadAvailable with articlescad
4bottom corner connectorsBottom corner connector.scadAvailable with articlescad
332 mm spacer block32 mm spacer.scadAvailable with articlescad
1y motor mountY motor mount.scadAvailable with articlescad
2X motor mountX motor mount.scadAvailable with articlescad
2belt clamp, style 1belt clamp v1.scadAvailable with articlescad
5Cable guideCable guide.scadAvailable with articlescad
1capillary holder plate (holds sampling capillary)Zaxis cap holder piece 1.scadAvailable with articlescad
1Rod support for capillary guideZaxis cap holder piece 2 top.scadAvailable with articlescad
1Z-block coupler (nut block plate)Z block couple 4.scadAvailable with articlescad
1Z-axis shaft coupler plateZ axis shaft coupler plate.scadAvailable with articlescad
1Z-axis end plate (supports bearing and lead screw)z axis end plate.scadAvailable with articlescad
1Holder to support 96 well plate in aluminum blockPlate holder.scadAvailable with articlescad
1temperature controller holdertemp controller holder.scadAvailable with articlescad
4belt clamp, style 2belt clamp v2 main.scadAvailable with articlescad
4lid for style 2 belt clampbelt clamp lid.scadAvailable with articlescad
2limit switch holderLimitSwitchHolder.scadAvailable with articlescad
4Clamp to hold acrylic base to framebaseclamp.scadAvailable with articlescad
1Control softwareOpenCollector.pyAvailable with articlepy
1CAD schematicSketchupCAD.skpAvailable with articleskp

Design files summary

Design Files. Bill of materials

Bill of materials summary

Table 2 Bill of Materials (prices as of 1/1/2022).

Build instructions

Note: If any parts are found to have excessive oils/grease, they should be cleaned with Alconox or appropriate solvents to lessen the chance for sample contamination. Step 1 – Assemble front frame Parts: 2 top corner connectors (3d printed, Top corner connector.scad). 2 bottom corner connectors (3d printed, Bottom corner connector.scad). 24 t-nuts for corner connectors. 24 M5 × 6 low profile screws for corner connectors. 2 t-nuts inserted into top slot of bottom rail to connect temperature controller. 2× 280 mm 20 × 20 aluminum extrusion Y-axis (V-slot). 2× 217 mm 20 × 20 aluminum extrusion Z-axis (V-slot). Assemble front frame as shown (Fig. 3).
Fig. 3

Front frame.

Front frame. Step 2 – Add X-rails 2× 32 mm spacer blocks (32 mm spacer.scad). 4 t-nuts for spacer blocks. 4 M5×8 low profile screws for spacer blocks. 2× 320 mm 20 × 20 aluminum extrusion X-axis (V-slot). Install spacers in center of top slot of bottom X-axis rails (Fig. 4).
Fig. 4

X-rails with 32 mm spacers.

X-rails with 32 mm spacers. Insert bottom X-axis rails with spacers into bottom corner connectors of front frame from step 1 and tighten (Fig. 5).
Fig. 5

X rails coupled to front frame.

X rails coupled to front frame. Step 3 – Assemble rear frame 2× 217 mm 20 × 20 aluminum extrusion Z-axis (V-slot). 1 × 280 mm 20 × 20 aluminum extrusion Y-axis (V-slot). 1 × 32 mm spacer blocks (32 mm spacer.scad). 2 t-nuts for spacer blocks. 2 bottom corner connectors (3d printed, Bottom corner connector.scad). 12 t-nuts for corner connectors. 12 M5 × 6 low profile screws for corner connectors. Install 32 mm spacer block onto center of bottom Y axis rail. Attach Z-axis rail to Y-axis rail using bottom corner connectors (Fig. 6).
Fig. 6

Assembled rear frame.

Assembled rear frame. Attach back frame to x-axis rail (installed in step 2) using corner connectors (Fig. 7).
Fig. 7

Installing rear assembly to front frame and x-rails.

Installing rear assembly to front frame and x-rails. Step 4 – Install upper X-axis rails Parts: 2× 320 mm 20 × 20 aluminum extrusion X-axis (V-slot). 2 belt clamps (belt clamp v2 main.scad and belt clamp lid.scad). 2 t-nuts for belt clamps. 2 M5×6 low profile screws for belt clamps. 4 M3×6 socket head cap screws for belt clamps. 2× 40 cm segments GT2 timing belt. Slide belt clamp ∼24 mm onto X axis rail, and tighten with t-nut/M5×6 screw. (This distance of ∼24 mm gives clearance for corner connector). Slide GT2 timing belt along X-rail with grooved face toward rail thread under belt clamp. Wrap belt back over clamp, place belt clamp lid over belt, and tighten to main clamp with M3×5 socket head cap screws. The clamp is designed such that the screw holes are smaller than the screws and will self-tap when screwed in (Fig. 8).
Fig. 8

Installing timing belts on x-rails.

Installing timing belts on x-rails. Step 5 – Assemble Y motor mount Parts: 1× y motor mount (Y motor mount.scad). 4 Delrin mini V wheel kits (#495). 1 Open Builds Nema 17 stepper motor. 1 GT2 timing pulley, 20 tooth (#210). 4 M3×10 socket head cap screws. 4× 6.3 mm (1/4″) spacers. 4× M5×25 low profile screws. 2× M5 drop in t-nuts. 2× M5×8 low profile screws. Assemble 4 mini V wheels (Take wheel, insert bearing in one side. Turn over, drop in shim, insert second bearing.). Attach 4 mini V wheels to Y-motor mount using M5×25 low profile screw. Screw drops into counter sink on mount. On bottom, add ¼” spacer and leftover shim from kit. Then add wheel and locknut. Tighten. See Fig. 9.
Fig. 9

Y motor mount with mini-V wheels installed.

Y motor mount with mini-V wheels installed. Attach GT2 timing pulley to Nema 17 motor shaft using set screws included with pulley (Fig. 10).
Fig. 10

Timing pulley installed on Nema 17 stepper motor.

Timing pulley installed on Nema 17 stepper motor. Using 4 M3×10 socket head cap screws, attach Nema 17 motor to motor mount. Note position of wire connector. Attach drop in t-nuts with M5×8 low profile screws for attaching z-axis (Fig. 11).
Fig. 11

Installing Y stepper motor and drop-in T-nuts on Y motor mount.

Installing Y stepper motor and drop-in T-nuts on Y motor mount. Step 6 – Assemble X-axis motor mounts Parts: 2× X motor mount (X motor mount.scad). 8 Delrin mini V wheel kits (#495). 2 Open Builds Nema 17 stepper motor. 2 GT2 timing pulley, 20 tooth (#210). 8 M3×10 socket head cap screws. 8× 6.3 mm (1/4″) spacers. 8× M5×25 low profile screws. 4× M5 t-nuts. 4× M5×8 low profile screws. Assemble 8 mini V wheels (Take wheel, insert bearing in one side. Turn over, drop in shim, insert second bearing.) Attach 4 mini V wheels to each X-motor mount using M5×25 low profile screw. Screw drops into counter sink on mount. On bottom, add ¼” spacer and leftover shim from kit. Then add wheel and locknut. Tighten. Attach GT2 timing pulley to Nema 17 motor shaft using set screws included with pulley. Using 4 M3×10 socket head cap screws, attach Nema 17 motor to motor mount. Note position of wire connectors. Attach t-nuts with M5×8 low profile screws for attaching to gantry (Fig. 12).
Fig. 12

Assembly of X-axis stepper motors.

Assembly of X-axis stepper motors. Step 7 – Assemble gantry Parts: 1× 340 mm 20 × 20 aluminum extrusion V-slot (gantry rail). 400 mm GT2 timing belt. 2× belt clamps (belt clamp v1.scad). 2× M5×8 low profile screws for belt clamps. 2× M5 t-nuts for belt clamps. 4× cable guides (cable guide 1.scad). 4× M5×8 low profile screws for cable guides. 4× M5 t-nuts for cable guides. Attach t-nuts to belt clamps with M5×8 screws (Fig. 13).
Fig. 13

Belt clamp with t-nut installed.

Belt clamp with t-nut installed. Thread belt through one of the clamps. Attach the clamp and belt to the gantry rail. Attach cable guides as shown (Fig. 14).
Fig. 14

Installation of cable guides, belt, and belt clamp on gantry.

Installation of cable guides, belt, and belt clamp on gantry. Place y motor mount on gantry and thread belt under first wheel, over pulley, then under second wheel (Fig. 15).
Fig. 15

Installing Y-motor mount on gantry and configuring timing belt.

Installing Y-motor mount on gantry and configuring timing belt. Thread other end of belt through second clamp. Tighten belt and fix clamp (Fig. 16).
Fig. 16

Fixing Y-axis timing belt.

Fixing Y-axis timing belt. Attach X motors to the gantry (Fig. 17).
Fig. 17

Attachment of X-axis motors to gantry.

Attachment of X-axis motors to gantry. Step 8 – Assemble capillary holder 2× 150 mm × 4 mm brass rod. 2× M5×15 low profile screws. 2× M5 nuts. 1× capillary holder plate (Zaxis cap holder piece 1.scad). 1× capillary guide (Zaxis cap holder piece 2 top.scad). 1× Z-block coupler (Z block couple 4.scad). 1× P882 Upchurch 1/16″ to capillary fitting. Insert brass rods into capillary holder plate. Place capillary guide on top of the rods. Insert Upchurch fitting into to capillary holder plate central hole (Fig. 18).
Fig. 18

Assembled capillary holder.

Assembled capillary holder. Attach Z-block coupler using 2× M5×15 low profile screws and 2× M5 nuts (Fig. 19).
Fig. 19

Installing coupler on capillary holder.

Installing coupler on capillary holder. Step 9 – Assemble Z-axis (capillary holder) Parts: 1× Mini V gantry kit. 2× self-tapping M5 screws. 1× 200 mm 20 × 20 aluminum extrusion (z-axis rail). 1× shaft coupler plate (Z axis shaft coupler plate.scad). 1× Ball Bearing 688Z 8 × 16 × 5 (#780). 1× Nut Block for 8 mm Metric Acme Lead Screw (#740). 1× 219 mm 8 mm threaded rod. 1× 8 mm lock collar (#840). 1× Shim − 12 × 8 × 1 mm (#835). 1× Z-axis end plate (z axis end plate.scad). 2× 6 mm spacers. 1× Nema 17 stepper motor. 4× 35 mm spacers. 4× 45 mm M3 socket head cap screws. 1× micro limit switch kit (this is now discontinued, but Xtension Limit Switch Kit should also work). Assemble mini V gantry kit (mini-V wheels as above, fasten to kit plate as above except 2 normal spacers and 2 eccentric spacers). Attach shaft coupler plate to z-axis rail with self tapping screw (Fig. 20).
Fig. 20

Installing z-axis motor mount.

Installing z-axis motor mount. Slide on mini-V gantry plate. Adjust eccentrics until nice and smooth travel (Fig. 21).
Fig. 21

Installation of Z-axis gantry plate.

Installation of Z-axis gantry plate. Attach 6 mm spacers, nut block and capillary holder from step 8 to gantry plate using M5×25 mm low profile screws (Fig. 22).
Fig. 22

Attachment of Capillary Holder to Z-axis gantry.

Attachment of Capillary Holder to Z-axis gantry. Attach locking collar and shim on 8 mm lead screw (Fig. 23).
Fig. 23

Install lock collar and shim onto lead screw.

Install lock collar and shim onto lead screw. Thread lead screw into nut block (Fig. 24).
Fig. 24

Threading lead screw into gantry nut block.

Threading lead screw into gantry nut block. Insert bearing into Z-axis end plate and attach to other end of z-axis rail using self-tapping screw (Fig. 25).
Fig. 25

Assembly and installation of Z-axis end plate.

Assembly and installation of Z-axis end plate. Place shaft coupler onto lead screw but don’t tighten set screws yet (Fig. 26).
Fig. 26

Installation of shaft coupler.

Installation of shaft coupler. Attach Nema 17 stepper motor using 35 mm spacers and 45 mm socket head cap screws – guide shaft into coupler (Fig. 27, Fig. 28).
Fig. 27

Inserting Z-axis stepper motor into shaft coupler.

Fig. 28

Attachment of Z-axis stepper motor to motor mount with 35 mm spacers.

Inserting Z-axis stepper motor into shaft coupler. Attachment of Z-axis stepper motor to motor mount with 35 mm spacers. Assemble limit switch (from kit) onto plate (drop in t-nut, M5×6 screw) and attach to z-axis rail as shown (Fig. 29).
Fig. 29

Attachment of Z-axis stepper motor to motor mount with 35 mm spacers.

Attachment of Z-axis stepper motor to motor mount with 35 mm spacers. Step 10 – Assemble collection plate Parts: 2× M4×30 hex head screws. Peltier Thermo-Electric Cooler Module + Heatsink Assembly − 12 V 5A (Adafruit #1335). Heat Sink Thermal Tape − 3M 8810–80 mm × 80 mm (Adafruit #1468). Touch-Safe Terminal Block, 600 V AC/600 V DC, Two 20A Circuits (McMaster Carr #7618K611). 2× FAN AXIAL 40 × 20 MM 12VDC WIRE KD1204PKS2 H (Digikey 259-1280-ND). Machinable Multipurpose MIC6 Cast Aluminum, Precision-Ground Sheet, 1/4″ Thick, 6″ × 6″ (McMaster Carr #86825K721). 1× plate holder (Plate holder.scad). 1× Hookup wire red. 1× Hookup wire blue. Drill aluminum plate according to drawing (Fig. 30). Holes should be 2.5 mm and then tapped for M3.
Fig. 30

Collection plate schematic.

Collection plate schematic. Affix 2× fans to heat sink using 2× M4×30 hex head screws. Affix double sided thermal tape to Peltier chip, and then fix other side to aluminum block. See photo for orientation. One face of Peltier heat sink is flush with front of aluminum block. The fan is ∼17 mm from the left edge, and the right edge of the Peltier heat sink is ∼26 mm from the right edge of the aluminum block. The red wire from the Peltier chip, and 2 black wires from the 2 fans are inserted into the left side (front) of the 2 circuit terminal block. Opposite this connection (left side, back) insert 48 cm of 22 ga blue hookup wire. The black wire from the Peltier chip, and the 2 red wires from the 2 fans are inserted into the right side (front) of the terminal block. Opposite this connection (right side, back) insert 48 cm of 22 ga red hookup wire. See Fig. 31 for reference.
Fig. 31

Adafruit Peltier cooler with fans installed and attached to aluminum block.

Adafruit Peltier cooler with fans installed and attached to aluminum block. Step 11 – Assemble base Parts: 1× BLACK Cast Acrylic Sheet, 12″ × 24″ × 1/4″ (McMaster Carr #8505K755). 1× Precision Programmable Temperature Controller with Relay Output, Water-Resistant, 1/32 DIN (McMaster Carr # 7981K81). 1× Quick-Connect Thermocouple Probe for Surfaces, Bolt-on, Type J (McMaster Carr #3648K22). 1× Plate holder (Plate holder.scad). 2× M3×20 socket head cap screw. 2× M3 nuts. 3× M3×5 socket head cap screw. 1× temperature controller holder (temp controller holder.scad). 1× corner block (Black Angle Corner Connector, Openbuilds #540). 1× M5 tnut. 1× M5×6 low profile screw. Cut (or laser cut) acrylic sheet according to drawing (Fig. 32, Fig. 33). Drill (or laser cut) holes as indicated (Fig. 30, Fig. 31). The base shown in Fig. 31 was made by cutting to size with a table saw. Other cuts were made with a Black&Decker jig saw. Holes were drilled with a Dewalt power drill.
Fig. 32

Schematic for acrylic base plate.

Fig. 33

Photo of the acrylic base plate.

Schematic for acrylic base plate. Photo of the acrylic base plate. Insert collection plate assembly onto base (Fig. 34). Sides of acrylic base slip under aluminum plate for support. Peltier assembly fits in the cutout.
Fig. 34

Collection plate assembly fixed to acrylic base. Plate holder attached to aluminum block. Thermocouple is bolted onto block and threaded through hole in acrylic base plate.

Collection plate assembly fixed to acrylic base. Plate holder attached to aluminum block. Thermocouple is bolted onto block and threaded through hole in acrylic base plate. Place 96 well plate holder onto aluminum block and tighten in place with 2× M3×5 screws (see photo above). Insert 2× M3×20 screws into the 2 holes of the aluminum plate that align with those on the acrylic base. Tighten collection assembly to base using 2× M3 nuts on the underside. Thread wired end of thermocouple through hold and fasten bolt end of thermocouple to aluminum block with M3×5 screw. On the underside loop the excess thermocouple cable, tie wrap, and flush cut the tie wraps. Place temperature controller in temperature controller holder (Fig. 35). Insert 60 cm 22 ga hookup wires into temperature controller terminals – black into position 9, white into position 8, and green into position 5.
Fig. 35

Temperature controller installed in mount.

Temperature controller installed in mount. Insert thermocouple red wire into temperature controller terminal 2. Insert white thermocouple wire into temperature controller terminal 3. Insert blue wire from 2 circuit terminal block into thermocouple terminal position 4 (Fig. 36).
Fig. 36

Underside of acrylic base plate showing position of Peltier chiller assembly and temperature controller connections.

Underside of acrylic base plate showing position of Peltier chiller assembly and temperature controller connections. Use angle connector/tnut/M5×6 screw to make a tie wrap anchor for the thermocouple loop (Fig. 37).
Fig. 37

Tie wrap holding thermocouple loop.

Tie wrap holding thermocouple loop. Step 12 – Electronics assembly 1× Arduino Uno R3 (Digikey 1050-1024-ND). 1× G Shield (Synthetos gShield (grblShield) V5, Adafruit #1750). 1× small breadboard (Tiny breadboard,Adafruit #65). 1× Raspberry Pi (Raspberry Pi 3 – Model B – ARMv8 with 1G RAM, Adafruit #3055). 1× memory card. 1× USB cable (A to B) (USB Cable – Standard A-B − 3 ft/1m, Adafruit #62). 2× Terminals 110 FASTON IS (Mouser 571–160626-1). 4× M3×12 socket head cap screws. 4× M3 nuts. 2× female crimp pins for 0.1″ housings (Pololu #1930). 2× male crimp pins for 0.1″ housings (Pololu #1931). 4× 0.1″ Crimp connector 1×1 pin (Pololu #1900). 6″ cm jumper wires, male to male (Premium Male/Male Jumper Wires − 40 × 6″ (150 mm), Adafruit #758). 6″ cm jumper wires, male to female.

Circuit terminal block

1× NPN transistor MJE3055TG 60 V 10A TO220AB (Digikey MJE3055TGOS-ND). 1× Touch-Safe Terminal Block, 600 V AC/600 V DC, Four 20A Circuits (McMaster-Carr #7618 K613). 1× Carling Switch Rocker switch (LTIGK51-6S-BL-RC-NBL/250 N). 1× power supply wire (open builds #2560). 1× 220 mm x130 mm × ¼″ acrylic sheet. Cut (saw or laser cut) a ¼″ acrylic sheet and drill (or laser cut) screw holes as indicated in the schematic (Fig. 38).
Fig. 38

Schematic of acrylic support for Arduino/g-shield and Raspberry Pi.

Schematic of acrylic support for Arduino/g-shield and Raspberry Pi. Attach Arduino Uno and Raspberry Pi to ¼″ or 6 mm acrylic electronics base (see schematic) using 2 M3×12 screws and 2M3 nuts for each. Insert tiny breadboard in between, as shown in photo. Insert g shield into Arduino. Insert red, blue, green, yellow male jumpers into G shield x-axis terminal block. Route wires to tiny breadboard (See photo and diagram). Split each of the four signals into 2 of each color to split signals to 2 separate X axis motors, x1 and x2. Label x1 and x2 with label maker. Note: As an alternative to the mini breadboard, wires could be directly soldered to a perfboard to provide permanent connections, especially as the instrument transitions to long-term use in the lab. Insert red, blue, green, yellow male jumpers into G shield y-axis terminal block. Label y with label maker. Next, make the x-axis limit switch connectors. Get 32 cm of red and black wire. On one end of each wire, crimp a 110 FASTON IS terminal. On the other end of the red wire, crimp a female crimp pin (#1930) and insert into a crimp connector housing (#1900). This will connect to the x-axis limit switch pin on the g-shield. On the other end of the black wire, crimp on a male crimp pin (#1931) and insert into (what will be) the tiny breadboard ground bus (see diagram). Next make the ground bus connection to the ground pin on the g-shield. Obtain a 2.5″ segment of 22 ga black hookup wire. To one end, add female 0.1″ crimp connector and housing. To the other end, add male 0.1″ crimp connector and housing. The male end plugs into the “ground bus” while the female end connects to the ground pin on the g-shield. Next, insert the NPN transistor into the breadboard. Use male/female jumper to connect the male end to the emitter, and the female end to the Raspberry Pi pin 39 (GND). Use male/female jumper to connect the male end to the base, and the female end to the Raspberry Pi pin 12 (GPIO 18). Use 8″ black 22 ga hookup wire to connect the collector to the left side of the 4 circuit terminal block (front, “terminal 1” in drawing). Use 8″ blue 22 ga hookup wire to connect the emitter to “terminal 2” in the 4 circuit terminal block. Opposite the black wire in terminal position 5, insert a yellow 6″ male to female jumper. Opposite the blue wire in terminal position 6, insert a green 6″ male to female jumper. These connections will connect to the valve to control its position. Next, we will hook up the switch. Connect a brown male/female jumper from the terminal block position 3 to the Raspberry Pi pin 9 (GND). Connect a black male/female jumper from terminal block position 4 to Raspberry Pi pin 21 (GPIO 9). At opposite positions (7 and 8) insert wires that connect to switch terminals. Cut length of 2 strand power supply wire (28 cm) and insert into G-shield GND and Vmotor terminal positions. See Fig. 39, Fig. 40 for reference.
Fig. 39

Electronics assembly wiring. (A) Terminal block connectors allowing for contact closure (switch or external instrument) or valve toggle, (B) Connections splitting G-shield X-axis to drive 2 motors, (C) Transistor connections for valve control, (D) Small ground bus created on mini breadboard.

Fig. 40

Completed electronics assembly.

Electronics assembly wiring. (A) Terminal block connectors allowing for contact closure (switch or external instrument) or valve toggle, (B) Connections splitting G-shield X-axis to drive 2 motors, (C) Transistor connections for valve control, (D) Small ground bus created on mini breadboard. Completed electronics assembly. Step 13 – Assemble cable bundle Parts: 1× Cable guide (Cable guide.scad). Zip ties. 4× Terminals 110 FASTON IS (Mouser 571-160626-1). 2× female crimp pins for 0.1″ housings (Pololu #1930). 2× male crimp pins for 0.1″ housings (Pololu #1931). 4× 0.1″ Crimp connector 1×1 pin (Pololu #1900). 22 ga hookup wire black. 22 ga hookup wire red. 22 ga hookup wire white. 1 M5 drop in t-nut. 1 M5×6 low profile screw. Prepare y limit switch wires: Obtain 50 cm black 22 ga hookup wire and 50 cm red hookup wire. On one end of each, crimp a 110 FASTON terminal. On the other end of the red wire, crimp on a female crimp pin and place in a housing. On the other end of the black wire, crimp on a male pin and place in a housing. Prepare z limit switch wires: Obtain 115 cm black 22 ga hookup wire and 50 cm white hookup wire. On one end of each, crimp a 110 FASTON terminal. On the other end of the white wire, crimp a female crimp pin and place in a housing. On the other end of the black wire, crimp a male pin and place in a housing. Arrange motor cables (provided with motor, ∼77 cm) and limit switch wires according to Fig. 41. Place tie wraps and cut excess with flush cutter. Place cable guide and add t-nut/screw.
Fig. 41

Schematic of cable bundle.

Schematic of cable bundle. See Fig. 42 for reference.
Fig. 42

Cable bundle.

Cable bundle. Step 14 – Install gantry Parts: 2× M5×6 low profile screws. 2× M5 t-nuts. 2× belt clamps (belt clamp v2 main.scad). 2× clamp lids (belt clamp lid.scad). 2× top corner connectors (Top corner connector.scad). 4× M3×5 socket head cap screws. 6× M5 t-nuts. 6× M5×6 low profile screws. 1× 12 V 30A power supply (X-360-12, Openbuilds). 2× Single L-brackets (#LBracket, Openbuilds). 2× M5×6 low profile screws. 2× M5 t-nuts. 2× M4×6 cap head socket screws. 1× 280 mm 20×20 aluminum extrusion Y-axis (V-slot). Slide gantry onto upper X-rails (Fig. 43).
Fig. 43

Installing gantry on frame.

Installing gantry on frame. Thread belt under first wheel, over pulley, and under second wheel. Repeat for X2 motor (Fig. 44).
Fig. 44

Installing timing belt onto X-axis stepper motor.

Installing timing belt onto X-axis stepper motor. Attach t-nuts to belt clamps with M5×6 screws (Fig. 45). Install belt clamp – start to insert t-nut, wrap belt under clamp, and slide clamp onto rail. Move ∼22 mm past end of rail to leave room for corner connectors. Hold belts tight, and tighten M5 screw (Fig. 46). Attach 6x t-nuts to corner connectors with 6x M5x6 low profile screws (Fig. 47).
Fig. 45

T-nut installed on belt clamp.

Fig. 46

Installing belt clamp on X-rail.

Fig. 47

Top corner connector on X-rail.

T-nut installed on belt clamp. Installing belt clamp on X-rail. Attach corner connectors (Fig. 47). Top corner connector on X-rail. Pull belt over onto baseclamp, cover with lid, and tighten with 2× M3 screws. Attach power supply to top Y-axis rail using 2× single L-brackets, 2× M5 t-nuts, 2× M5×6 low profile screws and 2× M4×6 socket head cap screws as shown in Fig. 48. Remove the unconnected 4 t-nuts and screws from the corner connector. Slide the t-nuts onto the rails. Slide the power supply/rail ASSY into the corner connector from the inside. Use allen key to slide t-nuts under corner connector holes and tighten screws into t-nuts (Fig. 49).
Fig. 48

Power supply coupled to upper Y rail. Note placement of T-nuts for corner connectors.

Fig. 49

Use allen key to place t-nuts under corner connectors to mate screws.

Power supply coupled to upper Y rail. Note placement of T-nuts for corner connectors. Use allen key to place t-nuts under corner connectors to mate screws. Step 15 – Install base plate into frame Parts: Previously assembled acrylic base. Loosen front top corner connector screws. While holding the temperature controller against the base, tilt the unit in from the top. Reconnect and retighten the top corner connectors (Fig. 50). Use allen wrench to push 2-nuts on the bottom front rail (installed earlier in the installation process) – under the holes of the temperature controller holder. Tighten in place with M5×6 screws (Fig. 51).
Fig. 50

Base plate installed into frame.

Fig. 51

Mounting of temperature controller.

Base plate installed into frame. Mounting of temperature controller. Tip unit up and route red, black, green, white wires from temperature controller through the back near the power supply (Fig. 52).
Fig. 52

Routing temperature controller wires from underside for connection to power supply.

Routing temperature controller wires from underside for connection to power supply. Step 16 – Install electronics ASSY Parts: 2× M5×6 low profile screws. 2× M5 drop in t-nuts. Attach t-nuts to acrylic ASSY base plate with M5 screws. Attach to left rear rail near power supply (Fig. 53).
Fig. 53

Electronics ASSY attached to frame.

Electronics ASSY attached to frame. Attach terminal block to bottom left rail (toward front) using the attached drop in t-nut (Fig. 54).
Fig. 54

Terminal block mounting.

Terminal block mounting. Step 17 – Install Z-axis Install Z-axis onto Y-motor mount front plate with attached drop in t-nuts and screws (Fig. 55).
Fig. 55

Installed Z-axis.

Installed Z-axis. Step 18 – Attach X,Y-limit switches Parts: 4× M3×12 screws. 4× M3 washers. 2× limit switch (Open Builds). 2× limit switch holder (LimitSwitchHolder.scad). 2× M5 drop in t-nut. 2× M5×6 low profile screw. Assemble y-limit switch ASSY as shown (blue paint) and install as shown in Fig. 56.
Fig. 56

Y-axis limit switch.

Y-axis limit switch. Assemble x-limit switch ASSY as shown (red paint) and install as shown in Fig. 57.
Fig. 57

X-axis limit switch.

X-axis limit switch. Step 19 – Install cable bundle Starting with the Z-axis motor connector, begin making cable bundle connections and routing the cable bundle (Fig. 58).
Fig. 58

Connecting Z-axis motor cable.

Connecting Z-axis motor cable. Attach Z limit switch Faston connectors to tabs (Fig. 59).
Fig. 59

Z-axis limit switch connections.

Z-axis limit switch connections. Attach Y motor cable (Fig. 60).
Fig. 60

Y-axis motor cable connection.

Y-axis motor cable connection. Attach X2 motor cable (Fig. 61).
Fig. 61

X2 motor cable connection.

X2 motor cable connection. Slide cables into Y-rail cable guides (Fig. 62).
Fig. 62

Gantry cable guides.

Gantry cable guides. Attach cable guide placed earlier on cable bundle to Y-rail as shown (Fig. 63).
Fig. 63

Route cable bundle through guide on top of gantry.

Route cable bundle through guide on top of gantry. Attach Y limit switch FASTON terminal connectors to tabs (Fig. 64).
Fig. 64

Y-axis limit switch connections.

Y-axis limit switch connections. Attach x-limit switch FASTON terminal connectors to limit switch (Fig. 65).
Fig. 65

X-axis limit switch connections.

X-axis limit switch connections. Step 20 – Electrical connections Parts: 4× base clamps (baseclamp.scad). 4× M5 drop in t-nuts. 4× M5×6 low profile screws. 4× M5×10 low profile screws. Finish connections. Attach male end of Z-axis motor jumpers to g-shield terminal block (see Fig. 66).
Fig. 66

Z-axis motor connections to g-shield.

Z-axis motor connections to g-shield. Attach 2 black wires from Z and Y-axis limit switches to ground bus (Fig. 67).
Fig. 67

Ground bus created using mini-breadboard.

Ground bus created using mini-breadboard. Attach X1 and X2 motor wire connections to mates on breadboard. One set of colors should be reversed i.e. red to yellow, blue to green, green to blue, and yellow to red (Fig. 68).
Fig. 68

X1 and X2 motor connections.

X1 and X2 motor connections. Install red and white limit switch connectors from Z, Y axes to g-shield pins (Arduino 10, 11, Fig. 2, Fig. 69).
Fig. 69

G-shield connections to Arduino – ground, and limit switches.

G-shield connections to Arduino – ground, and limit switches. Install power supply connections (Fig. 2) [Line, neutral, ground in from power cord; Line and neutral also connect to temperature controller (white and black wires routed from under the unit). ±12 V then connects to the gshield (Fig. 70) as well as the temperature controller relay (red/green wires routed from under the unit)] (see Fig. 2, Fig. 71).
Fig. 70

+12 V DC and GND connections to g-shield (from power supply).

Fig. 71

Power supply connections. See also Fig. 2.

+12 V DC and GND connections to g-shield (from power supply). Power supply connections. See also Fig. 2. Make sure to set to 110 VAC if appropriate. In addition, it is best when using unit to make sure the wall outlet has a ground fault circuit interrupter. Make sure plastic cover is installed and covers power supply leads (usually snaps on or folds over). In addition, it is a good idea to cover the power supply leads with a silicone sealant. Hook up Y-axis motor jumpers to Y terminal block on g-shield. Hook up X-axis motor jumpers from breadboard to X terminal block on g-shield (Fig. 72).
Fig. 72

X and Y motor connections to terminal blocks on g-shield.

X and Y motor connections to terminal blocks on g-shield. Attach base clamps – one left front, one right front, two in the back. Drop in t-nut on long end with M5×6. Top end goes over acrylic base, drop in M5×10 low profile screw and fasten t-nut on bottom side (see Fig. 73).
Fig. 73

Base clamp installation. One on each side, two in the back.

Base clamp installation. One on each side, two in the back. Step 21 – Instrument setup Set up Raspberry Pi – monitor (HDMI connection for Pi3, microHDMI Pi4), keyboard, mouse. Connect to Arduino with USB-A to B cable. Start up Raspberry Pi – plug in the power supply (micro USB cable). Boot raspian from Noobs disk. Open Arduino IDE. Download GRBL 0.8.3 (https://blog.protoneer.co.nz/grbl-arduino-library/). Load the sketch. Upload to the Arduino. In serial monitor you should see the GRBL prompt. To start, it is best to disconnect the motor cables, and run the homing cycle to avoid collisions in case of missed connection. Type $H in the serial monitor. Z should home first. The Z LED should light on the g-shield. Press the Z-limit switch. Now, X and Y should flash. Press these limit switches. If the switch closures register, hit the yellow reset button on the g-shield, and plug the motor connectors back in. It is also useful to tune the motor current settings on the g-shield. Each axis has a potentiometer for this. If the current is set to low, the stepper motor will not turn. If the current is too high, the motor will suffer vibrations and be noisy (and possibly overheat). Recommended to set potentiometer a small amount (∼1/16 to 1/8 turn) past where the motor just starts to engage (see Fig. 74).
Fig. 74

User interface for controlling the fraction collector. When connected, the yellow ‘disconnected’ icon turns to a green ‘connected’ symbol. When a collection is running, the symbol turns blue. In addition, the x, y, z coordinates of the capillary, and run time, are shown in real time during method execution.

User interface for controlling the fraction collector. When connected, the yellow ‘disconnected’ icon turns to a green ‘connected’ symbol. When a collection is running, the symbol turns blue. In addition, the x, y, z coordinates of the capillary, and run time, are shown in real time during method execution.

Operation instructions

Execute the OpenFrxCollector software on the Raspberry Pi (python OpenCollector.py). For fraction concatenation, the modified version OpenCollector_RoundRobin.py is provided. The first step in operation is to click the ‘Connect’ button to open the serial port to the Arduino/g-shield. Home the instrument by typing ‘$H’ in ‘send’ text box, and then press “Send” button. On first use, the user should calibrate the instrument. This is done by selecting the collection device (384 MALDI/96 well plate/48 vial rack), calibrating the four corner positions, and pressing ‘calibrate’. Calibrations may be saved or loaded with the corresponding buttons. To calibrate, the user can hit the ‘latch’ button such that arrow keys (upper left in GUI) or spin boxes immediately move each indicated axis the indicated step size. When ‘unlatched’, the user can set the position, but must hit ‘Go’ to move to the indicated position. After jogging to an acceptable ‘A1’ position, user would press ‘Set’ to transfer this coordinate to the A1 position box. The user would then repeat this procedure for the 3 remaining device corner positions, and then press ‘Calibrate’. When calibrating, care should be taken not to bottom-out the capillary into the collection vessel or crash the gantry against the rail-stops. If the capillary crashes, its holder may be pushed out of its slot. After resetting the position, it can be pushed back in place by hand. A motor crash against a stop can push limit switches out of place, or loosen belts and their clamps. If this happens, move the actuator away from the stop and reposition any dislocated limit switches. Then check that belts/clamps are tight and in their correct positions. After readjustments, the actuators should be homed, and calibration re-initiated. To start collection, the user would opt whether or not to wait for contact closure, and set the collection parameters: start time, start position, time per fraction, and end time. To touch the droplet off before moving to the next well, the user can specify a ‘z-offset’ – the capillary will move down this distance before moving to the next position. When setting up, it may be helpful to measure the collection capillary flow rate. To do this, the user may toggle the external valve (if connected) with the ‘Valve’ combo box. The controls a Raspberry Pi GPIO pin which drives the base of the NPN transistor on the electronics ASSY beadboard. When the transistor base in driven high, the collector is pulled to ground, actuating the valve (in this case, a Rheodyne valve). Note different valve manufacturers (i.e. Valco) may require different strategies for actuation. For example, valco valves can also be wired in a way where one contact moves the valve to the ‘A’ position, and another to the ‘B’ position. This could be accommodated with another transistor, a terminal block with 2 additional positions, and a small amount of additional coding. Pressing the ‘Run’ button begins the experiment. If the user has opted to not wait for contact closure, the fractionation method will begin immediately. However, it is often more convenient to synchronize the collection with an external instrument. To do this, the user selects ‘Yes’ for the ‘wait for contact closure’ option prior to ‘Run’. In this configuration, the system will poll a GPIO pin on the Raspberry Pi, and wait for a ‘start event’ to bring the pin momentarily to ground. This can be accomplished through contact closures, offered on many commercial HPLC/autosampler instruments, or by closing a switch. When a start event is received, the valve will be set to ‘Collect’ and the capillary will be moved according to the method parameters. For automated fraction concatenation with OpenCollector_RoundRobin.py, the user should set the desired collection scheme in the Python code (line 97), for example for a 12 fraction scheme: self.rrd = {‘A1’:‘A2’, ‘A2’:‘A3’, ‘A3’:‘A4’, ‘A4’:‘A5’, ‘A5’:‘A6’, ‘A6’:‘B6’, 'B1’:‘A1’, ‘B2’:‘B1’, ‘B3’:'B2’, ‘B4’:‘B3’, ‘B5’:‘B4’, ‘B6’:‘B5’}. This is a Python ‘dictionary’ that tells the robot where to move the collection capillary at each step. For example, after collecting into well A1, the robot would move to A2. After collection into A6, the robot would move to B6. This defines a ‘loop’ whereby every fraction n is combined with fraction n + x, where x is the total number of defined locations. When performing experiments, it is advisable to check that solvents and additives are compatible with the tubing and valve surfaces. We have utilized water, acetonitrile, ammonium formate, 0.1% formic acid, cyano-4-hydroxycinnamic acid, and 0.1% trifluoroacetic acid (0.1%). We expect compatibility with other common LC additives and MALDI matrices.

Supplementary methods (Sample preparation/HPLC/MS)

Bovine serum albumin and yeast enolase dissolved in 100 mM ammonium bicarbonate were reduced (DTT, 10 mM final concentration), alkylated (iodoacetamide, 22.5 mM final concentration), and digested with trypsin (1:20 trypsin:protein) overnight at 37 C. Peptides were desalted by C18 and dried by vacuum centrifugation. HeLaS3 cells were cultured in DMEM supplemented with 10% FBS at 37 °C in 5% CO2. Cells were harvested by centrifugation during log phase. After washing twice with phosphate buffered saline, the pellet was lysed with 7.2 M guanidine hydrochloride/100 mM ammonium bicarbonate and protein concentration measured by BCA assay (Thermofisher Scientific). Proteins were reduced with dithiothreitol (10 mM final concentration) for 30 min at 56 °C, alkylated with iodoacetamide (20 mM final concentration) for 30 min at room temperature protected from light, and then digested with trypsin overnight at 37 °C. Peptides were desalted by C18, aliquoted, dried by vacuum centrifugation, and stored at −80 °C. Peptides were fractionated using an Agilent 1100 HPLC. For MALDI spotting experiments, a syringe pump was used to tee in matrix. Overall schemes are shown in Fig. 75. Samples were analyzed by MALDI-MS using a 4800 MALDI-TOF/TOF mass spectrometer (Applied Biosystems, Framingham, MA) in reflectron mode averaging 2000 laser shots in a random, uniform pattern (40 sub-spectra, pass or fail, 50 shots/sub-spectrum) with a laser intensity of ∼3200. TICs and XICs were generated using multiplierz software [27]. For evaluating the reproducibility of MALDI spotting, a solution of 500 fmol/µL glu-fibrinopeptide, peptide sequencing standard, and vasoactive intestinal peptide (all from Sigma-Aldrich) in 20% acetonitrile/0.1% trifloroacetic acid was mixed 1:1 with matrix solution (5 mg/mL α-cyano-4-hydroxycinnamic acid in 70% acetontrile, 0.1% TFA with 120 µg/mL diammonium citrate) and loaded into a 250 µL hamiton gas-tight syringe. A syringe pump was used to dispense the solution into the collector capillary at a flow rate of 5 µL/min. The fraction collector was programmed to spot every 0.33 min, for ∼1.7 µL/spot. For comparison, 1.7 µL aliquots of the same solution were hand pipetted across the next row of the plate. MALDI-MS spectra were acquired in reflectron mode averaging 2500 laser shots in a random, uniform pattern (100 sub-spectra, pass or fail, 25 shots/sub-spectrum, accepting sub-spectra S/N > 1000) with a laser intensity of ∼ 3200.
Fig. 75

HPLC setup for fractionation experiments. Configuration for HPLC fractionation of peptides and (A) collection into well plates or (B) direct spotting to MALDI targets with matrix.

HPLC setup for fractionation experiments. Configuration for HPLC fractionation of peptides and (A) collection into well plates or (B) direct spotting to MALDI targets with matrix.

Validation and characterization

As a proof-of-principle, we loaded 5 µg (∼75 pmol) BSA tryptic digest on a 300 µm × 3 cm C18 reversed-phase LC column and collected 1 min fractions (30 µL/minute) into a 96-well plate eluting with an HPLC gradient (0–35% B in 30 min, A = 0.1% formic acid in water, B = 0.1% formic acid in acetonitrile). Droplets were touched off on the bottom of the well before moving to the next location. After collection, 1 µL of each fraction was analyzed by MALDI-MS. Fig. 76 shows extracted ion chromatograms for three BSA peptides illustrating successful collection of peptides resolved across the LC gradient.
Fig. 76

Microcapillary separation and collection of BSA tryptic peptides. Total ion chromatogram (TIC) and extracted ion chromatograms (XIC) for BSA tryptic peptides. Chromatograms were reconstructed from MALDI-MS spectra of LC separated peptides contained in fractions collected by the instrument.

Microcapillary separation and collection of BSA tryptic peptides. Total ion chromatogram (TIC) and extracted ion chromatograms (XIC) for BSA tryptic peptides. Chromatograms were reconstructed from MALDI-MS spectra of LC separated peptides contained in fractions collected by the instrument. To demonstrate the capability of the system to provide for fully automated MALDI spotting, we performed HPLC separation of 1 pmol enolase digest (0–100% B in 10 min) using a 100 µm × 10 cm C18 column operated at 3 µL/min. Matrix (5 mg/mL α-cyano-4-hydroxycinnamic acid in 70% acetontrile, 0.1% TFA with 120 µg/mL diammonium citrate) was added at a flow rate of 2 µL/min through a micro-Tee. After receiving the contact closure from the Agilent LC, the instrument switched the valve to the collection position and spotted ∼1.7 µL fractions (20 s/spot) directly to a 384-well MALDI plate. The system design provides mechanical stability such that after the initial calibration, LC effluent is consistently deposited at the center of each spot. Fig. 77 shows representative images of dried droplets along with LC chromatograms reconstructed from the MALDI data.
Fig. 77

LC/MALDI analysis of trypsin digested yeast enolase. (A) Total ion chromatogram (TIC) and (B, C) extracted ion chromatograms (XIC) for yeast enolase tryptic peptides. XICs were reconstructed from MALDI-MS spectra of LC separated peptides that were directly spotted to a 384-well MALDI plate (with matrix). (D) Representative images of individual spotted and crystallized fractions.

LC/MALDI analysis of trypsin digested yeast enolase. (A) Total ion chromatogram (TIC) and (B, C) extracted ion chromatograms (XIC) for yeast enolase tryptic peptides. XICs were reconstructed from MALDI-MS spectra of LC separated peptides that were directly spotted to a 384-well MALDI plate (with matrix). (D) Representative images of individual spotted and crystallized fractions. To gauge the reproducibility of MALDI experiments, we spotted a 3 peptide mixture across a complete row of a 384-MALDI target with the robot. We then spotted a second row using the same solution with hand pipetting. The spots were than analyzed by MALDI using the same method. We observed similar average peptide CVs for our platform compared to hand pipetting (∼9.7% by hand, ∼9.4% by collector). Multi-dimension peptide fractionation is often used to provide improved detection and dynamic range in complex proteomes. One common strategy is to chromatographically separate peptides offline, using a retention phase that is physicochemically complementary to the standard low-pH reversed phase C18 stage directly integrated with the mass spectrometer for LC-MS/MS analysis. To balance the overall separation peak capacity and mass spectrometer time required to complete the analysis, peptide fractions are ‘concatenated’, whereby regularly spaced fractions are combined prior to buffer exchange and then final LC-MS/MS analysis. The frequency of concatenation depends on the complexity of the sample as well as the retention mechanism or degree of orthogonality of the offline separation compared to the low-pH reversed phase separation directly integrated with the mass spectrometer. Ideally the offline platform can be readily parameterized to support a wide range of fractionation strategies. To demonstrate the flexibility of our open-source solution, we executed a fully automated concatenation scheme. First, we performed a standard collection of 20 µg HeLa tryptic peptides across a gradient of 5–35% B in 60 min (A = 20 mM ammonium formate in water, pH 10.0, B = acetonitrile). Each fraction was analyzed individually by MALDI to identify abundant peptides as internal references. Next, we analyzed the same mixture under the same gradient conditions but programmed the collector to combine fractions of differing hydrophobicity (Fig. 78A). Each fraction was then analyzed by MALDI. Fig. 78B illustrates that reference peptides detected in discrete fractions were successfully concatenated by the collection robot.
Fig. 78

Simultaneous fractionation and concatenation of HeLa tryptic peptides. HeLa tryptic peptides were fractionated by high pH RP-HPLC without (A, left) or with (A, right) automated concatenation. With the linear fractionation, two distinct peptides (B, top left, marked with red circles and B, bottom left, marked with blue circles) elute nearly 21 min apart (B, left). With the 10 fraction concatenation scheme, these peptides are collected in adjacent fractions as the collection capillary ‘wraps around’ after each cycle (B, right panels; reference peptides marked similarly with red and blue circles).

Simultaneous fractionation and concatenation of HeLa tryptic peptides. HeLa tryptic peptides were fractionated by high pH RP-HPLC without (A, left) or with (A, right) automated concatenation. With the linear fractionation, two distinct peptides (B, top left, marked with red circles and B, bottom left, marked with blue circles) elute nearly 21 min apart (B, left). With the 10 fraction concatenation scheme, these peptides are collected in adjacent fractions as the collection capillary ‘wraps around’ after each cycle (B, right panels; reference peptides marked similarly with red and blue circles).

Concluding remarks

We demonstrate a versatile, open-source solution for micro fraction collection and MALDI spotting. Motion control is accomplished using an inexpensive Arduino microcontroller, g-shield, and open-source GRBL software. The entire system is coordinated with a Raspberry Pi using Python, a freely available software for rapid prototyping already popular throughout the scientific community. To facilitate implementation of our design in other labs, we provide detailed assembly and wiring instructions, as well as Python code and CAD files on the Open Science Framework. Our open-source solution could be further customized at both the hardware and software levels to support additional workflows. For example, an open source syringe pump [15] could be used to deliver chemicals to a MALDI target to perform on plate derivatization [26]. Furthermore, additional code could be added to support execution of multiple fractionation experiments. Our dual-purpose instrument is simple to build and operate, providing a flexible and robust platform for a fraction of the cost of a closed, commercial solution.

Declaration of Competing Interest

The authors declare that they have no known competing financial interests or personal relationships that could have appeared to influence the work reported in this paper.
Hardware nameOpen Source Thermostatted MALDI-Spotter/Fraction Collector
Subject area

Chemistry and biochemistry

Proteomics

Hardware type

Biological sample handling and preparation

Closest commercial analogAgilent Fraction Collector
Open source licenseCC BY 4.0
Cost of hardware∼$1,795 (if optional valve included, otherwise ∼$1,295)
Source file repositoryFicarro, S., Marto, J., Tavares, I., & Alexander, W. (2022, April 7). Open Source MALDI Spotter / Fraction Collector. https://doi.org/10.17605/OSF.IO/VKHRN
  26 in total

1.  Peptide fractionation in proteomics approaches.

Authors:  Bruno Manadas; Vera M Mendes; Jane English; Michael J Dunn
Journal:  Expert Rev Proteomics       Date:  2010-10       Impact factor: 3.940

Review 2.  Recent advances in peptide separation by multidimensional liquid chromatography for proteome analysis.

Authors:  Serena Di Palma; Marco L Hennrich; Albert J R Heck; Shabaz Mohammed
Journal:  J Proteomics       Date:  2012-05-04       Impact factor: 4.044

Review 3.  Lab-on-a-plate: extending the functionality of MALDI-MS and LDI-MS targets.

Authors:  Pawel L Urban; Andrea Amantonico; Renato Zenobi
Journal:  Mass Spectrom Rev       Date:  2011-01-20       Impact factor: 10.946

4.  Fluorescence detector for capillary separations fabricated by 3D printing.

Authors:  Jan Prikryl; Frantisek Foret
Journal:  Anal Chem       Date:  2014-11-26       Impact factor: 6.986

Review 5.  Leveraging 3D printing to enhance mass spectrometry: A review.

Authors:  M Grajewski; M Hermann; R D Oleschuk; E Verpoorte; G Ij Salentijn
Journal:  Anal Chim Acta       Date:  2021-02-23       Impact factor: 6.558

6.  Large-scale analysis of the yeast proteome by multidimensional protein identification technology.

Authors:  M P Washburn; D Wolters; J R Yates
Journal:  Nat Biotechnol       Date:  2001-03       Impact factor: 54.908

7.  MEF2C Phosphorylation Is Required for Chemotherapy Resistance in Acute Myeloid Leukemia.

Authors:  Fiona C Brown; Eric Still; Richard P Koche; Christina Y Yim; Sumiko Takao; Paolo Cifani; Casie Reed; Shehana Gunasekera; Scott B Ficarro; Peter Romanienko; Willie Mark; Craig McCarthy; Elisa de Stanchina; Mithat Gonen; Venkatraman Seshan; Patrick Bhola; Conor O'Donnell; Barbara Spitzer; Crystal Stutzke; Vincent-Philippe Lavallée; Josée Hébert; Andrei V Krivtsov; Ari Melnick; Elisabeth M Paietta; Martin S Tallman; Anthony Letai; Guy Sauvageau; Gayle Pouliot; Ross Levine; Jarrod A Marto; Scott A Armstrong; Alex Kentsis
Journal:  Cancer Discov       Date:  2018-02-05       Impact factor: 39.397

8.  Off-line high-pH reversed-phase fractionation for in-depth phosphoproteomics.

Authors:  Tanveer S Batth; Chiara Francavilla; Jesper V Olsen
Journal:  J Proteome Res       Date:  2014-11-04       Impact factor: 4.466

9.  Low-cost, sub-micron resolution, wide-field computational microscopy using opensource hardware.

Authors:  Tomas Aidukas; Regina Eckert; Andrew R Harvey; Laura Waller; Pavan C Konda
Journal:  Sci Rep       Date:  2019-05-15       Impact factor: 4.379

Review 10.  SciPy 1.0: fundamental algorithms for scientific computing in Python.

Authors:  Pauli Virtanen; Ralf Gommers; Travis E Oliphant; Matt Haberland; Tyler Reddy; David Cournapeau; Evgeni Burovski; Pearu Peterson; Warren Weckesser; Jonathan Bright; Stéfan J van der Walt; Matthew Brett; Joshua Wilson; K Jarrod Millman; Nikolay Mayorov; Andrew R J Nelson; Eric Jones; Robert Kern; Eric Larson; C J Carey; İlhan Polat; Yu Feng; Eric W Moore; Jake VanderPlas; Denis Laxalde; Josef Perktold; Robert Cimrman; Ian Henriksen; E A Quintero; Charles R Harris; Anne M Archibald; Antônio H Ribeiro; Fabian Pedregosa; Paul van Mulbregt
Journal:  Nat Methods       Date:  2020-02-03       Impact factor: 28.547

View more

北京卡尤迪生物科技股份有限公司 © 2022-2023.