Welcome to PyMoDAQ’s documentation!¶
French version here
Note
Announcement: Training session in Toulouse, France 17/18/19 October 2022 followed by the PyMoDAQ’s Days
PyMoDAQ, Modular Data Acquisition with Python, is a set of python modules used to interface any kind of experiments. It simplifies the interaction with detector and actuator hardware to go straight to the data acquisition of interest.
It has two purposes:
First, to provide a complete interface to perform automated measurements or logging data without having to write a user/interface for each new experiment.
Second, to provide various tools (User interfaces, classes dedicated to specific tasks…) to easily build a Custom App/Extension
It is divided in two main components as shown on figure Fig. 1
The DashBoard and its control modules: DAQ Move and DAQ Viewer
Extensions such as the DAQ Scan or the DAQ Logger

Fig. 1 PyMoDAQ’s Dashboard and its extensions: DAQ_Scan for automated acquisitions, DAQ_Logger for data logging and many other.¶
The Control modules are interfacing real instruments using user written plugins. The complete list of available plugins is maintained on this GitHub repository and installabled using the Plugin Manager
Training¶

Fig. 2 Training sessions announcement and PyMoDAQ’s days¶
Information¶
GitHub repo: https://github.com/PyMoDAQ
Documentation: http://pymodaq.cnrs.fr/
List of available plugins
Video tutorials here
Credits¶
Based on the pyqtgraph
library : http://www.pyqtgraph.org by Luke Campagnola.
PyMoDAQ is written by Sébastien Weber: sebastien.weber@cemes.fr under a MIT license.
Contribution¶
If you want to contribute see this page: Contributors
They use it¶
See Who use it?
Citation¶
By using PyMoDAQ, you are being asked to cite the article published in Review of Scientific Instruments RSI 92, 045104 (2021) when publishing results obtained with the help of its interface. In that way, you’re also helping in its promotion and amelioration.
Changelog¶
Please see the changelog.
Contents:
- 1. PyMoDAQ’s overview
- 2. Installation
- 3. How to Start
- 4. Configuration
- 5. PyMoDAQ’s User Modules
- 5.1. DashBoard
- 5.2. Control Modules
- 5.3. Extension Modules
- 5.4. Data Viewers
- 5.5. Saving datas
- 5.6. Utility Modules
- 6. Plugins
- 7. Custom App/Extension
- 8. TCP/IP communication
- 9. Who use it?
- 10. Contributors
- 11. Library Reference
- 11.1. Main modules
- 11.1.1. DAQ_Move modules
- 11.1.1.1. The DAQ_Move_base Class
DAQ_Move_base
DAQ_Move_base.check_bound()
DAQ_Move_base.commit_settings()
DAQ_Move_base.emit_status()
DAQ_Move_base.get_position_with_scaling()
DAQ_Move_base.ini_stage_init()
DAQ_Move_base.move_done()
DAQ_Move_base.poll_moving()
DAQ_Move_base.send_param_status()
DAQ_Move_base.set_position_relative_with_scaling()
DAQ_Move_base.set_position_with_scaling()
DAQ_Move_base.update_settings()
- 11.1.1.1. The DAQ_Move_base Class
- 11.1.1. DAQ_Move modules
- 11.2. Utility Modules
- 11.3. Utility Libraries
- 11.3.1. daq_utils
- 11.3.1.1. TCP/IP related methods
Grabber
MockServer
TCPClient
TCPServer
TCPServer.close_server()
TCPServer.find_socket_type_within_connected_clients()
TCPServer.find_socket_within_connected_clients()
TCPServer.listen_client()
TCPServer.print_status()
TCPServer.process_cmds()
TCPServer.read_info()
TCPServer.select()
TCPServer.send_command()
TCPServer.set_connected_clients_table()
TCPServer.timerEvent()
- 11.3.1.2. Units conversion
- 11.3.1.3. Mathematical utilities
- 11.3.1.4. Scan utilities
- 11.3.1.5. File management
- 11.3.1.1. TCP/IP related methods
- 11.3.2. parameter
- 11.3.1. daq_utils
- 11.1. Main modules
- PyMoDAQ Femto