Electronics
CO2 laser XY Stage Control
To move the sample port on the FISH (see below, under Lasers), we use an upside-down Marzhauser microscope stage, controlled by an Arduino Uno. The Arduino drives four SN754410 quadruple half h drivers (connected in parallel). The Phytron ZSS33 stepper motors draw 1.2 A per phase (i.e 2.4 A) but the SN754410 is limited to 1A, hence four in parallel). The schematic below shows the final circuit, which controls one of the axes. The schematic shows only one SN754410 IC ... otherwise it looks messy. I think all the part numbers and connections are correct - check before building!

Each axis is controlled by an arduino, and each arduino has the following code:
/*
* COD (CO2Driver)
*/
#include <Stepper.h>
// create an instance of the stepper class, specifying
// the number of steps of the motor and the pins it's
// attached to, for each of the motors
Stepper stepper1(200, 6, 7, 8, 9);
int sensor1=A0;
int sensorVal1;
int sensorVal2;
int defaultval1;
int defaultval2;
void setup()
{
stepper1.setSpeed(5);
Serial.begin(9600);
pinMode(2, INPUT); // set pin 2 to input
digitalWrite(2, HIGH); // turn on pullup resistors
pinMode(3, INPUT); // set pin 3 to input
digitalWrite(3, HIGH); // turn on pullup resistors
pinMode(A5, INPUT); // Set A5 to input
digitalWrite(A5, HIGH); // Turn on pull up resistors
defaultval1=analogRead(sensor1); //Get the centre voltage of the joystick
}
void loop()
{
if (analogRead(5) < 100) {
Xmove();
}
}
void Xmove(){
//Define the centre position for joystick
// defaultval1=503;
// get the current joystick position
sensorVal1=analogRead(sensor1);
//Speed of the motor is proportional to offset of the joystick
int offset1=defaultval1-sensorVal1;
int spd1=1+abs(offset1)/4;
//Axis 1 -ve direction - stop moving if limits exceeded
int LIM3 = digitalRead(3); // read the input pin
if (LIM3 != 0){
if (sensorVal1 <=(defaultval1-20))
{
stepper1.step(1);
sensorVal1=analogRead(sensor1);
stepper1.setSpeed(spd1);
}
}
//Axis 1 +ve direction - stop moving if limits exceeded
int LIM4 = digitalRead(2); // read the input pin
if (LIM4 != 0){
if (sensorVal1 >= (defaultval1+20))
{
stepper1.step(-1);
sensorVal1=analogRead(sensor1);
stepper1.setSpeed(spd1);
}
}
//When the joystick is at 0, don't draw current.
//This allows motors to be turned manually.
if ((sensorVal1 < (defaultval1+20)) && (sensorVal1 >(defaultval1-20))) {
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
}
}
Microscope stepper controller
Built for Birkbeck, the microscope controller is a open source stepper motor driver. It uses an Arduino Uno, and arduino stepper motor shield to drive a Phytron ZSS32.200 1.2A 3V stepper motor.

The control is very basic - two buttons (up & down) and a switch (very slow or slow) to enable very fine control (in single steps) of the microcope stage.
Lasers
Flump
Built at the Open University, FLUMP (Fibre Laser Unit on a Mobile Platform) is a SPI 25 W 1090 nm infrared laser mounted in a 19" mobile rack (enabling it to be used on any mass spectrometer).The 1090nm infrared beam is delivered via a fibre optic cable into a Leitz microscope, where it is directed to the objective, and focussed onto the sample chamber. I wrote the software to control the laser, which can operate in CW mode or a psuedo-pulse mode, with a power range of 5 mW to 24.7 W, depending on which beam splitter is in place. Individual pulses of >50 ms are possible, which allow infrared spot dating. I also built the dimmable LED ringlight, powered through the USB port of the PC, orders of magnitude cheaper than the commercial versions!
Colin

I designed and constructed most aspects of this laser, including the electronic control for the stepper motors on the XYZ stage, the enclosed beam delivery system, laser shielding, and Zinc Selenide windowed laser port.
The Zinc Selenide port is capable of producing blanks on the MAP mass spec comparable with those which are commercially available, but does not need to be double pumped.
Dilbert
Also built at the OU, DiLBeRT (DIode Laser BEnch on a Rolling Trolley) is a SPI G3 series 20W 1062 nm laser which fires through a modified defunct New Wave 213 nm laser.As with the other lasers, this is also mobile. Unlike Flump, this laser is hardware controlled; I put together the electronic control boards which communicate with the SPI hardware, modified the New Wave laser (removing the 213nm optics and installing 1062nm optics), and put together all the safety interlocks. Although this laser operates in CW mode, it is possible to do spot dating with short laser pulses.

FISH
The Far Infrared Sample Heater is a CO2 laser system at the London Geochronology Centre. The system comprises a Synrad 10.6 um CO2 laser (found unused in a corner of the lab), an XY stage and control (described above), and acrylic laser shield (described here, funded through an Institute of Making bursary. The laser fires through a Zinc Selenide window (made by Torr Scientific Ltd - the port I made for Colin, above, couldn't quite achieve the blanks needed on the Noblesse mass spectrometer) onto grains mounted in a sample holder. I've mounted the laser, and air cooled shroud, to the underside of the extraction line, making the most of the limited space around the mass spectromter; I've also machined the aluminium sample holders for inside the laser port.
Vacuum
Cold Traps

The outside of the trap is has a winding of nichrome wire (running through fishspline beads), which allow the cold traps to be outgassed by passing 2 to 3 Amps through. This will heat the traps to around 150 to 200 degrees C. The cold traps have been very effective at removing the water (and other nasties) from the sample gas, and minimise the clean up time by the getters.
Noblesse Dry & Silent Pumping System

The replacement system comprises a Pfeiffer MVP015-2 diaphragm pump (backing pressure ca. 5 mbar) backing a Pfeiffer HiPace 10 turbo pump, which pumps a buffer chamber (built by CVT) to a pressure of ca. 10^-4 mbar). The HiPace 10 is running at 75 % speed, and the diaphragm pump runs intermittently (when the power required by the HiPace 10 reaches a certain limit). The diaphram pump switches on for 90 seconds every 30 minutes -- as a result, the lab is now virtually silent, and a large heat source has been removed taking some strain off the air con. The buffer tank is easily large enough to cope with any extra load put onto the HiPace10 during sample changes, allowing the pumping system to remain permanently on. The system takes slightly longer to pump down after vacuum has been broken (the MVP 015-2 pumps at 15 l/min compared to 80 l/min for the XDS5).