Serial Data Logging AppWeb Serial · records straight to disk

no variable selected
—
pick a variable of interest, top left
Readings: 0 Last: —
not saved to disk yet
—
#Label Timestamp Value
TimestampElapsed (s) Value Label
no file loaded — or drop a .csv anywhere on this tab
Off: the channel stays yours to pick from “+ Variable of interest”, top left.
Parameter Set to Latest reported Status
How it works
Apply sends Set, <name>, <value> on the serial link. Any incoming line of the form Gain: 16x, Gain = 16, Set, Gain, 16x, Report, Gain, 16x — or a CSV row under a header carrying that column — updates “Latest reported”, and the status tag says whether the device confirmed the value you chose.
Lines: 0 RX: 0 B TX: 0 B

Read me

Serial Data Logging App

For the lab's AS7341 spectrophotometer, or any USB serial sensor · Zhou Kang Lab, SIT · Revised 20 Oct 2026

Reads a sensor over USB and saves the numbers as .csv files for Excel. For the spectrophotometer it also works out absorbance / OD, calibration curves and growth curves.

Start

OD600 Cell growth (the default). Uses the 580–600 nm channel, the AS7341's closest to 600 nm.
DNS assay Reducing sugars at 515 nm. Uses the 505–525 nm channel.
Any device Any other serial sensor. You choose the value with + Variable of interest.

Choose in Settings › What are you measuring? The choice shows as a tag at the top of the page.

1 · Plug in

Connect the spectrophotometer by USB.

2 · Connect

Click the USB button (top right). Pick the port the first time.

3 · Gain

Number stuck at its maximum: lower the gain (Settings). Very small: raise it.

Measure

1 · Blank in

Medium, or water with reagents. No cells, no sugar.

2 · Steady

Wait for the green ● Steady tag (last 8 s within 1 %).

3 · Set blank

Set blank from current reading in the Blank box. That value is I0.

4 · Samples

Each standard or sample: wait for Steady, type a label, press Save.

The first Save asks where to put the file; every Save after that is written straight away. Use clear labels: Std 0.5 g/L, Culture 2 h.

Absorbance

A = log10( I0 / I ) I0 = blank, I = sample. Half the blank's light gives A = 0.30.
Switch Intensity ⇄ A515 / OD600, above the big number and on Trend. View only: files always hold both.
Re-blank Each saved point keeps the blank it was measured against, so a new blank between sets is safe.
Take the blank again when the Blank box warns you
  • the gain changed since the blank;
  • the blank is over 30 min old (the light may drift);
  • a sample reads higher than the blank (A < 0: wrong blank, bubbles, or a smudged cuvette).

Tabs

Reading The live number, the Blank box, and the saved points with their A / OD.
Trend Live plot since you connected, in intensity or A / OD, with saved points marked and the Steady tag.
Analysis Works on your saved points:
AnalysisYou enterYou get
Calibration curve
DNS assay
Each standard's concentration; samples' dilution C = k × A through the origin (as Excel LINEST(C, A, FALSE)), k, R², each sample's concentration
Growth curve
OD600
Dilution; untick lag or stationary points OD × dilution against time, growth rate μ, doubling time
Time series
any .csv
X and Y columnsSummary statistics, linear fit, moving average
Settings What you're measuring, the automatic channel, the gain.
Console Raw lines from the device, and a box to send commands.

Files

FileMade byColumns
Saved pointsSave (written straight away)n, label, time, reading, blank I0, A / OD
Recording● Record (top right), every 2 stime, reading, blank I0, A / OD, label
Analysis tableDownload table (Analysis)the table and the fit, for your report

Computers & phones

Windows / Mac Chrome or Edge. Firefox and Safari can't reach USB devices.
Ubuntu Google Chrome. If the port won't open, the message under the USB button gives the one-off fix (a udev rule, or the dialout group).
Android Chrome with a USB-C OTG cable. Native-USB boards only (ESP32-S3/C3/C6 and similar). Recordings download when you stop; a copy stays in Settings.

Problems

What you seeWhat to do
The port won't openClose other tabs, the Arduino serial monitor or any program using it; try again.
No number appearsOpen Console to check lines arrive; check Settings shows the right measurement.
A / OD switch greyed outSet a blank first (Blank box on Reading).
Saved points not in a fileUse Download next to the saved points.

Feedback

Found a problem, or have an idea? Tell us on GitHub (free account). The link fills in your browser and settings. No account? Tell your lab instructor or TA.

Zhou Kang Lab · Singapore Institute of Technology · MIT License · source code