11# Ephys Link
22
33[ ![ PyPI version] ( https://badge.fury.io/py/ephys-link.svg )] ( https://badge.fury.io/py/ephys-link )
4+ [ ![ Build] ( https://github.com/VirtualBrainLab/ephys-link/actions/workflows/build.yml/badge.svg )] ( https://github.com/VirtualBrainLab/ephys-link/actions/workflows/build.yml )
45[ ![ CodeQL] ( https://github.com/VirtualBrainLab/ephys-link/actions/workflows/codeql-analysis.yml/badge.svg )] ( https://github.com/VirtualBrainLab/ephys-link/actions/workflows/codeql-analysis.yml )
56[ ![ Dependency Review] ( https://github.com/VirtualBrainLab/ephys-link/actions/workflows/dependency-review.yml/badge.svg )] ( https://github.com/VirtualBrainLab/ephys-link/actions/workflows/dependency-review.yml )
67[ ![ Hatch project] ( https://img.shields.io/badge/%F0%9F%A5%9A-Hatch-4051b5.svg )] ( https://github.com/pypa/hatch )
@@ -16,10 +17,10 @@ to communicate with manipulators used in electrophysiology experiments.
1617
1718** Supported Manipulators:**
1819
19- | Manufacturer | Model |
20- | --------------| -------------------------------------------------------------------|
21- | Sensapex | <ul > <li >uMp-4</li > <li >uMp-3</li > </ul > |
22- | New Scale | <ul > <li >Pathfinder MPM Control</li > <li >M3-USB-3:1-EP</li > </ul > |
20+ | Manufacturer | Model |
21+ | --------------| --------------------------------------------------------------------------- |
22+ | Sensapex | <ul > <li >uMp-4</li > <li >uMp-3</li > </ul > |
23+ | New Scale | <ul > <li >Pathfinder MPM Control v2.8.8+ </li > <li >M3-USB-3:1-EP</li > </ul > |
2324
2425Ephys Link is an open and extensible platform. It is designed to easily support integration with other manipulators.
2526
@@ -33,17 +34,12 @@ the [API reference](https://virtualbrainlab.org/api_reference_ephys_link.html).
3334
3435### Prerequisites
3536
36- 1 . [ Python ≥ 3.8, < 3.13] ( https://www.python.org/downloads/release/python-3116/ )
37- 1 . Python 3.12+ requires the latest version
38- of Microsoft Visual C++ (MSVC v143+ x86/64) and the Windows SDK (10/11) to
39- be installed. They can be acquired through
40- the [ Visual Studio Build Tools Installer] ( https://visualstudio.microsoft.com/visual-cpp-build-tools/ ) .
41- 2 . An ** x86 Windows PC is required** to run the server.
42- 3 . For Sensapex devices, the controller unit must be connected via an ethernet
37+ 1 . An ** x86 Windows PC is required** to run the server.
38+ 2 . For Sensapex devices, the controller unit must be connected via an ethernet
4339 cable and powered. A USB-to-ethernet adapter is acceptable. For New Scale manipulators,
4440 the controller unit must be connected via USB and be powered by a 6V power
4541 supply.
46- 4 . To use the emergency stop feature, ensure an Arduino with
42+ 3 . To use the emergency stop feature, ensure an Arduino with
4743 the [ StopSignal] ( https://github.com/VirtualBrainLab/StopSignal ) sketch is
4844 connected to the computer. Follow the instructions on that repo for how to
4945 set up the Arduino.
@@ -52,59 +48,70 @@ the [API reference](https://virtualbrainlab.org/api_reference_ephys_link.html).
5248is currently designed to interface with local/desktop instances of Pinpoint. It
5349will not work with the web browser versions of Pinpoint at this time.
5450
55- <div style =" padding : 15px ; border : 1px solid transparent ; border-color : transparent ; margin-bottom : 20px ; border-radius : 4px ; color : #31708f ; background-color : #d9edf7 ; border-color : #bce8f1 ;" >
56- <h3 >Using a Python virtual environment is encouraged.</h3 >
57- <p >Create a virtual environment by running <code >python -m venv ephys_link</code ></p >
58- <p >Activate the environment by running <code >.\ephys_link\scripts\activate</code ></p >
59- <p >A virtual environment helps to isolate installed packages from other packages on your computer and ensures a clean installation of Ephys Link</p >
60- </div >
51+ ### Install as Standalone Executable
6152
62- ### Install for use
53+ 1 . Download the latest executable from
54+ the [ releases page] ( https://github.com/VirtualBrainLab/ephys-link/releases/latest ) .
55+ 2 . Double-click the executable file to launch the configuration window.
56+ 1 . Take note of the IP address and port. ** Copy this information into Pinpoint to connect** .
57+ 3 . Select the desired configuration and click "Launch Server".
6358
64- Run the following command to install the server:
59+ The configuration window will close and the server will launch. Your configurations will be saved for future use.
6560
66- ``` bash
67- pip install ephys-link
68- ```
61+ To connect to the server from Pinpoint, provide the IP address and port. For example, if the server is running on the
62+ same computer that Pinpoint is, use
6963
70- Update the server like any other Python package:
64+ - Server: ` localhost `
65+ - Port: ` 8081 `
7166
72- ``` bash
73- pip install --upgrade ephys-link
74- ```
67+ If the server is running on a different (local) computer, use the IP address of that computer as shown in the startup
68+ window instead of ` localhost ` .
7569
76- ### Install for development
70+ ### Install for Development
7771
78721 . Clone the repository.
79732 . Install [ Hatch] ( https://hatch.pypa.io/latest/install/ )
80- 3 . In a terminal, navigate to the repository's root directory and run
74+ 3 . Install the latest Microsoft Visual C++ (MSVC v143+ x86/64) and the Windows SDK (10/11)
75+ via [ Visual Studio Build Tools Installer] ( https://visualstudio.microsoft.com/visual-cpp-build-tools/ ) .
76+ 4 . In a terminal, navigate to the repository's root directory and run
8177
8278 ``` bash
83- hatch shell
79+ hatch shell
8480 ```
8581
86- This will create a virtual environment and install the package in editable mode.
82+ This will create a virtual environment, install Python 12 (if not found), and install the package in editable mode.
83+
84+ ### Install as a Python package
8785
88- ## Usage
86+ ``` bash
87+ pip install ephys-link
88+ ```
89+
90+ Import the modules you need and launch the server.
8991
90- Run the following commands in a terminal to start the server for the desired manipulator platform:
92+ ``` python
93+ from ephys_link.server import Server
9194
92- | Manipulator Platform | Command |
93- | --------------------------------------| --------------------------------------|
94- | Sensapex uMp-4 | ` ephys-link ` |
95- | Sensapex uMp-3 | ` ephys-link -t ump3 ` |
96- | New Scale | ` ephys-link -t new_scale ` |
97- | New Scale via Pathfinder HTTP server | ` ephys-link -t new_scale_pathfinder ` |
95+ server = Server()
96+ server.launch(" sensapex" , 8081 )
97+ ```
9898
99- There are a couple additional aliases for the Ephys Link executable: ` ephys_link ` and ` el ` .
99+ ## CLI Usage
100100
101- By default, the server will broadcast with its local IP address on port 8081.
102- ** Copy this information into Pinpoint to connect ** .
101+ Ephys Link can be launched from the command line directly. This is useful for computers or servers without graphical
102+ user interfaces .
103103
104- For example, if the server is running on the same computer that Pinpoint is, use
104+ Run the following commands in a terminal to start the server for the desired manipulator platform without the startup
105+ window:
105106
106- - Server: ` localhost `
107- - Port: ` 8081 `
107+ | Manipulator Platform | Command |
108+ | --------------------------------------| ---------------------------------------------|
109+ | Sensapex uMp-4 | ` ephys-link.exe -b ` |
110+ | Sensapex uMp-3 | ` ephys-link.exe -b -t ump3 ` |
111+ | New Scale | ` ephys-link.exe -b -t new_scale ` |
112+ | New Scale via Pathfinder HTTP server | ` ephys-link.exe -b -t new_scale_pathfinder ` |
113+
114+ More options can be viewed by running ` ephys-link.exe -h ` .
108115
109116### "New Scale" vs "New Scale via Pathfinder HTTP server"
110117
0 commit comments