Skip to content

Commit 8acd17f

Browse files
authored
Merge branch 'main' into Alpaqua-Engineering-now-supporting-PLR
2 parents c7b5b36 + 1ccc877 commit 8acd17f

File tree

3 files changed

+32
-120
lines changed

3 files changed

+32
-120
lines changed
77.6 KB
Loading

docs/index.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,12 @@ PyHamilton is a Windows only interface to Hamilton's VENUS.
125125
:target: https://www.sanofi.com
126126
```
127127

128+
```{image} /img/used_by/logo_bio_techne.jpg
129+
:alt: Bio-Techne
130+
:class: company
131+
:target: https://www.bio-techne.com/
132+
```
133+
128134
```{raw} html
129135
<style>
130136
.company {

docs/user_guide/01_material-handling/storage/inheco/incubator_shaker.ipynb

Lines changed: 26 additions & 120 deletions
Original file line numberDiff line numberDiff line change
@@ -7,34 +7,9 @@
77
"source": [
88
"# Inheco Incubator (Shaker)\n",
99
"\n",
10-
"<table style=\"width:100%; border-collapse:collapse;\">\n",
11-
"<tr>\n",
12-
"<td style=\"width:60%; font-size:15px; line-height:1.7; vertical-align:top; padding-right:15px;\">\n",
13-
"\n",
14-
"<ul style=\"margin-top:0;\">\n",
15-
" <li><a href=\"https://www.inheco.com/incubator-shaker.html\" target=\"_blank\"><b>OEM Link</b></a></li>\n",
16-
" <li><b>Communication Protocol / Hardware:</b> Serial (FTDI) / USB-A</li>\n",
17-
" <li><b>Communication Level:</b> Firmware (documentation shared by OEM)</li>\n",
18-
" <li>Same command set for:\n",
19-
" <ul>\n",
20-
" <li>Incubator “MP”</li>\n",
21-
" <li>Incubator “DWP”</li>\n",
22-
" <li>Incubator Shaker “MP”</li>\n",
23-
" <li>Incubator Shaker “DWP”</li>\n",
24-
" </ul>\n",
25-
" </li>\n",
26-
" <li><b>Incubator Shaker “MP”</b> VID:PID <code>0403:6001</code></li>\n",
27-
" <li>Takes in a single plate via a loading tray, heats it to the set temperature, and shakes it to the set RPM.</li>\n",
28-
"</ul>\n",
29-
"\n",
30-
"</td>\n",
31-
"\n",
32-
"<td style=\"width:40%; text-align:center; vertical-align:middle;\">\n",
33-
" <img src=\"img/inheco_incubator_shaker_mp_dwp.png\" width=\"500\"/><br>\n",
34-
" <i>Figure: Inheco Incubator Shaker MP & DWP models</i>\n",
35-
"</td>\n",
36-
"</tr>\n",
37-
"</table>"
10+
"| Summary | Image |\n",
11+
"|------------|--------|\n",
12+
"| <ul style=\"font-size:15px; line-height:1.6; margin-top:0;\"> <li><a href=\"https://www.inheco.com/incubator-shaker.html\" target=\"_blank\"><b>OEM Link</b></a></li> <li><b>Communication Protocol / Hardware:</b> Serial / USB-A/B</li> <li><b>Communication Level:</b> Firmware (documentation shared by OEM)</li> <li>Same command set for: <ul> <li>Incubator “MP”</li> <li>Incubator “DWP”</li> <li>Incubator Shaker “MP”</li> <li>Incubator Shaker “DWP”</li> </ul></li> <li>VID:PID <code>0403:6001</code></li> <li>Takes in a single plate via a loading tray, heats it to the set temperature, and shakes it to the set RPM.</li> </ul> | <div style=\"width:320px; text-align:center;\"> ![shaker](img/inheco_incubator_shaker_mp_dwp.png) <br><i>Figure: Inheco Incubator Shaker MP & DWP models</i> </div> |\n"
3813
]
3914
},
4015
{
@@ -76,19 +51,10 @@
7651
},
7752
{
7853
"cell_type": "markdown",
79-
"id": "95e39b36-c441-499d-bfaa-327d49d5cc04",
54+
"id": "38dcc34a",
8055
"metadata": {},
8156
"source": [
82-
"<!-- ![quadrants](img/inheco_incubator_shaker_physical_setup_overview.png) -->\n",
83-
"<table style=\"width:100%; border-collapse:collapse; margin-top:10px;\">\n",
84-
"<tr>\n",
85-
"<td style=\"text-align:center; vertical-align:middle;\">\n",
86-
" <img src=\"img/inheco_incubator_shaker_physical_setup_overview.png\" width=\"950\" style=\"border-radius:8px;\"/>\n",
87-
" <br>\n",
88-
" <i>Figure: Physical setup overview of the Inheco Incubator Shaker system</i>\n",
89-
"</td>\n",
90-
"</tr>\n",
91-
"</table>\n"
57+
"![copy-me](img/inheco_incubator_shaker_physical_setup_overview.png)"
9258
]
9359
},
9460
{
@@ -123,43 +89,12 @@
12389
},
12490
{
12591
"cell_type": "markdown",
126-
"id": "40f8dcb4-7779-4c51-9bdf-bf8d05f46c46",
92+
"id": "69f8951f",
12793
"metadata": {},
12894
"source": [
129-
"<table>\n",
130-
"<tr>\n",
131-
"<td style=\"font-size:15px; line-height:1.6; width:60%; vertical-align:top; padding-right:10px;\">\n",
132-
"\n",
133-
"To connect an <code>InhecoIncubatorShakerStackBackend</code> you have to specify the <b>DIP switch identifier</b>:\n",
134-
"<ul style=\"margin-left: 20px;\">\n",
135-
"<li>located on the back of the bottom machine,<br>\n",
136-
"<li>it defines the DIP switch configuration for the entire stack above it.</li>\n",
137-
"\n",
138-
"</ul>\n",
139-
"\n",
140-
"<h3>Setting the DIP switch to generate a machine address</h3>\n",
141-
"\n",
142-
"The DIP switch at the back of each machine has to be set manually and consists of 4 pins that can be set into an <code>UP</code> / <code>0</code> or a <code>DOWN</code> / <code>1</code> position.\n",
143-
"\n",
144-
"(<i>Note:</b> There are two more pins to the left of the DIP switch pins. They are not involved in setting the DIP switch address, and should be left in their <code>DOWN</code> position.</i>)</li>\n",
145-
"\n",
146-
"This represents <i>binary encoding</i>:\n",
147-
"<ul>\n",
148-
"<li>All pins at <code>0</code> → DIP switch is set to address binary <code>0 0 0 0</code> -> decimal <code>0</code></li>\n",
149-
"<li>All pins at <code>1</code> → DIP switch is set to address binary <code>1 1 1 1</code> -> decimal <code>15</code> (2<sup>4</sup>-1)</li>\n",
150-
"</ul>\n",
151-
"\n",
152-
"This information is crucial for creating the correct commands to communicate with the machine stack.\n",
153-
"\n",
154-
"</td>\n",
155-
"\n",
156-
"<td style=\"width:40%; text-align:center; vertical-align:middle;\">\n",
157-
"<img src=\"img/inheco_incubator_shaker_dip_switch_addressing.png\" width=\"500\"/><br>\n",
158-
"<i>Figure: DIP switch layout to generate different identifiers/addresses</i>\n",
159-
"</td>\n",
160-
"</tr>\n",
161-
"\n",
162-
"</table>"
95+
"| Explanation | Image |\n",
96+
"|------------|--------|\n",
97+
"| <div style=\"font-size:15px; line-height:1.6; margin-top:0;\"> To connect an <code>InhecoIncubatorShakerStackBackend</code> you must set the <b>DIP switch identifier</b> on the back of the bottom machine: <ul style=\"margin-left:20px;\"> <li>located on the back of the bottom machine,</li> <li>defines the DIP switch configuration for the entire stack.</li> </ul> <h3>Setting the DIP switch to generate a machine address</h3> Each machine has a 4-pin DIP switch. Each pin can be <code>UP</code> (<code>0</code>) or <code>DOWN</code> (<code>1</code>). <br><br> <i>Note:</i> the two pins to the left of the DIP switch are not part of the addressing and should remain in the <code>DOWN</code> position. <br><br> This forms a <i>4-bit binary address</i>: <ul> <li>All pins at <code>0</code> → binary <code>0 0 0 0</code> → decimal <code>0</code></li> <li>All pins at <code>1</code> → binary <code>1 1 1 1</code> → decimal <code>15</code> (<code>2<sup>4</sup>-1</code>)</li> </ul> This address is crucial for generating valid communication commands for your Inheco stack. </div> | <div style=\"width:320px; text-align:center;\"> ![dip switches](img/inheco_incubator_shaker_dip_switch_addressing.png) <br><i>Figure: DIP switch layout to generate different identifiers/addresses</i> </div> |\n"
16398
]
16499
},
165100
{
@@ -501,38 +436,9 @@
501436
"id": "438e19d7-714d-46f3-8a9e-f00798ca9893",
502437
"metadata": {},
503438
"source": [
504-
"<table style=\"width:100%; border-collapse:collapse;\">\n",
505-
" <tr>\n",
506-
" <td style=\"width:60%; font-size:15px; line-height:1.7; vertical-align:top; padding-right:20px;\">\n",
507-
" <p style=\"margin-top:0;\">The Inheco Incubator (Shaker) contains three independent temperature sensors:</p>\n",
508-
" <ol style=\"margin-top:0; margin-bottom:10px; padding-left:20px;\">\n",
509-
" <li>main sensor — close to the door/front, inside the machine</li>\n",
510-
" <li>validation sensor — back, inside the machine</li>\n",
511-
" <li>boost sensor — on heating foil, inside the machine</li>\n",
512-
" </ol>\n",
513-
" <p>\n",
514-
" By default, <code>iis_stack[0].get_temperature()</code>’s argument is set to\n",
515-
" <code>sensor=\"main\"</code>. \n",
516-
" This can be changed to any of the following:\n",
517-
" </p>\n",
518-
" <ul style=\"margin-top:0; padding-left:20px;\">\n",
519-
" <li><code>\"main\"</code></li>\n",
520-
" <li><code>\"dif\"</code></li>\n",
521-
" <li><code>\"boost\"</code></li>\n",
522-
" <li><code>\"mean\"</code> - takes all three sensors’ measurements and returns their geometric mean</li>\n",
523-
" </ul>\n",
524-
" </td>\n",
525-
" <td style=\"width:40%; text-align:center; vertical-align:middle;\">\n",
526-
" <img src=\"img/inheco_incubator_shaker_t_sensor_positioning.png\"\n",
527-
" alt=\"Inheco Incubator Shaker sensor positions\"\n",
528-
" style=\"width:300px; border-radius:6px; margin-bottom:8px;\"/>\n",
529-
" <br>\n",
530-
" <i style=\"font-size:13px; color:#6c757d;\">\n",
531-
" Figure: Inheco Incubator Shaker Temperature Sensor Positioning\n",
532-
" </i>\n",
533-
" </td>\n",
534-
" </tr>\n",
535-
"</table>\n"
439+
"| Explanation | Image |\n",
440+
"|------------|--------|\n",
441+
"| <div style=\"font-size:15px; line-height:1.7; margin-top:0; padding-right:20px;\"> <p>The Inheco Incubator (Shaker) contains three independent temperature sensors:</p> <ol style=\"margin-top:0; margin-bottom:10px; padding-left:20px;\"> <li>main sensor — close to the door/front, inside the machine</li> <li>validation sensor — back, inside the machine</li> <li>boost sensor — on heating foil, inside the machine</li> </ol> <p>By default, <code>iis_stack[0].get_temperature()</code>’s argument is set to <code>sensor=\"main\"</code>.<br> This can be changed to any of the following:</p> <ul style=\"margin-top:0; padding-left:20px;\"> <li><code>\"main\"</code></li> <li><code>\"dif\"</code></li> <li><code>\"boost\"</code></li> <li><code>\"mean\"</code> — takes all three sensors’ measurements and returns their geometric mean</li> </ul> </div> | <div style=\"width:280px; text-align:center;\"> ![sensor positions](img/inheco_incubator_shaker_t_sensor_positioning.png) <br><i style=\"font-size:13px; color:#6c757d;\">Figure: Inheco Incubator Shaker Temperature Sensor Positioning</i> </div> |\n"
536442
]
537443
},
538444
{
@@ -951,19 +857,19 @@
951857
{
952858
"data": {
953859
"text/plain": [
954-
"{\n",
955-
" \"drawer_error\": False,\n",
956-
" \"homogeneity_sensor_3_vs_1_error\": False,\n",
957-
" \"homogeneity_sensor_2_vs_1_error\": False,\n",
958-
" \"sensor_1_target_temp_error\": False,\n",
959-
" \"y_amplitude_shaker_error\": False,\n",
960-
" \"x_amplitude_shaker_error\": False,\n",
961-
" \"phase_shift_shaker_error\": False,\n",
962-
" \"y_frequency_shaker_error\": False,\n",
963-
" \"x_frequency_shaker_error\": False,\n",
964-
" \"line_boost_heater_broken\": False,\n",
965-
" \"line_main_heater_broken\": False,\n",
966-
"}\n"
860+
"{\n",
861+
" \"drawer_error\": False,\n",
862+
" \"homogeneity_sensor_3_vs_1_error\": False,\n",
863+
" \"homogeneity_sensor_2_vs_1_error\": False,\n",
864+
" \"sensor_1_target_temp_error\": False,\n",
865+
" \"y_amplitude_shaker_error\": False,\n",
866+
" \"x_amplitude_shaker_error\": False,\n",
867+
" \"phase_shift_shaker_error\": False,\n",
868+
" \"y_frequency_shaker_error\": False,\n",
869+
" \"x_frequency_shaker_error\": False,\n",
870+
" \"line_boost_heater_broken\": False,\n",
871+
" \"line_main_heater_broken\": False,\n",
872+
"}\n"
967873
]
968874
},
969875
"execution_count": 19,
@@ -1276,7 +1182,7 @@
12761182
],
12771183
"metadata": {
12781184
"kernelspec": {
1279-
"display_name": "Python 3 (ipykernel)",
1185+
"display_name": "plr",
12801186
"language": "python",
12811187
"name": "python3"
12821188
},

0 commit comments

Comments
 (0)