Welcome to Inlinino¶
Inlinino is an open-source software data logger for oceanographers. It primarily log measurements from optical instruments deployed on research vessels during month long campaigns. Secondarily, it provides real-time visualization, which helps users troubleshoot instruments in the field and ensure collection of quality data. Inlinino is designed to interface with either serial (RS-232) or analog instruments. The data received is logged in a timestamped raw format (as communicated by the instrument) or in a comma separated file (csv) for easy importation in data analysis software. Typically, a new log file is created every hour for simplicity of post-processing and easy backups. Instruments supported are: SeaBird TSG, Satlantic PAR, WET Labs ECO sensors (e.g. ECO-BB3, ECO-FLBBCD, ECO-BBFL2, ECO-3X1M, ECO-BB9, ECO-BBRT), WET Labs ACS, Sequoia LISST, and analog sensors through a data acquisition system (DataQ DI-1100 ). Other instruments can be added via the user interface if they output simple ascii data frame, otherwise the code is intended to be modular to support new instruments. The use and validation of the software are documented in Haëntjens and Boss 2020 (DIY Oceanography).

Index¶
Quick Start¶
- Inlinino is available for Windows and macOS, the packaged executable can be downloaded with the links below. Windows users will have to unzip the archive.
Advance users or developers can setup the software directly from source (GitHub Repository).
Table of Contents
Main Window¶
- Once an instrument selected or setup through the startup window, the main Inlinino window will be loaded. The model and serial number of instrument will be displayed at the top of the sidebar. The color of the instrument’s model and serial number indicates the current status of the system:
- red: the instrument is not connected
- orange: the instrument is connected but not logging
- green: the instrument is connected and logging data
To log data follow the steps describe in the following section (Log Data).
To log data from multiple instruments simultaneously, start multiple instances of Inlinino. To do so, simply click on the Inlinino executable icon (.app on macOS or .exe on Windows) as many times as instruments to log. On the startup window select the appropriate instrument each time.
The last 120 values of selected channels are displayed in the plotting section of the main window (Figure 7) once the instrument is connected. On generic and analog instruments all channels are selected. On the WET Labs ACS and Sequoia LISST the user can select the channels of interest from the Select Channel(s)
Group-Box menu at the bottom of the sidebar. By default, the latest channels selected by the users are plotted.
The Packets
Group-Box of the sidebar displays in real-time the number of packets received, logged, and corrupted. When an instrument is turned on a few corrupted packets could be received, they are generally due to the instruments initialization message. If the number of corrupted packets keep increasing, a problem with the data format, the instrument settings, or the connections is occurring. Note that if the raw data is logged, the corrupted packets are logged but not timestamped. The raw data logging option is available in the setup menu of generic instruments. For other instrument types it’s activated by defaults.
Instruments with many channels like the WET Labs AC-S and Sequoia LISST have an auxiliary window (Figure 8) which shows the latest value received of each channel. Instruments communicating auxiliary data (e.g. instrument temperature) have it displayed in the Auxiliary Data
Group-Box of the sidebar.

Screenshot 7. Inlinino Auxiliary window specific to instruments with many channels (e.g. AC-S, LISST)
Log data¶
- Verify the configuration of the instrument by clicking on the setup button. Detailled instruction are provided in the, c.f. next section.
- Connect the instrument:
- Click on
Open
button under theControls
section at the top of the sidebar.- A pop-up window will prompt the serial port to which the instrument should be connected to.
- Once connected the instrument name at the top of the sidebar will change to an orange color, and data can be visualize on the figure section of the window.
Warning
If no data can be visualized or the data makes no sense, the instrument is either incorrectly configured, their is a problem wih the connection, the instrument has an issue, or the instrument is not sampling properly (e.g. bubbles in the sample).
- Log data:
- Click on
Start
button under theControls
section at the top of the sidebar.- The name of the instrument will change to a green color. The filename under the
Logger
section will be updated to reflect the current file in which the data is logged. The filename is formatted as follow <prefix><instrument_model><instrument_serial_number>_<YYYYMMDD>_<hhmmss>. Prefix can be updated from the instrument setup (c.f. Edit Instrument Configuration). is Typically, a new file is created hourly, however, this can be adjusted through the configuration file.
Edit instrument configuration¶
Before logging data, it’s important to check the configuration of the instrument, that the variables recorded are correct or that the calibration files are up to date.
To edit the configuration of an instrument, Inlinino must be started with the instrument loaded. Click the Setup
button under the Controls
Group-Box at the top of the sidebar. The setup window will pop-up. To update settings follow instructions specific to each instrument’s type (c.f. Table 1).
Append prefix to log file Group-Box
Data filenames follow the syntax
<instrument_model><instrument_serial_number>_YYYYMMDD_HHMMSS.csv
. For example a file for a WET Labs ACS serial number 301 created July 9, 2016 at 16:01:00 UTC would be named:ACS301_20160709_160100.csv
.One might want to append a prefix to a data file name logged with Inlinino, in the event of instrument calibration or some experiments. To consistently append a prefix to the name of a file logged with Inlinino, select the prefix desired at the bottom of the setup window (Screenshot 8).
Warning
The
Append prefix to log file
settings are only applied to the current Inlinino session and are reset when Inlinino is restarted.
Configuration¶
Essential settings are explained in the Quick Start Section. More advanced settings are detailed below. All parameters editable through Inlinino’s user interface are saved in the inlinino_cfg.json file. This file is located in Inlinino’s root directory on Windows and under Inlinino-v2.4.3.app/Contents/Resources/inlinino_cfg.json on macOS. The configuration file follows json syntax. The section instruments contains an array with the settings of each instruments configured to date. Some parameters are common to every instrument type while others are specific to each instrument. Example of configuration for each instrument type are listed at the end of the chapter.
Warning
Be careful when manually editing the configuration file. Breaking the json syntax might prevent Inlinino from starting. It’s recommended to backup the configuration file before making any modifications.
Table of Contents
Common parameters¶
List of parameters common and required by every instrument type.
module: <string>
The module parameter refers to which parent-class needs to be loaded to communicate with an instrument. The modules/types of instrument implemented are:
- generic: Class used for most instruments outputting simple ascii frames.
- dataq: Specific to the DataQ DI-1100 data acquisition module to log analog instruments
- lisst: Specific to Sequoia LISST instrument
- acs: Specific to WET Labs AC-S and AC-9 instruments
manufacturer: <string>
- Instrument manufacturer. This field can only contain the following characters: A-Z, a-z, 0-9.
model: <string>
- Instrument model. This field can only contain the following characters: A-Z, a-z, 0-9.
serial_number: <string>
- Instrument serial number. This field can only contain the following characters: A-Z, a-z, 0-9.
log_path: <string>
Path to the directory in which the data from the instruments is logged.
Note
On Windows, the path need to include two backslashes as they are special characters in JSON. For example:
C:\\Data\\Inlinino"
.log_raw: <boolean>
Indicate if log the raw data coming from an instrument.
Note
For the ACS this option logs the binary data received from the instrument. It is highly recommended to set it to True, as it allows to reprocess the raw data in case of parsing issues with Inlinino. By defaults it is enabled when using the user interface.
log_products: <boolean>
Indicate to log data received in a comma separated value file, easily read by data analysis software.
Note
For the ACS on long cruises (e.g. month, year), one might want to desable this parameter as the volume of data collected is significantly higher when enabled
Specific Parameters¶
List of parameters specific to an instrument type/module.
Generic Instruments¶
terminator: <dict>
Indicate the end of the frame, hence the beginning of the next frame. For example:
{"terminator": { "__bytes__": "ascii", "content": "\r\n" }}
separator: <dict>
Element separating values in frame. For example:
{"separator": { "__bytes__": "ascii", "content": "\t" }}
variable_names: <list>
- List of variable names separated by commas.
variable_units: <list>
- List of variable units separated by commas.
variable_columns: <list>
- List of position of each variable in the frame.
variable_types: <list>
- List of type of each variable. Can either be a floating number (float) or an integer (int).
variable_precision: <list>
- List of string format used for each variables to write product log file. Typically %d for integers and %.3f for floating number with a precision of 3 decimal places.
Note
All list must have the same number of elements.
Analog Instruments¶
channels_enabled: < list >
List of analog channels to log data from.
{"channels_enabled": [1,2]}
Sequoia LISST¶
device_file: < string >
Path to device file, also referred as instrument file, from the manufacturer.
{"device_file": "cfg/LISST1183_20180119_InstrumentData.txt"}
ini_file: < string >
Path to initialization file (.ini) from the manufacturer.
{"ini_file": "cfg/LISST1183_20180119_Lisst.ini"}
WET Labs ACS¶
device_file: < string >
Path to device file from the manufacturer.
{"device_file": "cfg/acs301_20180129.dev"}
Example of configurations¶
Generic Instruments¶
Example of configuration for a WET Labs ECO-BB3.
{
"manufacturer": "WetLabs",
"model": "BB3",
"serial_number": "349",
"module": "generic",
"terminator": {
"__bytes__": "ascii",
"content": "\r\n"
},
"separator": {
"__bytes__": "ascii",
"content": "\t"
},
"variable_names": ["beta470", "beta532", "beta660"],
"variable_units": ["counts", "counts", "counts"],
"variable_columns": [3, 5, 7],
"variable_types": ["int", "int", "int"],
"variable_precision": ["%d", "%d", "%d"],
"variable_displayed": ["beta470", "beta532", "beta660"],
"log_raw": false,
"log_products": true,
"log_path": "data"
}
Analog Instruments¶
Example of configuration for a DataQ DI-1100.
{
"module": "dataq",
"manufacturer": "WetLabs",
"model": "WSCD",
"serial_number": "859",
"log_path": "data",
"log_raw": false,
"log_products": true,
"channels_enabled": [2]
}
Sequoia LISST¶
Example of configuration for a Sequoia LISST.
{
"manufacturer": "Sequoia",
"model": "LISST",
"serial_number": "1183",
"module": "lisst",
"ini_file": "cfg/LISST1183_20180119_Lisst.ini",
"device_file": "cfg/LISST1183_20180119_InstrumentData.txt",
"log_raw": true,
"log_products": true,
"log_path": "data"
}
WET Labs ACS¶
Example of configuration for a WET Labs ACS.
{
"manufacturer": "WetLabs",
"model": "ACS",
"serial_number": "301",
"module": "acs",
"device_file": "cfg/acs301_20180129.dev",
"log_raw": true,
"log_products": true,
"log_path": "data"
}
PASC¶
The precision analog to serial converter (PASC) is an optional data acquisition (DAQ) device. PASC is only required to log data from instruments communicating through analog channels. PASC can be built with an Arduino Uno type microcontroller and a precision analog to digital converter such as the Texas Instrument ADS1015 or ADS1115 developpement boards. The wiring instructions to build your own are available at Adafruit website.
- We uploaded the firmware to the microcontroller following these instructions.
Load mcu_firmwares/PASC.cpp in the Arduino IDE:
- In ~/Documents/Arduino create a folder PASC/
- Copy and rename mcu_firmware/PASC.cpp to ~/Documents/Arduino/PASC/PASC.ino
- Load PASC.ino from Arduino Software (File > Open…)
Comment/uncomment appropriate lines in PASC.ino following instructions in comments of the file.
Compile and upload PASC to the microcontroller (button on the top left of Arduino IDE).
PASC Precision and Accuracy Validation¶
The precision and accuracy of the PASC serial number 001 and 002 were assessed with a Fluke 85 III Voltmeter. We found no significant bias and a reasonable root mean square error of (5.3 mV), the data is presented in the Figure below.
Configuration in previous versions of Inlinino¶
The parameters required to setup the PASC with the previous version of Inlinino are:
- module
- name
- frequency
- gain (for ADS1X15 only)
- variables
- pin
- units
frequency: < int >
Frequency (in Hertz) at which the Arduino will be reading and reporting voltage.
Note
Theoretical maximum sampling frequency are:
Uno ADS-1015 ADS-1115 9600 3300 860 Maximum frequency taking into account conversion delay:
Number Uno ADS-1015 ADS-1115 of PIN SE SE DIF SE DIF 1 50 1000 500 125 62 2 25 500 250 62 31 3 16 333 41 4 12 250 31 5 10 [1] SE: Single ended connection [2] DIF: Differential connection gain: < int >
Available only for the ADS1X15 interface.
Set gain of ADS-1x15.
The ADC input range (or gain) can be changed via this parameter.
Available options are:
Gain VDD Resolution (1 bit = x mV) x (+/- V) Uno ADS-1015 ADS-1115 2/3 6.144 3 0.1875 5.0 4.88 1 4.096 2 0.125 2 2.048 1 0.0625 4 1.024 0.5 0.03125 8 0.512 0.25 0.015625 16 0.256 0.125 0.0078125 Note
A gain of two third is set with
"gain":23
.Warning
Never exceed the VDD +0.3V ! Exceeding the upper or lower limits may damage a channel of your ADC or destroy it ! Be carefull with this setting, be conservative and start with a gain of 2/3 (
"gain":23
) for an input of +/- 6.144 VNote
Gain is displayed on the digital display on the top left of the GUI. Gain setting is recorded in the output log file with the units.
variables: {}
Each pin connected to the board need to be declared in this section. Each variable has a name, a pin name and units.
pin: "< string >"
Set which pin to read measurments from.
pin single ended options are:
- SIN_A0
- SIN_A1
- SIN_A2
- SIN_A3
- SIN_A4
- SIN_A5 (available only on Arduino Uno)
pin differential connections options are (available only on ADS-1X15):
- DIF_A01
- DIF_A23
Example of configuration for logging data of an analog fluorometer, the WET Labs WSCD. The instrument output is 12 bit 0-5 Volts, as we are taking measurements in very clear water, signal should never go above 3 Volts. In order to match the resolution of the instrument, an ADS-1015 is used with a gain setting of 1x and a frequency of 1 Hz (as the instrument operates at 1 Hz). The <user_cfg.json> file look like:
"instruments":{
"WSCD_859":{
"module":"Arduino",
"name":"ADS1015",
"frequency":1,
"gain":1,
"variables":{
"fdom":{
"pin":"SIN_A0",
"units":"counts"
}
}
}
}