-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathOperation.html
More file actions
181 lines (141 loc) · 7.93 KB
/
Operation.html
File metadata and controls
181 lines (141 loc) · 7.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
<!DOCTYPE html>
<html>
<head>
<title>LifeHack Microscope Operation</title>
<meta name="description" content="Comprehensive documentation of hardware and software required to operate the LifeHack microscope.">
<meta name="author" content="Josh Edwards">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="main.css">
<link rel="stylesheet" type="text/css" href="menu.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-B9XZF5GEV3"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-B9XZF5GEV3');
</script>
</head>
<body>
<div id="myNav" class="overlay">
<a href="javascript:void(0)" class="closebtn" onclick="closeNav()">×</a>
<div class="grid-container">
<a href="home.html"><div class="hero-image-home">
<div class="menu-text"><h1>Home</h1></div>
</div></a>
<a href="MainBody.html"><div class="hero-image-MainBody">
<div class="menu-text"><h1>Main Body</h1></div>
</div></a>
<a href="BeamExpansion.html"><div class="hero-image-BeamExpansion">
<div class="menu-text"><h1>Beam Expansion Module</h1></div>
</div></a>
<a href="Excitation.html"><div class="hero-image-Excitation">
<div class="menu-text"><h1>Excitation Module</h1></div>
</div></a>
<a href="FocusShifter.html"><div class="hero-image-FocusShifter">
<div class="menu-text"><h1>Focus Shifter</h1></div>
</div></a>
<a href="IncubationBox.html"><div class="hero-image-IncubationBox">
<div class="menu-text"><h1>Incubation Box</h1></div>
</div></a>
<a href="https://github.com/HoldenLab/LifeHack"><div class="hero-image-github">
<div class="menu-text"><h1>Git Hub</h1></div>
</div></a>
<a href="ImageAutofocus.html"><div class="hero-image-ImageAutofocus">
<div class="menu-text"><h1>ImLock</h1></div>
</div></a>
<a href="Operation.html"><div class="hero-image-Operation">
<div class="menu-text"><h1>Operation</h1></div>
</div></a>
</div>
</div>
<script>
function openNav() {
document.getElementById("myNav").style.height = "100%";
}
function closeNav() {
document.getElementById("myNav").style.height = "0px";
}
</script>
<div class="hero-image">
<div class="hero-text">
<h1>Operation</h1>
<p>Harware and Software to Control the System</p>
</div>
</div>
<div class="nav-wrapper" style="height:80px;">
<div id="navbar">
<a href="javascript:void(0)" onclick="openNav()">☰ Menu</a>
</div>
</div>
<div class="sidenav">
<a href="#Hardware">Hardware</a>
<a href="#Software">Software</a>
<a href="#RegularAlignment">Regular Alignment</a>
<a href="https://github.com/HoldenLab/LifeHack/tree/master/Operation">Go to GitHub</a>
<a href="https://github.com/HoldenLab/LifeHack/issues">Report Bug/Feedback</a>
<hr>
<p>Project Contributors: Josh Edwards, Kevin Whitley, Sudeer Peneti, Yann Cesbron, Seamus Holden</p>
<p>Website by Josh Edwards</p>
<p>Updated: May 2021</p>
</div>
<div class="page">
<h1 id="Hardware">Hardware</h1><hr>
<h2>Parts</h2>
<iframe src="Parts-List/Operation-Parts.htm" width="100%" height="500px" title="Parts"></iframe>
<a class="button-design" href="Parts-List/Operation-Parts.xlsx">⇩ Download ⇩</a>
<h2>Connections</h2>
<p>A circuit diagram style drawing of control connections as laid out on our iteration of LifeHack.</p>
<iframe src="Images/Circuit-Diagram.pdf" width="100%" height="500px" title="Connections Diagram"></iframe>
<h2>TriggerScope</h2>
<p>The Triggerscope uses Micromanager specific firmware available <a href="https://github.com/micro-manager/TriggerScopeMM/">here</a> installed through the Arduino IDE.</p>
<img src="Images/TriggerScope.jpg" width="60%">
<img src="Images/TriggerScope-diagram.jpg" width="60%">
<ul>
<li><b>DAC1:</b> 405nm laser power control</li>
<li><b>DAC2:</b> 488nm laser power control</li>
<li><b>DAC3:</b> AOTF (560nm channel)</li>
<li><b>DAC4:</b> AOTF (642nm channel)</li>
<li><b>TTL-Out1:</b> 405nm laser triggering</li>
<li><b>TTL-Out2:</b> 488nm laser triggering</li>
<li><b>TTL-Out9:</b> Shutter triggering</li>
<li><b>TTL-Out10:</b> Camera triggering</li>
<li><b>TTL-In1:</b> Camera triggering</li>
</ul>
<p>The AOTF signal generator takes input from the TriggerScope via a 25 pin connector. Therefore a custom connector is required to convert from SMA. This just requires a blank 25 pin connector and 2 SMA-Blank wires to solder into the required pins. Care must be taken to reinforce the finished assembly as otherwise it is extremely fragile.</p>
<img src="Images/25PinConnector.jpg" width="60%">
<h1 id="Software">Software</h1><hr>
<h2>Micromanager</h2>
<p>We use <a href="https://micro-manager.org/wiki/Download_Micro-Manager_Latest_Release">Micromanager gamma 2.0.0-gamma1_20210124</a> as our microscope control software. The config file to work with LifeHack is available <a href="https://github.com/HoldenLab/LifeHack/blob/master/Operation/LifeHack_MMconfig.cfg">here</a>. To be able to record data at the high speeds required for STORM imaging the default ImageJ JAVA garbage collector must be changed to the CMS garbage collector. Replace the ImageJ.cfg file in the micro-manager directory with <a href=https://github.com/HoldenLab/LifeHack/blob/master/Operation/ImageJ.cfg>ours</a>.</p>
<img src="Images/MMconfig.png" width="60%">
<h2>Vortran Stradus Lasers</h2>
<p>The 405nm and 488nm lasers are controlled through the "Vortran Stradus Software" and need to be set up as below to respond correctly to MicroManager's commands.</p>
<img src="Images/Diode-Software.jpg" width="40%">
<h2>MPB VFL Lasers</h2>
<p>The 560nm and 642nm lasers are controlled by the "Fiber Laser" software. This is used to set the power output from the laser. This should be set so that the power delivered to the sample can be adjusted using only the AOTF through Micromanager during imaging.</p>
<img src="Images/Fiber-Software.jpg" width="30%">
<h1 id="RegularAlignment">Regular Alignment</h1><hr>
<p>Regular alignment of the system is conducted using the mirror pair at the back port of the microscope. A live image of a fluorescent alignment slide and a spot on the ceiling above serve as reference points.</p>
<p>Please observe all appropriate laser safety precautionswhen performing alignment with an open, vertical laser beam, and operate lasers at minimum power required for alignement.</p>
<img src="Images/AlignmentMirrors.jpg" width="40%">
<p>We have experienced that the Galvos exhibit a small degree of drift over time and will need to be periodically adjusted using the "X-shift" and "Y-shift" settings. This acts as fine alignment following the coarse alignment of the mirror pair. This can be done in place by viewing the live image of a fluorescence test slide and checking for uniform transition from epi to TIRF illumination across the frame.</p>
<p>It is recomended that a rolling record of these settings is kept so that a significant drift from the origional zero point will be noticed. In this instance the <a href="MainBody.html#RingTIRF">full zeroing procedure</a> can be conducted.</p>
</div>
<div class="bottomnav">
<a href="http://creativecommons.org/licenses/by-nc-sa/4.0/">License: Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License</a>.
<a href="https://blogs.ncl.ac.uk/holdenlab/">Holden Lab Website</a>
</div>
<script>
window.onscroll = function() {myFunction()};
var navbar = document.getElementById("navbar");
var sticky = navbar.offsetTop;
function myFunction() {
if (window.pageYOffset >= sticky) {
navbar.classList.add("sticky")
} else {
navbar.classList.remove("sticky");
}
}
</script>
</body>
</html>