top bar

Difference between revisions of "PgFocus"

m (Thanks)
m (= Linux udev Rule)
 
(68 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Description ==
 
  
pgFocus is an open source and open hardware focus stabilization device developed by Karl Bellvé at the [http://big.umassmed.edu Biomedical Imaging Group] (PMM, University of Massachusetts Medical School).
+
= Complete description can be found at [http://big.umassmed.edu/wiki/index.php/PgFocus BIG] =
  
The pg in pgFocus is short for "Pretty Good". pgFocus isn't "Perfect", or "Definite" but it is pretty good!
+
== Discussion ==
  
== Hardware ==
+
All discussions and questions should be sent to the pgFocus mailing list  [mailto:pgfocus@googlegroups.com here].
  
pgFocus uses the same [http://www.atmel.com/devices/ATMEGA32U4.aspx Atmel ATMEGA 32U4] as seen in the [http://arduino.cc/en/Main/arduinoBoardLeonardo Arduino Leonardo].  
+
You can also visit the web [http://groups.google.com/d/forum/pgfocus?hl=en pgFocus Google Group] interface.
 +
 
 +
== Purchasing ==
 +
 
 +
If you are unable to build pgFocus yourself, you are welcome to contact Karl Bellve for a pgFocus. He will build it, test it, and ship it to you. Currently, he is asking for a donation to offset the cost of the electronics and a loss of a vacation day that he uses to build it. The donation also supports advancing pgFocus.
 +
 
 +
== Description ==
  
pgFocus is connected to a computer via a USB port. USB is used to power and to communicate with pgFocus.
+
pgFocus is an open source and open hardware, for noncommercial use, focus stabilization device developed by Karl Bellvé at the [http://big.umassmed.edu Biomedical Imaging Group] ([http://www.umassmed.edu/pmm/index.aspx Progam in Molecular Medicine], [http://www.umassmed.edu/ University of Massachusetts Medical School]).
  
Eagle files are located at [https://github.com/kbellve/pgFocus Github].
+
The pg in pgFocus is short for "Pretty Good". pgFocus isn't "Perfect", or "Definite" but it is pretty good!
  
'''Warning:''' PCB design has not been verified yet.
+
pgFocus monitors focus changes through the positional changes of a reflected laser beam. A significant feature of pgFocus is it acts as a "man-in-the-middle." It is designed to pass through faster high fidelity signals meant for a piezo Z controller while adding a slower focus control signal. This happens in the analog realm, which avoids sampling artifacts introduced by digitizing the original signal. This design also reduces the cost of pgFocus.
  
=== Optics ===
+
=== Installation ===
  
pgFocus uses a laser beam that is reflected off the cover glass/water interface to monitor the microscope focus. Hence, an objective with an NA of at least 1.45 is required.
+
pgFocus supports automatic device detection with firmware 0.8
The laser beam wavelength should be different from that being used for science (808nm is a good choice) and must be coaligned with the TIRF beam. This can be done using a mirror, beam splitter and a short pass filter. Care must be taken to ensure that the fluorescence filter cube and other microscope optics will allow the return of the pgFocus beam back along its input path and back to the pgFocus detector and that the microscope optics will NOT allow the laser light to pass into the user's eyes or to reach the camera. Once the position and angle of the pgFocus beam is coincident with that of the TIRF beam a strong return pgFocus beam will be seen that moves with changes in microscope focus. The pgFocus detector array can now be aligned and centered on the beam.
+
  
== Software ==
+
Serial Settings
 +
* 57600 BAUD
 +
* Handshaking off
 +
* Parity None
 +
* Stop Bits 1
  
After the Arduino Leonardo was released, pgFocus was redesigned to take advantage of the bootloader designed for the Arduino Leonardo. If you can write an Arduino sketch, you can modify the source code to pgFocus!
+
=== Linux udev Rule ===
 +
As root, create a file named /etc/udev/rules.d/99-pgFocus.rules with the following content:
 +
<blockquote># pgFocus by the Biomedical Imaging Group
 +
SUBSYSTEMS=="usb", ATTRS{product}=="Arduino Leonardo", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="8036", MODE="0660",GROUP="users",SYMLINK+="ttyACM%n"</blockquote>
  
pgFocus software reports the following:
+
== pgFocus Plugin ==
* Light profile as seen by the Linear Light Array.
+
** Use this to align the physical position of pgFocus with respect to the return laser beam.
+
* Current centroid location of the light profile as seen by the Linear Light Array.
+
* Microscope stability based on the running Standard Deviation(converted to nM movement at the objective).
+
* Digital to Analog converter voltage output need to maintain current focus position.
+
* Calibration mode result.
+
  
pgFocus software can do the following:
+
=== Real Time Panel ===
* Lock focus at the current position.
+
* Move focus up by a specified amount (currently set to +50nM).
+
* Move focus down by a specified amount (currently set to -50nM).
+
  
pgFocus software has not be released yet since it was designed for the prototype version of pgFocus rather than this version. It will be released as soon as possible.
+
The pgFocus plugin graphs incoming data from the pgFocus hardware.
  
=== Calibration Mode ===
+
[[Image:pgFocus_Realtime.png|center|500px]]
  
pgFocus needs to understand the relationship between the movement of the laser beam return signal seen on the Linear Light Array and the movement of the objective. This depends upon the location of pgFocus in relation to the objective. To determine this relationship, pgFocus has a calibration mode that moves the objective up and then down, while reading the position of the return laser beam. This information is plotted and a linear regression analysis is performed to determine the slope. The slope is the scale factor that pgFocus uses for calculations and for focus adjustments.
+
Top graph shows the current focus offset.
  
== Performance ==
+
Second from top graph is the Standard Deviation of the offset over time, in nM.
  
pgFocus is designed to track and control focus within ±3nM at 30Hz under optimal conditions (tested with a high NA 60X Objective plus 1.6X optivar).
+
The second from the bottom graph shows the voltage output, in nM, of the on-board Digital to Analog Converter.  
  
Movie, [[Media:pgFocus.mov]], of pgFocus in action. 200nM beads were TIRF imaged with uManager's burst mode with a 60X objective with a 1.6X optivar.  
+
The bottom graph shows the voltage input, in nM, as measured by the on board Analog to Digital Converter.
  
The microscope is enclosed in an environmental chamber. The doors to the chamber were opened at image 300 and closed at image 600. You will see a disturbance to the focus at both times, but focus is soon corrected within moments. The focus is disturbed due to the change in the temperature gradient across the microscope.
+
The update frequency can be changed in the settings panel.
  
[[Media:pgFocus_graph.png]]
+
=== Light Profile Panel ===
  
 +
The light profile graph can be used to center the reflected laser beam onto pgFocus' sensor.
  
== Parts ==
+
[[Image:pgFovus_Lightprofile.png|center|500px]]
  
Preliminary parts list. Parts may change at any time.
+
The refresh rate can be adjusted in the settings panel.
  
{|border="1"  style="text-align:center;"
+
=== Calibration Panel ===
|-
+
!Name
+
!Current
+
!Voltage
+
!Reference
+
!Notes
+
|-
+
|TSL1401CL
+
|5mA
+
|5V
+
|[http://www.mouser.com/ProductDetail/ams/TSL1401CL/?qs=%2fha2pyFadui9qowM2EAvhG%2fJktwzmI3oPG4s%2fwQmRk8%3d Mouser] [http://octopart.com/tsl1401cl-taos-22060121 Octopart]
+
|0.018 to 100ms Exposure Time
+
|-
+
|ATMEGA32U4
+
|7mA
+
|5V
+
|[http://www.atmel.com/devices/atmega32u4.aspx ATMEL] [http://www.newark.com/jsp/search/productdetail.jsp?sku=26R5633 Newark]
+
|
+
|-
+
|AD8221ARZ
+
|1mA
+
| -12V to 12V
+
|[http://www.analog.com/en/specialty-amplifiers/instrumentation-amplifiers/ad8221/products/product.html Analog Devices] [http://www.analog.com/static/imported-files/data_sheets/AD8221.pdf PDF]
+
|
+
|-
+
|AD5531BRUZ
+
|2mA
+
| -12V to 12V
+
|[http://www.analog.com/en/digital-to-analog-converters/da-converters/ad5531/products/product.html Analog Devices]  [http://www.analog.com/static/imported-files/data_sheets/AD5530_5531.pdf PDF]
+
|
+
|-
+
|TC7660
+
|20mA
+
|5V to 10V, -5V
+
|[http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en010576 Microchip] [http://ww1.microchip.com/downloads/en/DeviceDoc/21465b.pdf PDF]  [http://www.newark.com/microchip/tc7660coa/ic-charge-pump-dc-dc-converter/dp/61K3539 Newark]
+
|10kHz. Use 10uF caps
+
|-
+
|TC7660H
+
|
+
|5V to 10V, -5V
+
|[http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en010577 Microchip]  [http://ww1.microchip.com/downloads/en/DeviceDoc/21466a.pdf PDF] [http://www.newark.com/microchip/tc7660coa/ic-charge-pump-dc-dc-converter/dp/61K3539 Newark] 
+
|120kHz. Use 1uF caps
+
|-
+
|AD7894-10
+
|4mA
+
| -10V to 10V
+
|[http://www.analog.com/en/analog-to-digital-converters/ad-converters/ad7894/products/product.html Analog Devices]  [http://www.analog.com/static/imported-files/data_sheets/AD7894.pdf PDF]  [http://www.newark.com/analog-devices/ad7894arz-3/serial-14-bit-adc-i-c/dp/59K5904?in_merch=Popular%20Products Newark]
+
|Serial (not SPI or I2C), Using GAIN on 2 with op amp for -5 to +5V range
+
|-
+
|ADR03BRZ
+
|1mA
+
|2.5V reference
+
|[http://www.analog.com/en/special-linear-functions/voltage-references/adr03/products/product.html Analog Devices] [http://www.analog.com/static/imported-files/data_sheets/ADR01_02_03_06.pdf PDF][http://www.newark.com/analog-devices/adr03brz/ic-series-v-ref-2-5v-2-5mv-8-soic/dp/59K2682?in_merch=Popular%20Products Newark]
+
|2.5V Reference
+
|-
+
|ADTL082
+
|1.2mA
+
|
+
|[http://www.analog.com/en/all-operational-amplifiers-op-amps/operational-amplifiers-op-amps/adtl082/products/product.html Analog Devices] [http://www.analog.com/static/imported-files/data_sheets/ADTL082_084.pdf PDF]
+
|Unity Gain Stable
+
|-
+
|RJ45-8PTH
+
|NA
+
|NA
+
|
+
|
+
|-
+
|USB Type B
+
|NA
+
|NA
+
|[http://www.newark.com/jsp/search/productdetail.jsp?sku=14N8154 Newark]
+
|
+
|-
+
| PTC Resettable Fuse
+
|500mA
+
|15V
+
|[http://www.newark.com/jsp/search/productdetail.jsp?sku=02J2730 Newark]
+
|
+
|-
+
|Schottky Diode
+
|30mA
+
|30V
+
|[http://search.digikey.com/us/en/products/RB751G-40T2R/RB751G-40T2RDKR-ND/1801055 Digi-key]
+
|2-SMD, Flat Lead
+
|-
+
|Schottky Diode
+
|200mA
+
|40V
+
|[http://www.newark.com/jsp/search/productdetail.jsp?sku=75R5257 Newark]
+
|SOD-323
+
|-
+
|18pF Capacitor
+
|
+
|50V
+
|[http://www.newark.com/jsp/search/productdetail.jsp?sku=06R5140 Newark]
+
|0603
+
|-
+
|100pF Capacitor
+
|
+
|50V
+
|[http://www.newark.com/jsp/search/productdetail.jsp?sku=06R5119 Newark]
+
|0603
+
|-
+
|1000pF Capacitor
+
|
+
|50V
+
|[http://www.newark.com/jsp/search/productdetail.jsp?sku=06R4910 Newark]
+
|0603
+
|-
+
|0.01uF Capacitor
+
|
+
|50V
+
|[http://www.newark.com/jsp/search/productdetail.jsp?sku=06R4918 Newark]
+
|0603
+
|-
+
|0.1uF Capacitor
+
|
+
|50V
+
|[http://www.newark.com/jsp/search/productdetail.jsp?sku=06R4927 Newark]
+
|0603
+
|-
+
|10uF Capacitor
+
|
+
|16V
+
|[http://www.newark.com/jsp/search/productdetail.jsp?sku=59M9559 Newark]
+
|1206, ESR: 0.2ohm
+
|-
+
|10uF Capacitor
+
|
+
|16V
+
|[http://www.newark.com/jsp/search/productdetail.jsp?sku=09K5840 Newark] [http://www.avx.com/docs/Catalogs/tcj.pdf PDF]
+
|1206, ESR: 3ohm
+
|-
+
|Enclosure
+
|
+
|
+
|[http://www.hammondmfg.com/1455NC.htm Hammond] [http://www.hammondmfg.com/pdf/1455NC1201.pdf PDF]
+
|Part Number: 1455NC1201
+
|}
+
  
 +
[[Image:pgFocus_Calibration.png|center|500px]]
  
== Thanks ==
+
Calibration should be performed after setting up pgFocus, and after any changes. It lets pgFocus know how far to move the objective to maintain focus.
  
pgFocus couldn't have been designed without the support of fellow members of Program in Molecular Medicine, Open Software and Open Hardware community:
+
=== Settings Panel ===
  
*[http://valelab.ucsf.edu/~MM/MMwiki/index.php/Micro-Manager_Open_Source_Microscopy_Software uManager]
+
[[Image:pgFocus_Settings.png|center|500px]]
  
*[http://www.adafruit.com/ Adafruit industries]
+
Most of the important parameters can be changed on this panel. Additional parameters can be modified or viewed in the Device/Property Browser window for pgFocus.
  
*[http://www.sparkfun.com/ Sparkfun Electronics]
+
=== Device/Property Browser ===
  
*[http://www.arduino.cc/ Arduino]
+
[[Image:pgFocus_DeviceAdapter.png|center|500px]]

Latest revision as of 13:43, 23 June 2015

Complete description can be found at BIG

Discussion

All discussions and questions should be sent to the pgFocus mailing list here.

You can also visit the web pgFocus Google Group interface.

Purchasing

If you are unable to build pgFocus yourself, you are welcome to contact Karl Bellve for a pgFocus. He will build it, test it, and ship it to you. Currently, he is asking for a donation to offset the cost of the electronics and a loss of a vacation day that he uses to build it. The donation also supports advancing pgFocus.

Description

pgFocus is an open source and open hardware, for noncommercial use, focus stabilization device developed by Karl Bellvé at the Biomedical Imaging Group (Progam in Molecular Medicine, University of Massachusetts Medical School).

The pg in pgFocus is short for "Pretty Good". pgFocus isn't "Perfect", or "Definite" but it is pretty good!

pgFocus monitors focus changes through the positional changes of a reflected laser beam. A significant feature of pgFocus is it acts as a "man-in-the-middle." It is designed to pass through faster high fidelity signals meant for a piezo Z controller while adding a slower focus control signal. This happens in the analog realm, which avoids sampling artifacts introduced by digitizing the original signal. This design also reduces the cost of pgFocus.

Installation

pgFocus supports automatic device detection with firmware 0.8

Serial Settings

  • 57600 BAUD
  • Handshaking off
  • Parity None
  • Stop Bits 1

Linux udev Rule

As root, create a file named /etc/udev/rules.d/99-pgFocus.rules with the following content:

# pgFocus by the Biomedical Imaging Group SUBSYSTEMS=="usb", ATTRS{product}=="Arduino Leonardo", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="8036", MODE="0660",GROUP="users",SYMLINK+="ttyACM%n"

pgFocus Plugin

Real Time Panel

The pgFocus plugin graphs incoming data from the pgFocus hardware.

PgFocus Realtime.png

Top graph shows the current focus offset.

Second from top graph is the Standard Deviation of the offset over time, in nM.

The second from the bottom graph shows the voltage output, in nM, of the on-board Digital to Analog Converter.

The bottom graph shows the voltage input, in nM, as measured by the on board Analog to Digital Converter.

The update frequency can be changed in the settings panel.

Light Profile Panel

The light profile graph can be used to center the reflected laser beam onto pgFocus' sensor.

PgFovus Lightprofile.png

The refresh rate can be adjusted in the settings panel.

Calibration Panel

PgFocus Calibration.png

Calibration should be performed after setting up pgFocus, and after any changes. It lets pgFocus know how far to move the objective to maintain focus.

Settings Panel

PgFocus Settings.png

Most of the important parameters can be changed on this panel. Additional parameters can be modified or viewed in the Device/Property Browser window for pgFocus.

Device/Property Browser

PgFocus DeviceAdapter.png
© Micro-Manager : Vale Lab, UCSF 2006-2011 | All Rights Reserved | Contact