What's new in version 2.1

This document summarizes changes in the latest version of Bluestem OS for the LI-6800 Portable Photosynthesis System. Review this if you are familiar with older versions of the software and you want to learn what is new.

Stevens HydraProbe options

This update supports the newer versions of the Stevens HydraProbe used with the Soil Respiration chamber. HydraProbes with firmware version 4.0 and above have different options for soil type / calibration media. The minor interface changes to the LI-6800 are described in Figure 1.

The following summarizes expected behavior:

  1. If a HydraProbe probe is attached when the soil chamber configuration is enabled:
    1. Tsoil will automatically be set to Stevens, regardless of its last setting.
  2. If a HydraProbe is not attached when the soil chamber configuration is enabled:
    1. Tsoil will show the last setting, or None if the last-time setting was Stevens.
    2. The Tsoil menu will include scan.... Selecting scan... will (if a probe has been subsequently attached) find and enable the probe. (You might have to wait up to a minute after attaching the probe for scan... to work. If scan... doesn't immediately  find the probe, wait a bit and try it again. If all else fails, change the system configuration away from the soil chamber and back again.)
  3. The s/n (probe serial number) and Soil Type entries are "—" if a probe is not active (Tsoil not set to Stevens).
  4. Soil Type will return to its previous value if you change from Stevens to something else, and back again, or from one session to the next. However, if the HydraProbe itself changes, and crosses the version 3 boundary, Soil Type will default to 1 Sand (version 3 or below) or General (version 4 and above).
Figure 1. Soil settings have some options for HydraProbe firmware versions.

Miscellaneous changes

Factory calibration date

The factory calibration date has been added to log  file headers (see ).


Flagging criteria loosened

Criteria for flagging warnings in the CO2 and H2O IRGA diagnostics pages have been loosened.

Figure 2. Values with a loosened tolerance for triggering a warning.

User-defined equations

Version 2.1 supports a number of math functions (Table 1) that can be used when specifying an equation for a user-defined variable that will carry over to the Excel spreadsheet version of the log file.

Figure 3. Setting the equation for a user-defined variable.
Table 1. Python methods that can be used in a user-defined variable, and how they appear in the Excel log file.
Python Becomes in Excel
math.ceil(x) CEILING(x,1)
math.cos(x) COS(x)
math.degrees(x) DEGREES(x)
math.e EXP(1)
math.exp(x) EXP(x)
math.fabs(x) ABS(x)
math.log(x) LOG(x ,EXP(1))
math.log10(x) LOG10(x)
math.pi PI()
pow(x,y) POWER(x,y)
math.radians(x) RADIANS(x)
math.sin(x) SIN(x)
math.sqrt(x) SQRT(x)
math.tan(x) TAN(x)

Daily automatic snapshots

Version 2.1 will take one daily snapshot automatically after the system has been on (and not sleeping) for at least one hour. These automatic snapshots contain a subset of a manually generated snapshot, since the focus is on the system hardware. They can prove useful later when troubleshooting, such as determining when some issue started to appear.

Automatic snapshots are typically 50K bytes in size. If disk space becomes a consideration, use the Tools > Manage Files > Trash utility to see how much space is being used by snapshots (or log files, etc.), and to easily move unneeded files to the trash. (File space is not reclaimed until the trash is emptied.)

Figure 4. Seeing how much disk space is taken up by snapshots.

Summary of fluorometry changes

Tab names

The Fluorometry tabs have a new look, with two additions and several name changes.

Figure 5. The old and new fluorescence tabs.

Modulation is On automatically

In version 2.1 the modulation beam will be turned ON (if it is Off) automatically in the following circumstances:

  • Opening a log file.
  • Triggering a fluorescence event, manually or via log.
  • Turning fluorescence recording on or off.

For most users, this change represents a certain degree of insurance against inadvertently logging data with the measuring beam off (which renders all modulated fluorescence values invalid.) A note of caution, however: the Fo (or Fo′ ) value that is logged is based an averaged modulated F (averaging time set in Fluorometry > Settings > Measuring). If you turn off the measuring beam and log or otherwise trigger a flash, the measuring beam will come back on, but averaged F value will be near 0, since the modulation was only just turned on.

If you actually wish to log fluorescence events with no modulation, then the way to achieve that is by setting the modulation setpoint to zero (also in Fluorometry > Settings > Measuring). This effectively keeps the modulation LEDs off when the modulation is set to “ON”.


Version 2.1 adds a Live screen for monitoring fluorescence. The graph uses a time-of-day bottom axis, and plots modulated fluorescence F and actinic light Q for up to 8 hours. Fluorescence events (saturating flashes, dark pulses) are also marked on this graph as they happen.

Figure 6. The Live screen shows a time-of-day strip chart of F, Q, and fluorescence events.

Operational tips:

  • While the Autoscale box is checked, you can quickly zoom in on a part of the graph by simply tapping the graph at that location. The graph will automatically turn Autoscale off and center itself at the tapped time, with the range of the displayed data set by the current Zoom setting. Subsequent left/right shifting and zooming in/out is done by the Time and Zoom buttons. To get back to the full view, check the Autoscale box.
  • Figure 7. Autoscale on (left) shows whole graph. Tap at 11:55 to zoom in (right).
  • While Autoscale is unchecked, the graph will remain unchanged if the newest incoming data is not on screen. If the present time is visible, the graph will automatically scroll left each time the incoming data reaches the right edge, keeping the latest x minutes (x = whatever the zoom is set to) visible on screen.
  • Figure 8. Keeping previous 10 minutes on screen.
  • The Q plot is easily dominated by saturating flashes (e.g., max values of 15,000). To maintain a normal actinic scale, open the Graph Opts panel, set Q max to 2000 and check the Q max box.
  • Figure 9. Limit the Q graph to 2000 mol m-2 s-1.
  • The Record checkbox replaces the Start/Stop buttons that used to reside on the Measuring Settings page (Figure 10). Record has no influence on the real-time graph, which keeps going no matter what (unless you put the instrument to sleep).
  • Figure 10. Trace file recording control has moved to the Live screen.

A fluorescence trace file contains tab-delimited records of 9 fluorometer output values. The first line is always a label line.


1 1642441773.4 951.80 -28.06 0.0499964 0.0 0.0 0.0 0.0499964

1 1642441774.0 949.22 -27.89 0.0499964 0.0 0.0 0.0 0.0499964

1 1642441774.6 945.30 -26.47 0.0499964 0.0 0.0 0.0 0.0499964

1 1642441775.2 943.30 -29.13 0.0499964 0.0 0.0 0.0 0.0499964

1 1642441775.8 938.27 -26.69 0.0499964 0.0 0.0 0.0 0.0499964

1 1642441776.4 939.17 -26.53 0.0499964 0.0 0.0 0.0 0.0499964

Event folders

The Event Folders screen represents a graphical way to explore the contents of /home/user/logs/flrevents, which holds daily directories of fluorescence events and recording files. A date/folder picker allows the user to pick the daily folder to be viewed. A label indicates how many recording or events files are found there, and a Plot button causes the contents of the directory to be read and displayed on the graph.

Figure 11. The Event Folders screen in action. The graph controls are the same as the Live graph (Figure 6).

With Autoscale off, tapping the graph close to an event will open a dialog with a plot of the event and related details (Figure 12). If this event is not already in the list of events in Compare Events, you can add it simply by tapping the Add button in the dialog. (If it is already there, no Add button will be displayed.)

Figure 12. With Autoscale off, tap on an event to see a detailed view.

Settings > Custom

LI-6800 Software version 2.1 (and fluorometer/head firmware version 1.4.21 and higher) supports a user-defined custom flash. With this new feature, you can define up to 38 steps to be executed during a flash, and in each step specify duration, modulation rate, output rate, intensities of red, blue far red, modulation beam peak intensity, and rate of change of red actinic intensity. (We’ve called this a “flash”, but more generally this is an event, since it could be a dark pulse, or flash and a dark pulse, or anything you’d care to define.)

For a quick introduction, here is a brief tour, in which we’ll make a custom flash that will combine an MPF and a Dark Pulse into one event.

  1. In the Settings > Custom screen, tap New, pick Multiphase, and tap Continue (Figure 13).
  2. Figure 13. Make a new custom flash event that will match the current settings for the multiphase flash.
  3. The Settings > Custom screen provides three views of the custom flash: text summary (Figure 14), a graphical preview (Figure 15), and an editable table (Figure 16).
  4. Figure 14. The Summary view provides a textual description, and the Meta string, which defines the post flash computations.
    Figure 15. The Graphical view of a custom event shows the start time of each step, and any actinic light changes.
    Figure 16. The Table Editor lets you view/edit what happens in the custom event at every step. For reference, we show the MPF settings that were used to generate the custom flash for this example.
  5. Now let's modify this event by adding a dark pulse to the end of it to measure Fo' all in one event. Go to the Table view, be sure you are in Row edit mode, tap row 5 to select it, then tap Insert (Figure 17).
  6. Figure 17. Step 3a. Appending a dark pulse to the custom flash step table.
  7. Once the two events are merged, we have to get rid of the final margin for the MPF (row 5, Code is 7), and the starting margin step for the Dark pulse (row 6, Code is 11). To do this, select them both (tap on row 5, drag down to row 6) and tap1Delete (Figure 18). Then tap Apply to keep the changes you made.
  8. Figure 18. Delete the final margin of the MPF, and the starting margin of the just-appended Dark pulse.
  9. The graphical preview shows a combined MPF and dark pulse event (Figure 19).
  10. Figure 19. Preview of the custom MPF and dark pulse event.
  11. Test the custom event by tapping Flash Now , and examining the results in the Compare Events screen (Figure 20).
  12. Figure 20. The custom event results. The event has results for its MPF part and the dark pulse part.

Compare events

Graph view

The Fluorometry > Compare Events section has some changes to better support viewing fluorometer event files.

Figure 21. New graphing options for fluorometer event files.

Using codes

The Filter field in Figure 21 also allows you to specify parts of a flash event to graph. For example, to see a RECT flash without the margin points, specify 3. To plot just the first and third phases on an MPF, specify 4,6. Table 2 shows code value usage.

Table 2. Step code usage.
Code Description
2 Pre-flash margin
4 MPF Phase 1
5 MPF Phase 2
6 MPF Phase 3
7 Post-flash margin
8 - 10 unused
11 DARK pre margin
12 DARK part 1
13 DARK part 2
14 DARK part 3
15 DARK post margin
16 - 53 CUSTOM

Code number(s) represent a list of indices. For example, consider a hypothetical flash data set that includes these time series data:


"FLUOR":[91, 92, 93, 94, 95, 96, 97, 98, 99, 100]

"CODE": [16, 16, 17, 17, 17, 17, 17, 18, 18, 18]


Suppose the filter code is 17. This means the plot will be of data whose 0-based indices (potentially 0 thru 9) are where CODE is 17. The list of indices where this condition is true is

[2, 3, 4, 5, 6]

so whatever is being plotted, it will be only those indices.

Code specifiers can include slice information (using the Python slicing convention), allowing you to further filter the list of indices. The syntax is (no spaces!)


where code is the code number, start is starting index, defaults to 0, stop is stopping index, defaults to None, and step is the step count, defaults to 1. start and stop can be positive (count from the left end) or negative (count from the right end).

Examples using the above hypothetical flash data are shown in Table 3.

Table 3. Code specifier examples and results.
Specifier Resulting Indicies Description
16,17,18 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] Use just those three codes
17 [2, 3, 4, 5, 6] All code 17s
17[1:] [3, 4, 5, 6] Skip the first one
17[:-2] [2, 3, 4] Skip the last 2
17[0:4] [2, 3, 4, 5] Use only the first 4
17[::2] [2, 4, 6] Use every other one
16[0],18[-1] [0, 9] Use first of 16, last of 18

Table view

The Table view has a couple of enhancements (Figure 22).

Figure 22. FLR, Settings, and Misc filter options are new in version 2.1. The Main filter is user editable.

Fluorometer file changes

The addition of custom flash events has caused some minor changes to the fluorometer event file structure. These changes will not impact most users, except those who analyze event files with their own software.

Listing 1 shows the .json file for a standard rectangular flash. The red sections of the header, and the in the computations, depend on event type. The green section is new, and contains all of the FLR group values following this event).

Listing 1. A standard rectangular flash. The red highlighted sections will change with event TYPE.








"OUTRATE":100, This section depends of the flash TYPE






"DC_SECS_OFFSET":5.6e-07, See Fluorometry timing details

"AC_SECS_OFFSET":-1.44e-06, See Fluorometry timing details

"PFD_SECS_OFFSET":1.33e-06, See Fluorometry timing details

"FLASH_SECS_OFFSET":-2.25e-06, See Fluorometry timing details

"SECS":[-0.04000175, -0.03000175, -0.02000175, ..., Relative time (s)

"FLUOR":[1346.83, 1355.88, 1357.69, ..., Modulated (AC) fluorescence

"DC":[1070.89, 1077.75, 1079.17, 1079.27, ..., DC fluorescence

"PFD":[124.202, 124.211, 124.206, ..., Photon Flux Density (Q) mol m-2 s-1

"RED":[84.7424, 84.7505, 84.7456, 84.7419, ..., Qr mol m-2 s-1

"REDMODAVG":[30.0601, 30.0601, 30.0601, ..., Qm peak mol m-2 s-1

"FARRED":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ..., Qd mol m-2 s-1

"CODE":[2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, ..., Step code numbers

"Tled":45.312, LED tile temperature (C) at time of flash

"Pre_Qin":99.9377, Pre-flash PFD (LeafQ:Qin) mol m-2 s-1

"Pre_Qabs":84.23, Pre-flash LeafQ:Qabs mol m-2 s-1

"Pre_Q_red":85.43, Pre-flash FlrLS:Q red mol m-2 s-1

"Pre_Q_blue":9.5, Pre-flash FlrLS:Q blue mol m-2 s-1

"Pre_Q_farred":0.0, Pre-flash FlrLS:Q farred mol m-2 s-1

"Pre_Favg":1155.817, Pre-flash FlrStats:F avg

"Pre_dFdt":-3.5539215322752034, Pre-flash FlrStats:dF/dt

"VERSION":4, This file format

"Starts":[0, 5, 85], Indicies that start a step

"Stops":[4, 84, 89], Indicies that end a step

"T_OFFSET":0.04499975, This section depends of the flash TYPE / meta commands

"Dspk_indices":[0, 5, 85],

"Dspk_values":[1130.92, 3074.12, 2937.76],





"FLR:DarkAdaptedID":"RECT-621-20220710-20_20_54", The state of the FLR group after this event





























Fluorometry timing details

The relative timing of the modulation, various measurements, and actinic change ("Saturating Flash") is shown in (Figure 23).

Figure 23. Timing when the modulating is set to 250000 Hz.

The vertical lines marked n- 1, n, etc. represent data output at a common time stamp. The measurements made associated with that stamp differ slightly from the actual time stamp by small amounts. For example, the PFD (actinic) measurement is made 1.33 µs after the reported time, while the modulated fluorescence is measured 1.44 µs prior to the reported time. These offset values appear in each ash event file, so any firmware updates that change timing will be documented in the fluorometer's output (Listing 2).

Listing 2. Timing information.












"SECS":[-0.04000175, -0.03000175, -0.02000175, -0.01000175, ..., 0.63999825, 0.64999825],

"FLUOR":[1346.83, 1355.88, 1357.69, 1357.92, 1357.19, 3648.42, 4133.55, ..., 1559.26],