Control software, firmware, and hardware design files for Vulintus olfactometer systems.
Disclaimer: This README file was AI-generated, but checked for accuracy by a human.
This repository combines three kinds of materials:
- Arduino firmware for the microcontrollers used inside supported olfactometer systems.
- MATLAB applications for manual olfactometer control and olfactory behavior workflows.
- Legacy PCB design files for first- and second-generation hardware.
Arduino sketches for supported controller revisions:
Firmware (Arduino)/Olfactometer_V1_0/Olfactometer_V1_0.inoFirmware (Arduino)/Olfactometer_V1_1/Olfactometer_V1_1.ino
These sketches target Arduino Mega 2560-based controllers used in Vulintus olfactory systems.
Files in MATLAB Scripts/Olfactometer Control V2/ provide a GUI for direct olfactometer control.
Key files:
Olfactometer_Control_V2.m: main MATLAB GUI entry point.ArdyOlfactometer.m: serial communication helper for connecting to the Arduino device.COM51_Odor_Valve_List.txt: example valve-to-odor mapping file.Stim_Set.txt: example stimulus set file.
Important: Olfactometer_Control_V2.m looks for configuration files in the current MATLAB working directory. In practice, run it from the MATLAB Scripts/Olfactometer Control V2/ folder so the valve list and stimulus files are found correctly.
Files in MATLAB Scripts/Olfactory Behavior V1.0/ support a behavior workflow built around the olfactometer hardware.
Key files:
Olf_Behavior.m: collated MATLAB entry point.src/Olf_Behavior_Startup.m: startup source used by the behavior application.src/Deploy_Olf_Behavior.m: helper used to collate and deploy the behavior application.compiled/: MATLAB Compiler output and redistribution artifacts.
Behavior-stage note: the startup flow looks for an Olf_Stages.xls* file on the user's desktop inside Desktop/Olf_Behavior/, and falls back to a copy on the MATLAB path if one is not present.
PCB Designs/ contains ExpressPCB design files for legacy olfactometer-related boards.
To open these files, install ExpressPCB. Use care when downloading from third-party mirrors.
- Windows is the expected operating environment for the supplied MATLAB workflows and COM-port handling.
- Arduino IDE for firmware upload and USB driver installation.
- MATLAB for the control and behavior applications.
Statistics and Machine Learning Toolboxis listed inMATLAB Scripts/Olfactory Behavior V1.0/src/Required Toolbox Functions/required_matlab_products.txt.- A supported Vulintus olfactometer system with an Arduino Mega 2560-based controller.
- Open the matching sketch for your hardware revision in the Arduino IDE.
- Connect the controller over USB.
- Select the correct Arduino Mega 2560 board and COM port.
- Upload the sketch.
- Open MATLAB.
- Change the current folder to
MATLAB Scripts/Olfactometer Control V2/. - Review the valve mapping and stimulus text files if needed.
- Run
Olfactometer_Control_V2.
- Open MATLAB.
- Ensure the required stage file is available either on the MATLAB path or under
Desktop/Olf_Behavior/. - Run
Olf_Behavior.
- This repository contains legacy hardware design files in addition to the active control software.
- Some MATLAB files use older serial APIs and may produce MATLAB analyzer warnings in newer releases.
- The compiled behavior folder is provided for packaging and redistribution workflows, not as the primary source of truth.
This repository is licensed under the Vulintus Noncommercial Repository License 1.0. Commercial use of the repository contents is prohibited unless Vulintus, Inc. gives prior written permission. See the repository root LICENSE for the full license text.