Leaf Thickness Gauge Calibration

Description

The MultispeQ measures leaf thickness by using a Hall Effect sensor located on the main body of the MultispeQ and a magnet located on the clamp body. The Hall Effect sensor measures the density of magnetic field lines, and as the clamp opens and the magnet moves farther away, the field lines go farther apart. This extremely precise sensor is able to detect differences of 10s of microns given a consistent setup. Precision in the field is not that good, as dirt, bumps and veins in the leaf, and other noise can interfere.

Calibration of the Hall Effect sensor requires the measurement of objects of a few known thicknesses, and a calibration curve (2nd order polynomial fit) of the resulting Hall Effect detector response to the actual values.

In addition, the Hall Effect sensor is also used to identify fully closed and fully open positions, which is used to automatically start a measurement on clamp (the “open_close_start” command). This is used in the “Leaf Photosynthesis” protocol, for example. If you want to only recalibrate the fully open and fully closed positions, then run the “v1.0 CALIBRATION: Leaf Thickness Quick” calibration instead.

Directions

Run this protocol using the Desktop App (it is the only app which can currently display messages) Make sure you have 6 plastic strips of known thickness (from .05 to 3mm). Run the protocol, following the directions provided by the messages. Once complete, press the “save to device” button to save the outputs to the MultispeQ device. If it is running as part of a Calibration Project (as during factory calibration), then press “keep” to save the values to the photosynq.org 1website. As with any values saved to the MultispeQ, you can see the saved calibration values by opening the Desktop App, going to “Settings” –> “console”, and entering print_memory+ . The leaf thickness values are saved as “thickness_a”,”thickness_b”,”thickness_c”,”thickness_min”,”thickness_max”.

2232

Basic Usage

Example: Import statement for the leaf_thickness_gauge_calibration protocol
## Import leaf_thickness_gauge_calibration
from jii_multispeq_protocols.protocols.calibrations import leaf_thickness_gauge_calibration as _leaf_thickness_gauge_calibration

Sequence

        %%{
init: {
  "theme": "base",
  "themeVariables": {"primaryColor": "#49e06d", "primaryTextColor": "#005e5e", "primaryBorderColor": "#005e5e", "lineColor": "#fff381", "secondaryColor": "#afd7f4", "tertiaryColor": "#D7EBF9"}
}
}%%
flowchart TD
     START((Start))
     A0["`**thick**
*Sensor:* Hall Effect Sensor`"]:::protocol
     START ==> A0
     A1["`**thick**
*Sensor:* Hall Effect Sensor`"]:::protocol
     A0 ==> A1
     A2["`**thick**
*Sensor:* Hall Effect Sensor`"]:::protocol
     A1 ==> A2
     A3["`**thick**
*Sensor:* Hall Effect Sensor`"]:::protocol
     A2 ==> A3
     A4["`**thick**
*Sensor:* Hall Effect Sensor`"]:::protocol
     A3 ==> A4
     A5["`**thick**
*Sensor:* Hall Effect Sensor`"]:::protocol
     A4 ==> A5
     A6["`**thick**
*Sensor:* Hall Effect Sensor`"]:::protocol
     A5 ==> A6
     A7["`**thick**
*Sensor:* Hall Effect Sensor`"]:::protocol
     A6 ==> A7
     A7 ==> END
     END(( End ))
     classDef protocol text-align:left,white-space:pre;
    

Details

Code

Protocol Code
[  {  '_protocol_set_': [  {  'alert': 'Leave the Leaf Clamp fully closed',
                              'environmental': [['thickness_raw']],
                              'label': 'thick'},
                           {  'environmental': [['thickness_raw']],
                              'label': 'thick',
                              'prompt': 'Clamp the ***Red*** Thickness '
                                        'Calibration Card or enter alternate '
                                        'value'},
                           {  'environmental': [['thickness_raw']],
                              'label': 'thick',
                              'prompt': 'Clamp the ***Blue*** Thickness '
                                        'Calibration Card or enter alternate '
                                        'value'},
                           {  'environmental': [['thickness_raw']],
                              'label': 'thick',
                              'prompt': 'Clamp the ***Translucent*** Thickness '
                                        'Calibration Card or enter alternate '
                                        'value'},
                           {  'environmental': [['thickness_raw']],
                              'label': 'thick',
                              'prompt': 'Clamp the ***White*** Thickness '
                                        'Calibration Card or enter alternate '
                                        'value'},
                           {  'environmental': [['thickness_raw']],
                              'label': 'thick',
                              'prompt': 'Clamp the ***Clear*** Thickness '
                                        'Calibration Card or enter alternate '
                                        'value'},
                           {  'environmental': [['thickness_raw']],
                              'label': 'thick',
                              'prompt': 'Clamp the ***Black*** Thickness '
                                        'Calibration Card or enter alternate '
                                        'value'},
                           {  'alert': 'Leaf Clamp fully open',
                              'environmental': [['thickness_raw']],
                              'label': 'thick'}]}]

Analysis

Usage

Analysis Example (requires JII-MultispeQ package)
from jii_multispeq import measurement as _measurement
from jii_multispeq_protocols.protocols.calibrations import leaf_thickness_gauge_calibration as _leaf_thickness_gauge_calibration

## Take a measurement using the MultispeQ
data, crc32 = _measurement.measure(port="<Selected Port>", protocol=_leaf_thickness_gauge_calibration, filename=None, notes="")

## The analyze function of JII-MultispeQ helps to provide the correct format
output = _measurement.analyze( data, _leaf_thickness_gauge_calibration._analyze )

## View Analysis output (as table)
_measurement.view( output )

Function Details

_analyze(_data)[source]

Macro for calibrating leaf thickness in the MultispeQ v1.0 created: 7/1/2018

Example Data

Parameter

Value

device_battery

106

device_firmware

2.191

device_id

32:21:3c:e5

device_name

MultispeQ

device_version

2

fitArray

[[53199, 0], [52839, 80], [52376, 170], [51730, 220], [48480, 650], [47055, 930], [42525, 2400]]

r2

0.934

slope

-20469996692.079

toDevice

set_thickness+47219090569802.88+-1.7229384+0.0+53199+38517+

y_intercept

130481962790.194 mm

(png, hires.png, pdf)

../../_images/leaf_thickness_gauge_calibration-1.png

Figure: Recorded or calculated trace for calibrationStandards.

(png, hires.png, pdf)

../../_images/leaf_thickness_gauge_calibration-2.png

Figure: Recorded or calculated trace for measuredHallVals.

(png, hires.png, pdf)

../../_images/leaf_thickness_gauge_calibration-3.png

Figure: Recorded or calculated trace for predictedThicknessVals.

(png, hires.png, pdf)

../../_images/leaf_thickness_gauge_calibration-4.png

Figure: Recorded or calculated trace for residuals.