Overview
The QTFM2 Logger records QTFM sensor output synchronised with GPS position on the Advanced Comms Board (ACB). QLogMonitorConsole (QLogMonCon) is the Windows host application you use to manage the logger and pull files off its SD card — without removing the card. It communicates with the logger over a USB cable.
Note QLogMonitorConsole is a maintenance and file-transfer utility. For live control while logging (start/stop, ECU vs logger mode) you use the Bluetooth commands in the ACB 2.0 Quick Start; this page covers the PC app.
Connect the PC to the logger
Required: ACB hardware with a USB cable from the PC to the exposed USB port on the board.
- Connect the USB cable. Windows recognises the logger as a Portable Device — you can confirm this in Device Manager.
- Windows may prompt for an action each time the device is plugged in. Set Settings → AutoPlay to “Take no action” for the Teensy Portable Device — the app provides all the controls you need.
- Launch QLogMonitorConsole to interact with the logger.
Logging is suspended While QLogMonitorConsole is running it puts the logger in an idle mode so it can manage files — normal logging is suspended until the logger is reset or power-cycled. The app resets the logger automatically when it exits.
The logger exposes two USB interfaces the app uses together: a Media Transfer Protocol (MTP) interface for listing and transferring SD-card files, and a virtual COM port for commands.
Install and update the app
First-time install: download and run the QLogMonitorConsole setup.exe installer,
then launch the app from the Windows Start menu under the QuSpin folder.
On launch with an internet connection, the app automatically checks for updates and offers to install a newer version when one is available.
Working with logger files
Each logging session writes a file named
<FileNamePrefix>_<SequenceNumber>.txt. The default prefix is
TFM. The logger pre-allocates the file with null characters and truncates it to
the logged data when the session ends. Files are never deleted from the card
(a data safeguard), so sequence numbers only ever increase.
Utility functions are single-character commands entered at the QLogMonitorConsole prompt:
| Command | Action |
|---|---|
f | List files that begin with the current FileNamePrefix. |
a | List all files on the SD card. |
s | Show or change the FileNamePrefix string. |
n | Show the filename the next logging session will use. |
<num> | Transfer and convert a single file <FileNamePrefix>_<num>.txt. Enter 1–4 digits; leading zeros are optional. |
The file list shows three columns: the integer SequenceNumber, the filename, and the pre-allocation date/time (UTC) — the timestamp is accurate only if a GNSS fix had set the logger clock.
Transfer and convert
Log files are written as ASCII text: a verbatim, timestamped record of everything the QuSpin sensor transmitted — mag-data packets plus command responses, status messages and star codes, interleaved. With a GNSS module connected and enabled, time and position are logged too. The format favours logging efficiency and reliability over readability, so files are post-processed as they transfer from the card to the PC.
Entering a file’s sequence number transfers it to
\Users\Public\Documents\QuSpin Data and:
- strips null characters from the
.txt; - sorts all records by the microsecond timestamp and corrects for rollover;
- reformats into a flat
.csv; - applies the geospatial conversion (with heading-error correction).
Use the sensor’s millisecond timestamp, not the logger’s The sort above uses the logger’s microsecond timestamp, which is the right choice for putting interleaved records back in order. It is not the measurement time base.
For any timing-sensitive analysis, use the QTFM’s standard millisecond timestamp
(the > field, described in
Serial Communication and Data
Format). It comes from the sensor’s own clock and is jitter-free. The logger’s
microsecond timestamp is for correlating to GPS time and for spotting dropped samples.
For an SD file such as TFM_0014.txt, the app produces:
| File | What it is |
|---|---|
Repository\TFM_0014.txt | Verbatim copy of the SD log file. |
TFM_0014_<UTC>.csv | Processed log sorted by µs timestamp, one record per line. |
archive\TFM_0014_<UTC>_raw.csv | Original log stripped of null characters. |
flatCSV\TFM_0014_<UTC>_flat.csv | Flat single-table CSV (one column set). |
geospatial\GPS.Interpolated_TFM_0014_<UTC>_flat.csv | Geospatial file with heading-error correction, from the flat CSV. |
<UTC> is the GPS date/time at the start of logging, embedded in each output
name.
Not the same as QLog_Processor
This is QLogMonitorConsole’s own conversion. It is not the same as
QLog_Processor, whose output is the _flat / _dedup /
_interpolated CSV set. Use whichever fits your workflow; don’t expect
identical file names from the two tools.
Configure the logger
Logger settings can be changed two ways, both of which set the same values: edit
!quspin!.ini on the SD card, or use QLogMonitorConsole’s configuration
commands (no card removal needed). The commands map to the .ini keys as follows:
| Command | .ini key | Controls |
|---|---|---|
g | USE_GPS | Use the GPS module to log position and to set the real-time clock and file date/time. |
t | GPS_TYPE | Must match the attached module: 1 Adafruit PA1616D / PA6H · 2 NEO-M8N · 3 NEO-M9N · 4 Adafruit PA1616S. |
p | PPS_TIMESTAMP | Use the GNSS PPS edge to time incoming GNSS packets (more accurate than first-byte receipt). Set TRUE only if the module has a wired PPS pin. |
m | MAGDATA_PULSE_TIMESTAMP | Use the sensor’s mag-data-pulse edge to timestamp sensor data (more accurate than first-byte receipt). |
c | LOG_AT_STARTUP | Start logging automatically on boot. Keep FALSE unless continuous logging is required, to avoid filling the card. |
b | MAX_FILE_SIZE_BYTES | Pre-allocated file size; logging stops when reached. Default approx. 0.5 GB — e.g. 67108864 allows about 3.5 h at the maximum mag rate. |
The default !quspin!.ini also sets baud rates (GPS_RATE,
RADIO_RATE), FILE_NAME_PREFIX, and SLAVE_PRESENT. Keep
the filename exactly !quspin!.ini when editing on the card.
Update logger firmware
Every QLogMonitorConsole install is packaged with the latest logger firmware image.
| Command | Action |
|---|---|
v | Display the firmware version currently running in the logger. |
u | Flash the packaged firmware image. Fully automated, including the app restart needed to re-establish the session. |
Reset the logger
| Command | Action |
|---|---|
r | Reboot the logger firmware. Automated, including the app relaunch needed to re-sync the session. |
The logger responds to file display/transfer requests in every state except while actively logging — the firmware blocks those requests during a logging session.
Status: LED and error word
LED indicator
A dedicated LED on the ACB PCB indicates logger status and error conditions:
| LED state | Meaning |
|---|---|
| Steady yellow | In a prearm state, running prearm checks. |
| Flashing blue | Ready to log — prearm checks have passed. |
| Steady blue | Actively logging. |
| Blue–red–blue–red–blue | Firmware boot. |
| Flashing red | Error — the number of red flashes identifies it (below). |
| Red flashes | Indication |
|---|---|
| 2 | Configuration error. |
| 3 | Sensor data not detected. |
| 4 | PPS signal configured but not detected. |
| 5 | Mag data pulse configured but not detected. |
| 6 | GPS issue or no fix. |
Error status word
The Logger Error Status is a hexadecimal bitfield — each bit is one status item, and a
set bit means that item is in error. It is checked at startup and during prearm; the status
must be 0 for the logger to reach the READY state. Items that are not configured
are masked (for example, the PPS bit is ignored unless PPS is enabled), so a misconfiguration
can itself raise an error. The value is visible in QLogMonitorConsole and over the Bluetooth
link.
| Bit | Item |
|---|---|
| 0 | configFileOk |
| 1 | masterDataDetected |
| 2 | slaveDataDetected |
| 3 | sensorSyncDetected |
| 4 | ppsSignalDetected |
| 5 | magdataPulseDetected |
| 6 | sdCardWriteable |
| 7 | sdCardSpaceAvailable |
| 8 | gpsStatusStdOrBetter |
| 9 | gpsTimeValid |
| 10 | gpsDateValid |
| 11 | gpsFixValid |
Bluetooth status stream: in the READY state the logger streams sensor data over Bluetooth; if prearm checks fail it streams informative status messages instead. Pair a host and view the stream in a terminal (e.g. TeraTerm) to verify or troubleshoot operation.
Large files and QLog_Processor
For standalone conversion outside the app — and for the analysis-ready output set
— use QLog_Processor: drag a .txt log onto
QLog_Processor.exe (or a desktop shortcut). It produces three comma-delimited
CSVs: _flat.csv, _dedup.csv, and an analysis-ready
_interpolated.csv resampled to a uniform timebase. The
ACB 2.0
Quick Start covers it step by step.
Excel silently truncates large logs A worksheet holds at most 1,048,576 rows. A 54 MB log is roughly 4,169,230 records, so Excel discards about three million rows without a clear warning. For files this size, use QLog_Processor or another tool built for them — not a spreadsheet.