# Bio-Impedance Amplifier | Executables This repository contains compiled Rust-based software for communicating with a custom-built bio-impedance amplifier. ## Features - Single-frequency and frequency-sweep measurements - Real-time visualization of magnitude and phase - Support for both 2-lead and 4-lead measurements - Data logging to `.csv` files - Day and night display modes - Control via on-screen buttons or keyboard shortcuts - Adding custom markers at specific timepoints ## Installation This software supports Windows and macOS; Linux distributions are available on request. ### Windows (.exe) 1. Run `Bio-Z App Windows.exe`. ### macOS Additional steps are required on macOS. Otherwise, you may see a message such as *"This app can’t be opened because it is from an unidentified developer."* You can choose one of the following options: #### Option 1: Use the native binary (no extension) 1. Open `Bio-Z App macOS 1`. 2. A warning will appear stating that `Bio-Z App macOS 1` cannot be opened. 3. Go to **System Settings** → **Privacy & Security**. 4. Scroll down and click **Open Anyway** under **Security**. 5. Follow the onscreen instructions. #### Option 2: Use the application bundle (.app) 1. Open **Terminal** and navigate to this folder using `cd`. 2. Run the following command to remove the quarantine attribute: ```bash sudo xattr -cr Bio-Z\ App\ macOS\ 2.app ``` 3. Open `Bio-Z App macOS 2`. ## `.csv` output format ### File Naming - Output filenames are automatically adjusted. - Files end with either: - `_single.csv` for single measurements - `_sweep.csv` for sweep measurements - Single and sweep data are **never combined** in one output file. ### Marker Functionality - A new feature **Add marker** is available during a measurement. - Activating **Add marker** opens a popup: - Can be triggered via button or shortcut key **A** - Entered text is saved as a **marker** in the CSV output. - Markers can later be detected and used in data analysis. ### Time Reference - Time values are expressed in **milliseconds (ms)**. - Time starts from the moment the hardware is powered on or connected via USB. ### CSV Column Structure #### Single Measurement (`*_single.csv`) Column number | Parameter | Description | ---|------|-------------| 1| Time (ms) | Time since hardware power-on | 2| Frequency | Measured frequency | 3| Magnitude | Signal magnitude | 4| Phase | Signal phase | 5| Marker | User-defined marker text | #### Sweep Measurement (`*_sweep.csv`) Column number | Parameter | Description | ---|------|-------------| 1| Time (ms) | Time since hardware power-on | 2| Frequency | Measured frequency | 3| Magnitude | Signal magnitude | 4| Phase | Signal phase | 5| Index / Measurement number | Sweep index | 6| Marker | User-defined marker text |