under the terms of CERN Open Hardware Licence V. 1.1
(see CERN Open Hardware Licence - Introduction for an explanation)
We use a Lauda RC6 Cooling Bath.
broken link: (manual)
manual, local copy
We use a second cooling bath:
Lauda ECO RE630 G
.
(manual)
local copy
The bath is filled with a mixture of ethylene glycol (1/3) and water (2/3).
The light source is a printed circuit board (PCB) with 56 red LEDs and current limiting resistors for every LED. The PCB is mounted into a case made from polycarbonate sheet and molded into a polyurethane resin. (See below for more information on resin type and handling.)
The electrical circuit is very simple: there are 56 LEDs each with a current limiting resistor.
All of the LED/resistor pairs are connected in parallel.
It possibly would be a good idea to add protective circuitry against reverse polarity and overvoltage.
Keep care not to reverse supply polarity and not to supply more than 5V!
A printed circuit board has been designed using the free (GPL v2)
KiCad EDA Software Suite.
The kicad project file,
the schematic file
and the PCB design file are available for download.
Also available is the collection of Gerber and Excellon production files.
Soldering surface mount devices (SMD) by hand requires good soldering skills and an appropriate soldering tool.
We first glued the components to the PCB with surface mount adhesive SMA10SL from Electrolube.
After positioning the components with the adhesive it needs to be cured for 30 minutes at 90°C.
SMA10SL adhesive may be bought e.g. at Farnell.
Any red LED in P-LCC 2 surface mount case with top emission may be used.
We used the Osram LH T674 which has 645nm and 10mA recommended forward current.
This part may be bought at Pollin
We use 180 Ohm SMD chip resistors with 1206 package to get around 20mA LED forward current at 5V supply for every LED.
To supply power to the LEDs we use a cheap linear regulated power supply: PEAKTECH 6080 0-15 VDC / 0-3 ADC, bought at
Reichelt.
The tray holder consists of a submersible housing for the LED PCB made from polycarbonate sheets of 2, 3 and 5mm thickness, four PCB stand offs made of brass to position the tube tray and a frame to position the whole thing in the cooling bath.
We used extruded transparent polycarbonate sheets made by Bayer (Makrolon GP) and bought it at Röhm. As a glue we used Technicoll 108 also bought at Röhm.
Don't use plexi (polyacryl) as it may loose shape in water (esp. in hot water) and might not perform properly in glycol.
Look the drawings below for the exact dimensions (in mm) of the tray holder.
To mount and mold the LED PCB into the Makrolon housing we implemented the following procedure:
Drill the four holes for mounting the tray holder stands into the polycarbonate top sheet.
Glue together the 3mm top sheet and the three 5mm height edge bars.
Treat the sufaces getting in contact with the polyurethane mold with 3M Scotchcast Electrical Resin Primer 5136 and let dry. The primer improves the adhesion of the polyurethane mold to the polycarbonate sheet.
Put a tiny droplet of transparent silicone to the top of every LED and screw the PCB to the top sheet. The silicone prevents the polyurethane from flowing between the top sheet and the LED when molding.
Additionally seal the screws protruding through the top sheet to hold the stands with a bit of silicone. The resin 226 has very low viscosity and may even flow into the threads.
Glue the back sheet to close the housing except from one side slit.
For the molding we used 3M Scotchcast 226 which has a very low viscosity and easily fills small gaps. In hardened state it has a black color. (see datasheet)
Consider the following instructions when casting with resin 226:
Liquid Resin - Mixing and Handling
Resin Guide Troubleshooting
Resin 226 Safety Data Sheet
Especially keep care to adhere to the prescribed proportion of the two resin components, to thoroughly mix and deaerate the resin after mixing. We used a vacuum desiccator at 1000 Pa to deaerate.
For filling the mold into the housing we used a 60ml syringe with a 3-way tap. This allows to close the tap and remove the syringe when completely filled. For filling we drilled a hole into the side at a corner of the housing oriented it vertically and slowly filled from bottom up to avoid air bubble inclusions.
Cure the mold PCB housing in an oven at 67°C for six hours as it takes more than three days to fully cure at room temperature.
We made tray plates from 5mm polycarbonate sheet.
We made a metal drilling gauge and stacked 5 or more sheets to drill at once.
Cool with water when drilling more than 5 stacked sheets.
We use Eppendorf safe lock tubes (0.5 ml).
USB CMOS Monochrome Camera, 1/2.5" Micron CMOS, progressive scan, up to 2592x1944 pixel
DMK 72BUC02 from ImagingSource.
We use the camera in 4x binning mode at 640x480 pixels. A cheaper camera with less resolution probably would also do but the software needed adaptation when using a resolution different from 640x480.
To connect the USB cable to the camera mounted in the hood an angled USB adapter like the Delock 65097 might be useful (see picture).
It may be bought at microspot.ch.
C1614-M 16mm/f1.4
from PENTAX Precision Co.,Ltd. bought at
ImagingSource
It seems that in the mean time Ricoh has taken over the lenses from Pentax, the lens model number is RICOH FL-CC1614-2M, now
We made a camera hood from polycarbonate sheet painted black to protect from stray light and to position the camera at a distance of 430 mm from the top of the tubes. 430 mm is the optimal distance for a 16mm lens and our 7x8 tube trays.
See below for drawings.
To measure the temperature in sample tubes, a PhidgetBridge (see below) with four Pt1000 chip sensors molded into sample tubes are used.
As temperature sensors we use DIN class A Pt1000 thin film chip sensors 2.3 x 2 mm2 from IST INNOVATIVE SENSOR TECHNOLOGY (P1K0.232.6W.A.010) molded into sample tubes with 3M Scotchcast 226 polyurethane resin. (See above for more information on resin handling.)
Solder the Pt1000 chips to a cable (130cm length), making shure the sensor wires do not short. The cable shield should be cut off at the sensor end to avoid making contact to the sensor leads. We used Alpha Wire 3302 with 3.1mm outer diameter.
Perforate the tube lid by one hole large enough to feed Pt1000 sensor through (3mm dia.) and one smaller hole to fill in the resin with a syringe needle. The sensor cable jacket should fit tightly into the hole.
Fix Eppendorf tubes in vertical position, perforated lid on upper end. Feed the Pt1000 chip on lead into the tube and close the lid. Bring the chip inside the tube into a position where it makes contact with the inside wall of the tube (somewhere near the bottom end of the tube, where the tube will be immersed in the cooling liquid) by carefully moving around the lead extending above the tube and watching the position of the chip. Once it is in the right position, hold it there by fixing the lead outside the tube.
Fill the tube with the resin through the second hole in lid by using a small syringe and a large diameter (1.2mm) needle. The tube should be filled from bottom up to avoid inclusion of air bubbles. To facilitate the flow of the viscous resin through the needle, you may have to shorten the needle (2 cm length is o.k.).
Cure the mold in an oven at 67°C for six hours as it takes more than three days to fully cure at room temperature. Wait for the resin grown hard before removing the finished sensor from the holding devices as otherwise the position of the chip inside the tube may change again.
The PhidgetBridge
is a USB AD converter interface especially for Wheatstone Bridge based sensors.
A local copy of the PhidgetBridge User Manual is available.
The Pt1000 sensors are connected to the PhidgetBridge as described under "Measuring Resistive Thermal Devices (RTD)" at "Using a Voltage Divider" using two 1000 Ohm 0.1% metal film chip resistors from PANASONIC (ERA6ARB102P). We soldered them to the screw terminal pads of the phidget board (marked with red circles on the picture to the right).Eventually you might prefer a leaded instead of an SMD resistor, e.g. this one. You may directly wire them to the phidget's screw terminals.
The software system is completely based on free and open software. We use openSuSE Linux distribution but any decent linux distro like Ubuntu, Fedora or whatever would do.
The data aquisition software is grouped around a modified/extended version of the free software (GPL v2) ucview. The extended ucview (ucview-fna) is only available as source and needs to be built for your system.
UCView is a video capture and display program based on the unicap video imaging library which is supported by the camera manufacturer ImagingSource.
As we want to automatically record a sequence of images together with the temperatures measured at the time of the taken picture we needed to program some extension to ucview. The patched sources are available for download.
The extension to ucview allows for running a script after each taken picture.
The image analysis script is written in perl and uses
ImageMagick perl module.
The script is available for download
(version 2012-07-02).
The image analysis script expects a b/w 640x480 pixels image as input, applies a mask of 8 x 7 circles with a given radius and calculates the sum of the intensities of all the pixels within a circle for each circle.
The center positions of each circle are hardcoded in an array. To compensate for the positioning of the
well plate under the camera, the script may transform the image by shifting, rotating and expanding/shrinking
according to the respective command line options (--offset, --rotate, --expand).
Use option --help for a description.
A small program (Bridge-simple
) written in C allows for reading out the temperatures off the
Phidgets USB AD converter.
The C source is available for download
as well as a Makefile (updated 2014-03-06).
The program queries the Phidgets ADC and calculates the temperature according to the ADC value.
The program has a hardcoded list of linear calibration factors, selected based on the Phidgets serial number.
If you wish to add your own factors, you may extend deviceCalib[]
.
Furthermore there is a sensor wire resistance compensation according to a hardcoded constant
(wire_resistance
).
To build the program, you first need to download, build and install
libphidgets.
To build libphidgets
, the development version of libusb
is required.
To be able to access the phidgets devices as a normal user, the file udev/99-phidgets.rules
from libphidgets may be copied to /etc/udev/rules.d
.
A shell script combining image analysis and temperature registration is available for download (updated 2014-03-14).
This script is meant to be called from ucview and calls the image analysis script and the Phidgets temperature readout program in turn. It combines the time, the result of the image analysis and the temperatures and writes the values to a csv file.
Our extended version of ucview has in the "Preferences" dialog under the tab "Time Lapse" the possibility
to specify a script to be executed with every taken image ("Image Processing Script File Path").
The "Image Processing Script Options" specify the command line arguments for the script.
The script gets called with these options and the path to the image file appended.
An example "Image Processing Script Options" could be:
--show -c darkred -o ~/tmp/ucview_data/test/test.csv
Use option --help for a description.
The paths to the image analysis script and the temperature registration program are hardcoded, so depending on your setup you will need to change these.
to be written
For building ucview, you need to have installed the development versions of the needed libraries as well as of course a working gcc tool chain, autotools, dpkg, gtk-doc tools and intltools.
Needed libraries include gtk+-2.0, gmodule-2.0, gthread-2.0, gconf-2.0, libXv, libglade-2.0, OGG/Theora libraries, OGG/Vorbis libraries, libasound, libraw1394, libudev
Before building ucview, libunicap, libunicapgtk and libucil need to be downloaded, built and installed.
The autogen.sh
-script for all three libs, libunicap, libucil and libunicapgtk creates wrong symlinks to libtool's
config.sub
and config.guess
files.
Correct this before running ./configure
by issueing the following commands:
ln -s -f /usr/share/libtool/config/config.sub config.sub ln -s -f /usr/share/libtool/config/config.guess config.guess
After successful compilation run ldconfig
(as root) to make the dynamic linker aware of the freshly installed libs.
For building ucview-fna
, download and unpack the
source tarball.
Change to the ucview
directory and issue the commands:
./autogen.sh ./configure make sudo make install
The ucview
executable should be installed in /usr/local/bin/
, now.
To be able to access the camera, the user should be member of the video
group
(in openSUSE).
Bridge-simple
Download Bridge-simple.c and the Makefile to a freshly created directory, change to the directory and issue
make
Copy the produced executable Bridge-simple
to /usr/local/bin
.
test_ucview_exec.sh
and vial_extr.pl
Move or copy scripts test_ucview_exec.sh
and vial_extr.pl
to /usr/local/bin
.
ucview
ucview
stores it's settings in several files:
The settings from the Preferences
dialog are stored as xml in the file:
~/.gconf/apps/ucview/%gconf.xml
(The ~/.gconf
directory has moved to ~/.config/gconf
in more recent versions of gtk.)
The settings for the camera mode are stored in the file:
~/.ucview/default.ini
If this file exists, it gets evaluated on start of ucview
and no "Device Selection" dialog is shown but
the camera mode setting is taken from the file.
This file gets created, when the check box "Remember selection and use as default in the future" in the "Device Selection" dialog
is active, but once the file exists, it doesn't get updated, even with the checkbox checked.
Therefore it is recommended to manually adjust the settings in the file ~/.ucview/default.ini
using a text editor.
Relevant settings are [VideoFormat]
, [Prop-Shutter]
and [Prop-Gain]
.
The relevant settings look like the following:
[Device] Identifier=The Imaging Source Europe GmbH DMK 72BUC02 14410275 [VideoFormat] Identifier=Y800 4x Binning FourCC=808466521 Width=640 Height=480 [Prop-Shutter] Value=0.012699999999999999 FlagsLo=1 FlagsHi=0 [Prop-Gain] Value=4 FlagsLo=1 FlagsHi=0
There are Device specific configuration files stored under ~/.unicap/*.ini
where * stands for a camera dependent name,
e.g. The%20Imaging%20Source%20Europe%20GmbH%20DMK%2072BUC02%2014410275
This file contains the same settings as the ~/.ucview/default.ini
file, with the exception
of the camera mode settings (binning, resolution).
The settings from the camera device specific file don't seem to override the settings
from ~/.ucview/default.ini
.
There are some tools for firmware update and mode selection of the ImagingSource camera
on github: https://github.com/TheImagingSource/tiscamera.
Also see TheImagingSource/tiscamera Wiki.
The firmware update tool is in the folder tiscamera/tools/euvccam-fw
and may be built
by running make
.
For building euvccam-fw
libusb-compat-devel
needs to be installed.
euvccam-fw -m proprietary
euvccam-fw -m uvcswitches between the proprietary mode used for ucview and the uvc mode used for uvc.
ucview
with 4x Binning and 640x480 resolution, the camera should be set to
proprietary
mode (factory default).
./euvccam-fw -v
shows the currently loaded firmware version, We have installed firmware version 158.
Firmware version: 158 Capability: d59f6
Firmware may be found under the tiscamera/data/firmware/usb2/
.
dmk72uc02_158.euvc
./euvccam-fw -u ../../data/firmware/usb2/dmk72uc02_158.euvc
loads the firmware version 158.
Also available as dxf file (drawn with QCad)
Also available as dxf file (drawn with QCad)
Also available as dxf file (drawn with QCad)
Pos | Amount | Description | Type | Manufacturer | Vendor | Price/pce |
---|---|---|---|---|---|---|
1 | 1 | Camera | DMK 72BUC02 | The Imaging Source | The Imaging Source | 319 EUR |
2 | 1 | Mini USB Adapter | mini Usb-B 5 pin male/female 90° angled adapter | Delock | microspot.ch | 6.85 CHF |
3 | 1 | Lens | C1614-M 16mm/f1.4 | PENTAX Precision Co.,Ltd | The Imaging Source | 152 EUR |
4 | Polycarbonate Sheet 2mm | Makralon Platten GP farblos 099 2050 x 1250 x 2mm3 | Bayer | Röhm | 98.90 CHF | |
5 | Polycarbonate Sheet 3mm | Makralon Platten GP farblos 099 2050 x 1250 x 3mm3 | Bayer | Röhm | 148.35 CHF | |
6 | Polycarbonate Sheet 5mm | Makralon Platten GP farblos 099 2050 x 1250 x 5mm3 | Bayer | Röhm | 247.30 CHF | |
7 | 1.2 kg | Polycarbonate Glue | Technicoll 108 | Ruderer Klebetechnik GmbH | Röhm | 45.70 CHF |
8 | 1 | USB AD Converter | 1046_0 - PhidgetBridge 4-Input | Phidgets | Phidgets | $90.00 |
9 | 1 | AD Converter Enclosure | 3808_1 - Acrylic Enclosure for the 1046 | Phidgets | Phidgets | $7.25 |
10 | 4 | Pt1000 Sensor | P1K0.232.6W.A.010 | IST INNOVATIVE SENSOR TECHNOLOGY | Farnell | 11.70 CHF |
11 | 8 | Voltage Divider Resistor 1000 Ohm 0.1% | ERA6ARB102P | PANASONIC | Farnell | 1.35 CHF |
12 | 2 m | Pt1000 Sensor Cable | 2 x 28AWG, shielded | ALPHA WIRE 3302 | Farnell | 12.20 CHF/m |
13 | 1 | LED Power Supply | ||||
14 | 2.5 m | Illumination Plate Power Cable | ÖLFLEX® HEAT 180 SiZ Silicone isolated twin conductor 2 x 0.5mm2 | LappKabel | Conrad | 1.08 EUR/m |
15 | 4 | Pt1000 Sensor Housing | Eppendorf safe lock tubes 0.5 ml | Eppendorf | ||
16 | 1 | Cooling Bath | Lauda RC6 | Lauda | ? | ? |
17 | 0.453 kg | Polyurethane Resin | 3M Scotchcast 226 | 3M | Rotima AG | 41 CHF |
18 | 0.454 kg | Primer | 3M Scotchcast Electrical Resin Primer 5136 | 3M | Rotima AG | 65.00 CHF |
19 | 50ml | Clear Silicone Rubber Sealant | Clear Silicone Rubber Sealant 6011048 | Dow Corning | RS Components | 3.938 CHF/50ml |
20 | 4 | M3 Brass Hex Standoff | M3 5mm x 25mm female, female thread | ETTINGER | Farnell | 0.555 CHF/pce |
21 | 4 | M3 Pan Head Screw | M3 x 16 | TR FASTENINGS | Farnell | 5.90 CHF/100 pcs |
22 | 4 | Brass Spacer | 2.0 (1.9)mm high, innner dia 3.2mm, outer dia 6mm | ETTINGER | Farnell | 0.205 CHF/pce |
23 | 50 cm | M4 Threaded Rod | M4 Threaded Rod A4 stainless steel | TR FASTENINGS | Farnell | 7.25 CHF/pce |
24 | 32 | M4 Nut | M4 Nut A2 stainless steel | DURATOOL | Farnell | 9.60 CHF/100 |
25 | Mattlack, schwarz | KH-Mattemail schwarz 125ml | Rupf & Co AG, Glattbrugg | Lachenmeier Farben | 11.40 CHF | |
26 | Lack Grundierung | All Primer, white, 0.375l | Delta Professional | Lachenmeier Farben | 11.90 CHF | |
27 | USB Cable for Camera | USB A to USB mini B cable, 3m | any | e.g. Brack.ch | 11.90 CHF |
last modified: 2014-10-03 | Copyright 2012 by Franz Conen and Lukas Zimmermann | W3C Validator |