Skip to content

digital-chemistry/NemesysSyringePump

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nemesys Syringe Pump Control Software

Python control software for CETONI Nemesys syringe pumps over a CAN bus (CANopen). The project includes command-line tools, Tkinter interfaces, JSON-driven experiment execution, and batch-planning utilities for liquid-handling workflows.

Author

Aleksandar Kondinski
Contact: kondinski@gmail.com

Overview

This repository supports:

  • low-level CAN bus communication through canopen
  • manual pump control from a CLI or Tkinter GUI
  • automated multi-pump dispensing from CSV and JSON plans
  • batch optimization utilities for generated dispense plans
  • hardware readout, stop, and diagnostic helpers
  • simulation and particle-tracking support files

Hardware Requirements

Component Specification
Pumps CETONI Nemesys syringe pumps
CAN interface IXXAT USB-to-CAN adapter or compatible device
Operating system Windows 10 or Windows 11
Python 3.10 or newer

Default CAN settings are defined in config.py:

  • interface: ixxat
  • channel: 0
  • bitrate: 1000000

Repository Structure

config.py                CAN bus and pump hardware parameters
nemesys.py               Core pump driver
main.py                  Command-line control entry point
pump_gui.py              Tkinter GUI
main_dashboard.py        Dashboard UI
mode_manual.py           Manual-control dashboard tab
mode_experiment.py       Experiment dashboard tab
system_hardware.py       Shared hardware connection layer
auto_dispense.py         CSV-driven dispensing
main_json.py             JSON-driven experiment runner
batch_optimize.py        Batch-plan generation
readout.py               Hardware diagnostic readout
stop.py                  Emergency stop helper
simulations/             Sample plans and input CSVs
core_codes/              Core module copies
dependent/               Auxiliary scripts
particles/               Particle simulation files
pm/                      Process helper
archive/                 Curated legacy reference files

Installation

git clone https://github.com/digital-chemistry/NemesysSyringePump.git
cd NemesysSyringePump
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt

tkinter ships with standard Python on Windows. The IXXAT CAN adapter still requires its vendor driver.

Configuration

Edit config.py before first use to match your hardware, including CAN interface settings, motion direction, syringe geometry, and pump IDs.

Usage

Run the command-line interface:

python main.py

Run the dashboard:

python main_dashboard.py

Run automated workflows:

python auto_dispense.py
python main_json.py
python batch_optimize.py

Experiment Data

  • experiments.json contains JSON experiment definitions for main_json.py
  • plan.csv is the example plan for auto_dispense.py
  • simulations/ contains generated plans and batch-input CSV files

Citation

If you use this software in research, cite the Zenodo record once published:

Kondinski, A. (2025). Nemesys Syringe Pump Control Software [Software]. Zenodo. https://doi.org/10.5281/zenodo.XXXXXXX

License

Released under the MIT License.
Copyright (c) 2025 Aleksandar Kondinski.

About

No description, website, or topics provided.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors