Skip to content

Using the BODAQS Import Manager

BODAQS Import Manager is the desktop app for getting logger sessions off the logger and into your library. It watches log sources (folders on your computer or loggers on WiFi), imports and processes the logs, and writes the results into a library directory.

The manager sits between raw logger output and the tools you use for analysis. It can watch folders, download completed sessions from loggers on Wi-Fi, run the BODAQS preprocessing pipeline, and write the results into a local library.

It does not require a cloud account, database server, phone app, or Python environment for normal use.

Session

A completed ride or test recorded by the BODAQS logger. Between the time you start logging and the time you stop, that is a session. A logger session is normally stored as a ZIP archive, or as logger files that the Import Manager packages and processes.

Source

A place the Import Manager looks to find sessions. A source can be a folder on your computer, or a logger connected to the same Wi-Fi network as your computer. A source has a target library and points to the bike, preprocess, note, FIT, and Wi-Fi settings used for imports.

Library

A destination for processed sessions. A library contains processed run data and metadata, the original log files, optional notes, and optional files for export to data.syn.bike.

Import run

A batch of work performed by the manager. A run may contain one or many sessions imported from the same source pass. Run and session IDs stay stable; descriptions are the human-friendly names shown by downstream tools.

Current Import Manager setups use a shared workspace model. Bike profiles, preprocess profiles, and event schemas live beside the managed libraries so they can be reused by several sources and libraries.

A typical shared workspace looks like this:

<data-or-workspace-root>/
bike_profiles/
preprocess_profiles/
event_schemas/
libraries/
<library>/
runs/
library/
syn/
sources/
<source>/
import_source.json
notes/
fit/
inbox/
done/
failed/
staging/

Most users keep sources/ and the library workspace root under one shared data folder, often in OneDrive or another cloud-synced drive.

The Import Manager has two main areas:

  • Manager is for everyday operation: checking sources, importing now, starting or stopping watch mode, editing source settings, and reviewing status.
  • Provision is for creating or extending the setup: adding libraries and sources, choosing source type, setting the initial target library, and choosing session naming defaults.

The setup guide walks through the first provisioning pass. In normal use, most of your time will be on the Manager tab.

For a local archive folder source, the usual rhythm is:

  1. Record one or more sessions on the logger.
  2. Open the Import Manager.
  3. Connect to the logger by Wi-Fi or remove the SD card.
  4. Download completed logger archives.
  5. Copy the archives into the source inbox/ folder.
  6. Select Import Now, or start the watcher and leave the app running.
  7. Check the Status Log for imported, deferred, or failed sessions.
  8. Open the target library from Jupyter Lab, data.syn.bike, or another BODAQS analysis tool.

For a Wi-Fi logger source, the usual rhythm is:

  1. Record one or more sessions on the logger.
  2. Connect your computer and logger to the same WiFi network (or connect the computer to the logger’s access point).
  3. Put the logger into Upload mode, or right-click the source and select Request Upload Mode.
  4. Select Import Now, or start the watcher and leave the app running.
  5. Check the Status log for imported, deferred, or failed sessions.
  6. Open the target library from Jupyter Lab, data.syn.bike, or another BODAQS analysis tool.

The Manager tab is the operational center of the app. It shows configured libraries and sources, exposes import actions, and writes a status log as work is performed.

The library list shows the libraries managed by the app. The current table shows:

  • Library Name: the user-facing library name.
  • Syn Export: whether future imports into that library should generate data.syn.bike-compatible export files.

Use Syn Export when you want new imports into that library to produce data.syn.bike-compatible CSV outputs. The setting affects future imports and reprocesses. It does not automatically rebuild exports for sessions that were already imported.

Right-click a library to rename it, inspect details, or remove it.

The source list shows the configured data sources. Current columns include:

  • Enabled: whether the source is included in Import Now and watch mode.
  • Allow Reprocessing: whether archives already recorded as processed may be processed again.
  • Source Name: the human-readable name shown in the manager.
  • Type: local archive folder or Wi-Fi logger.
  • Status: the most recent runtime status reported by the manager.
  • Target Library: where sessions from this source are processed.
  • Bike Name: the bike profile currently associated with the source.
  • Attach Note: whether draft setup notes are created for future imports.

You can toggle Enabled, Allow Reprocessing, and Attach Note directly in the source table.

Right-click a source to open actions for that source. Stop watch mode before editing source settings. The manager will also block some editing actions while the watcher is active.

The menu includes:

  • Edit bike: edit the currently assigned bike profile.
  • Assign bike profile: choose an existing shared bike profile for this source.
  • Duplicate bike profile: create a new shared profile from an existing one. The duplicate is not assigned automatically; assign it when you are ready to use it.
  • Assign preprocess profile: choose the preprocess profile this source uses.
  • Change target library: choose which library receives future imports.
  • Import naming: configure session auto-naming for this source.
  • Details: inspect source paths and settings.
  • Validate: check that the source configuration and referenced files can be read.
  • Rename source.
  • Remove Source.

For WiFi logger sources, the menu also includes:

  • Edit Wi-Fi settings: set the logger ID, discover loggers on the WiFi network and other WiFi options
  • Check Logger: find the logger and verify it is responsive
  • Request Upload Mode: place the logger in upload mode ready to transmit log files
  • Open Logger Web UI: open the logger UI in a new browser window

Import Now

Scans enabled sources once. Use this when testing a new source, importing a small number of files, or checking whether a failed setup has been fixed.

Start Watch

Keeps the manager running and checks enabled sources repeatedly. Ideal in intensive use, for example when managing data acquisition for multiple riders concurrently.

Import Now is the safer first test for a new setup. Once you can import a known-good session manually, watch mode is useful for unattended folder or logger workflows.

When several sessions are detected in one source pass, the manager will process them into one run with multiple sessions. The run records the batch of work; the individual sessions remain separate inside it. The status log updates during detection and processing, so progress throught large batches of logs is visible.

When you select Import Now, the manager will ask for a run description override. Supply one if you want to name this import run distinctively; leave the field blank to use default run naming.

Use Import naming from the source context menu when you want the source to auto-name sessions. A common pattern is a base name plus an index, such as Practice 001, Practice 002, and Practice 003.

The manager can save a start-at-login preference. On Windows this creates a per-user startup entry, so administrator access is not required.

When the app starts at login, it uses the saved app configuration and can start the watcher automatically. If the window is hidden, use the tray icon to reopen or quit the manager.

Use the Provision tab when you need to add another destination library or another data source. You do not need to repeat the whole first-run setup.

Add another library when you want a separate destination for processed sessions, for example for:

  • a different rider
  • a different bike
  • a separate test program

Add another source when sessions arrive from a different place or need different settings, for example to manage:

  • another logger
  • another source folder
  • another bike profile assignment
  • another preprocess profile assignment
  • another way of getting data off the same logger

Each source targets one library, but multiple sources can target the same library. Multiple sources can also use the same shared bike profile or preprocess profile.

The Provision tab also has session auto-naming controls. Enable Auto-name sessions on import and enter a Session base name if you want sessions from the new source to receive numbered descriptions automatically.

Use Use Existing Workspace when source and library folders already exist on disk and you want this computer’s local app settings to adopt them.

Choose Local archive folder when you want to copy completed sessions into a folder for processing.

The import flow is:

  1. Put completed .zip session archives or .bdq logs, in the source inbox/ folder.
  2. The manager waits until each file appears stable.
  3. The input is prepared in staging/.
  4. The manager validates the session files.
  5. The BODAQS preprocessing pipeline runs.
  6. Processed outputs are written to the target library.
  7. Source inputs move to done/ on success or failed/ on failure.

A source pass can detect more than one session. Sessions detected in the same pass can be grouped into the same import run while remaining separate sessions inside that run.

Choose Wi-Fi logger when you want the manager to talk directly to a BODAQS logger on the local network and download completed sessions.

The logger must be:

  • powered on
  • reachable from the computer by Wi-Fi
  • not actively logging
  • in upload mode, or able to enter upload mode

By default, the manager identifies a Wi-Fi source by logger ID. It is generally better to using a fixed IP address if possible: Discovery can find a logger even if its IP address has changed. However if discovery is blocked by the network, firewall, VPN, or guest-network isolation, you can use a fixed IP address. You will want to set the fixed IP address on the logger too.

You may also want to use a fixed IP address if you are using the logger in access-point mode and the computer is connected directly to the logger’s access point. In that case, use the fixed/manual address shown by the logger and use Open Logger Web UI to confirm that the browser can reach it.

Manual IP addresses look like:

http://192.168.1.42

Upload mode protects active logging. A logger should not transfer files while it is recording.

Use Check Logger to confirm the selected source reaches the expected logger and to see whether upload mode is active. Use Request Upload Mode if the logger is reachable but not yet accepting transfers.

If the manager cannot put the logger into upload mode, use the logger controls directly, then return to the manager and check again. Upload mode can be turned on in the logger menu, or by a long press of the up button from the home screen.

After a successful Wi-Fi import, the manager can acknowledge the imported session to the logger. Depending on the source settings, the logger can:

  • keep the remote files
  • move them to an uploaded/archive area
  • delete them

Start conservatively. Keep remote files until you are confident that the library outputs are complete and the workflow is doing what you expect.

Bike profiles are shared workspace files. A source is assigned to one bike profile, and multiple sources can use the same profile.

The bike profile contains general descriptive information and controls how logger signals are interpreted during preprocessing. The following values are particularly important:

  • wheel travel and suspension travel values
  • head angle
  • front suspension transform
  • rear wheel travel lookup table (LUT)
  • normalization ranges used by preprocessing and exports

Use Assign bike profile to point a source at an existing shared profile. Use Duplicate bike profile before experimental edits if the current profile is also used by other sources. Duplicating creates a new shared profile file but does not automatically assign it to the source.

The rear wheel lookup table maps rear sensor travel to rear wheel travel. The sensor may be measuring shock movement directly, linkage movement, or rotary angle depending on the installation.

At minimum, the LUT needs a zero-travel point and a full-travel point. Additional points let the profile describe a non-linear suspension curve.

LUT input units can be millimetres or degrees. The first table heading changes to sensor mm or sensor deg to match the selected input unit. The output side of the LUT is rear wheel travel in millimetres.

Fork movement is measured along the fork, but by convention wheel travel is usually taken to be vertical wheel movement. The head angle lets preprocessing derive that vertical component.

Bike profiles are JSON files under the shared bike_profiles/ directory unless you are using a legacy source-local profile. Direct editing is possible, but use care: a shared profile can affect several sources.

Preprocess profiles control how raw logger signals are transformed into processed BODAQS session data. They also reference event schemas when event detection or event metrics are enabled.

Event schemas are shared workspace files under event_schemas/. The seeded preprocess profile refers to the seeded event schema with this relative path:

../event_schemas/event_schema.yaml

Use Assign preprocess profile from the source context menu to choose a different preprocess file for a source.

Each source points to one preprocess profile. Multiple sources can (and generally do) use the same profile.

The note profile controls which setup-note fields are created for imported sessions and what default values they start with.

Automatically generated notes are intentionally marked as drafts. They are meant to be reviewed and edited later, because the defaults may not exactly match the setup used for that session.

Use Attach Note in the source list to turn draft note creation on or off for future imports from that source.

Unlike bike and preprocess profiles, note templates and presets are still source-local under the source notes/ folder.

FIT enrichment is merging GPS data from a Garmin .FIT file into logger data. While BODAQS loggers support dedicated GPS sensors, FIT enrichment enables you to have GPS data without the cost, space, or wiring requirements of an additional sensor.

FIT enrichment is enabled in the preprocess profile by default (it can be turned off). If it is enabled, the manager looks in the source fit/ folder for .fit activity files with timestamps matching the log and re-samples them to the same time grid as the logger. FIT files need to be provided before running the session import. The files are read in place and are not moved or deleted by the manager

If multiple FIT files overlap a session, the best overlap is preferred. If matching fails, the import can still continue without FIT enrichment.

If Syn Export is enabled for the target library before import, the manager writes data.syn.bike-compatible outputs into:

<library>/syn/

The syn/ folder contains exported CSV files, helper text files, and export metadata for sessions imported or reprocessed while export was enabled.

The helper text files show the settings to enter manually when uploading to data.syn.bike. This is useful because the export is shaped for data.syn.bike, but the website still expects some setup information to be entered by the user.

For more information, see Analysis with syn.bike.

Use Validate after editing source files or adding a new source. Validation checks whether the manager can read the source configuration and related settings.

Use Sync Workspace when files or folders have been added, removed, renamed, or restored outside the Import Manager. It reconciles the app’s local settings with the configured source and library roots.

The status log is the first place to look when something unexpected happens. It reports source validation results, import counts, Wi-Fi logger checks, watcher snapshots, and common failures.

For local archive sources, a typical import status includes:

  • sessions seen
  • sessions imported
  • sessions deferred because the file is not settled yet
  • sessions failed

For Wi-Fi sources, status can also report upload mode, logger identity, and network errors.

Removing a source or library can mean two different things.

Remove from Import Manager only removes the entry from the app’s local configuration. It does not delete files on disk.

Remove from Import Manager and delete folder removes the entry and deletes the selected source or library folder from disk. Because this is destructive, the manager asks for an additional confirmation and requires you to type DELETE.

Complete source removal deletes the source folder, including workflow folders such as inbox/, done/, failed/, and staging/.

Complete library removal deletes the individual library folder. It does not delete shared workspace-level folders such as bike_profiles/, preprocess_profiles/, or event_schemas/.

Check that:

  • the file copy has finished
  • the source is enabled
  • the watcher is running, or you selected Import Now
  • the archive or logger file contains a valid completed session
  • the source is not blocked by import state unless Allow Reprocessing is enabled

Open the status log and inspect the source failed/ folder. Common causes include:

  • invalid or incomplete archive contents
  • bike profile validation errors
  • preprocess profile validation errors
  • event schema validation errors
  • the target library path is unavailable
  • preprocessing failed

Try:

  • confirm the logger and computer are on the same network, or that the computer is connected to the logger’s access point
  • confirm logger Wi-Fi is on
  • confirm the logger is in upload mode
  • disable VPNs that may block local discovery
  • check whether guest-network isolation is enabled
  • try a manual address with fixed address mode
  • use Open Logger Web UI to confirm browser access

The manager compares the reachable logger ID with the logger ID saved in the source. If they do not match, it refuses to import. Check that the source points to the intended logger, especially if a fixed address is being used.

The logger is reachable, but it is not currently accepting transfers. Put the logger into upload mode, then run Check Logger or Import Now again.

Check which activity signals are available. Current preprocessing prefers GPS velocity when usable GPS is available, then falls back to wheel motion. A flat analog signal can mean the bike is parked or that the sensor is disconnected, so profile and source setup still matter.

Check that logger GPS points are valid, or that matching FIT files exist if the source relies on FIT enrichment. Logger GPS rows with invalid coordinates are ignored, but valid logger GPS should be available to preprocessing and data.syn.bike export.

Check that:

  • Syn Export was enabled on the target library before import or reprocess
  • the imported session contains compatible signals
  • the bike profile includes the needed travel and normalization information
  • the import completed successfully

Complete removal can fail if files are locked or read-only. Close open file explorer windows, editors, notebooks, and cloud-sync previews that might be holding the folder, then try again.

Check that:

  • Attach Note was enabled before import
  • the source notes/ folder contains a valid note template
  • the source notes/ folder contains a valid bike setup preset
  • the note preset matches the template
  • Test a new source with Import Now before using watch mode.
  • Stop watch mode before editing source settings.
  • Treat shared bike and preprocess profiles as reusable workspace assets.
  • Duplicate a shared bike profile before experimental edits.
  • Assign the duplicate explicitly when you want the source to use it.
  • Keep raw logger archives until you have checked the processed library output.
  • Use conservative Wi-Fi cleanup settings until the workflow is proven.
  • Back up important libraries, sources, and shared profile folders like any other project data.