<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://bcmeter.org/wiki/index.php?action=history&amp;feed=atom&amp;title=CSV_data_format</id>
	<title>CSV data format - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://bcmeter.org/wiki/index.php?action=history&amp;feed=atom&amp;title=CSV_data_format"/>
	<link rel="alternate" type="text/html" href="https://bcmeter.org/wiki/index.php?title=CSV_data_format&amp;action=history"/>
	<updated>2026-06-09T22:45:29Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.36.0</generator>
	<entry>
		<id>https://bcmeter.org/wiki/index.php?title=CSV_data_format&amp;diff=424&amp;oldid=prev</id>
		<title>Bcmwiki: Consistency pass 2: airflow range via Configuration, multi-wavelength as in-development, ESP32/Pi CSV filename split, legacy sensor wording</title>
		<link rel="alternate" type="text/html" href="https://bcmeter.org/wiki/index.php?title=CSV_data_format&amp;diff=424&amp;oldid=prev"/>
		<updated>2026-06-08T18:47:40Z</updated>

		<summary type="html">&lt;p&gt;Consistency pass 2: airflow range via Configuration, multi-wavelength as in-development, ESP32/Pi CSV filename split, legacy sensor wording&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:47, 8 June 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l21&quot;&gt;Line 21:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 21:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Filename Convention ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Filename Convention ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Active session: &amp;lt;code&amp;gt;YY-MM-DD_HHMMSS.csv&amp;lt;/code&amp;gt; (based on session start time)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Active session: &amp;lt;code&amp;gt;YY-MM-DD_HHMMSS.csv&amp;lt;/code&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;on ESP32 builds, &amp;lt;code&amp;gt;DD-MM-YY_HHMMSS.csv&amp;lt;/code&amp;gt; on Raspberry Pi builds &lt;/ins&gt;(based on session start time)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Fallback (no RTC sync): &amp;lt;code&amp;gt;nosync_HHMMSS.csv&amp;lt;/code&amp;gt; (based on uptime)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Fallback (no RTC sync): &amp;lt;code&amp;gt;nosync_HHMMSS.csv&amp;lt;/code&amp;gt; (based on uptime)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l54&quot;&gt;Line 54:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 54:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Multi-Wavelength Columns (&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;optional&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;if &lt;/del&gt;hardware &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;installed&lt;/del&gt;) ====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Multi-Wavelength Columns (&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;in development&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;not in shipped &lt;/ins&gt;hardware) ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Same structure as 880nm, repeated for each wavelength:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Same structure as 880nm, repeated for each wavelength:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Bcmwiki</name></author>
	</entry>
	<entry>
		<id>https://bcmeter.org/wiki/index.php?title=CSV_data_format&amp;diff=416&amp;oldid=prev</id>
		<title>Bcmwiki: Fix ATN formula: ATN = -100*ln(Sen/Ref), dimensionless; sigma enters BC not ATN (verified vs firmware measure.cpp)</title>
		<link rel="alternate" type="text/html" href="https://bcmeter.org/wiki/index.php?title=CSV_data_format&amp;diff=416&amp;oldid=prev"/>
		<updated>2026-06-08T16:20:51Z</updated>

		<summary type="html">&lt;p&gt;Fix ATN formula: ATN = -100*ln(Sen/Ref), dimensionless; sigma enters BC not ATN (verified vs firmware measure.cpp)&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:20, 8 June 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l39&quot;&gt;Line 39:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 39:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;bcmSen_880nm&amp;lt;/code&amp;gt; || float || V || Sensor channel voltage (880nm LED through sample spot)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;bcmSen_880nm&amp;lt;/code&amp;gt; || float || V || Sensor channel voltage (880nm LED through sample spot)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;bcmATN_880nm&amp;lt;/code&amp;gt; || float || — || Attenuation at 880nm = &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;−ln&lt;/del&gt;(Sen/Ref) &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/ &lt;/del&gt;σ&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;bcmATN_880nm&amp;lt;/code&amp;gt; || float || — || Attenuation at 880nm = &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;−100·ln&lt;/ins&gt;(Sen/Ref)&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, dimensionless. The absorption cross-section &lt;/ins&gt;σ &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;enters the BC concentration, not ATN.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;BCngm3_unfiltered_880nm&amp;lt;/code&amp;gt; || float || ng/m³ || Real-time BC concentration (unsmoothed)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;BCngm3_unfiltered_880nm&amp;lt;/code&amp;gt; || float || ng/m³ || Real-time BC concentration (unsmoothed)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Bcmwiki</name></author>
	</entry>
	<entry>
		<id>https://bcmeter.org/wiki/index.php?title=CSV_data_format&amp;diff=302&amp;oldid=prev</id>
		<title>Bcmwiki: Wiki update: sync with manual and dev docs (2026-03)</title>
		<link rel="alternate" type="text/html" href="https://bcmeter.org/wiki/index.php?title=CSV_data_format&amp;diff=302&amp;oldid=prev"/>
		<updated>2026-03-08T13:10:12Z</updated>

		<summary type="html">&lt;p&gt;Wiki update: sync with manual and dev docs (2026-03)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== CSV Data Format ==&lt;br /&gt;
&lt;br /&gt;
bcMeter stores measurement data as CSV files. This page documents the file format and column definitions.&lt;br /&gt;
&lt;br /&gt;
=== File Format ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Property !! Value&lt;br /&gt;
|-&lt;br /&gt;
| Delimiter || Semicolon (&amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| Encoding || UTF-8&lt;br /&gt;
|-&lt;br /&gt;
| Decimal separator || Dot (&amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| Line ending || LF (&amp;lt;code&amp;gt;\n&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
| First row || Column headers&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Filename Convention ===&lt;br /&gt;
&lt;br /&gt;
* Active session: &amp;lt;code&amp;gt;YY-MM-DD_HHMMSS.csv&amp;lt;/code&amp;gt; (based on session start time)&lt;br /&gt;
* Fallback (no RTC sync): &amp;lt;code&amp;gt;nosync_HHMMSS.csv&amp;lt;/code&amp;gt; (based on uptime)&lt;br /&gt;
&lt;br /&gt;
=== Column Definitions ===&lt;br /&gt;
&lt;br /&gt;
==== Core Columns (always present) ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Column !! Type !! Unit !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;bcmDate&amp;lt;/code&amp;gt; || string || DD-MM-YY || Measurement date&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;bcmTime&amp;lt;/code&amp;gt; || string || HH:MM:SS || Measurement time&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;bcmRef_880nm&amp;lt;/code&amp;gt; || float || V || Reference channel voltage (880nm LED through clean filter)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;bcmSen_880nm&amp;lt;/code&amp;gt; || float || V || Sensor channel voltage (880nm LED through sample spot)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;bcmATN_880nm&amp;lt;/code&amp;gt; || float || — || Attenuation at 880nm = −ln(Sen/Ref) / σ&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;BCngm3_unfiltered_880nm&amp;lt;/code&amp;gt; || float || ng/m³ || Real-time BC concentration (unsmoothed)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;BCngm3_880nm&amp;lt;/code&amp;gt; || float || ng/m³ || BC concentration with rolling average applied&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;relativeLoad&amp;lt;/code&amp;gt; || float || % || Filter loading (0 = clean, 100 = saturated)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;AAE&amp;lt;/code&amp;gt; || float || — || Ångström Absorption Exponent (requires multi-wavelength)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Temperature&amp;lt;/code&amp;gt; || float || °C || Internal device temperature&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;airflow&amp;lt;/code&amp;gt; || float || L/min || Measured airflow rate&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Multi-Wavelength Columns (optional, if hardware installed) ====&lt;br /&gt;
&lt;br /&gt;
Same structure as 880nm, repeated for each wavelength:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;bcmRef_520nm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bcmSen_520nm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bcmATN_520nm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;BCngm3_unfiltered_520nm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;BCngm3_520nm&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;bcmRef_370nm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bcmSen_370nm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bcmATN_370nm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;BCngm3_unfiltered_370nm&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;BCngm3_370nm&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Environmental Columns (optional, sensor-dependent) ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Column !! Type !! Unit !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;humidity&amp;lt;/code&amp;gt; || float || % || Relative humidity (BME280/SHT4x)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;hPa&amp;lt;/code&amp;gt; || float || hPa || Atmospheric pressure (BME280)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;PM2.5&amp;lt;/code&amp;gt; || float || µg/m³ || Particulate matter &amp;lt;2.5µm (SPS30)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;PM10&amp;lt;/code&amp;gt; || float || µg/m³ || Particulate matter &amp;lt;10µm (SPS30)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== GPS Columns (optional, if GPS module connected and has fix) ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Column !! Type !! Unit !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;lat&amp;lt;/code&amp;gt; || float || degrees || Latitude (WGS84)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;lon&amp;lt;/code&amp;gt; || float || degrees || Longitude (WGS84)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;altitude&amp;lt;/code&amp;gt; || float || m || GPS altitude above sea level&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Metadata Columns ====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Column !! Type !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;notice&amp;lt;/code&amp;gt; || string || System notices or warnings per data point&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sampleDuration&amp;lt;/code&amp;gt; || float || Actual measurement duration for this sample (seconds)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;notes&amp;lt;/code&amp;gt; || string || User-added annotations&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Example Data ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bcmDate;bcmTime;bcmRef_880nm;bcmSen_880nm;bcmATN_880nm;BCngm3_unfiltered_880nm;BCngm3_880nm;relativeLoad;AAE;Temperature;airflow&lt;br /&gt;
04-03-26;19:37:09;0.9679;0.9321;3.76;1686;1686;0;0;0;0.4659&lt;br /&gt;
04-03-26;19:42:09;0.9745;0.9335;4.3;4028.5;1686;0;0;0;0.3088&lt;br /&gt;
04-03-26;19:47:09;0.9752;0.9315;4.59;2371.4;1830.2;0;0;0;0.2832&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Import Notes ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Excel:&amp;#039;&amp;#039;&amp;#039; Use &amp;quot;Text Import Wizard&amp;quot; and set delimiter to semicolon. The date format DD-MM-YY may need manual conversion.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Python/Pandas:&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;pd.read_csv(&amp;#039;file.csv&amp;#039;, sep=&amp;#039;;&amp;#039;)&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;R:&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;read.csv2(&amp;#039;file.csv&amp;#039;)&amp;lt;/code&amp;gt; (uses semicolon by default)&lt;/div&gt;</summary>
		<author><name>Bcmwiki</name></author>
	</entry>
</feed>